[作品提交] 【仓库温湿度自动控制模拟系统】- 作品提交

sunduoze   2021-7-18 21:22 楼主

仓库温湿度自动控制模拟系统

 

 

作者:sunduoze

一、作品简介

image.png  

仓库温湿度自动控制模拟系统以RSL10为控制器模拟工厂仓库的温湿度控制。传感控制节点采集温湿度及光照气压的信息,手机APP可主动连接并获取多个节点反馈并绘制曲线,当温度或湿度偏高则控制开启制冷空调或除湿机,反之则关闭,当温度湿度或光照异常时,判断为火灾信号并报警;手机APP可下发任务到传感控制节点来主动控制。传输节点通过串口收发蓝牙的信息实现手机与电脑交互。兼容设计实现3个硬件共用1个应用固件且可用手机APP实现FOTA。

 

二、系统框图

  1. 硬件框架

硬件系统包含2个传感控制节点(安森美RSL10 Sensor板)和1个传输节点(安森美RSL10 002GEVB板)。

    1. 1 传感控制节点                                                                                                                                                                   image.png

传感控制节点使用了安森美RSL10-SENSE-DB-GEVK评估板。板载BME680环境监测传感器可用于环境温湿度,气压,CO2等信息的检测;板载LV0104CS传感器可用于检测光照强度,当火灾发生时,光亮超过正常阈值,故有辅助检测的意义;板载的LED用于连接状态的显示和调试辅助用途,按键PB1用于开机时清空N24RF64EEPROM记录的状态信息,按键PB2可用于选择Sensor节点号(实际申请到2块板子,开机后,检测此按键状态,来选择板卡号,pressed=Sensor 2);手工额外焊接的OLED可以用来打印Sensor信息,控制信息,板卡信息等。

image.png  

    1. 传输节点

image.png  

传输节点使用了安森美RSL10-002GEVB,借用板载J-link的虚拟串口与RSL10进行串口DMA交互,RSL10内部uart与蓝牙link。手机端APP通过蓝牙连接此节点,节点连接电脑,实现手机与电脑的交互。

    1. 硬件ID匹配实现

本设计使用D03,D05,DIO12这些IO,在程序初始化时,检测不同状态,实现了程序对板卡的匹配。

  1. 软件框架
    1. 软件主程序运行框图 image.png  
    1. 软件子程序
  2. APP_Timer任务:检测并处理电池电压(屏蔽)
  3. LED_Timer任务:处理BLE不同状态下LED的状态指示
  4. sensor_timer任务:检测传感器信息,执行控制逻辑, OLED刷新数据,打包传感信息及状态信息数据通过BLE发送
  5. ctrl_timer任务:调试用,由于全局变量会导致Segger-RTT无法使用,故控制任务在sensor_timer内完成。
  6. BLE消息处理任务中包含以下几部分具体任务:

GAPM_CmpEvtGAPM_ProfileAddedIndGAPC_ConnectionReqIndGAPC_DisconnectIndGAPC_ParamUpdatedIndGAPC_ParamUpdateReqInd

  1. BLE客户服务处理任务中包含以下几部分具体任务:

GATTC_ReadReqIndGATTC_WriteReqIndGATTM_AddSvcRspGATTC_CmpEvt

