6.OneNET之APP+远程控制HAL-freeertos篇(结项)
时间:10-02
整理:3721RD
点击:
一:配置与原理
使用RTOS 能有效高效率的调用系统资源,使得任务执行也更加具有协调性,程序再也不用裸奔了~~
而且,我们还可以很方便的就接入FREERTOS操作系统,凭借ST的cubemx,Freertos基本只需要点点鼠标便可以移植。
打开之前的工程,选择左边的FREERTOS,右边便会出来中间件:
点进去,需要配置的是总共HEAP大小,我这里调整为8kB,其他保持默认即可。
因为程序里需要用到定时器,所以这里开一个:
根据需要的任务,创建任务,到时软件会自动生成:
添加看门狗:
基本上差不多了
但是还会出来个弹窗警告:
简单点说就是SYStick被用了,系统需要别的时钟来用
到这里改下就好;
之后就是生成代码了。
二:程序的编写与移植参考官方例程,这次我们需要实现的是远程控制,故而使用EDP协议比较好相比之前的http会多些协议包的封装。
我们将需要的源码添加进前面生成的工程目录中:
EDP、网络接口驱动等。
生成的mian函数,按我们需要的添加一点代码如下:
while循环里什么都不用添加。
最重要的便是freertos这个文件了:
里面就是之前使用CUBEMX创建的一个个任务,而每个task里的内用还需要来添加。
参考例程,需要的都移植过来:
还有其他的一些细节,就不在赘述。主要程序移植都比较简单。调试过程省略~~
还需要在ONENET开发者网页上,创建一个EDP设备:
创建应用(调试时候一创建好就有数据成功上传):
三:结果验证
如上所示,已创建好应用,先来网页版试试远程控制功能:
打开,红色和黄色LED试试,实际延时还是比较短的,响应比较快。下面的状态也会在指令下达后会回应云端。
在进入手机端APP看看:
实际板子也对应亮所打开的led。
四:总结
总的来说,总算是实现了之前所学习的物联网真正的联网功能。而且还使用了中移动的物联网Onenet平台。
了解了HTTP、EDP等网络通信协议。但需要深入的还是要尽量使用私有协议(如RGMP),因为实际做产品是需要保证安全性的。
另外远端应用,APP等,目前只有DEMO版,官方也提供了SDK,但是如何集成到自己需要的做的APP里面去,这也还是需要学习的。
学习之路漫漫长,也只能慢慢学~~