麒麟座开发板使用的MCU是STM32F03RET6,板载了温湿度传感器sht20、三轴加速度传感器adxl345、红外对管tcrt5000等,和机智云Gokit一样,十分适合学习STM32和物联网应用开发。
硬件准备:麒麟座标准版V2.3、ESP8266-12F模块(由于板载的是ESP8266-01模块,Flash只有1MB,机智云的GAgent固件需要4MB的Flash)
软件准备:麒麟座例程:kyLin-V2.3-OneNET-裸机-AirKiss/2.麒麟座V2.3综合应用代码-HTTP
移植过程:
1、 给ESP8266模块烧写机智云GAgent固件,按照这个帖子操作即可(点我);
2、笔者这里使用了正点原子的ESP8266模块,带2.54mm排针接口,方便DIY,接线图如下(串**叉连接):
WIFI模块烧录好GAgent固件后,其对MCU来说就是串口透传了,怎么和机智云的服务器通信不需要我们管。
根据板子上的外设资源,在机智云开发者中心创建一个产品,并定义下数据点,“数据点即设备产品的功能的抽象,用于描述产品功能及其参数。创建数据点后,设备与云端通讯的数据格式即可确定,设备、机智云可以相互识别设备与机智云互联互通的数据。”下图是本例程定义的数据点,把它导出成了excel,供大家参考。
建立好产品数据点后就可以利用机智云的开发神器-代码自动生成工具直接生成STM32的keil工程了,步骤如下:
然后下载这个工程,解压,把与产品信息、协议有关的文件夹Gizwits拷贝到麒麟座的例程里,其中的User文件夹里面有个main.c文件,这个文件很重要,包含了机智云开发的程序框架:
看看下面这个图,可以知道,把一个单片机通过刷写了GAgent固件的串口模块接入机智云平台很简单,单片机这边只要编3个程序就可以了:定时器1ms中断、串口发送、串口中断接收。这就是MCU和机智云平台的接口,简洁吧!
打开keil工程,添加一个分组,并在魔术棒那里加上编译路径:
机智云那个代码自动生成工具生成的代码还是蛮贴心的,注释的很详细,告诉你要在哪里添加自己的代码,我就在下图的这里添加了点灯的代码,通过手机远程点板子上的4个LED,分别是LED4~7。
功能这么丰富的板子,光点个灯多没意思,再把温湿度数据测下吧,推送到手机显示:
注意上图中的userHandle函数,这些都是自动生成的,这个函数就是处理设备端的数据向云端推送,按照注释来填充就行了,这里我每隔1s采集一次温湿度。
还有个重要的环节就是配网问题,就是WIFI模块怎么获取路由器的SSID和密码,然后去连接它。机智云给出的方案叫AirLink,直接调用API就行了,我这里使用板子上的按键SW2来触发,手机APP使用的是机智云开发的通用版本,通过它可以配网,这个帖子(点我)的末尾有个附件文档就是讲这个APP怎么使用的,我在这里就不啰嗦了。
最后看看效果吧!来几张高清大图,流量党慎入!!!
视频:
数据点:
麒麟座V2_3板卡综合案例数据点.zip
(5.76 KB)
原文出自:http://club.gizwits.com/thread-5335-1-1.html
|