找回密码
 立即注册

QQ登录

只需一步,快速开始

Blynk物联网系列(4)-远程烟雾报警器
(基于Blynk平台+WeMos D1 WIFI开发板)



一、材料准备

11.png

  • MQ-2烟雾传感器
MQ-2型烟雾传感器采用半导体气敏材料,当与烟雾接触时,会引起内部导电率的变化,烟雾越浓,导电率越大,输出模拟信号越大。MQ-2型烟雾传感器对天然气、液化石油气灯烟雾有很高的敏感性,尤其对烷类烟雾更为敏感。烟雾传感器为模拟信号传感器,接线时需要连接到开发板的模拟管脚。

  • 有源蜂鸣器
蜂鸣器是一种一体化结构的电子讯响器,主要用于电子玩具、打印机、小型报警器、定时器等产品中。在程序中可以通过控制蜂鸣器发出声音的频率来改变声音。

二,项目实践-远程烟雾报警
(1)思路分析

在本项目中,当烟雾报警器检测到烟雾是,蜂鸣器发出报警声,同时给主人手机发送邮件通知。

(2)硬件连接

烟雾传感器              WeMos D1
S              <------>       A0
V              <------>       5V
G              <------>      GNG

蜂鸣器             WeMos D1
S      <------>    D2(GPIO16)
V      <------>       5V
G      <------>      GNG

(3)创建项目

Blynk APP中,点击“New Project”,在“Create New Project”页面输入项目名称“远程烟雾报警”,选择ESP8266硬件类型,然后单击“Create”按钮,即可创建项目。

5.png

(4)添加LabeledValue组件

为了能显示烟雾传感器检测到的烟雾值,我们需要使用一个Labeled Value组件,添加Labeled Value组件后,设置输入管脚为“ADC0”

6.png

Labeled Value组件设置参数说明如下:

  
设置项
  
推荐值
说明
设置组件名称
烟雾值
设置组件名称,建议少于4个字
INPUT
ADC0
设置管脚号为该组件要读取数据的管脚号
MIN
0
组件读取到的最小值
MAX
1023
组件读取到的最大值
LABEL
左对齐
设置文本对齐方式,设置数值后缀,如温度符号,湿度符号%等
FONT  SIZE
设置文字大小
TEXT
绿色
设置文本颜色
READING  RATE
1sec
设置组件读取数据的频率

(5)添加Email组件

当烟雾值过大时,还需要设置系统自动给手机发送邮件通知,这时就需要用到Email组件。添加组件后,设置邮箱地址和文本类型。

7.png

Email组件设置参数说明如下:

  
设置项
  
推荐值
说明
To
收件人邮箱地址
收件人邮箱地址
CONTENT  TYPE
text/html
文本类型

(6)程序实现

用Mixly编写程序
在Mixly软件模块类别中,打开Blynk IoT,选择“服务器信息”,输入正确的服务器地址、WiFi名称、WiFi密码及Blynk授权码。
在本项目中,每隔500ms判断烟雾传感器检测到的数值是否大于800,如果大于,则发送邮件提醒主人。

255.png

用Arduino IDE编写程序
打开ArduinoIDE软件,复制以下代码,修改程序中的授权码、WiFi名称和密码,舵机对应管脚号,具体程序如下:

  1. /*************************************************************
  2.   项目说明:发送邮件
  3.   App项目设置:创建e-mail组件
  4.   硬件连接:按钮传感器连接在GPIO2管脚
  5.   注意事项:最高频率5秒1封邮件
  6. *************************************************************/
  7. #define BLYNK_PRINT Serial
  8. #define BLYNK_MAX_SENDBYTES 128 // 该值越大,能发送的邮件长度越长
  9. #include <ESP8266WiFi.h>
  10. #include <BlynkSimpleEsp8266.h>
  11. #include <NewTone.h>
  12. char auth[] = "v2W7PEi2hH_3bBlm0InIrFaaED_mOEfR";//授权码
  13. char ssid[] = "ssid";//wifi名称
  14. char pass[] = "pass";//wifi密码
  15. BlynkTimer timer;
  16. void myTimerEvent1() {
  17.   Serial.println(analogRead(A0));
  18.   if (analogRead(A0) > 50) // 你可以在此设置任何触发邮件发送的条件
  19. {
  20.     Blynk.email("xyuanli@163.con", "家里着火了", String("当前烟雾浓度:") + String(analogRead(A0)));
  21.     Blynk.notify("Notify");
  22.     for (int i = 1; i <= 3; i = i + (1)) {
  23.       NewTone(12,131,1000);
  24.       noTone(12);
  25.     }
  26.   }
  27. }
  28. void setup(){
  29.   Serial.begin(9600);
  30.    Blynk.begin(auth, ssid, pass,"blynk-cloud.com",8080);//官方服务器
  31.   pinMode(12, OUTPUT);
  32.   timer.setInterval(5000L, myTimerEvent1);
  33. }
  34. void loop(){
  35.   Blynk.run();
  36.   timer.run();
  37. }
复制代码

APP端显示如下:

8.png

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册