资料介绍
成分
PCBWay定制PCB
|
× 1 |
阿杜诺纳米
|
× 1 |
ST7789 240x240 IPS 屏幕
|
× 1 |
|
× 1 |
MQ-3 气体传感器
|
× 1 |
MQ-4 气体传感器
|
× 1 |
MQ-6 气体传感器
|
× 1 |
MQ-9 气体传感器
|
× 1 |
蜂鸣器
|
× 1 |
5mm共阳极RGB LED
|
× 1 |
220Ω电阻
|
× 7 |
20K电阻
|
× 5 |
电源插孔
|
× 1 |
外接电池 (5V)
|
× 1 |
MQ2 气体传感器模块
|
× 1 |
描述
小丑远程危险加油站和监控器
长期以来,我一直想创造一种独特的设备来观察各种有害气体的存在,以用于空气质量监测和气体泄漏检测等广泛的应用。因此,我决定开发这个项目。
首先,为了得到严格的气体测量结果,我选择使用这些 MQ 系列气体传感器,将它们连接到 Arduino Nano:
- MQ-2
- MQ-3
- MQ-4
- MQ-6
- MQ-9
在为我的设备选择气体传感器后,我决定使用红外遥控器控制其设置和功能。因此,我将 IR 远程接收器模块连接到 Arduino Nano。然后,为了显示生成的气体测量值,我使用了 ST7789 IPS 屏幕。
最后,我添加了一个蜂鸣器和一个 5 毫米共阳极 RGB LED,以便在气体达到危险水平时收到通知。
您可能已经知道,Joker 制造的有毒气体化合物(Joker Venom 或 Laughing Gas)在 DC 宇宙中被认为是非常危险的。因此,我以小丑在漫画中的形象为灵感塑造了我的设备,以提醒人们气体的有害影响。
在面包板上完成布线并测试代码后,我设计了受 Joker 启发的 PCB 来完成我的项目。它成为我工作场所的时尚和有趣的补充,作为监测有害气体存在的有效设备:)
第 1 步:设计和焊接 Joker Remote Gas Station PCB
在对我的 PCB 设计进行原型设计之前,我使用面包板上的 Arduino Nano 测试了所有连接和接线。
然后,我使用 KiCad 设计了 Joker Remote Gas Station PCB。我附上了下面 PCB 的 Gerber 文件,所以如果你愿意,你可以从 PCBWay 订购这个 PCB,以创建一个合适的设备来观察有害气体的存在,并在它们达到危险水平时得到通知 - 受恶意 Joker 的启发: )
首先,通过使用烙铁,我连接了 Arduino Nano、IR 接收器模块、MQ-2 气体传感器、MQ-3 气体传感器、MQ-4 气体传感器、MQ-6 气体传感器、MQ-9 气体传感器、接头(母)、蜂鸣器、5mm共阳极RGB LED、220Ω电阻、20K电阻、电源插孔。
PCB上的元件清单:
A1(阿杜诺纳米)
S1(ST7789 IPS 屏幕接头)
IR1(红外接收模块)
MQ2(MQ-2 气体传感器)
MQ3(MQ-3 气体传感器)
MQ4(MQ-4 气体传感器)
MQ6(MQ-6 气体传感器)
MQ9(MQ-9 气体传感器)
BZ1(蜂鸣器)
D1 (5mm 共阳极 RGB LED)
R1、R2、R3、R4、R5、R6、R7(220Ω电阻)
R8、R9、R10、R11、R12(20K 电阻)
J1(电源插孔)
J2(外部电池接头)
第 2 步:对 Arduino Nano 进行编程并设置组件
下载所需的库,以便能够控制 IR 接收器模块:
Arduino-IRremote | 图书馆
下载所需的库以使用 ST7789 240x240 IPS 屏幕:
Arduino_ST7789_Fast | 图书馆
Adafruit_GFX | 图书馆
? 包括所需的库。
? 定义 IR 接收器模块引脚和设置。
; decode_results 结果;
? 通过执行示例中的IRrecvDemo.ino 文件,从IR 遥控器中获取所需的IR 代码并定义它们。
? 定义 ST7789 240x240 IPS 显示设置。
? 要在 ST7789 屏幕上显示图像,请使用以下图像转换器将它们转换为 .c 文件:
图像转换器 (UTFT)
您可以下载我在下载中使用的转换后的图像 - gas.c、lethal.c 和toxic.c。
? 包括转换后的图像。
? 启动 ST7789 240x240 IPS 显示屏。
TFT = Arduino_ST7789(TFT_DC,TFT_RST);
? 启动 IR 接收器模块。
? 启动并清除 ST7789 240x240 IPS 显示屏。
不可恢复。启用IRIn(); tft.init(SCR_WD, SCR_HT); tft.fillScreen(RGBto565(235, 46, 0));
? 在 read_IR_controls 函数中,在传输时从 IR 遥控器收集 IR 代码。
{
IR_codeValue = results. ;
不可恢复的简历();
延迟();
}{
IR_codeValue = ;
}
}
? 在 collect_Data 函数中,获取 MQ 系列气体传感器(MQ-2、MQ-3、MQ-4、MQ-6 和 MQ-9)产生的气体测量值。
{
mq_2_val = 模拟读取(mq_2);
mq_3_val = 模拟读取(mq_3);
mq_4_val = 模拟读取(mq_4);
mq_6_val = 模拟读取(mq_6);
mq_9_val = 模拟读取(mq_9);
}
? 在界面功能中,打印带有菜单选项的界面。
{
tft.setTextColor(RGBto565( , , ), RGBto565( , , ));
tft.setTextSize( );
tft.setCursor( , );
tft.println( );
tft.setCursor( , );
tft.println( );
tft.setCursor( , );
tft.println( );
tft.setCursor( , );
tft.println( );
tft.setCursor( , );
tft.println( );
}
? 在 change_menu_options 函数中,通过使用 IR 遥控器按钮 - Up 和 Down - 增加或减少选项编号,以在界面上的菜单选项之间切换。
{
(selected < ) selected = ;
(selected > ) selected = ;
延迟();
mq2 = ;
mq3 =;
mq4 =;
MQ6 =;
mq9 =;
;
:
mq2 =;
mq3 =;
mq4 =;
MQ6 =;
mq9 =;
;
:
mq2 =;
mq3 =;
mq4 =;
MQ6 =;
mq9 =;
;
:
mq2 =;
mq3 =;
mq4 =;
mq6 =;
mq9 =;
;
:
mq2 =;
mq3 =;
mq4 =;
MQ6 =;
mq9 =;
;
}
}
步骤 2.1:显示有害气体的存在
为了检测有害气体的存在,我使用了这五个 MQ 系列气体传感器:
- MQ-2
- MQ-3
- MQ-4
- MQ-6
- MQ-9
MQ-2气体传感器对液化石油气、丙烷和氢气具有很高的灵敏度,也可用于检测甲烷和其他可燃蒸汽。
MQ-3气体传感器对酒精有很高的灵敏度,对汽油、烟雾和蒸汽有很好的抵抗力。该传感器可以检测不同浓度的酒精。
MQ-4 气体传感器对甲烷、丙烷和丁烷具有高灵敏度。该传感器可以检测不同的可燃气体。
MQ-6 气体传感器对丙烷、丁烷和液化石油气具有高灵敏度,对天然气也有响应。该传感器可以检测不同的可燃气体,例如天然气、主要由甲烷和乙烷组成的无色可燃气体碳氢化合物。
MQ-9 气体传感器对一氧化碳、甲烷和液化石油气具有高灵敏度。该传感器可以检测含有 CO 和可燃气体的不同气体。
正如预期的那样,在连接到 Arduino Nano 后,每个传感器会根据可检测到的有害气体的数量产生不同的值范围。
测试后,我根据经验为每个传感器分配了以下这些级别。如果需要,在测试传感器后更改它们。
< ?低 < mq_2_val < ?缓和 mq_2_val >= ?危险的 mq_3_val < ? 低 < mq_3_val < ?缓和 mq_3_val >= ?危险的 mq_4_val < ?低 < mq_4_val < ?缓和 mq_4_val >= ?危险的 mq_6_val < ? 低 < mq_6_val < ?缓和 mq_6_val >= ?危险的 mq_9_val < ? 低 < mq_9_val < ?缓和 mq_9_val >= ?危险的
? 如果使用向上和向下按钮选择了菜单选项,请在界面上突出显示其名称。
? 选择后,如果使用 OK 按钮激活菜单选项:
? 使用转换后的图像收集并显示所选 MQ 系列传感器的气体测量值。
? 如果根据分配的级别,气体测量值为低,则将 RGB LED 调整为绿色。
? 如果根据分配的级别,气体测量值为中等,则将 RGB LED 调整为黄色。
? 如果根据指定的级别,气体测量值为危险,则将 RGB LED 调整为红色并打开蜂鸣器以通知用户。
? 按左键,返回界面。
(MQ2){ { tft.setTextColor(RGBto565( , , ), 白色); tft.setTextSize( ); tft.setCursor( , ); tft.println( ); (IR_codeValue == ok){ 激活=; tft.fillScreen(白色); (激活){ read_IR_controls(); 打印数据: 收集数据(); tft.setCursor( , ); tft.setTextColor(黑色,白色); tft.setTextSize( ); TFT。(F()); tft.drawImageF( , , , , 气体); tft.drawImageF( , , , , 致命的); tft.drawImageF( , , , , 有毒); tft.setCursor( , ); tft.setTextSize( ); TFT。(mq_2_val); 检查气体状态: (mq_2_val < ){ adjustColor( , , ); } (mq_2_val >= && mq_2_val < ){ adjustColor( , , ); } (mq_2_val >= ){ adjustColor( , , ); (蜂鸣器,);} 退出关闭: (IR_codeValue == left){ activate = ; tft.fillScreen(RGBto565( , , )); 调整();noTone(蜂鸣器);} } } }(!mq2); } ...
步骤 2.2:修复 timer0_pin_port 错误
不幸的是,在使用 IR 远程库和音调库时,Arduino IDE 会抛出 timer0_pin_port 错误。发生错误是因为两个库都尝试通过声明相同的名称 - Timer2 来使用计时器。
要解决此问题,请根据 IR 远程库版本打开 boarddefs.h 或 IRremoteBoardDefs.h 文件。然后,将 Arduino Nano 的 IR_USE_TIMER2 更改为 IR_USE_TIMER1。
连接和调整
完成焊接并上传代码后,我通过接头将所有剩余组件连接到板上 - ST7789 240x240 IPS 屏幕。
不幸的是,即使 Arduino Nano 工作在 5V,Nano 提供的电流也不足以让 5 个 MQ 系列气体传感器加热并产生准确的气体测量值。因此,我在我的 PCB 设计中添加了一个电源插孔 (J1) 和一个连接器 (J2),以为传感器提供外部电池 (5V)。
模式和功能
???该设备在界面上显示五个不同的 MQ 系列传感器作为菜单选项,以单独显示其气体测量值:
- MQ-2
- MQ-3
- MQ-4
- MQ-6
- MQ-9
???该设备允许用户在 MQ 系列传感器(菜单选项)之间切换,以通过 IR 遥控器观察其气体测量值:
向上按钮?上
向下按钮?下去
确定按钮?启用
???通过按下红外遥控器的 OK 按钮激活任何 MQ 系列传感器以显示其气体测量值后,设备让用户通过按下左按钮返回界面。
?? MQ 系列传感器(菜单选项)
???如果选择并激活了 MQ-2 选项,设备将显示其有害气体测量值。
???根据为所选传感器分配的测量级别(步骤 2.1),设备调整 RGB LED:
绿色的 ?低的
黄色 ?缓和
红色的 ?危险的
???如果危险气体测量值为危险,则设备会根据分配的级别打开蜂鸣器。
???如果选择并激活了 MQ-3 选项,设备将显示其有害气体测量值。
???根据为所选传感器分配的测量级别(步骤 2.1),设备调整 RGB LED:
绿色的 ?低的
黄色 ?缓和
红色的 ?危险的
???如果危险气体测量值为危险,则设备会根据分配的级别打开蜂鸣器。
???如果选择并激活了 MQ-4 选项,设备将显示其有害气体测量值。
???根据为所选传感器分配的测量级别(步骤 2.1),设备调整 RGB LED:
绿色的 ?低的
黄色 ?缓和
红色的 ?危险的
???如果危险气体测量值为危险,则设备会根据分配的级别打开蜂鸣器。
???如果选择并激活了 MQ-6 选项,设备将显示其有害气体测量值。
???根据为所选传感器分配的测量级别(步骤 2.1),设备调整 RGB LED:
绿色的 ?低的
黄色 ?缓和
红色的 ?危险的
???如果危险气体测量值为危险,则设备会根据分配的级别打开蜂鸣器。
???如果选择并激活了 MQ-9 选项,设备将显示其有害气体测量值。
???根据为所选传感器分配的测量级别(步骤 2.1),设备调整 RGB LED:
绿色的 ?低的
黄色 ?缓和
红色的 ?危险的
???如果危险气体测量值为危险,则设备会根据分配的级别打开蜂鸣器。
视频和结论
完成上述所有步骤后,我将设备放在我的办公桌上,利用塑料画架作为有效的助手来检测工作场所中有害气体的存在。它工作得无可挑剔:)
代码
- SIM808远程冷却风扇带气象和加油站
- 基于Arduino Nano的远程危险加油站和监控器设计 0次下载
- 带有图表和电池监控器的温度和湿度监控器
- 加油站UPS电源微信云在线监控解决方案
- 针对加油站级客流量预测的时空网络模型 11次下载
- 电压监控器和监控器快速指南
- 小尺寸、低功耗、单向、电流分流监控器零漂移系列 19次下载
- 基于DSP的电力操作电源集中监控器的研究 4次下载
- C语言教程之加油站加油 0次下载
- 加油站中央控制系统的设计与实现
- 基于c/s的连锁加油站管理监控系统的实现
- 加油站中央控制系统的设计与实现
- 断相 相序监控器电路及制作
- 基于CAN总线的变电站及调度主站远程监控系统
- 加油站站房动力、接地平面图
- 瑞芯微PX30在自助加油机上应用 109次阅读
- 典型监控器电路图分享 3445次阅读
- 如何提高电压监控器IC的性能 559次阅读
- 电压监控器IC的来龙去脉 1217次阅读
- 监控器IC监控电池供电设备 704次阅读
- 无故障监控器如何帮助高可靠性应用 464次阅读
- 无毛刺电压监控器的基础知识 581次阅读
- 向CPU监控器电压检测输入添加迟滞,监控上游电源的电源故障警告 862次阅读
- 监控器IC监控电池供电设备 1076次阅读
- I2带EEPROM的C可编程多通道电压监控器 946次阅读
- 无毛刺电压监控器的基础知识 1249次阅读
- IDRS分布式网络远程监控系统的特点性能及应用设计 1594次阅读
- 电压检测器、监控器和高级监控各种功能介绍:第1部分 4859次阅读
- 加油站的加油枪是怎么知道油满了?你了解是什么原因吗? 1.5w次阅读
- ADuC7061和外部RTD构建的基于USB的温度监控器 2922次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多