面向智能工厂的双模通信工控板设计

在工业物联网改造的实际场景中,老旧设备往往沦为 “信息孤岛”,产线巡检依赖人工、现场控制缺乏远程能力,而专业 PLC  成本高、通用开发板在工业环境下稳定性又不足。结合深圳大夏龙雀科技 DX-BT04E 蓝牙模块与DX-WF24 WiFi 模块,我设计了一款集成工业控制、双模通信、智能供电与环境监测的工控板,既解决了中小场景的成本与可靠性痛点,也完成了通信模块的深度适配与性能验证。

一、项目背景

1.1 工业物联网落地的痛点
中小工厂、智慧农业大棚等场景后发现,普遍存在三类核心需求:

  • 控制需求单一:仅需 6-8 路继电器控制电机、电磁阀等负载,无需 PLC 的复杂功能,但追求低成本;
  • 通信场景割裂:本地需要近距离调试 / 手动控制,远程需要云端数据上报与指令下发,单一通信模块无法覆盖;
  • 环境与供电严苛:工业现场电磁干扰大、供电波动频繁,移动部署场景需续航能力,普通开发板易死机、断连。
1.2 项目选型与定位

基于大夏龙雀双模通信模块构建的工控板,核心定位为低成本、高可靠、开箱即用的工业物联网控制终端,覆盖三大场景:

  • 中小工厂设备改造:替代传统继电器控制柜,实现远程监控与本地控制;
  • 智慧农业大棚:适配温湿度监测与灌溉、通风等设备的自动化控制;
  • 高校物联网教学:作为综合实验平台,覆盖通信、控制、传感器等核心知识点。

二、整体架构

工控板采用 “主控核心 - 外设执行 - 通信层 - 供电层” 四层分层架构,逻辑清晰、便于扩展,核心架构如下:

2.1 硬件选型
  • 主控:STM32F103 工业级芯片,兼顾低成本与多任务调度能力,支持 HAL 库与底层寄存器操作,适配工业现场多场景;
  • 通信模块:大夏龙雀 DX-BT04E(蓝牙)+ DX-WF24(WiFi),双 UART 独立驱动,本地 / 云端通信分离,互不干扰;
  • 继电器:工业级继电器 + ULN2003 驱动 + 1N4148 双续流保护,适配感性负载,应对关断时的反向电动势;
  • 供电:USB + 锂电池双架构,搭配 TP4056 充电管理、DW06D 过充 / 过放 / 过流保护,支持移动部署与不间断运行。

三、硬件设计

3.1 继电器驱动

工业现场感性负载(电机、电磁阀)关断时产生的反向电动势,是烧毁驱动电路的核心原因。本项目采用 “硬件双重保护 + 软件防护逻辑” 双方案。

硬件保护

  • 第一:ULN2003 驱动芯片内置续流二极管,快速泄放线圈初始反向电流;
  • 第二:继电器线圈两端并联 1N4148 快速二极管,精准吸收高反向电压,避免元件击穿。

软件防护

/**
 * @brief  继电器控制函数(含互锁+软启动+日志)
 * @param  relay_num: 继电器编号(0-5)
 * @param  state: 控制状态(0-关断,1-导通)
 * @retval 无
 */
void Relay_Control(uint8_t relay_num, uint8_t state) {
    if(relay_num >= RELAY_NUM) return; // 边界校验,防止越界
    
    // 状态互锁:避免重复操作导致负载冲击
    if(Relay_Status_Check(relay_num, state)) {
        // 软件PWM软启动(100ms),降低感性负载启动冲击
        PWM_Soft_Start(relay_num, 100);
        
        // 硬件GPIO控制
        HAL_GPIO_WritePin(RELAY_PORT[relay_num], RELAY_PIN[relay_num], state);
        
        // 更新状态指示灯
        LED_Indicator_Update(relay_num, state);
        
        // 记录操作日志,便于故障追溯
        Log_Relay_Operation(relay_num, state, get_timestamp());
    }
}
3.2 智能供电:双冗余保障,应对现场供电波动

工业现场供电不稳定,移动部署场景也需续航能力,本项目设计USB + 锂电池双电源架构,搭配专用管理芯片实现稳定供电。

供电系统核心逻辑

/**
 * @brief  供电管理任务(实时监测电源状态)
 * @retval 无
 */
