前言
之前在 上看到了很多类似的实践,都蛮受大家欢迎的。那咱们就再来一个类似的实验:。
演示视频
因为Onenet数据最快是3秒刷新一次,所以存在一点延迟。
实验框图
实验说明:设备终端不断采集光强数据并上传至云端进行监控,同时也会把当前LED(路灯)的状态上传。LED的状态会根据光照值进行打开、关闭。
比如当光照值低于(夜晚)我们设置的光照阈值时就会打开LED,当光照高于(白天)光照阈值时就会熄灭LED灯。除此之外,云端可以远程控制LED的亮灭,达到一个远程控制的作用。
创建RTT工程
-
硬件:小熊派开发板。
-
软件:基于RT-Thread操作系统的应用开发。
-
开发工具:RT-Thread Studio V1.1.0。
本实验我们需要用到RT-Thread的BH1750软件包、OneNet软件包及at_device软件包等。这些软件包的使用已经在前两篇笔记中有写到:
【RT-Thread笔记】BH1750软件包的使用
【RT-Thread笔记】OneNet软件包的使用
本次实验也只是把它们融合在一起来使用。
1、添加相关软件包、配置:
添加完之后的文件如:
(2)设置OneNET信息
这里我用的是,这里的I2C的范例配置有点问题,其它版本的应该可以按范例配置那么配,如果按范例配置编译不通过的话可以按照I2C2那样配置。
2、应用代码
(1)测试函数
左右滑动查看全部代码>>>
首先进行一个onenet初始化,这个初始化接口时onenet软件包提供的。
接着进行一个led命令响应回调函数的绑定,回调函数onenet_ledcmd_rsp_cb里进行的就是接收到onenet下发的led命令之后进行地一些操作。最后就是创建一个onenet数据上传的线程。
最后把这个函数以命令的形式导出,以便我们可以在命令行输入命令进行测试。
(2)led命令响应回调函数
左右滑动查看全部代码>>>
我们收到onenet下发的命令之后,所需要做的操作放在这里面。比如当我们的设备接收到字符串时,打开led,并打印提示信息。最后再把信息应答给onenet。
(3)上传数据的任务
左右滑动查看全部代码>>>
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!