火焰监测及自动灭火装置,实现能够远程监控火情,并在当火情发生时本地自动开启灭火动作的设备,本设计采用的玩具风扇来灭火,但实际工程应用中应根据您的场景选择真正合适的灭火装置,以及更合适的火焰探测传感器。
视频教程及实物展示
视频演示教程:
接线实物图和App监测页面:
硬件端接线图
材料清单
硬件端完整源码
--配置A0-A3这四个电压采集通道同时开始工作,当每个通道采集满50个点时缓存满,每个点的采集时间间隔为10ms
LIB_ADConfig(50,10000)
--机智云平台为每个产品类别分配的唯一PK和PS,一定要改成您自己的PK和PS
PK = "31cf5ad0768e4d4a97a97adde992c3dd"
PS = "d35596a3e3e543c688eefa881aa56c6c"
--初始化4G模块
LIB_Giz4GConfig(PK,PS,1000,120,"UART0","D5","HIGH","D6","HIGH")
--配置D0 D1 D2口为PWM功能,周期20ms,高电平为有效极性
LIB_PwmConfig3(20000,1)
--当INA高电平 INB低电平时电机正转,反之亦然
--更新D0口的PWM输出占空比为0%, D0口接L9110的INA
--更新D1口的PWM输出占空比为0%, D1口接L9110的INB
--更新D2口的PWM输出占空比为0%, D2口未使用 LIB_PwmUpdate3(0,0,0)
--开始大循环 while(GC(1) == true) do
--查询是否读到A0端口的电压采集值(火焰传感器输出电压)
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
--打印出传感器输出的电压值,保留小数点后两位,单位V
print(string.format("fire voltage=%.2fV\r\n", out_voltage))
--向机智云服务器发送(火焰传感器电压值)浮点型小数值(范围应是-100.00~500.00) LIB_SendToGizCloud("Rf3", out_voltage)
--最后判断是否需要打开风扇灭火
--火焰红外强度越大电压越低,没火焰时电压为3.3V
if out_voltage < 1.5 then
--INA输出100%占空比的高电平
--INB输出低电平 LIB_PwmUpdate3(20000,0,0)
--电机全速正向运转 else LIB_PwmUpdate3(0,0,0)
--电机停转 end end end
上面代码中出现的"LIB_"开头的库函数的详细介绍可点击查询。
机智云接入和App开发(三个选择)
►选择一:机智云+通用版APP访问设备(难度最低)
通过《4G设备接入机智云教程》我们可以很快掌握机智云的接入流程,并使用现成的通用版机智云App即可很快的实现手机App远程访问我们的开发板。
本例中我们使用了"Rf3"这个浮点型(带两位小数)的数据点作为向云端传输火焰传感器电压值的通道,记得在机智云平台修改相应的数据点的名称为“火焰传感器电压值”。
► 选择二:机智云+零代码定制版App访问设备(难度较低)
在选择二之前,必须完成上面选择一的工作,然后参考《赛博坦零代码App开发(4G版)》教程实现定制版App访问设备。
开发好以后的页面如下:
► 选择三:定制化开发APP或微信小程序(难度较高)
如果有一定开发能力,开发者可以考虑在机智云免费提供的开源代码上做一定的定制开发形成自己的App。
如果开发者希望开发一个专属的App,机智云也会提供代码开源的安卓和IOS SDK框架,帮助开发者快速完成App开发,开发者仅需关注App的UI和UE设计即可,而相对复杂的协议与错误处理等事项可忽略。关于开源SDK的介绍和获取请点击App开发准备工作以及向导 - 机智云了解更多内容。
如果开发者希望开发一个专属的微信小程序应用, 可点击了解微信应用开发 - 机智云了解相关开发教程。