使用 Raspberry Pi 的烟雾或气体传感器

如果我们想用 Raspberry Pi 分析某种类型的气体, 我们可以用 MQ 传感器让它变得非常简单, 在任何情况下,我们只需要知道根据要分析的气体获得哪个传感器,就是这样, 我们将在这篇文章中了解如何连接它并获取值. 照常, 最后,我们将获取的数据保存在 MySQL 数据库中,以便从 Grafana 中可视化!

 

我说了什么, 首先要知道我们将使用哪个 MQ 传感器, 在本文中,我们将依赖分析甲烷的 MQ2, 液化石油气和烟雾, 但您应该知道,我们还有 MQ3 来获得 Alcoho, 乙醇和烟雾, 使用 MQ4,我们将能够获得甲烷和压缩天然气或 CNG, MQ5 适用于天然气和液化石油气, 使用 MQ6,我们将获得 LPG 和丁烷气, 使用 MQ7 一氧化碳, 使用 MQ8 Hydrogen, MQ9 用于一氧化碳和易燃气体, MA131 臭氧, 用于苯的 MQ135, 酒精和烟雾, MQ136 硫化氢, 用于氨的 MQ137, MQ138 会给我们苯的值, 甲苯, 丙酮, 丙烷, 酒精和甲醛气体… 以此类推,直到我们决定要购买哪种廉价传感器来检测我们感兴趣的气体. 我说了什么, 在这篇文章中,我们基于 MQ-2.

 

 

除了传感器, 我们还需要一个模数转换器, 我使用MCP3008和逻辑电平转换器 3.3 在 5V 时. 我们在图中可以看到如何将 Raspberry 的 GPIO 连接到传感器. 顺便说一句,如果我们需要,可以用螺丝刀调节传感器, 但是哇, 通常派上用场, 是测试…

 

 

在软件方面, 假设我们有一个正在运行的 Raspbian, 我们从 GitHub 下载了一个很棒的 tutRPi 脚本并尝试运行它, 就是这么简单:

[源代码]git 克隆 HTTPS://github.com/tutRPi/Raspberry-Pi-Gas-Sensor-MQ

cd raspberry-pi-gas-sensor-mq

Python example.py[/源代码]

 

如果我们稍微修改一下… 每个人都按照他们的需要和喜欢… 就我而言,您已经知道我在使用 cron 启动 Raspberry Pi 时将运行的这个脚本, 每 60 它会将从传感器获取的值放入数据库的表中. 然后让我们看看如何使用 Grafana 可视化它… 这是脚本的外观:

[源代码]

从 mq importa *
导入 SYS, 时间
mq = MQ();
while True:
perc = mq 的 mq。MQPercentage()
打印 PERC[“GAS_LPG”]
打印 PERC[“CO”]
打印 PERC[“SMOKE” (烟雾)]

导入 MySQLdb
db = MySQLdb.connect(“DIRECCION_IP_SERVIDOR_MYSQL”,“用户”,“密码”,“BASE_DE_DATOS”)
游标 = db.cursor()
cursor.execute 命令(“”“INSERT INTO 气体 (液化石油气, CO, 烟) 值 (%s, %s, %s) """,( PERC[“GAS_LPG”], PERC[“CO”], PERC[“SMOKE” (烟雾)]))
db.commit 文件()

时间.sleep(60)

[/源代码]

 

也就是说,此脚本存储在一个名为 gases 的表中,该表中具有 4 列, 3 其中有气体 (液化石油气, 一氧化碳和烟雾) 另一个是日期, 我把代码留给你,以防有人需要它,并为前面的脚本提供一个相同的表格:

[源代码]CREATE TABLE 'gases' (
'LPG' 浮点型 NULL 默认 NULL,
'CO' 浮点型 NULL 默认 NULL,
'smoke' FLOAT NULL DEFAULT NULL,
'date' 时间戳 NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
COLLATE='latin1_swedish_ci’
引擎=InnoDB
ROW_FORMAT=紧凑
;[/源代码]

 

并且已经在我们的 Grafana 中, 例如,我们可以在 Dashboard 中添加一个 Graph Dashboard,并对 MySQL DB 进行查询,以绘制我们正在分析的气体的指标. 看起来很酷, 不?? 如果您需要我正在进行的查询,我会留下您:

[源代码]SELECT smoke 作为值, “烟雾" 作为公制, UNIX_TIMESTAMP(日期) 作为 time_sec 从气体 __timeFilter 美元(日期) 按 time_sec ASC 订购

选择 LPG 作为值, “液化石油气" 作为公制, UNIX_TIMESTAMP(日期) 作为 time_sec 从气体 __timeFilter 美元(日期) 按 time_sec ASC 订购

选择 CO 作为值, “CO" 作为公制, UNIX_TIMESTAMP(日期) 作为 time_sec 从气体 __timeFilter 美元(日期) 按 time_sec ASC 订购[/源代码]

 

准备! 我希望你觉得它很有趣, 您已经在博客上看到了用于连接到 Raspberry Pi 的其他类型的传感器,并了解我们的环境状态! 享受!!!

 

推荐文章

作者

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, 请随时与我联系, 我会尽我所能帮助你, 分享就是生活 ;) . 享受文档!!!

监控 QNAP NAS

29 的 May de 2018