一起玩转树莓派(21)——火情报警器

简介: 很多公寓和写字楼中都有完善的防火装置,你想知道这些设备是如何对是否产生了火情进行判断的么?当有物体燃烧时,会产生火焰和烟雾,如果我们可以通过传感器对火焰和烟雾进行,实际上就可以做到检测是否有火情发生。

一起玩转树莓派(21)——火情报警器

很多公寓和写字楼中都有完善的防火装置,你想知道这些设备是如何对是否产生了火情进行判断的么?当有物体燃烧时,会产生火焰和烟雾,如果我们可以通过传感器对火焰和烟雾进行,实际上就可以做到检测是否有火情发生。

一. 火焰传感器

物质在燃烧时产生的火焰具有离散光谱的气体辐射和连续光谱的固体辐射,虽然不同的燃烧物其产生的火焰的辐射强度,波长等各有差异,但总体来说其波长范围是有特征的,火焰传感器即是通过这一原理要检测辐射波长,来判断周围是否有火源。本次实验,我们使用的火焰传感器如下图所示:

此传感器模块有4个引脚,除了电源正负极外,还有两个输出引脚,分别会输出数字信号和模拟信号。此模块也带一个可变电阻来条件传感器的灵敏度。

二.烟雾传感器

烟雾传感器是一种气体传感器,当与烟雾接触时,其表面导电率会发生变化,最终输出电压发生变化。本次实验使用的烟雾传感器模块如下图所示:

此传感器模块也有4个引脚,除了电源正负极外,另外两个输出引脚分别为数字信号输出和模拟信号输出。

三. 实验连线

本次实验,我们使用的两个传感器模块都支持数字信号输出和模拟信号输出,为了处理模拟信号,我们又要使用模数转换模块了,两个传感器的模拟信号都通过PCF8591来转换。

连线方式如下:

PCF8591与树莓派:

PCF8591 树莓派
SCL SCL
SDA SDA
GND GND
VCC +5V

火焰传感器连线:

火焰传感器 PCF8591 树莓派
GND   GND
VCC   +5V
DO   GPIO17(BCM编码,对应物理编码11)
AO AIN0  

烟雾传感器连线:

烟雾传感器 PCF8591 树莓派
GND   GND
VCC   +5V
DO   GPIO18(BCM编码,对应物理编码12)
AO AIN1  

四. 编码

本次实验与本系列博客中之前介绍的实验从技术上来说,并没有什么难度,编码如下:

#SMBus (System Management Bus,系统管理总线) 
import smbus   #在程序中导入“smbus”模块
import RPi.GPIO as GPIO 
import time

bus = smbus.SMBus(1)         #创建一个smbus实例

# 通过PCF8591读取模拟信号

# 火焰传感器的模拟数据
def readFire():
    #发送一个控制字节到设备 表示要读取AIN0通道的数据
    bus.write_byte(0x48,0x40)   
    bus.read_byte(0x48)         # 空读一次,消费掉无效数据
    return bus.read_byte(0x48)  # 返回某通道输入的模拟值A/D转换后的数字值

# 烟雾传感器的模拟数据
def readSmoke():
    #发送一个控制字节到设备 表示要读取AIN1通道的数据
    bus.write_byte(0x48,0x41)   
    bus.read_byte(0x48)         # 空读一次,消费掉无效数据
    return bus.read_byte(0x48)  # 返回某通道输入的模拟值A/D转换后的数字值

# 通过GPIO读取数字信号

# 设置使用的引脚编码模式
GPIO.setmode(GPIO.BOARD)
# 数字输出引脚 BCM 17
P1 = 11
# 数字输出引脚 BCM 18
P2 = 12

# 引脚初始化
GPIO.setup(P1, GPIO.IN)
GPIO.setup(P2, GPIO.IN)

while True:
    print('--------分割线----------')
    print('火焰传感器数字信号:', GPIO.input(P1))
    data1 = readFire()
    print('火焰传感器模拟信号:', data1)

    print('烟雾传感器数字信号:', GPIO.input(P2))
    data2 = readSmoke()
    print('烟雾传感器模拟信号:', data2)

    time.sleep(2)
专注技术,懂的热爱,愿意分享,做个朋友
目录
相关文章
|
2月前
|
容器
基于Arduino的植物浇水系统
基于Arduino的植物浇水系统
61 0
|
传感器 算法 Linux
【乌拉喵.教程】不同负载下继电器的保护电路设计(解决继电器触点粘接的问题)
【乌拉喵.教程】不同负载下继电器的保护电路设计(解决继电器触点粘接的问题)
153 0
【乌拉喵.教程】不同负载下继电器的保护电路设计(解决继电器触点粘接的问题)
|
传感器
红外雨量计在智慧灌溉中的几个方面应用
红外雨量计是一种测量降雨量的仪器,通过红外线传感器来检测雨滴的数量和大小,进而计算出降雨量。在智慧灌溉中,红外雨量计可以用来实时监测降雨情况,根据降雨量的大小和分布来自动控制灌溉系统的开启和关闭,从而达到节水和增加作物产量的目的。
红外雨量计在智慧灌溉中的几个方面应用
|
传感器 算法 Linux
电赛-风力摆控制系统
电赛-风力摆控制系统
258 2
电赛-风力摆控制系统
|
传感器
多功能手持读数仪VH501TC振激励方法和激励电压
采集仪对振弦传感器激励:也称为“激振”,是振弦类传感器频率数据获取的必须过程,仅当传感器收 到合适的激励信号后才能产生自振,而仅当振弦传感器产生自振后才能输出频率信号,进一步的,读数电路会检测并读取振弦传感器的自振信号,才能通过计算得到 振动频率值。振弦传感器的激励信号(能够使传感器产生自振的外部信号)一般分 为两类,一类为高压短促脉冲,一类为特定频率的多组连续低压脉冲信号。
多功能手持读数仪VH501TC振激励方法和激励电压
单片机比赛准备08-蓝桥杯-第六届初赛模拟题(温度采集和控制装置)
单片机比赛准备08-蓝桥杯-第六届初赛模拟题(温度采集和控制装置)
130 0
单片机比赛准备08-蓝桥杯-第六届初赛模拟题(温度采集和控制装置)
|
C# 数据安全/隐私保护
|
传感器 存储 芯片
一起玩转树莓派(18)——MPU6050螺旋仪加速度传感器模块应用(二)
一起玩转树莓派(18)——MPU6050螺旋仪加速度传感器模块应用
399 1
一起玩转树莓派(18)——MPU6050螺旋仪加速度传感器模块应用(二)
|
人工智能 自然语言处理 物联网
慵懒午后的音乐时光 DingDong智能音箱点亮新生活
慵懒午后的音乐时光 DingDong智能音箱点亮新生活
慵懒午后的音乐时光 DingDong智能音箱点亮新生活
|
传感器
一起玩转树莓派(15)——干簧管传感器
一起玩转树莓派(15)——干簧管传感器
312 0
一起玩转树莓派(15)——干簧管传感器