项目简介
本项目是一个上位机+下位机系统。上位机基于Qt与野火i.MX6ULL mini开发板进行开发。下位机基于STM32与FreeRTOS环境开发。
- 上位机用Qt完成UI界面开发。可实现实时采集数据展示、回溯历史数据、下位机控制等功能。
- 下位机可实现采集温湿度传感器的数据,并将数据上传给上位机系统。与上位机的通信采用TCP协议完成。
硬件系统
下位机硬件系统:
- 主控芯片:STM32F103C8T6
- 温湿度传感器:SHT30模块
- 无线通信模块:ESP-01S(AT指令系统)
- 按钮模块
- OLED显示屏:在下位机上显示当前数据、设备id、上报频率等信息
上位机硬件系统:
- 野火i.MX6ULL mini开发板
- 4.3寸电容触摸屏
- ESP-01S模块
下位机-上位机通信
下位机与上位机通过ESP-01S实现通信。
- 上位机的ESP-01S模块使用AP模式,上电后自动创建一个热点
- 下位机的ESP-01S模块使用SAT模式,上电后自动连接上位机创建的热点
下位机上报数据
下位机上报温湿度传感器的数据协议为:ID:<下位机ID>,TEM:<温度值>,HUM:<湿度值>。其中:
下位机ID是下位机的设备ID,该ID可以通过下位机的按键1、2进行修改。可选值为0~8,其中0被认为是不可用ID。上位机收到ID为0的设备的消息时,不进行处理。温度值和湿度值均为浮点数,整数部分有3位(不足3位时补充前导0),小数部分有1位,例如005.8。温度值有+或-前缀。
下位机心跳:ID:<下位机ID>。下位机保证每15秒至少上报一次数据。如果15秒内都没有温湿度数据上报,则上报一次心跳,用于保持下位机在线。如果上位机超过30秒(给予1倍容忍时间)未收到下位机的任何消息,则可认为下位机掉线。
上位机指令
目前支持2种上位机指令:
F:<秒数>:该指令用于让下位机修改上报数据的频率,单位为秒,必须是整数。R::该指令用于让下位机立刻进行一次数据上报。
项目地址
目前下位机系统已经基本开发完毕,上位机系统正在开发中,项目地址为:https://gitee.com/LeeHojou/master-slaver-system/tree/master/stm32-slaver