物联网
作品背景:
随着高校师生的数量越来越多,高校内宿舍情况也越来也复杂,随之带来的问题也越来越多,用电量也越来越大,宿舍内使用大功率导致着火、在宿舍抽烟造成宿舍楼着火,人走不断电浪费电能等现象时有发生。
为此设计了一个基于物联网的宿舍公寓管理系统,主要内容是一套寝室无人断电的设备,使用IM1281B电参量采集模块采集宿舍的电压、电流、功率因数等电参数数据,然后通过瑞萨单片机把采集到的电参量数据通过WIFI模块传送到中国移动OneNet物联网云平台,进而可以远程观察各个宿舍的用电情况。
系统结构框图:
硬件接口:
WIFI模块 串口0 TXD: P101 RXD:P100
IM1281B电量采集模块 串口2 TXD: P302 RXD: P301
OLED显示模块 SCL: P502 SDA: P501
系统软件流程:
使用的组件:
主要使用了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}]}
]
}
封包的过程其实就是一个字符串的拼接过程。
全部0条评论
快来发表一下你的评论吧 !