找回密码
 立即注册

QQ登录

只需一步,快速开始

本帖最后由 lou 于 2020-5-7 15:43 编辑

Blynk物联网系列(2)-噪音检测仪
(基于Blynk平台+WeMos D1 WIFI开发板)



一、材料准备

13.png


LED灯
LED灯是一款典型的数字执行器,可以通过程序控制其亮灭和亮度。

声音传感器
声音传感器专门用来检测声音的大小,内置一个对声音敏感的电容式驻极体话筒。声波使话筒内的驻极体薄膜震动,导致电容发生变化,从而产生与之对应变化的微小电压,最终输出一个0~1023的数值来代表声音的大小。

二、项目实践-噪音检测仪
(1)思路分析

在这个项目中,如果声音传感器检测到的噪声值达到800以上,说明噪声很大,亮红灯,如果噪声值小于800,则不亮灯,同时在Blynk APP中显示噪声值。

(2)硬件连接

声音传感器                         WeMos D1
A                  <------>             A0
G                  <------>           GND
V                  <------>            5V

LED灯                                 WeMos D1
S                   <------>        D10(GPIO15)
V                   <------>             3.3V
G                   <------>            GNG

(3)创建项目

Blynk APP中,点击“New Project”,在“Create New Project”页面输入项目名称“噪音检测仪”,选择ESP8266硬件类型,然后单击“Create”按钮,即可创建项目。

14.png

(4)添加组件

为了能显示声音传感器检测到的噪声值,我们会用到一个可以显示数值的组件。在Blynk APP中,选择“Value Display”
添加Value Display组件后,设置组件名称“噪声值”,输入管脚选择ADC0,其他采用默认设置。

15.png

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

  
设置项
  
推荐值
说明
设置组件名称
噪声值
设置组件名称,建议少于4个字
INPUT
ADC0
管脚设置为组件要读取数据的管脚号
MIN
0
设置组件读取最小值
MAX
1023
设置组件读取最大值
READING  RATE
1 sec
设置组件读取数据的频率
FONT  SIZE
设置文本大小
TEXT
绿色
设置文本颜色

(5)程序实现

用Mixly编写程序
在Mixly软件模块类别中,打开Blynk IoT,选择“服务器信息”,输入正确的服务器地址、WiFi名称、WiFi密码及Blynk授权码,上传程序,即可在Blynk APP中Value Display组件中看到检测到的噪声值。


237.png

如果想要在Mixly的串口监视器中查看噪音值,可以在程序中增加串口打印模块,输出模拟管脚A0测到的数据。

238.png

通过串口监视器可以观察测得的数值,可以通过这种方式进行调试。

239.png

在本项目中,要根据噪声值的大小来判断是否点亮红灯,因此需要在Blynk定时模块编写逻辑判断部分的程序。

240.png

用Arduino IDE编写程序
打开ArduinoIDE软件,选择“文件”->“示例”->“Blynk”->“GettingStarted”->“PushDate”,打开示例项目,修改程序中对应的授权码、WiFi名称和密码。

  1. #define BLYNK_PRINT Serial // 开启串口监视
  2. #include <ESP8266WiFi.h>
  3. #include <BlynkSimpleEsp8266.h>
  4. char auth[] = "2a365b624c0f4ea891256d4a66d428f7";//授权码
  5. char ssid[] = "ssid";//wifi名称
  6. char pass[] = "psssword";//wifi密码
  7. BlynkTimer timer;
  8. void myTimerEvent()
  9. {
  10.   // 发送数据的频率不要超过每秒10次。
  11.   Blynk.virtualWrite(V5, millis() / 1000);
  12. }
  13. void setup()
  14. {
  15.   Serial.begin(9600);
  16.   Blynk.begin(auth, ssid, pass);//官方服务器
  17.   //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 8080);//官方服务器域名模式
  18.   //Blynk.begin(auth, ssid, pass, IPAddress(192, 168, 1, 158), 8080);//自建服务器ip模式
  19.   timer.setInterval(1000L, myTimerEvent);//每隔1000毫秒执行一次myTimerEvent函数
  20. }
  21. void loop()
  22. {
  23.   Blynk.run();
  24.   timer.run(); //初始化定时器
复制代码

为了实现根据噪声值得大小来判断是否点亮LED灯,还要在Blynk定时器模块中编写逻辑判断部分的程序,具体如下:

  1. void myTimerEvent()
  2. {
  3. if (analogRead(A0)<50){
  4. digitalWrite(15,HIGH);
  5. }
  6. else{
  7.     digitalWrite(15,LOW);
  8.   }
  9. }
复制代码

如果想要在Arduino IDE串口监视器中查看噪声值,则可以在void loop函数中增加串口输出语句:

  1. Serial.println(analogRead(A0));
复制代码

再次上传程序,就可以在Blynk APP中和IDE串口监视器中查看检测到的噪声值。

分享至 : QQ空间
收藏

0 个回复

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