温度监测系统实现案例
下面通过使用AT固件与小机云开发温度检测系统,远程控制等功能,快速了解AT固件与小机云的使用方法
准备工作
确保已经在小机云的项目中已经创建设备,且该小机云控制台上设备的SerialNo与小机云硬件的IMEI号一致。
确保小机云设备绑定的是"IO控制和温度监控示例"页面,如果页面列表没有请从页面模板中创建。控制页样式如下:
SIM卡可以上网。随硬件赠送的SIM已经开通,插入硬件中即可使用。正常开机联网后,SIM卡会绑定硬件,该SIM卡只能在该设备上使用
硬件结构
从机:小机云4G RTU(或DTU,下面统称RTU),型号RGC88
主机:STM32F103C8T6核心板
附件材料:
串口转RS232转接板:用于stm32串口与RTU的RS232连接。UART与RS232的默认波特率为115200,RS485的默认波特率为9600
usb转串口:用于stm32串口打印日志到PC
stm32仿真器:stm32固件下载仿真
STM32引脚 | 功能 | 对应界面组件 |
---|---|---|
PA2 | 日志打印串口 TX | 无 |
PA3 | 日志打印串口 TRX | 无 |
PA9 | 指令通讯口TX | 无 |
PA10 | 指令通讯口RX | 无 |
PA6 | PWM1 | 灯光亮度滑动条 |
PA7 | PWM2 | 暂无 |
PB3 | 控制IO | 灯光选择1(红灯) |
PB4 | 控制IO | 灯光选择2(绿灯) |
PB5 | 控制IO | 灯光选择3(蓝灯) |
PB6 | 中断 | 阀门1 |
PB7 | 中断 | 阀门2 |
PB8 | 控制IO | 开关1 |
PB9 | 控制IO | 开关2 |
PC13 | 状态 | 无 |
小机云硬件引脚 | 功能 | 对应界面组件 |
In1 | 输入电平检测3~30V | 阀门3 |
In2 | 输入电平检测3~30V | 阀门4 |
Out1 | 继电器 | 开关1 |
Out2 | 继电器 | 开关2 |
接线
电脑使用串口工具与STM32 PA2/3连接,查看STM32运行日志
STM32引脚PA9/10与小机云硬件通讯口 TX/RX 连接
使用仿真器连接STM32的GND,SWCLK,SWO,3V3
仿真器插入USB线后由此给单片机供电(注意,请连接好所有的线后再上电)
优化建议:
请确保小机云硬件的天线连接。尽量保持天线在空旷位置,无金属,墙壁等遮挡,保证硬件的信号强度
尽量使用单片机硬件,减少控制小机云内部IO,以减少串口通讯的频率,可提高稳定性。
使用多线程多并发的嵌入式系统
如果需要更高的即时性,请使用模块二次开发的方式实现功能,更灵活,更高效
配置项目信息
- 在项目卡片中,点击设置图标,查看项目ID(ProjectId)与项目密钥(ProjectSecret)

在源码中填入上面得到的ProjectId与ProjectSecret
c//xgc_cmd.c //填入小机云项目的ProjectId与ProjectSecret char project_id[] = "xxxxxxxxxxxxx"; char project_secret[] = "xxxxxxxxxxxxxxxx";
配置ProjectId和ProjectSecret后,烧录到单片机,并重启单片机。单片机会自动与小机云硬件握手初始化,小机云硬件与小机云连接成功后会出现下面回复。单片机日志都会在打印串口中输出,可在PC中的串口工具查看
$XGC_ACK#GET_DTU_STATE#SerialNo#0#mqtt-connected&#CheckCode#
效果测试
APP与RTU连接成功后 点击APP的开关1,PB8会有状态变化 点击APP的开关2,PB9会有状态变化 点击APP的开关3,设置RTU的继电器1 点击APP的开关4,设置RTU的继电器2 拖动灯光亮度条后,PA6 PWM有变化 STM32的PB6/PB7 IO高电平中断后APP阀门组件会有变化 RTU的in1或in2引脚高电平中断后APP阀门组件会有变化 点击通道选择,引脚PB3,4,5状态会变化 STM32会模拟温度数据,您也可以看到APP温度值的变化
源码分析
重要的两个文件,更多具体的内容请看源码,源码有详细的注释
xgc_handler.c:收到指令后的解析处理工作
xgc_cmd.c:小机云常用的文本协议指令