最新案例教程点击下方链接跳转,CSDN已停止更新
点
击
跳
转
简介
本案例通过火焰传感器实时监测是否产生明火,当一段时间连续监测到明火会向用户发送3条报警信息。
火焰传感器
1、原理
火焰传感器通过检测火焰中产生的红外线来监测是否着火。远红外火焰传感器能够探测到波长在700纳米~1000纳米范围内的红外光,探测角度为60,其中红外光波长在880纳米附近时,其灵敏度达到最大。远红外火焰探头将外界红外光的强弱变化转化为电流的变化,通过A/D转换器后可以监测。
2、器件说明
市面上买到的有3根引脚的也有4根引脚的。案例适用4个引脚的。以下有几点需要说明:
- 电源指示LED–显示是否通电
- 模拟信号输出–输出模拟电压值
- 红外线越强模拟信号输出越小,反之越大。
- 灵敏度调节电位器–用来调节判断阈值。
当模拟信号输出大于该阈值(红外线弱,没火),开关信号输出为1(高电平),开关指示LED灯灭;
当模拟信号输出小于该阈值(红外线强,着火),开关信号输出为0(低电平),开关指示LED灯亮。
准备
本案例需要的硬件
器材 | 数量 |
---|---|
HaaS506开发板 | 1 |
火焰传感器 | 1 |
SIM卡 | 1 |
杜邦线 | 若干 |
硬件连接图
设备端开发
-
第一次使用开发板的读者可以按照HaaS506 快速开始搭建开发环境。
-
搭建完后复制代码到Visual Studio Code。
-
注意更改电话号码。
-
main.py
# coding=utf-8
from driver import ADC
import utime as time
from modem import sms
if __name__ == '__main__':
#报警次数
warning= 0
#短信实例化
smss = sms()
#火焰传感器
adc=ADC()
adc.open("ADC1")
while True:
value=adc.readVoltage()
if value <= 1000 :
warning+=1
else:
warning = 0
print('正常运行,当前测量数值:',value)
if warning > 4:
print('已累计上报3次,停止短信发送')
elif warning > 1: #连续检测2次以上发送短信
print('发现明火!!')
smss.sendTextMsg('***********','检测到明火,请及时处理!!!','UCS2')
time.sleep(4)
else:
pass
time.sleep_ms(1000)
- board.json
{
"version": "2.0.0",
"io": {
"ADC1": {
"type": "ADC",
"port": 1,
"sampling": 12000000
},
"serial1":{
"type":"UART",
"port":0,
"dataWidth":8,
"baudRate":115200,
"stopBits":1,
"flowControl":"disable",
"parity":"none"
},
"serial2":{
"type":"UART",
"port":1,
"dataWidth":8,
"baudRate":115200,
"stopBits":1,
"flowControl":"disable",
"parity":"none"
},
"serial3":{
"type":"UART",
"port":2,
"dataWidth":8,
"baudRate":115200,
"stopBits":1,
"flowControl":"disable",
"parity":"none"
}
},
"debugLevel": "ERROR",
"repl": "enable",
"replPort": 0
}
调试
1、串口调试工具log
2、手机接收到的短信。