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