在本文中,通过设计一个智能遥控的小灯来介绍一下使用机智云平台的开发过程和体验。
一、硬件设计
设计硬件电路之前,我先查阅了GE211的规格书,发现预留接口是5V电平。翻找了一下手头的板卡,发现只有一块arduino UNO是5V电平的。因此选定Arduino平台作为此次试用的软硬件环境。
通过机智云社区发现一篇非常有价值的帖子,《史上最详细的Arduino uno R3接入机智云教程》,
链接如下:https://club.gizwits.com/thread-6728-1-1.html
通过学习此贴文,我基本了解机智云开发流程和关键点,下面把我的设计过程逐步写一下。借用参考贴文中的接线图,我按照我这连线方便从新改造了一下。
接线图如下:
图1、硬件连接图
其中,两个按键和LED灯,我原封照搬的。电压测量本次测试用不到去掉了。由于Arduino UNO下载程序和GE211共用唯一的一个硬串口,我在GE211的TX引线上加了一个开关,在下载程序时断开GE211的发送,防止干扰程序下载。为了方便调试,我单独引出一路软串口,只将软串口的TX接到了USB转串口的RX,能看到运行中发的数据就行。
由于手头没有面包板和各种直插器件,我就找了一块闲置空白的PCB,通过在上面飞线把上图中的各个器件焊接在一起,最终的实物图下图。
图2、焊接好的实物图
二、云端产品创建
参照贴文和机智云帮助文档,很容易创建自己的云端产品。这里我不再详细描述。如下图是我创建了一个名为“LED灯”的产品。
图3、设备创建成功
功能上,我只设计了一个布尔量开关,用来控制LED灯开关,如下图。
图4、布尔量开关
为了验证设置参数,创建一个虚拟设备进行调试一下,确保参数设置正确。如下图。
图5、虚拟设备调试
三、模拟MCU调试
云端设置好后,可以通过机智云提供的串口调试助手实现模拟MCU调试功能,这样可以验证整个软硬件链路是否正常,防止在开发中遇到诸如电源不对,wifi配错,RX、TX接反等低级错误。
先把GE211和USB转串口小板连起来接入电脑,如下图。
图6、连接GE211和USB转串口小板
然后打开串口调试助手《GAgent_Debugger.exe》进行参数设置。注意此软件需要联网,我在一个有端口限制的内网环境就没配置成功。按照说明配置如下图。
图7、模拟MCU配置
网络通讯建立成功后,就可以看到左上窗口显示从GE211收发的数据。还可以通过左下的命令按钮实现各种配网、校时等基础功能。
图8、模拟MCU调试
下图是数据上传后,在云端收到的效果展示。
图9、模拟MCU调试效果
通过模拟MCU调试可以确认我这的软硬件连接均正常,可以进行下一步程序设计了。
四、程序编写,设备调试
机智云针对常用的MCU平台,专门设计了一个程序包自动生成功能,这个把物联网相关的操作都封装好了,极大简化了开发难度,这个是其他云平台所不具备的,对于提高产品开发效率非常友好。
我这里直接生成Arduino UNO的程序包,如下图。
图10、生成MCU代码
参照贴文例程,对程序的三个地方进行修改,如下图。这里特别赞一下Arduino-IDE_2.0.4版本的编辑界面,已经支持函数、变量转到定义功能,非常有助于理解已有的程序。
图11、接口定义修改
图12、初始化接口
图13、功能实现
只需把这三个地方简单修改一下,就实现了预期的功能,不用考虑JSON解码,不用设置回调函数,比其他平台简单很多。
程序编好后,将GE211的TX线断开,下载程序。观察软串口输出,可以监测到联网状态。如下图。
图14、串口监视
从云端观察,可见设备已经在线,说明程序好用,设备联网成功。如下图。
图15、设备在线
此时,可以在机智云调试APP中对这个设备进行控制,下图是APP截图。
图16、APP控制
在手机上的操作,同时也可以在云端看到,进行实时调试。如下图。
图17、设备实时调试
LED灯通过手机APP进行控制的视频如下,操作实时性很好,几乎感觉不到延迟。
☝点击上图查看视频
五、总结
通过本次试验,我熟悉了机智云的基本设计开发流程,且由于机智云对框架完整的封装和丰富的资源,使我的开发过程非常高效。机智云对于刚接触物联网开发的工程师会非常友好,不用深入学习各种协议、解码就能完成产品开发,相信未来机智云的粉丝会越来越多。