void Power_Management_Task(void) {
    // 实时检测供电来源与状态
    Power_Source_Status status = Detect_Power_Source();
    
    switch(status) {
        case POWER_USB_ONLY:
            // USB单独供电:充电+系统正常运行
            Battery_Charging_Management();
            System_Power_Mode(NORMAL_MODE);
            break;
            
        case POWER_BATTERY_ONLY:
            // 电池单独供电:低电量预警+低压保护
            if(Battery_Voltage() < LOW_VOLTAGE_THRESHOLD) {
                Report_Low_Battery(); // 低电量上报
                System_Power_Mode(LOW_POWER_MODE);
            } else {
                System_Power_Mode(NORMAL_MODE);
            }
            break;
            
        case POWER_BOTH_AVAILABLE:
            // 双电源供电:优先USB供电,同步充电
            Battery_Charging_Management();
            System_Power_Mode(NORMAL_MODE);
            break;
            
        case POWER_CRITICAL:
            // 电源异常:进入安全模式,保护系统与数据
            Enter_Safe_Mode();
            break;
    }
}

核心保障

  • 充电管理:TP4056 芯片实现锂电池恒流 / 恒压充电,支持过充保护;
  • 放电保护:DW06D 芯片实现过放、过流、短路保护,防止电池损坏;
  • 无缝切换:双电源自动切换,避免供电中断导致系统死机。
3.3 双模通信:本地 + 云端协同

通信是工控板连接物理世界与数字世界的核心,本项目采用大夏龙雀双模模块,实现本地近距离控制 + 云端广域交互的无缝协同。

通信模块选型适配

  • DX-BT04-E 蓝牙模块:低延迟、低功耗,用于本地调试、手动控制(如手机 APP 操作),高优先级数据传输;
  • DX-WF24 WiFi 模块:广覆盖、高稳定性,用于云端 MQTT 数据上报、远程指令下发,适配工业现场与农业大棚的远程场景。

通信架构与数据模型

// 统一设备数据模型(蓝牙/WiFi通用,保证数据一致性)
typedef struct {
    char device_id[32];          // 设备唯一标识
    char firmware_version[16];   // 固件版本
    uint8_t relay_status;        // 6路继电器状态(按位存储)
    float temperature;           // 环境温度
    float humidity;              // 环境湿度
    uint8_t battery_level;       // 电池电量
    uint8_t wifi_strength;       // WiFi信号强度
    uint8_t work_mode;           // 工作模式
    uint32_t timestamp;          // 时间戳
} Device_Data_t;
 
// 通信模块实例(双UART独立驱动)
Communication_Module ble_module = {
    .huart = &huart1,
    .data_ready = false
};
 
Communication_Module wifi_module = {
    .huart = &huart2,
    .data_ready = false
};
 
/**
 * @brief  通信任务调度(蓝牙+WiFi分离处理)
 * @retval 无
 */
void Communication_Task(void) {
    // 处理蓝牙数据(本地控制,高优先级)
    if(ble_module.data_ready) {
        Process_BLE_Command(ble_module.rx_buffer, ble_module.rx_index);
        ble_module.data_ready = false;
        ble_module.rx_index = 0;
    }
    
    // 处理WiFi数据(云端交互,广域覆盖)
    if(wifi_module.data_ready) {
        Process_WiFi_Data(wifi_module.rx_buffer, wifi_module.rx_index);
        wifi_module.data_ready = false;
        wifi_module.rx_index = 0;
    }
    
    // 定时上报系统状态(WiFi通道)
    static uint32_t last_report_time = 0;
    if(HAL_GetTick() - last_report_time > REPORT_INTERVAL) {
        Report_System_Status();
        last_report_time = HAL_GetTick();
    }
}
3.4 人机交互

为满足工业现场与教学场景的操作需求,设计8 路可编程按键 + 6 位数码管人机交互方案,支持功能自定义与状态可视化 。

按键功能映射

// 按键功能枚举
typedef enum {
    KEY_FUNC_RELAY1_TOGGLE,    // 继电器1切换
    KEY_FUNC_RELAY2_TOGGLE,    // 继电器2切换
    KEY_FUNC_MODE_SWITCH,      // 工作模式切换
    KEY_FUNC_PARAM_SET,        // 参数配置
    KEY_FUNC_DATA_VIEW,        // 数据查看
    KEY_FUNC_WIFI_CONFIG,      // WiFi配置
    KEY_FUNC_BLE_PAIR,         // 蓝牙配对
    KEY_FUNC_EMERGENCY_STOP    // 急停功能(工业安全核心)
} KeyFunction;
 
// 按键配置表(可通过软件修改,掉电保存)
KeyFunction key_config[8] = {
    KEY_FUNC_RELAY1_TOGGLE,
    KEY_FUNC_RELAY2_TOGGLE,
    KEY_FUNC_MODE_SWITCH,
    KEY_FUNC_PARAM_SET,
    KEY_FUNC_DATA_VIEW,
    KEY_FUNC_WIFI_CONFIG,
    KEY_FUNC_BLE_PAIR,
    KEY_FUNC_EMERGENCY_STOP
};

