怎么去设计一种基于RT-Thread的学生宿舍公寓物联网监控系统?

物联网

775人已加入

描述

作品背景:

随着高校师生的数量越来越多,高校内宿舍情况也越来也复杂,随之带来的问题也越来越多,用电量也越来越大,宿舍内使用大功率导致着火、在宿舍抽烟造成宿舍楼着火,人走不断电浪费电能等现象时有发生。

为此设计了一个基于物联网的宿舍公寓管理系统,主要内容是一套寝室无人断电的设备,使用IM1281B电参量采集模块采集宿舍的电压、电流、功率因数等电参数数据,然后通过瑞萨单片机把采集到的电参量数据通过WIFI模块传送到中国移动OneNet物联网云平台,进而可以远程观察各个宿舍的用电情况。

系统结构框图:

OLED显示器

硬件接口:

WIFI模块 串口0 TXD: P101 RXD:P100
IM1281B电量采集模块 串口2 TXD: P302 RXD: P301
OLED显示模块 SCL: P502 SDA: P501

系统软件流程:

OLED显示器

使用的组件:
主要使用了RT-Thread 提供的AT组件包,IIC组件包,UART组件包。

本来是使用提供的OneNet组件包连接Onenet平台但是由于适配的包版本太老,在使用的过程中遇到了很多的问题,也没有解决,后来就使用了最简单的HTTP方式连接OneNet平台。

HTTP的数据格式

在向OneNet平台发送HTTP数据的时候有固定的格式
举一个简单的例子,比如向平台发送一个变量名字叫做TEMP的数据,数据量值为50.

POST /devices/572818307/datapoints HTTP/1.1
api-key:DqYM=rNTLXuoh2i9cDu34iHhi60=
Host:api.heclouds.com
Content-Length:59

{“datastreams”:[{“id”:”TEMP”,”datapoints”:[{“value”:50}]}]}
以上固定格式中加粗部分为平台创建产品时候的一些参数,代表设备ID以及Master-APIkey,前面部分为协议包,最后一行为数据包,59代表最后一行数据包的长度。数据包的格式如下:

{
"datastreams":
[
{"id":"VoL_d","datapoints":[{"value":50}]},
{"id":"Cur_d","datapoints":[{"value":50}]},
{"id":"Pow_d","datapoints":[{"value":50}]},
{"id":"Enr_d","datapoints":[{"value":50}]},
{"id":"PF_d","datapoints":[{"value":50}]}
]
}

封包的过程其实就是一个字符串的拼接过程。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分