一步一步移植机智云例程到麒麟座标准版V2.3
麒麟座开发板使用的MCU是STM32F03 RET6,板载了温湿度传感器sht20、三轴加速度传感器adxl345、红外对管tcrt5000等,和机智云Gokit一样,十分适合学习STM32和物联网应用开发。先欣赏下小视频吧:http://player.youku.com/player.php/sid/XMjY1ODI1MDQwNA==/v.swf硬件准备:麒麟座标准版V2.3、ESP8266-12F模块(由于板载的是ESP8266-01模块,Flash只有1MB,机智云的GAgent固件需要4MB的Flash)软件准备:麒麟座例程:kyLin-V2.3-OneNET-裸机-AirKiss/2.麒麟座V2.3综合应用代码-HTTP移植过程:1、给ESP8266模块烧写机智云GAgent固件,按照这个帖子操作即可:http://club.gizwits.com/thread-3551-1-1.html2、笔者这里使用了正点原子的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使用的是机智云开发的通用版本,通过它可以配网,http://club.gizwits.com/thread-3551-1-1.html这个帖子的末尾有个附件文档就是讲这个APP怎么使用的,我在这里就不啰嗦了。最后看看效果吧!来几张高清大图,流量党慎入!!!
附件:工程源码:**** Hidden Message *****数据点excel:手机APP:
你好,我看了你的用麒麟开发板连接机智云 Warning:gizProtocolResendData 466441 466239 1 Warning: timeout, resend dataMCU2WiFi: ff ff 00 10 05 52 00 00 04 00 29 43 5e 61 64 0f ec 00 00 f5valueACC_X Changed valueACC_Z Changed valueInfrared Changed changed, report data MCU2WiFi: ff ff 00 10 05 53 00 00 04 00 29 43 60 61 67 0f eb 00 00 faWarning:gizProtocolResendData 472214 472012 0 Warning: timeout, resend dataMCU2WiFi: ff ff 00 10 05 53 00 00 04 00 29 43 60 61 67 0f eb 00 00 faWarning:gizProtocolResendData 472447 472245 1 Warning: timeout, resend dataMCU2WiFi: ff ff 00 10 05 53 00 00 04 00 29 43 60 61 67 0f eb 00 00 fa 我的打印信息一直打印这个是为什么 楼主,想请教个问题,为什么通过ESP8266连接到OneNET平台没有像连接到机智云平台上要给WIFI模块刷累死“GAgent”这样的固件呢 好东西 也想这么做一次,没想到楼主已经实现了:P 抢板凳:lol 不错,看看 支持,谢谢分享
{:2_36:}楼主大才,厉害,正在学习中 看看,好东西 学习了,很不错啊 工程源码 ESP-12F?用ESP12行不? 感谢楼主的详细分享,顶一个^-^ 不错,正好参考 支持,谢谢分享 加油! 厉害,不错! 前来围观学习 66666666666666666666666666666666 谢谢分享 好东西 谢谢 楼主威武