/*!
* MindPlus
* mpython
*
*/
#include <MPython.h>
#include <DFRobot_Iot.h>
#include <IOBOX_Motor.h>
#include <DFRobot_Servo.h>
// 动态变量
volatile float mind_n_RanQiJianCe, mind_n_HuoZaiJianCe;
// 函数声明
void onButtonBPressed();
void onButtonAPressed();
void DF_JianCe();
// 静态常量
const String topics[5] = {"智能控制阀门/燃气监测","智能控制阀门/温度监测","","",""};
// 创建对象
DFRobot_Iot myIot;
Servo servo_P16;
IOBOX_Motor motor_ib;
// 主程序开始
void setup() {
mPython.begin();
buttonB.setPressedCallback(onButtonBPressed);
servo_P16.attach(P16);
buttonA.setPressedCallback(onButtonAPressed);
rgb.write(-1, 0x000000);
display.setCursorLine(1);
display.printLine(" 智能控制阀门-网");
display.setCursorLine(2);
display.printLine(" wifi初始化");
myIot.wifiConnect("YH55Z", "YHteach55xx");
while (!myIot.wifiStatus()) {yield();}
display.setCursorLine(3);
display.printLine(" wifi连接成功");
delay(1000);
display.setCursorLine(2);
display.printLine(" siot初始化");
delay(1000);
myIot.init("192.168.30.163","siot","","dfrobot", topics, 1883);
myIot.connect();
while (!myIot.connected()) {yield();}
display.setCursorLine(3);
display.printLine(" soit连接成功");
rgb.brightness(round(1));
DF_JianCe();
}
void loop() {
}
// 自定义函数
void DF_JianCe() {
while (1) {
display.setCursor(0, 30);
display.print((String(" 燃气监测:") + String((String(mind_n_RanQiJianCe) + String(" ")))));
display.setCursor(0, 44);
display.print((String(" 火警监测:") + String((String(mind_n_HuoZaiJianCe) + String(" C")))));
mind_n_RanQiJianCe = (round(((analogRead(P1)) / 1550)));
mind_n_HuoZaiJianCe = (round(((analogRead(P2)) / 5)));
delay(100);
if ((mind_n_HuoZaiJianCe>100)) {
motor_ib.motorRun(motor_ib.M1, motor_ib.CW, 200);
servo_P16.angle(abs(0));
display.setCursorLine(2);
display.printLine(" 火警!!! 阀门已关 ");
rgb.write(-1, 0xFF0000);
}
else {
motor_ib.motorStop(motor_ib.M1);
rgb.write(-1, 0x000000);
display.setCursorLine(2);
display.printLine("");
}
if ((mind_n_RanQiJianCe>=1)) {
display.setCursorLine(2);
display.printLine(" 燃气泄漏 阀门已关 ");
rgb.write(-1, 0xFF6600);
servo_P16.angle(abs(0));
}
else {
rgb.write(-1, 0x000000);
display.setCursorLine(2);
display.printLine("");
}
myIot.publish(topic_0, (analogRead(P1)));
myIot.publish(topic_1, mind_n_HuoZaiJianCe);
yield();
}
}
// 事件回调函数
void onButtonBPressed() {
display.setCursorLine(2);
display.printLine(" 阀门已关");
servo_P16.angle(abs(0));
delay(1000);
rgb.write(-1, 0x000000);
}
void onButtonAPressed() {
display.setCursorLine(2);
display.printLine(" 阀门已开");
rgb.write(-1, 0x00FF00);
servo_P16.angle(abs(75));
delay(5000);
}
摘要:智能控制阀门是基于开源硬件和物联网设计制作,其结构是由掌控板、气体传感器、温度传感器、舵机和水泵组成,具有以下功能:1、高灵敏度:气体传感器和温度(火灾)传感器对燃气和温度有高灵敏度能够及时准确的监测燃气泄漏和高温(火灾)信息;2、实时反应,当传感器监测值超过阈值,主板立即启动舵机或水泵,及时消除事故隐患;3、数据上报的特点,主板通过WiFi把监测数据上报物联网。 关键字:泄漏 温度 监测 阀门
1. 引 言
1.1 研究的问题 现在燃气像水、电一样,成为家居生活的基本能源之一,与我们的健康安全生活息息相关。如果燃气发生泄漏,会产生很大危害,如果人吸入了大量的液化气,可能会导致人体中毒现象。如果未及时处理,严重的可能会导致死亡;燃气泄漏发生在一个密封环境内,如果达到一定浓度的时候,液化气碰到明火就会发生爆炸的。国内液化气爆炸和发生火灾的事情比比皆是。 图1 :燃气泄漏
1.2 研究的背景资料 从互联网上查得的资料 1)传统检查液化泄漏方法: 燃气泄漏造成的家庭安全事故,可大可小,检查家里燃气是否泄漏的方法,及基本的燃气泄漏处理常识,希望能帮助大家避免燃气泄漏产生的爆炸危害。 1、通过闻气味判断燃气是否泄漏:天然气中含有硫化氢,闻起来是一种难闻的臭鸡蛋气味,如关闭气表阀门后没有臭味,可判断为气表阀门后有泄漏(如气表,灶具和热水器连接气表之间的胶管,接口等地方)。 2、通过燃气表判断燃气是否泄漏:在完全不用气(关闭灶具和热水器)的情况下,查看气表的末位红框内数字是否走动,如走动可判断为气表阀门后有泄漏(如气表,灶具和热水器连接气表之间的胶管,接口等地方)。 2)当前市场上的燃气阀门 目前国内的智能燃气表主要有IC卡智能燃气表、CPU卡智能燃气表、射频卡智能燃气表、直读式远传燃气表(有线远传表)以及无线远传燃气表、物联网智能燃气表等这几大类。 其功能主要是:存储备用气量、记录用气情况、各种功能状态显示和声音提示、限制燃气超流量、燃气泄漏报警(选配件)等智能管理和安全防范功能; 综上,目前的智能阀门主要功能是监测用户的燃气用量和缴费情况,对应燃气泄漏和高温火灾缺乏有效监测和控制。
1.3 研究的理论假设和理论依据
1.3.1理论假设 基于上述情况,设想基于开源硬件和物联网设计制作一种能够检测燃气泄漏和火灾(高温),并根据检测结果自动关闭液化气阀门,并浇水降温灭火的新型智能控制阀门,同时把事故信息(泄漏和高温)通过物联网上报。
1.3.2理论依据 基于开源硬件的数字化方法,用传感器分别检测气体和温度(火灾),当气体超过阈值(警戒值),主板自动关闭液化气阀门,并把气体泄漏情况通过物联网上报;当温度超过阈值(警戒值),主板自动关闭液化气阀门,并启动水泵抽水对液化气瓶进行浇水降温灭火,把温度超过阈值情况通过物联网上报。
1.4 研究成果的主要特点 相比于传统的气体监测方法-嗅觉、视觉及燃气报警器仪器,采样设备,智能燃气阀门低成本、高灵敏度、网络化,具有工作效率、智能化、网络化、数据可视等鲜明特性,主要特点如下:
1、高灵敏度。智能阀门用气体传感器和火焰传感器来监测气体和温度,其中采用基于气敏元件的MQ5气体传感器,可以很灵敏的检测到空气中的液化气、天然气、煤气等气体。使用Flame sensor火焰传感器用来探测火源,这款火焰传感器能在-25到85摄氏度下工作,性能稳定可靠。
2、数据可视。为了便于查看数据,作品把传感器监测的数据直接显示出来,这样便于人们实时动态了解情况。
3、自动化。当传感器监测的数值超过阈值时,作品直接关闭阀门;使用当温度过高或发生火灾时,系统启动水泵对液化气罐(管)进行浇水降温。
4、故障信息网络化。运用通过物联网把气体泄漏和高温(火灾)信息上报。 总之,运用上述系统,智能阀门能够准确即时监测燃气泄漏和火灾,并根据监测数据实时关闭阀门,启动水泵,同时通过物联网上报事故的信息。具有成本低廉、监测准确、功能强大、效率较高等特点,是一位优秀的燃气“巡逻兵”。
2. 设 计 与 制 作
2.1 结构设计
2.1.1功能设计 燃气传感器和温度(火焰)传感器接在掌控板的数字口,舵机和水泵分别接在主板的S口和电机接口。 1、按下A键开启燃气阀门,按下B键关闭阀门; 2、气体传感器和温度(火焰)传感器通过模拟口把监测的数值输入主板的; 3、当气体传感器监测值超过阈值时,主板关闭阀门; 4、当温度(火焰)传感器超过阈值时,主板关闭阀门,同时启动水泵抽水对燃气管(罐)进行浇水降温; 5、当传感器监测值超过阈值时,主板通过WiFi把数据上报物联网。 图6 作品功能设计图
2.1.2开源硬件与软件平台 一、开源硬件 智能阀门硬件 1 主板:掌控板是一款国产开源硬件,集成了ESP32主控芯片及各种传感器和执行器同时使用金手指的方式引出了所有IO口,性能强劲扩展性强。 搭载了1.3吋OLED屏, 内置无线网卡,可连接wifi网络;支持蓝牙4.0, BLE无线广播,支持图形化和代码编程。 2 MQ5气体传感器 3 Flame sensor火焰传感器 4 舵机 5 水泵 2、软件平台 Mind+是一款拥有自主知识产权的国产青少年编程软件,集成各种主流主控板及上百种开源硬件,支持人工智能(AI)与物联网(IoT)功能,既可以拖动图形化积木编程,还可以使用Python/C/C++ 等高级编程语言。
2.2 结构设计
2.2.1 整机设计 整机长度约18cm、高约10cm,外壳采用亚克力板,强度高,加工方便,价格低廉,有很好的适应性。两个传感器和舵机固定在外壳上 图3:整机外形 2.3 内部设计 内部设置掌控板及控制板、舵机、气体传感器、火焰传感器、燃气罐(管)、蓄水桶(水源)、水泵。 图4:程序设计 2.2.3 功能实现 1、 燃气阀门 用舵机作为阀门来控制燃气管(罐)的开启和关闭,舵机接在扩展版的S1口。按下A键打开阀门,按下B键关闭阀门;如果监测燃气泄漏,则关闭阀门。 2、监测 燃气监测:把MQ5气体传感器接在模拟口P0,用变量gas读取传感器的值并在oled屏上显示,检查gas值是否超过阈值,依次判断燃气是否泄漏。 温度(火灾)监测:把Flame sensor火焰传感器接在模拟口P2,用变量temp读取传感器的值并在oled屏上显示,检查temp值是否超过阈值,依次判是否发生火灾。 4、水泵 如果火焰传感器监测温度超过阈值,则启动水泵进行浇水降温灭火。 5、通过物联网上报监测数据 设置物联网参数,当监测数据超过阈值是上报数据 参数设置 上报数据 图7:启动物联网 2.3使用方法 打开开关给系统上电,系统初始化WiFi和Siot。 1、当需要使用燃气时,按下A键开启阀门,使用结束,按下B键关闭阀门。 2、无论是否使用燃气,当MQ5传感器监测燃气泄漏时,系统自动关闭阀门,并通过物联网上报数据; 3、无论是否使用燃气,当火焰传感器监测到温度超过阈值时,系统自动关闭阀门,同时启动水泵浇水降温,并通过物联网上报数据;
3. 智能阀门测试实验
3.1燃气泄漏监测
用拆除点火器的打火机模拟燃气,测试智能阀门的燃气传感器和舵机。在气体传感器的不同距离测试,智能阀门都能做出及时监测到数据并关闭舵机。实验结果见下表
ID 主题 消息 时间 7075 智能控制阀门/燃气监测 1361 2021/1/25 7072 智能控制阀门/燃气监测 1354 2021/1/25 7071 智能控制阀门/燃气监测 1358 2021/1/25 7069 智能控制阀门/燃气监测 1344 2021/1/25 7066 智能控制阀门/燃气监测 1337 2021/1/25 7064 智能控制阀门/燃气监测 1342 2021/1/25 7063 智能控制阀门/燃气监测 1328 2021/1/25 7061 智能控制阀门/燃气监测 1328 2021/1/25 7059 智能控制阀门/燃气监测 1334 2021/1/25 7057 智能控制阀门/燃气监测 1315 2021/1/25 7055 智能控制阀门/燃气监测 1281 2021/1/25 图9:作品测试
3.2温度监测
用打火机模拟燃气,测试智能阀门火焰(温度)传感器和水泵。在传感器的不同距离打开火机测试,智能阀门都能做出及时监测到数据,关闭舵机并启动水泵浇水降温灭火。实验结果见下表
7155 智能控制阀门/温度监测 18 2021/1/25 13:39 7153 智能控制阀门/温度监测 35 2021/1/25 13:39 7151 智能控制阀门/温度监测 12 2021/1/25 13:39 7149 智能控制阀门/温度监测 7 2021/1/25 13:39 7147 智能控制阀门/温度监测 0 2021/1/25 13:39 7145 智能控制阀门/温度监测 49 2021/1/25 13:39 7143 智能控制阀门/温度监测 12 2021/1/25 13:39 7141 智能控制阀门/温度监测 28 2021/1/25 13:39 7139 智能控制阀门/温度监测 22 2021/1/25 13:39 7137 智能控制阀门/温度监测 18 2021/1/25 13:39 7135 智能控制阀门/温度监测 24 2021/1/25 13:39 7133 智能控制阀门/温度监测 48 2021/1/25 13:39 7131 智能控制阀门/温度监测 61 2021/1/25 13:39 7129 智能控制阀门/温度监测 48 2021/1/25 13:39 7127 智能控制阀门/温度监测 57 2021/1/25 13:39 7125 智能控制阀门/温度监测 88 2021/1/25 13:39 3.3显示 监测的数据实时显示在OLED屏上。 3.4 物联网通信 当两个传感器监测值超过阈值,系统通过物联网上报数据。
4. 收 获 和 展 望
下一步设想增智能阀门监测的数据类型和数据量,实现燃气流量数据的实时监测;通过滤波剔除干扰项,优化算法,提高系统的综合处理能力;完善燃气、温度传感器的功能,对数据的实时采集实现多功能化。总之,尽管这台智能阀门有许多问题期待去解决,希望它能为人们的安全尽微薄之力。
【参考文献】:
[1] 《从物联到万联:Node.js与树莓派万维物联网构建实战》 Dominique D. Guinard,Vlad M. Trifa 著,2013.03.01
[2] 《从芯片到云端:Python物联网全栈开发实践》 刘凯 电子工业出版社
[3] 《Android物联网开发:基于Android Studio环境》 何福贵 编著,2017.03
[4] Arduino开源硬件概论,李永华,清华大学出版社,2015.06
[5] Arduino案例实战,西泠印社出版社,2016.12
评论