![]() 环境检测网关设备,作品演示项目简介本项目是基于RA4M2完成了环境监控网关设备,传感器HS3003采集温湿度,ISL29035采集环境光照强度,MQ5采集环境可燃气体浓度;温湿度,光照强度,可燃气体浓度通过wifi模块周期性上传到Onenet物联网平台;OLED提供显示功能,能够显示时间,温湿度以及wifi,蓝牙,云平台的连接状态;触摸按钮可以用来切换显示界面;该作品提供了台灯控制功能,可以通过蓝牙以及wifi控制台灯亮度以及开关。 更新说明本来上周(2023/2/26)已经完成了大部分功能,但是比赛延迟了一周,所以又完善了一些功能,完善的功能如下:
项目说明使用模块以及设备调试环境开发环境:windows10; IDE:MDK5.34; RASC:V4.0.0; 调试器:ST-LINK V2; 外扩模块
板载资料使用
软件资料使用软件使用了FreeRTOS作为实时嵌入式系统,多个线程结合使用。
资源使用情况如下: 硬件架构图硬件架构图实现如下: 软件实现逻辑
下面是控制逻辑:
下面介绍一些重点内容: 启动界面上电之后的显示界面,会在此界面停留一秒钟。 主显示界面
温湿度显示界面主界面按下TS1切换到该界面;再次按下TS1退回主界面。
蓝牙控制界面
云平台介绍平台选择阿里云物联网平台: 本来打算使用阿里云物联网平台的,但是在实际操作过程中,阿里云的Client ID很长,而且有','在ClientID中,DA16200会将逗号识别为一个参数,会一直反馈ERROR -3,表示参数过多,加了转义字符以及双引号都一直解决不了这个问题,遂放弃。 腾讯云物联网平台: 与阿里云有一样的问题,但是不是clientId,而是其他参数,会导致返回ERROR -4的故障,表示参数错误,一直解决不了,遂放弃。 onenet中移物联网平台: onenet提供了多种协议连接方式,本来想使用MQTT协议的,onenet的MQTT参数比较简单,DA16200配置MQTT的相关参数是没有问题的,但是设置完成之后还是不能正常通信,一直打不开客户端,折腾了很长时按都打不开客户端,解决不了,遂放弃。 最后本来都打算放弃云平台的连接了,使用本地连接,但是看到了onenet还有一个tcp透传,想着试一下,结果还成功了,所以本项目使用了TCP透传与onenet平台连接。 云平台连接云平台的连接过程还是一波三折,TCP透传需要使用lua脚本来解析单片机发送给云平台的数据,但是本人从来没有使用过lua脚本,所以这个解析脚本尝试了很久才成功,主要是将接收到设备的数据解析为想要的数据由云平台显示。 我设计了一个数据显示的格式:
举例,如果上传的温度为35.2度,湿度为56.2%,光照强度为123Lux,可燃气体浓度3000ppm,台灯亮度为65%,为则数据格式应该为:
OneNet收到上述数据之后会进行解析之后,分别显示在不同的数据流中。 网关没5s发送一次数据给OneNet平台。 云平台收到了数据之后会反馈一个字符串"received",设备(RA4M2)可以由此知道数据有没有发送成功。 Lua脚本就会解析这个格式的数据,然后分析显示到Temp,Humi,Lux的数据流中。
下面是设备加载的Lua脚本: 下面是云平台接收的数据: 下面是调试信息,通过串口打印,可以看到发送给oneNet的数据以及OneNet反馈的数据: 下面是云平台下发的控制命令: 命令格式是【Lamp:台灯亮度】,比如【Lamp:80】表示设置台灯亮度为80% Bootloader制作
地址划分:
目前实现功能如下:
目前先记录完成的功能。 上位机上位机使用的是python开发,加载hex文件并通过串口下发,可以通过控制台查看发送以及反馈信息用于debug数据。 上位机会显示下载进度 下位机功能: 下位机上电之后LED1 100ms闪烁一次连续闪烁一秒钟,表示进入了bootloader,之后会检测到application是有效,如果有效就跳转到app,无效就等待上位机发送hex文件,hex文件接收完成之后就跳转到app。 如果上电的时候按下SW1或者SW2,表示不进入app,在app有效的情况下可以停留在bootloader中,持续按下SW1或者SW2直到LED1闪烁完成。 bootloader实现流程: bug记录: 如下图,hex文件可以通过上位机下载到下位机的flash中,但是下载之后跳转到app中之后不能正常运行app的代码,我将下载到flash中的代码反读取过,并与原始hex文件做了对比,下载写入到falsh中的数据和原始hex文件是一致的,该问题还需后期排查。 总结本次比赛学习到了很多东西,对云平台的连接有了更深入的了解,同时对RA4M2单片机的内核以及控制有了充足的认知,RA4M2上手快速,对新手很友好,可以用来开发强大功能的设计作品。瑞萨官方提供的传感器使用起来也很方便,能够快速上手,但是DA16200使用起来有些问题,对于同一个命令,有时候执行正常,有时候却返回ERROR信息,CAN模块没有使用成功,可能是打开方式不对,时间关系没在深究了,后期在验证原因。 感谢电子发烧友以及瑞萨提供的机会。 项目演示全家福 演示视频放到了bilibili: 附件网关工程: ONENET TCP透传Lua脚本: Bootloader上位机以及工程: (注:实现了上下位机通信以及下位机flash写入,但是从bootloader跳转到application没成功) 以下是参加活动发帖分享记录下面是参加RA4M2使用活动的分享: 【瑞萨RA4系列开发板体验】2. KEIL环境搭建+STLINK调试+FreeRTOS使用 【瑞萨RA4系列开发板体验】3. KEIL下UART实现printf与scanf重定向 【瑞萨RA4系列开发板体验】5. 硬件IIC驱动OLED显示汉字 【瑞萨RA4系列开发板体验】7. 用DAC输出正弦波以及余弦波 【瑞萨RA4系列开发板体验】8. 超声波测距模块在RA4M2上的应用 【瑞萨RA4系列开发板体验】9. 用两路DAC在示波器上显示一个爱心 RA4M2挑战赛分享: 【RA4M2设计挑战赛】2. 硬件IIC读取HS3003的温湿度数据 【RA4M2设计挑战赛】3. 硬件IIC读取ISL29035采集光照强度 |
代码同时放在了gitee:https://gitee.com/hehung/ra4-m2_-gateway/ |
只有小组成员才能发言,加入小组>>
1409个成员聚集在这个小组
加入小组【瑞萨RA2L1入门学习】+ MacOS安装e2studio
881 浏览 0 评论
735 浏览 0 评论
1452 浏览 0 评论
1152 浏览 0 评论
1629 浏览 0 评论
2055浏览 4评论
【RA-Eco-RA0E1-32PIN-V1.0开发板试用】RA0E1-32PIN-V1.0开发板测试一下点灯
2742浏览 3评论
3295浏览 2评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】使用Jlink RTT完成printf打印功能
909浏览 2评论
【RA-Eco-RA0E1-32PIN-V1.0开发板试用】配置开发环境和编写一个点灯程序
1686浏览 2评论
电子发烧友网
电子发烧友开云(中国)官方