当前位置: 首页 > news >正文

基于MicroPython的家庭可燃气体泄露微信报警器

在我们平时的生活中,经常看到因气体泄漏发生爆炸事故的新闻。房屋起火、人体中毒等此类的新闻报道层出不穷。这种情况下,人民就发明了可燃气体报警器。当工业环境、日常生活环境(如使用天然气的厨房)中可燃性气体发生泄露,可燃气体报警器检测到可燃性气体浓度达到报警器设置的报警值时,可燃气体报警器就会发出声、光报警信号,以提醒采取人员疏散、强制排风、关停设备等安全措施,防止发生爆炸、火灾、中毒事故,从而保障人身安全和生产安全。


既然说到了可燃气体,那就科普一下常见的可燃气体。如氢气(H2)、甲烷(CH4)、乙烷(C2H6)、丙烷(C3H8)、丁烷(C4H10)、乙烯(C2H4)、丙烯(C3H6)、丁烯(C4H8)、乙炔(C2H2)、丙炔(C3H4)、丁炔(C4H6)、磷化氢(PH3)等。

因测试环境的要求,本次就以丁烷气体(打火机内的主要气体)的检测为目标。依然是使用TPYBoardv v102开发板为主控部分,然后增加上TPYBoard v202 WIFI开发板,作为网络通信单元,这样就可以通过调用网络接口,把报警信息传送给紧急联系人的微信中。

系统主要的技术特点:

监控报警系统:根据可燃气体检测模块(MQ-2)采集的气体浓度数据,判断出是否超出了安全范围内的阈值。当超出时,启动蜂鸣器报警,启动TPYBoard v202推送微信报警信息。

微信推送系统:TPYBoardv202开发板作为网络模块,负责整个系统的网络通信功能。当收到v102的报警提示后,调用【Server酱】的微信推送接口,将报警信息推送给指定人员的微信上。

所需器件

 

实物图:(部分主要器件)

 

程序设计

(1)TPYBoard v102开发板实时获取可燃气体检测模块的数据,判断该值是否大于设定的阈值。当大于时,启动蜂鸣器报警,同时传递给TPYBoard v202一个报警信号;
(2)当TPYBoard v202收到报警信号时,立即调用网络接口,将报警信息推送到联系人的微信上。

实物连接

 

先连接电源部分。电源部分主要涉及到降压模块和按键开关。先用万用表,找出按键开关中哪两个引脚是按下导通,弹起不导通的。这里,我们假设为引脚A和引脚B。

整体效果如下图:

 

程序调试

接线完毕后,就要将最重要的程序放到开发板上。首先,通过USB数据线将开发板接入电脑,电脑上会出现一个类似U盘的可移动设备,名称为【TPYBFLASH】,把`程序拷贝到里面即可。
注意:操作开发板磁盘时,板载的红色LED会亮,说明开发板正在保存操作,需等待红灯熄灭再进行其他操作。

TPYBoard v202的程序中涉及到微信推送接口的调用,需要先注册申请该接口,同时绑定联系人的微信。具体操作步骤,详见:docs.tpyboard.com/zh/latest/tpyboard/tutorial/v202/202WEIXIN/

演示效果

程序调试完,拔掉USB数据线。放入18650电池,按下按键开关即可。

到此,我们的可燃气体报警器就完成了。相比,我们在市场上常见的报警器,我们有独特的微信报警功能,也算是比较“优秀”了(哈哈哈,同九年,汝何秀)。

这个是比较简单的雏形,大家可以再追加上更多的可燃气体检测模块,应用到更多的场合中。当然,我们也可以增加联动功能。比如:与燃气热水器、灶具、排油烟机等连接起来使用,当有燃气泄漏时,不仅可以发出报警信号,同时也可以控制煤气表的电磁阀切断气源,起到更直接的安全保护。

完整源代码获取可关注公众号“MicroPython玩家汇”公众号,回复“毕设二”即可

转载于:https://www.cnblogs.com/xxosu/p/10461423.html

相关文章:

  • 使用ABAP代码创建S/4HANA里的Sales Order
  • Redis的应用场景
  • 学习/linux/list.h_双链表实现
  • unknown
  • 3.Jmeter参数化
  • 抓取远程图片到本地,你会用什么函数?
  • ELK 企业内部日志分析系统
  • Handler中的IdleHandler
  • 企业级 SpringBoot 教程 (十七)上传文件
  • bboss v5.5.3 发布,Elasticsearch Rest Client
  • 4.Git文件系统
  • ios监听键盘删除事件
  • 秒懂正则表达式
  • 怎么把GPU上训练的模型转到TPU或者CPU上去?DeepMind发布新工具支招
  • 互联网项目中mysql应该选什么事务隔离级别
  • 【翻译】babel对TC39装饰器草案的实现
  • Angular 2 DI - IoC DI - 1
  • C语言笔记(第一章:C语言编程)
  • HTML-表单
  • HTTP中的ETag在移动客户端的应用
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • IOS评论框不贴底(ios12新bug)
  • JavaScript HTML DOM
  • JavaScript-Array类型
  • JavaScript异步流程控制的前世今生
  • JS变量作用域
  • MQ框架的比较
  • php ci框架整合银盛支付
  • Python爬虫--- 1.3 BS4库的解析器
  • React-flux杂记
  • Redis学习笔记 - pipline(流水线、管道)
  • Spring核心 Bean的高级装配
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • 测试如何在敏捷团队中工作?
  • 分布式任务队列Celery
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 写给高年级小学生看的《Bash 指南》
  • Python 之网络式编程
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • # .NET Framework中使用命名管道进行进程间通信
  • #stm32驱动外设模块总结w5500模块
  • #Ubuntu(修改root信息)
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (附源码)springboot教学评价 毕业设计 641310
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET Framework与.NET Framework SDK有什么不同?
  • .net 后台导出excel ,word
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题