基于物联网的空气质量监测系统与Twitter通知
扫描二维码
随时随地手机看文章
空气质量日益恶化,不可避免的工业和城市化的增加将使它变得更糟。在AirVisual和绿色和平组织最近进行的一项研究中,印度城市在世界污染最严重的30个城市中占据了22个位置,这是有失尊严的。在这一点上,已经很清楚,我们必须对这个问题迅速采取行动。由于空气污染不是肉眼可见的,因此重要的是要规范监测系统,通过实时测量污染物参数,并在空气质量下降超过一定水平时发出通知,从而真正了解城市的人们。
在本教程中,我们将制作一个基于物联网的空气质量监测系统。该系统使用MQ135气体传感器和NodeMCU实时测量空气质量,并将数据发送到ThingSpeak平台。ThingSpeak平台与Twitter相连,因此每当空气质量低于一定水平时,它就会向授权的Twitter账户发送Twitter通知,从而警告该特定地区的人们。我们之前使用ThingSpeak与ESP8266构建气象站和智能路灯。还可以通过以下链接查看所有ThingSpeak和ESP2866相关项目。
所需的材料
构建这个基于物联网的空气质量监测系统需要以下硬件和软件。
硬件
•NodeMCU
•MQ135气体传感器
•跳线
软件
•ThingSpeak
•Arduino IDE
线路图
NodeMCU空气质量计的完整电路图如下图所示。这非常简单,因为我们只需要将MQ135传感器与我们的ESP NodeMCU板连接起来。
MQ 135传感器是4针多用途传感器。它可以用来感应苯、酒精、烟雾等气体。MQ135传感器内部有一个电化学传感器,该传感器对室温下使用的一系列气体敏感。如果您想测量特定气体,还可以阅读其他物联网传感器。
MQ135传感器的Vcc引脚与NodeMCU的Vin引脚连接,GND引脚与NodeMCU的GND引脚连接。而A0引脚与NodeMCU的A0引脚连接,如上图所示。整个设置将由Node-MCU的micro-usb端口通过USB电缆供电。我使用连接器电线进行连接,它看起来像下面的东西
ThingSpeak设置
ThingSpeak是一个开源的物联网平台,它允许你聚合、可视化和分析云中的实时数据。你可以使用ThingSpeak控制你的设备,可以从你的设备向ThingSpeak发送数据,甚至你可以创建实时数据的即时可视化,并使用Twitter和Twilio等网络服务发送警报。ThingSpeak集成了数值计算软件MATLAB的支持。MATLAB允许ThingSpeak用户编写和执行MATLAB代码来执行预处理,可视化和分析。ThingSpeak至少需要15秒来更新你的读数。在这个项目中,我们将使用ThingSpeak通过NodeMCU从MQ135传感器获取值,并绘制获得的值随时间变化的图。如果MQ135的值读为critical,我们也会从ThingSpeak发出tweet。
也可以将ThingSpeak与树莓派和ESP32一起使用,使其适用于广泛的物联网项目。按照下面的步骤来设置你的ThingSpeak
第一步:只注册粗体
要向Thingspeak发送数据,需要一个Thingspeak帐户。
点击右上角的“注册”选项,填写所需的详细信息
在此之后,验证您的电子邮件id并单击continue。
步骤2:为您的数据创建一个仅粗体的通道
现在,当您登录您的帐户时,通过点击“新频道”按钮创建一个新频道。
点击“新通道”后,输入您想要上传的数据的名称和描述。例如,我正在发送MQ135传感器数据,因此我将其命名为“Air Quality”。
在Field1中输入数据的名称。如果要使用多个字段,可以选中“字段”选项旁边的框,并输入数据的名称和描述。
在此之后,点击保存通道按钮保存您的详细信息。
步骤3:API Key仅加粗
为了向ThingSpeak发送数据,我们需要一个唯一的API密钥,我们将在后面的代码中使用它来上传温度和湿度到ThingSpeak网站。
点击“API密钥”按钮获取上传传感器数据的唯一API密钥。现在复制你的“写API密钥”。我们将在代码中使用这个API键。
配置Arduino IDE编程NodeMCU ESP8266
这里NodeMCU是使用Arduino IDE编程的,要做到这一点,你必须首先将NodeMCU板添加到Arduino IDE。
要做到这一点,打开Arduino IDE并进入File>>Preferences
然后将弹出一个新窗口,在“附加板管理器URL”中添加以下链接,然后单击“确定”。
现在在你的Arduino IDE去工具>>板>>板管理器
然后搜索“ESP8266”,然后通过点击“安装”按钮安装“ESP8266由ESP8266社区”包(我已经安装了板,这就是为什么安装按钮在禁用)
完成安装需要几分钟的时间。安装完成后,您将能够在您的board列表中看到NodeMCU
代码的解释
在开始代码之前,将MQ135传感器库添加到Arduino IDE中。为此,从下面的链接下载MQ135传感器库zip文件。
用于NodeMCU的MQ135库
之后,在Arduino IDE点击草图>包括库>添加Zip文件。选择该文件,然后单击Open。
在本教程的最后给出了完整的代码和工作视频,在这里我们解释了完整的程序,以了解项目的工作原理。
该代码首先包含MQ135传感器库和ESP8266 wifi库。MQ135传感器库用于从MQ135传感器读取数据。之后,输入ThingSpeak API密钥和服务器地址,并定义将在代码中使用的变量。
在void循环内部,将测量函数空气质量,并使用. getppm()函数将值更改为PPM。之后,这些值将被发布到几个ThingSpeak通道。
用于空气质量监测的NodeMCU编程
现在,当我们的代码准备好上传时,将NodeMCU与笔记本电脑连接,并正确选择板和端口,然后单击upload按钮。上传代码后,打开串口监视器。使串行监视器波特率为115200。您将在串行监视器上看到您的Wi-Fi Id、密码和PPM值。
现在转到ThingSpeak网站并检查您的频道,您将看到以PPM为单位的当前空气质量值,如下图所示。
完整的硬件设置以及在我的笔记本电脑上打开的图形和串行监视器如下所示。
从ThingSpeak发送Twitter通知
现在我们的下一个任务是在空气质量下降到一定水平时发送推特通知。为此,你必须将你的twitter账户与ThingSpeak连接起来。要做到这一点,去你的ThingSpeak频道,点击Apps > ThingTweet >链接帐户。
在下一个窗口输入你的推特用户名和密码,点击“授权应用程序”。现在,当你授权了ThingTweet,它可以阅读和发布推文在你的时间轴上。
回到ThingSpeak频道,然后点击Apps > React > New React。
在React窗口中填写详细信息。在condition中,选项卡选择Numeric,因为我们想要发送一个特定数值的tweet,在condition选项卡中选择通道名称,字段并选择何时运行React。
保存React并运行代码。现在,每当PPM值超过50时,它就会向您的twitter帐户发送通知。您可以通过修改“测试频率”来更改通知频率。
通过使用Twitter,你可以向所有人发送通知。该系统可以向特定地区的全体居民发出空气质量警报。
本文编译自iotdesignpro