Juega con Raspberry Pi (21) - Alarma de incendio

Juega con Raspberry Pi (21) - Alarma de incendio

Muchos edificios de apartamentos y oficinas cuentan con dispositivos completos de protección contra incendios. ¿Quiere saber cómo estos dispositivos pueden determinar si se ha producido un incendio? Cuando un objeto se quema, se producirán llamas y humo.Si podemos detectar la llama y el humo a través del sensor, podemos detectar si hay un incendio.

1. Sensor de llama

La llama producida por la combustión de la sustancia tiene radiación de gas de espectro discreto y radiación sólida de espectro continuo. Aunque la intensidad de radiación y la longitud de onda de la llama producida por diferentes materiales de combustión son diferentes, en general, el rango de longitud de onda es característico. , el sensor de llama consiste en detectar la longitud de onda de la radiación a través de este principio para determinar si hay una fuente de fuego alrededor. En este experimento, el sensor de llama que utilizamos se muestra en la siguiente figura:

Este módulo sensor tiene pines 4. Además de los polos positivo y negativo de la fuente de alimentación, hay dos pines de salida, que emitirán señales digitales y señales analógicas respectivamente. Este módulo también tiene una resistencia variable para condicionar la sensibilidad del sensor.

2. Sensor de humo

Un sensor de humo es un sensor de gas cuya conductividad superficial cambia cuando entra en contacto con el humo y cambia el voltaje de salida final. El módulo sensor de humo utilizado en este experimento se muestra en la siguiente figura:

Este módulo sensor también tiene pines 4. Además de los polos positivo y negativo de la fuente de alimentación, los otros dos pines de salida son salida de señal digital y salida de señal analógica respectivamente.

3. Conexión experimental

En este experimento, los dos módulos de sensor que usamos admiten salida de señal digital y salida de señal analógica. Para procesar la señal analógica, necesitamos usar el módulo de conversión de analógico a digital nuevamente. Las señales analógicas de los dos sensores son convertido por PCF8591.

El método de conexión es el siguiente:

PCF8591 y Raspberry Pi:

PCF8591 pastel de frambuesa
SCL SCL
ASD ASD
TIERRA TIERRA
CCV +5V

Conexión del sensor de llama:

Sensor de llama PCF8591 pastel de frambuesa
TIERRA   TIERRA
CCV   +5V
HACER   GPIO17 (código BCM, correspondiente al código físico 11)
HACIA AIN0  

Cableado del sensor de humo:

sensor de humo PCF8591 pastel de frambuesa
TIERRA   TIERRA
CCV   +5V
HACER   GPIO18 (código BCM, correspondiente al código físico 12)
HACIA AIN1  

4. Codificación

Este experimento y los experimentos presentados en esta serie de blogs no son técnicamente difíciles. La codificación es la siguiente:

#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)

Concéntrese en la tecnología, comprenda el amor, esté dispuesto a compartir, sea un amigo

Pregunta rápida: 316045346

{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/2340880/blog/5316107
Recomendado
Clasificación