数码管显示状态机

/**
 * @brief  数码管显示状态机(多场景切换)
 * @retval 无
 */
void Display_State_Machine(void) {
    static DisplayState current_state = DISPLAY_NORMAL;
    
    switch(current_state) {
        case DISPLAY_NORMAL:
            // 正常状态:显示温湿度+继电器状态
            Display_Temp_Humidity();
            Display_Relay_Status();
            break;
            
        case DISPLAY_NETWORK:
            // 网络状态:显示WiFi/蓝牙连接状态
            Display_WiFi_Status();
            Display_BLE_Status();
            break;
            
        case DISPLAY_SENSOR:
            // 传感器数据:显示详细环境参数
            Display_Sensor_Data();
            break;
            
        case DISPLAY_SETTING:
            // 设置状态:显示配置参数
            Display_Setting_Menu();
            break;
    }
}

四、软件设计

4.1 软件架构

工控板采用驱动层 - 业务层 - 应用层三层架构,实现代码解耦与模块化管理:

  • 驱动层:封装 GPIO、UART、PWM、ADC 等底层驱动,屏蔽硬件差异;
  • 业务层:实现继电器控制、通信处理、供电管理、传感器采集等核心业务逻辑;
  • 应用层:包含状态显示、参数配置、日志记录等上层应用,直接面向用户需求。
4.2 业务流程

  1. 上电初始化:完成主控、外设、通信模块、供电系统的初始化;
  2. 数据采集:实时读取温湿度传感器数据,监测供电状态;
  3. 通信处理:接收蓝牙 / WiFi 指令,执行对应控制操作;
  4. 状态上报:定时通过 WiFi 模块上传设备状态与环境数据;
  5. 故障处理:监测继电器、通信、供电异常,触发保护逻辑与日志记录。

五、应用落地

5.1 中小工厂设备改造

在某小型注塑车间改造中,工控板替代传统人工控制柜,实现 6 台注塑机的启停控制、故障报警与远程状态监控:

  • 本地操作:通过蓝牙模块实现车间内近距离调试与手动控制;
  • 远程监控:通过 WiFi 模块接入云端,实时查看设备运行状态、历史日志;
  • 效果:减少人工巡检成本,设备停机率下降 60%,生产效率提升 40%。
5.2 智慧农业大棚

针对大棚温湿度、光 照与灌溉需求,工控板实现自动化控制:

继电器通道控制设备触发条件
继电器 1通风电机温度>30℃ 或 湿度>85%
继电器 2卷帘电机光照强度<2000lux 或 温度<15℃
继电器 3灌溉水泵土壤湿度<40% 且 定时触发
继电器 4补光灯光照强度<1000lux 且 生长时段
继电器 5报警器温度>35℃ 或 温度<5℃
  • 优势:移动部署(电池供电)适配大棚不同区域,双模通信保障数据稳定,低成本易维护。
5.3 高校物联网教学实验

作为综合实验平台,覆盖物联网核心知识点:

  • 基础实验:GPIO 控制、传感器数据采集、按键与显示开发;
  • 进阶实验:蓝牙 / WiFi 通信、MQTT /TCP/UDP等协议进行继电器负载控制;
  • 综合实验:基于工控板的智能家居 / 农业大棚控制系统,适配课程设计与毕业设计。

六、项目总结

这款通信层面基于大夏龙雀 DX-BT04E 与 DX-WF24 模块的工业物联网工控板,核心价值在于平衡成本与可靠性、兼顾通用与专用:

  • 低成本高可靠:相比专业 PLC,成本降低 80%,同时通过双重硬件防护、智能供电等设计,适配工业现场严苛环境;
  • 全场景覆盖:蓝牙本地控制 + WiFi 云端交互,适配工厂、农业、教学等多场景,无需额外改造硬件;
  • 易扩展易维护:模块化软硬件设计,支持快速新增继电器通道、通信协议,故障可通过日志追溯;
  • 模块深度适配:充分发挥大夏龙雀双模通信模块的性能,验证其在工业场景下的稳定性与兼容性。

对于工业物联网场景,好的终端不是功能堆砌,而是在特定需求下找到可靠性、成本与易用性的平衡点。这款工控板的设计,正是对这一理念的实践,为中小场景的物联网改造提供了可落地的高性价比方案。

致谢

感谢深圳大夏龙雀科技提供的 DX-BT04E 蓝牙模块与 DX-WF24 WiFi 模块,其稳定的性能、工业级的稳定性与便捷的驱动适配,为本项目的通信系统设计提供了坚实支撑。

文|苏灵凯
本文为特约撰稿 / 合作案例,已获作者授权发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值