上次活动有幸被抽中,获得送样测评机会。
以前也接触过机智云,最早是买过一个第三方厂家的插座方案,流产的!自己改造后使用的是机智云平台接入。使用没有问题。
因为接触过8266,原本准备使用soc模式做这个小制作的。翻看手册发现代码都是esp-idf模式的编程模式,搭建环境太麻烦,放弃了!建议开发平台换到类似vscode 的platformio模式下,会更友好!
然后就是具体接触的步骤了:
1.注册开发者账号
https://dev.gizwits.com/
2.创建产品
3.添加项目需要的数据点
这个可以先按需写个,然后等后期项目需要再重新添加,注意添加数据点后要点击 应用
4.然后就是生成arduinoUNOR3的代码
选择正确的硬件平台(R3),Product Secret 这个值在 产品信息-基本信息 里面获取
5.处理arduino下载来的代码
ardunio的ide相关就自己网上获取了,论坛也有!拷贝库文件到arduino的库位置,所需的例程在exampls里获取
上述俩个例子的作用:
simpleTry.ino是本次项目工程,里面有程序框架,以及告知了用户在哪里填充接入机智云的代码;networkConfig.ino是配置入网的例程,因为常见的智能硬件产品是没有键盘和显示屏的,因此需要一种技术来让它获取路由器的SSID和密码,首选是通过手机APP辅助。这里简单的介绍一下方法,通过一个按键来触发设备进入配网模式,然后手机APP把SSID和密码广播给设备
具体代码详见上传的文件,注意代码里和串口相关的都要去掉,因为mcu模式下,R3的串口需要和esp8266通讯。
至于后续需要多串口模式参考:https://www.jianshu.com/p/eb846ce95806代码暂且处理完,烧录注意选择arduino类型,编译不报错,然后上传就可以了!
6.暂且跳转到esp8266网络模块这里,先下载GAgent for EPS8266的固件并烧录
下载程序注意:usb转ttl接3根线,供电使用功能板的usb,8266小板的开关打到gnd下载模式,上图烧录工具里的BAUD不能太高,这里我耽误了一会!
接线烧录参考:
烧录完成后吧,拨码开关拨回来!
这里注意下,如果你不确认,是否烧录正常的话,你可以按下板子上的K2按钮,中间的那一个,8266应该会创建一个ssid为XPG-GAgent-xxxx的ap出来,你在手机wifi里能看到就可以了!
7.下载官方app,到官网下,发货附赠的说明书里的二维码已经失效了!
https://download.gizwits.com/zh-cn/p/98/99
8.配网这里也要注意
长按板子上的K2按钮,中间一个按键,就能进入airlink配置模式,然后用机智云的app推送ssid和密码,使其配网。成功后,在你的机智云app里会出线你创建的设备
9.你可以在app里操作下按钮,然后在机智云的官网开发者中心设置日志里就可以看到操作记录了
10.开始编写系统程序
上图是arduino r3的引脚图,可以参考,注意烧录r3程序时,上面的扩展板需要拔下来,不然烧录不进去!
11.先用rgb的红色模拟,射线开启信号
#include <ChainableLED.h>
#define NUM_LEDS 1
ChainableLED leds(A5, A4, NUM_LEDS);
引入rgb的驱动文件,定义一个灯
setup函数中初始化下 leds.init();
loop函数中,会接收且解析机智云平台发来的控制数据,函数解析处理就可以了
bool varR_XRAY_ON = 0;
if(myGizwits.hasBeenSet(EVENT_XRAY_ON))
{
myGizwits.read(EVENT_XRAY_ON,&varR_XRAY_ON);//Address for storing data
// mySerial.println(F("EVENT_XRAY_ON"));
// mySerial.println(varR_XRAY_ON,DEC);
if(varR_XRAY_ON)
leds.setColorRGB(0,255,0,0);//测试亮红色 ,表示x射线开启
else
leds.setColorRGB(0,0,0,0);//测试熄灭红灯,表示射线关闭
}
上述操作后,一个模拟射线开启的方案就完成了,后期可以用io去驱动继电器进而控制射线源。
12.因为我的剂量仪的盖格计数器的玻璃管坏了,目前数据不能 获取回来,下面我将在程序里模拟一个数据作为射线剂量监测值,反应在机智云平台里
顺便将dht11的数据也接入进去 了,方便方案验证的观察,上图Xray_data的值是用随机数模拟的。后期在接入辐射剂量仪的数据!
整体接触机智云后总结下:整体的物联网系统结构比较完善,开发者的设备入网也比较方便。
对应的资料整理还可以在优化,教程查找起来有些困难。
arduino的代码附上,就是简单的测试:
https://club.gizwits.com/thread-166363-1-1.html
很赞很赞。