基于物聯(lián)網(wǎng)的空氣質(zhì)量監(jiān)測系統(tǒng)與Twitter通知
空氣質(zhì)量日益惡化,不可避免的工業(yè)和城市化的增加將使它變得更糟。在AirVisual和綠色和平組織最近進行的一項研究中,印度城市在世界污染最嚴(yán)重的30個城市中占據(jù)了22個位置,這是有失尊嚴(yán)的。在這一點上,已經(jīng)很清楚,我們必須對這個問題迅速采取行動。由于空氣污染不是肉眼可見的,因此重要的是要規(guī)范監(jiān)測系統(tǒng),通過實時測量污染物參數(shù),并在空氣質(zhì)量下降超過一定水平時發(fā)出通知,從而真正了解城市的人們。
在本教程中,我們將制作一個基于物聯(lián)網(wǎng)的空氣質(zhì)量監(jiān)測系統(tǒng)。該系統(tǒng)使用MQ135氣體傳感器和NodeMCU實時測量空氣質(zhì)量,并將數(shù)據(jù)發(fā)送到ThingSpeak平臺。ThingSpeak平臺與Twitter相連,因此每當(dāng)空氣質(zhì)量低于一定水平時,它就會向授權(quán)的Twitter賬戶發(fā)送Twitter通知,從而警告該特定地區(qū)的人們。我們之前使用ThingSpeak與ESP8266構(gòu)建氣象站和智能路燈。還可以通過以下鏈接查看所有ThingSpeak和ESP2866相關(guān)項目。
所需的材料
構(gòu)建這個基于物聯(lián)網(wǎng)的空氣質(zhì)量監(jiān)測系統(tǒng)需要以下硬件和軟件。
硬件
?NodeMCU
?MQ135氣體傳感器
?跳線
軟件
?ThingSpeak
?Arduino IDE
線路圖
NodeMCU空氣質(zhì)量計的完整電路圖如下圖所示。這非常簡單,因為我們只需要將MQ135傳感器與我們的ESP NodeMCU板連接起來。
MQ 135傳感器是4針多用途傳感器。它可以用來感應(yīng)苯、酒精、煙霧等氣體。MQ135傳感器內(nèi)部有一個電化學(xué)傳感器,該傳感器對室溫下使用的一系列氣體敏感。如果您想測量特定氣體,還可以閱讀其他物聯(lián)網(wǎng)傳感器。
MQ135傳感器的Vcc引腳與NodeMCU的Vin引腳連接,GND引腳與NodeMCU的GND引腳連接。而A0引腳與NodeMCU的A0引腳連接,如上圖所示。整個設(shè)置將由Node-MCU的micro-usb端口通過USB電纜供電。我使用連接器電線進行連接,它看起來像下面的東西
ThingSpeak設(shè)置
ThingSpeak是一個開源的物聯(lián)網(wǎng)平臺,它允許你聚合、可視化和分析云中的實時數(shù)據(jù)。你可以使用ThingSpeak控制你的設(shè)備,可以從你的設(shè)備向ThingSpeak發(fā)送數(shù)據(jù),甚至你可以創(chuàng)建實時數(shù)據(jù)的即時可視化,并使用Twitter和Twilio等網(wǎng)絡(luò)服務(wù)發(fā)送警報。ThingSpeak集成了數(shù)值計算軟件MATLAB的支持。MATLAB允許ThingSpeak用戶編寫和執(zhí)行MATLAB代碼來執(zhí)行預(yù)處理,可視化和分析。ThingSpeak至少需要15秒來更新你的讀數(shù)。在這個項目中,我們將使用ThingSpeak通過NodeMCU從MQ135傳感器獲取值,并繪制獲得的值隨時間變化的圖。如果MQ135的值讀為critical,我們也會從ThingSpeak發(fā)出tweet。
也可以將ThingSpeak與樹莓派和ESP32一起使用,使其適用于廣泛的物聯(lián)網(wǎng)項目。按照下面的步驟來設(shè)置你的ThingSpeak
第一步:只注冊粗體
要向Thingspeak發(fā)送數(shù)據(jù),需要一個Thingspeak帳戶。
點擊右上角的“注冊”選項,填寫所需的詳細(xì)信息
在此之后,驗證您的電子郵件id并單擊continue。
步驟2:為您的數(shù)據(jù)創(chuàng)建一個僅粗體的通道
現(xiàn)在,當(dāng)您登錄您的帳戶時,通過點擊“新頻道”按鈕創(chuàng)建一個新頻道。
點擊“新通道”后,輸入您想要上傳的數(shù)據(jù)的名稱和描述。例如,我正在發(fā)送MQ135傳感器數(shù)據(jù),因此我將其命名為“Air Quality”。
在Field1中輸入數(shù)據(jù)的名稱。如果要使用多個字段,可以選中“字段”選項旁邊的框,并輸入數(shù)據(jù)的名稱和描述。
在此之后,點擊保存通道按鈕保存您的詳細(xì)信息。
步驟3:API Key僅加粗
為了向ThingSpeak發(fā)送數(shù)據(jù),我們需要一個唯一的API密鑰,我們將在后面的代碼中使用它來上傳溫度和濕度到ThingSpeak網(wǎng)站。
點擊“API密鑰”按鈕獲取上傳傳感器數(shù)據(jù)的唯一API密鑰。現(xiàn)在復(fù)制你的“寫API密鑰”。我們將在代碼中使用這個API鍵。
配置Arduino IDE編程NodeMCU ESP8266
這里NodeMCU是使用Arduino IDE編程的,要做到這一點,你必須首先將NodeMCU板添加到Arduino IDE。
要做到這一點,打開Arduino IDE并進入File>>Preferences
然后將彈出一個新窗口,在“附加板管理器URL”中添加以下鏈接,然后單擊“確定”。
現(xiàn)在在你的Arduino IDE去工具>>板>>板管理器
然后搜索“ESP8266”,然后通過點擊“安裝”按鈕安裝“ESP8266由ESP8266社區(qū)”包(我已經(jīng)安裝了板,這就是為什么安裝按鈕在禁用)
完成安裝需要幾分鐘的時間。安裝完成后,您將能夠在您的board列表中看到NodeMCU
代碼的解釋
在開始代碼之前,將MQ135傳感器庫添加到Arduino IDE中。為此,從下面的鏈接下載MQ135傳感器庫zip文件。
用于NodeMCU的MQ135庫
之后,在Arduino IDE點擊草圖>包括庫>添加Zip文件。選擇該文件,然后單擊Open。
在本教程的最后給出了完整的代碼和工作視頻,在這里我們解釋了完整的程序,以了解項目的工作原理。
該代碼首先包含MQ135傳感器庫和ESP8266 wifi庫。MQ135傳感器庫用于從MQ135傳感器讀取數(shù)據(jù)。之后,輸入ThingSpeak API密鑰和服務(wù)器地址,并定義將在代碼中使用的變量。
在void循環(huán)內(nèi)部,將測量函數(shù)空氣質(zhì)量,并使用. getppm()函數(shù)將值更改為PPM。之后,這些值將被發(fā)布到幾個ThingSpeak通道。
用于空氣質(zhì)量監(jiān)測的NodeMCU編程
現(xiàn)在,當(dāng)我們的代碼準(zhǔn)備好上傳時,將NodeMCU與筆記本電腦連接,并正確選擇板和端口,然后單擊upload按鈕。上傳代碼后,打開串口監(jiān)視器。使串行監(jiān)視器波特率為115200。您將在串行監(jiān)視器上看到您的Wi-Fi Id、密碼和PPM值。
現(xiàn)在轉(zhuǎn)到ThingSpeak網(wǎng)站并檢查您的頻道,您將看到以PPM為單位的當(dāng)前空氣質(zhì)量值,如下圖所示。
完整的硬件設(shè)置以及在我的筆記本電腦上打開的圖形和串行監(jiān)視器如下所示。
從ThingSpeak發(fā)送Twitter通知
現(xiàn)在我們的下一個任務(wù)是在空氣質(zhì)量下降到一定水平時發(fā)送推特通知。為此,你必須將你的twitter賬戶與ThingSpeak連接起來。要做到這一點,去你的ThingSpeak頻道,點擊Apps > ThingTweet >鏈接帳戶。
在下一個窗口輸入你的推特用戶名和密碼,點擊“授權(quán)應(yīng)用程序”?,F(xiàn)在,當(dāng)你授權(quán)了ThingTweet,它可以閱讀和發(fā)布推文在你的時間軸上。
回到ThingSpeak頻道,然后點擊Apps > React > New React。
在React窗口中填寫詳細(xì)信息。在condition中,選項卡選擇Numeric,因為我們想要發(fā)送一個特定數(shù)值的tweet,在condition選項卡中選擇通道名稱,字段并選擇何時運行React。
保存React并運行代碼?,F(xiàn)在,每當(dāng)PPM值超過50時,它就會向您的twitter帳戶發(fā)送通知。您可以通過修改“測試頻率”來更改通知頻率。
通過使用Twitter,你可以向所有人發(fā)送通知。該系統(tǒng)可以向特定地區(qū)的全體居民發(fā)出空氣質(zhì)量警報。
本文編譯自iotdesignpro