其中GATTC_WriteReqInd中,自定义添加了上位机发送到BLE的数据解析任务,此部分也包含了接受BLE数据到通过DMA发送到UART

    1. 手机端软件处理(由于不同的安卓版本导致界面存在一定的差异

安卓手机端使用蓝牙调试器APP,开发了传感控制节点的应用,包含了各种传感信息的显示,同时可显示数据波形,通过按钮可控制节点显示。

image.png

 

三、部分功能说明

  1. 软件自动匹配。通过使用D03,D05,DIO12这些IO,来实现相同的APP可适配不同的硬件(COIN板暂时没用,但是仍然可以适配)下表是对安森美官方各种板卡的公共资源分配信息。

DIO

002GEVB board   

Sensor board

Coin board

Function

Common

D00

-            

*led_r*    

         

   

led_r 

D01

-            

*led_g*    

         

   

led_g 

D02

-            

*led_b*    

         

   

led_b 

D03

ext_io-H     

ext_io-L   

ext_io   

 * 

ext_io

D04

U1_Rx        

SDA        

TP1      

   

sda-sensor   

D05

**BTN1**/U1_Tx

SCL        

TP2-L    

 * 

scl-sensor   

D06

*OD_LED*     

MEMS_DO    

-        

   

led   

D07

SCL          

-          

-        

   

-     

D08

SDA          

-          

-        

   

-     

D09

-            

INT--      

-        

   

-     

D12

-            

**BTN2**   

-        

   

button2

D15

-            

**BTN1**   

-        

   

button1

  1. 传感控制节点BME680驱动。通过调用BESC库来实现BME680传感器的调用,这个传感器包含了温度,湿度,气压,CO2,呼吸VOC等数据,程序汇总通过引用bsec_env_output_struct结构体的output变量全局引用,实现传感数据的应用层调用。
  2. 传感控制节点LV0104CS驱动。这个传感器用于PIN2PIN替代NOA1305CUTAG环境光传感器,单独build驱动实现环境光的LUX显示并通过lv0104cs_read_lux_data函数实现应用层的调用。
  3. 传感控制节点OLED驱动。OLED是低功耗显示屏幕,通过I2C接口与RSL10进行连接,该屏幕用于调试内容打印,sensor状态显示,APP控制信号显示及着火报警信息反馈。
  4. 传输节点。传输节点借用板载J-link的虚拟串口与RSL10进行串口DMA交互,RSL10内部uart与蓝牙link。手机端APP通过蓝牙连接此节点,节点连接电脑,实现手机与电脑的交互。

四、作品源码

仓库温湿度自动控制模拟系统.zip (1.1 MB)
(下载次数: 5, 2021-7-18 23:46 上传)

apk是安卓应用程序(自己可以去市场下载“蓝牙调试器”),bin可以直接用这个程序打开,然后自己可以进行编辑修改。定义自己的数据格式。

android.apk (2.63 MB)
(下载次数: 2, 2021-7-19 03:04 上传)
仓库温湿度自动模拟控制系统_V_20210622-233656.pro..bin (2.47 KB)
(下载次数: 2, 2021-7-19 03:04 上传)

 

五、作品功能演示视频

哔哩哔哩_bilibili

FOTA此处不演示,可跳转此链接查看:【仓库温湿度自动控制模拟系统】9. RSL10 FOTA app的适配

 

六、项目总结

1. 这个是个很棒的练手案子,对于个人而言蓝牙这一块可以说是从0到1开始深入了解,全新的芯片,全新的IDE,硬件版本同样新到超出release的文档,这个过程有非常大的挑战,整个开发过程是非常痛苦,并且到想放弃,但是过段时间折腾一下又有点点突破,磕磕碰碰一步一步走到现在。痛苦的过后将会迎来重生,感谢主办方和EEWORLD,感谢过程中管理员小姐姐的一次又一次的加油打气。

2. 开发的过程中,对整个开发过程影响最大的应该是MESH组网这一块,通过官方的例子,实现基本控制功能,但是由于自己欠缺的太多,官方安卓app也没有源码,后转到微信小程序进行尝试,还是无果。整个工程合并过程满是荆棘,最后也放弃了。想当初因为MESH这个香喷喷的功能,果断放弃Keil,转向Onsemi IDE。这一步迈的步子过于大,一口想吃成胖子,不料....。再后来不在纠结于此,回头把sensor逐个驱起来,慢慢也找回了信心,慢慢走了下来。

3. 整个项目开发下来,目前的工程是可以当做基础模块来引用,很多蓝牙应用的场景,不外乎主从交互这些功能,在此基础上增加更多传感器进行功能适配和扩展就可以72变,仓库温湿度自动控制系统如果要求高,那整个系统远比这个雏形要复杂的多,而且工业环境可靠性是关键,温湿度控制部分的内容等等有很多细节可以扩展,所以可以进步的空间非常大。在这里仅借题发挥来学习一些新的器件,接触一些新的领域,扩宽自己,同时将自己的所学分享出来,让后来者少走弯路,仅此而已。

4. 此外,吐槽还是少不了的。对于安森美的IDE和例子程序,工程风格各式各样,对于初学者难度很大,无形之中把门槛提高了,还有关键的一些代码直接是库,有时候想看看里边又无从下手(暂时没找到源码)。还有IDE使用过程中,static变量会导致uart发送故障,新增的全局变量导致RTT无法使用,莫名其妙很多代码无法打断点等等这些奇葩问题费了不少劲,思路一定得活,不能一条道走到黑,这种活动中很重要。

【仓库温湿度自动控制模拟系统】9. RSL10 FOTA app的适配
【仓库温湿度自动控制模拟系统】3. RSL10 BLE Mesh 组网初体验
【仓库温湿度自动控制模拟系统】2. ON Semiconductor IDE 吃(tian)瓜(keng)
go go go, 让RSL10的LED开始闪烁(文尾有小彩蛋

RSL10 全家福开箱照

 

七、其他

 

仓库温湿度自动控制模拟系统_sunduoze.docx (6.11 MB)
(下载次数: 0, 2021-7-18 23:54 上传)

 

 

 

  • image-20210718235650-1.png
  • image-20210718235709-2.jpeg
  • image-20210718235720-3.png
  • image-20210719000040-4.png

回复评论 (4)

开发套件(纽扣电池),带着屏幕能待机多久?

点赞  2021-7-19 14:41

没看明白:手机与电脑交互,作用是?

点赞  2021-7-19 20:47
引用: w494143467 发表于 2021-7-19 14:41 开发套件(纽扣电池),带着屏幕能待机多久?

这个还没有验证,只知道OLED功耗比较低,抽空验证一下。目前为演示,默认是开启屏幕的,通过按键可以控制显示或关闭。

点赞  2021-7-24 16:24
引用: cruelfox 发表于 2021-7-19 20:47 没看明白:手机与电脑交互,作用是?

暂时没有按最初想法跑起来,本意是电脑和传感控制节点直接交互的节点(手机端也可以接入),电脑端的应用没有开发,还有蓝牙上的一些功能也没有开发,最后留下这个。。。

点赞  2021-7-24 16:32
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复