烟雾报警器如何工作?
mq-2烟雾传感器将以模拟电压的形式提供输出。我们在代码中设置了一个条件,即如果传感器的输出值大于400,则蜂鸣器将开始发出蜂鸣声,红色led将亮起;如果传感器的输出值小于400,则蜂鸣器将保持静音,绿色led将亮起。
这里使用的esp将创建一个网页一个ip地址,将数据发送到该ip地址,并在那里打印数据。上传代码后,可在串口监视器中看到此ip地址,如下所示。
当您输入此ip时在浏览器中显示地址,然后将显示项目的输出,如下图所示。
电路图
首先,将esp8266模块与arduino连接。为了将esp8266与arduino正确连接,我们使用了esp-01适配器模块,这将使连接变得非常容易。该适配器模块内置5v至3.3v稳压器,这意味着您不必使用任何电阻。
将esp-01适配器的vcc引脚连接到arduino上的5v引脚和arduino上的esp-01适配器的gnd到gnd。接下来,将tx引脚从适配器连接到arduino上的引脚2,将rx引脚从适配器连接到arduino上的引脚3.
然后,连接mq -2带arduino的气体传感器。将气体传感器上的vcc和gnd连接到arduino上的5v和gnd引脚。然后将mq-2气体传感器上的a0引脚连接到arduino上的a0。
之后,将蜂鸣器和led连接到arduino。将蜂鸣器上的正极连接到arduino上的引脚10,将蜂鸣器上的负极连接到arduino上的gnd。然后通过220欧姆电阻将led的负极连接到gnd,将正极连接到arduino的引脚8和9上。
代码说明
首先,添加软件序列库。软件串行库允许我们在arduino的其他引脚上使用tx和rx通信,而不是仅使用默认的tx和rx引脚。然后我们定义了我们在arduino上连接这些tx和rx引脚的位置。
#include #define debug true softwareserial wifi_module(2,3);//将esp的tx引脚连接到arduino的引脚2和esp的rx引脚连接到arduino的引脚3
在下面的行中,我们已经声明了led,蜂鸣器和烟雾传感器的引脚。
int red_led_pin = 9; int green_led_pin = 8; int buzzer_pin = 10; int smoke_sensor_pin = a0;
在设置功能中,首先,我们设置串行通信的波特率和9400的wifi模块。然后我们声明了引脚并且蜂鸣器引脚作为输出引脚,因为我们将这些引脚的输出提供给led和蜂鸣器。最后,我们将烟雾传感器引脚声明为输入,因为烟雾传感器引脚将从传感器接收输入并将其传送给arduino。
serial.begin(9600) ); wifi_module.begin(9600);//根据您的esp8266 pinmode(red_led_pin,output)设置波特率; pinmode(green_led_pin,output); pinmode(buzzer_pin,output) ; pinmode(smoke_sensor_pin,input);
这些线路将调用该功能,并将在esp提供的ip地址处设置服务器。然后esp将在此ip地址发送数据。
esp8266_command(“at + rst r n”,2000,debug);//reset module esp8266_command(“at + cwmode = 2 r n”,1000,debug);//配置为接入点 esp8266_command(“at + cifsr r n”,1000,debug);//获取ip地址 esp8266_command(“at + cipmux = 1 r n”,1000,debug);//为多个连接配置 esp8266_command(“at + cipserver = 1,80 r n”,1000,debug);//打开端口80上的服务器
在循环函数中,我们读取来自烟雾传感器的值然后应用一个条件,如果输出值大于400,则红色led将亮起,蜂鸣器将开始发出蜂鸣声。如果输出值小于400,则绿色led指示灯将亮起,蜂鸣器将保持静音。
int analogsensor = analogread(smoke_sensor_pin); if(analogsensor》 400) { digitalwrite(red_led_pin,high); digitalwrite(green_led_pin,low); 音(buzzer_pin,1000,200); }
以下行将打印网页上的数据。首先,我们将在顶部打印“物联网烟雾探测系统”。然后在第二行,我们将打印烟雾值,在第三行,我们将打印“everything normal”或“danger!移动到其他地方“取决于条件。
字符串网页=”
物联网烟雾探测系统
“; 网页+ = “
烟雾值是”; 网页+ = analogsensor; 网页+ =“
”; if(analogsensor》 400) ) { 网页+ =“
危险!移动其他地方
”; } 其他 { 网页+ =“
一切正常
”; }
下面的代码会将命令发送到esp,并在串口监视器上打印esp的输出。
string esp8266_command(string command,const int timeout,boolean debug) { string response =“”; wifi_module.print(command); long int time = millis(); while((time + timeout)》 millis()) { while (wifi_module.available()) { char c = wifi_module.read(); 响应+ = c; } } 就是这样,希望你能让它运转起来!此外,您还可以查看我的博客,查看electronicshobbyist.com上的其他一些项目。
代码
#include #define debug true softwareserial wifi_module (2,3);//将esp的tx引脚连接到arduino的引脚2和esp的rx引脚连接到arduino的引脚3 int red_led_pin = 9; int green_led_pin = 8; int buzzer_pin = 10; int smoke_sensor_pin = a0; void setup() { serial。开始(9600);wifi_module.begin(9600);//根据您的esp8266 pinmode(red_led_pin,output)设置波特率; pinmode(green_led_pin,output); pinmode(buzzer_pin,output) ; pinmode(smoke_sensor_pin,input); esp8266_command(“at + rst r n”,2000,debug);//reset moduleesp8266_command(“at + cwmode = 2 r n”,1000,debug);//配置为接入点 esp8266_command(“at + cifsr r n”,1000,debug);//获取ip地址 esp8266_command(“at + cipmux = 1 r n”,1000,debug);//为多个连接配置 esp8266_command(“at + cipserver = 1,80 r n”,1000,debug);//在端口80上打开服务器 } void loop() { int analogsensor = analogread(smoke_sensor_pin); if(analogsensor》 400) { digitalwrite(red_led_pin,high); digitalwrite(green_led_pin,low); 音(buzzer_pin,1000,200); } 其他 { digitalwrite(red_led_pin, low); digitalwrite(green_led_pin,high); notone(buzzer_pin); } if(wifi_module.available( )) { if(wifi_module.find(“+ ipd,”)) { delay(1000); int connectionid = wifi_module.read() - 48; string webpage =“
物联网烟雾探测系统
”; 网页+ =“
烟雾值是”; 网页+ = analogsensor; 网页+ =“
“; if(analogsensor》 400) { 网页+ =”
危险!移动到其他地方
“; } 其他 { 网页+ =”
一切正常
“; } 字符串cipsend =”at + cipsend =“; cipsend + = connectionid; cipsend + =“,”; cipsend + = webpage.length(); cipsend + =“ r n”; esp8266_command(cipsend,1000,debug); esp8266_command(网页,1000,debug); 字符串closecommand =“at + cipclose = “;closecommand + = connectionid;//追加连接id closecommand + =” r n“; esp8266_command( closecommand,3000,debug); } } } 字符串esp8266_command(字符串命令,const int timeout,布尔调试) { 字符串响应=“”; wifi_module.print(命令); long int time = millis() ; while((时间+超时)》 millis()) { while(wifi_module.available()) { char c = wifi_module.read(); 响应+ = c; } } if(debug) { serial.print(响应); } 返回响应; }
二波段四灯直流机的制作
保隆科技获得国家级专精特新小巨人认定
【价值分享】射频功率放大器在抗扰度测试中的常见应用
传新能源车年检将增加电池测试,不合格直接返厂,换电模式要起飞了?
一文详解英特尔深度学习加速技术
怎么制作物联网烟雾报警器
傅里叶变换对信号处理的意义
承德科胜信函文件折纸机|三折纸折纸机|河北折纸机
基于PLC的柴油发电机组与市电切换系统
森霸传感宣布募投项目延期两年
常用汽车线束设计软件有哪些
MINITÜB 的UR机器人解决方案
OMV小车及5G技术在高纯石英棒智能制造车间的融合应用
大模型参数达百万亿级别,AI商业化进程加速!
发电机保护系统巡检 发电机保护系统巡检
亨通光电全新的5G智慧应用正式上线
一季度电信业务收入3383亿 移动互联网流量357亿GB
LED显示屏中的尖端技术是什么
如何将SD卡模块与PIC微控制器连接并在其中存储数据
pppoe什么意思_pppoe连接不上怎么办