结合 ShineBlink 和 机智云 开发者即使不懂嵌入式物联网开发、云和App开发,也能很快实现一款包含硬件、云和App的物联网智能硬件。
在工业场景中,有大量的传感器设备是4-20mA输出接口,这里我们设计一个电路板能够采集4-20mA电流的并将采集到的电流通过4G通信模组发送至机智云,这样我们就可以远程查看和管理现场的各种4-20mA设备了。ShineBlink核心板最多支持四路4-20mA采集,本章中只实现了一路,如果开发者需要更多路的话完全可以参考本章的教程实现更多的采集路数。
下图是接线实物图和App监测页面:
名称 | 推荐购买源 | 资料下载 |
---|---|---|
通用版机智云 App | 免费 | 下载地址 |
ShineBlink 万能物联网开发板 | 淘宝搜索”ShineBlink“店铺有售 | shineblink.com |
带机智云GAgent固件的ML302 4G模块 | 淘宝搜索”ShineBlink“店铺有售,购买链接:https://item.taobao.com/item.htm?ft=t&id=657692493882 | gizwits.com |
4-20mA电流转电压模块 | 淘宝搜索”ShineBlink“店铺有售 | shineblink.com |
黑色底板 | 该底板只是为了省掉接杜邦线,让外观好看一些,不是必需品,开发者如果没有可以用杜邦线来替代。如果仍想获取该底板,有如下两种方式:(1)通过右边提供的PCB工程资料自己打样PCB制作即可(2)通过联系微信号"shine_blink"免费获取空板PCB自己焊接也可(如果还有的话) | 底板PCB工程下载地址 |
xxxxxxxxxx
--使能USB print输出打印
LIB_UsbConfig("CDC")
--配置A0-A3这四个电压采集通道同时开始工作,当每个通道采集满50个点时缓存满,每个点的采集时间间隔为10ms
LIB_ADConfig(50,10000)
--机智云平台为每个产品类别分配的唯一PK和PS,一定要改成您自己的PK和PS
PK = "7b424390d2de4c2fbcf6c729a365918e"
PS = "2ce1bfcbdbd1490aaf4570f9dfd301af"
--初始化4G模块
LIB_Giz4GConfig(PK,PS,1000,120,"UART0","D5","HIGH","D6","HIGH")
--开始大循环
while(GC(1) == true)
do
A0_full_flag, A0_tab = LIB_ADCheckBufFull("A0")
--每当A0通道的缓存满以后,计算缓存内的50个元素的平均值,并换算成电压值
--由LIB_ADConfig(50,10000)可以算出,此处大概是50X10000us=0.5秒执行一次
if A0_full_flag == 1 then
SUM = 0
for i = 1, #A0_tab do --此处#A0_tab的值是50,表示A0_tab表内的元素个数
SUM = SUM + A0_tab[i]
end
AVER = SUM / #A0_tab --计算平均采样值
--将A0通道的AD值转换成实际电压打印出来
out_voltage = AVER*3.6/4096.0
actual_mA = out_voltage/0.125 --电压换算成实际电流,例如1V对应8mA的输入
--打印出实际电流值,保留小数点后两位,单位mA
print(string.format("Current=%.2fmA\r\n", actual_mA))
--向机智云服务器发送(电流)浮点小数值(范围应是-100.00~500.00)
--由于LIB_Giz4GConfig函数种设置的1000ms上传一次电流值
--所以这里即使调用LIB_SendToGizCloud函数发送也不会即时更新
LIB_SendToGizCloud("Rf3", actual_mA)
end
end
上面代码中出现的"LIB_"开头的库函数的详细介绍可以在shineblink.com网站上的API文档中查询。
通过《4G设备接入机智云教程》我们可以很快掌握机智云的接入流程,并使用现成的通用版机智云App即可很快的实现手机App远程访问我们的开发板。缺点就是通用版App的UI页面看起来不够专业。
本例中我们使用了"Rf3"这个两位小数浮点型数据点作为4-20mA电流的上传数据通道,记得在机智云平台修改相应的数据点的名称。
在选择二之前,必须完成上面选择一的工作,然后参考《赛博坦零代码App开发(4G版)》教程实现定制版App访问设备。开发好以后的页面如下:
如果有一定开发能力,开发者可以考虑在机智云免费提供的开源代码上做一定的定制开发形成自己的App。