24小時(shí)聯(lián)系電話(huà):18217114652、13661815404
中文
- 您當前的位置:
- 首頁(yè)>
- 電子資訊>
- 技術(shù)專(zhuān)題>
- 城市空氣:一氧化碳、...
技術(shù)專(zhuān)題
城市空氣:一氧化碳、溫濕度監測物聯(lián)網(wǎng)系統
城市空氣:一氧化碳、溫濕度監測物聯(lián)網(wǎng)系統
由于空氣質(zhì)量低、溫度異常和其他危及居民健康的因素,世界各地的城市地區都受到嚴重影響。該項目旨在監測和采樣城市中目標地點(diǎn)的大氣參數,例如一氧化碳濃度、溫度和濕度。隨后對收集到的數據進(jìn)行采樣和分析,以確定影響這些關(guān)鍵參數的因素。在這個(gè)項目中,我們記錄了城市人口中兩個(gè)相距 5 公里的地點(diǎn)的數據。我們對數據進(jìn)行了分析并推導出了影響這些結果的因素。
項目簡(jiǎn)介:
該項目由基于 ESP8266 的開(kāi)發(fā)板 NodeMCU 控制。它使用 MQ07 傳感器收集 CO 濃度數據,并使用 DHT11 傳感器監測溫度和濕度。一旦收集到數據,它將每分鐘上傳到云(ThingSpeak 平臺)。
我們在兩個(gè)不同的日子在兩個(gè)不同的地方收集了數據。數據已在每個(gè)位置收集了 24 小時(shí)。然后我們分析數據以找出 CO、溫度和濕度讀數的模式。這些數據模式幫助我們分配可能的原因并得出結論。
當 NODEMCU 將數據上傳到云端時(shí),它會(huì )在 Thingspeak 云平臺上打上時(shí)間戳。ThingSpeak 將允許我們以圖表的形式可視化數據,以便我們可以定期監控數據。此外,上傳的數據可以在任何時(shí)區以“CSV”格式下載。
硬件:
NodeMCU板
DHT11(溫濕度傳感器)
MQ-07(氣體傳感器)
連接電線(xiàn)。
原型:
儀表板:
地點(diǎn)性質(zhì):
我們在兩個(gè)不同的地點(diǎn)收集了 24 小時(shí)的數據。
位置1:這是一棟公寓樓,大約有20戶(hù)人家。典型的城市氛圍,樹(shù)木較少,交通污染中等。
位置 2:在特定地點(diǎn)緊湊且緊湊的獨立房屋。典型的城市氛圍,樹(shù)木較少,交通污染中等。
數據集:
上述 Excel 電子表格由 CO、溫度和濕度數據組成。請注意,我們在位置 2 收集數據時(shí)遇到了 DHT11 問(wèn)題,此后濕度和溫度已被丟棄。以下是這些數據集中的一些有趣觀(guān)察結果。
位置 1:烹飪引起的 CO 水平峰值
地點(diǎn)一:夜間下雨,氣溫下降,濕度偏高
位置 2:烹飪導致的高 CO 水平
位置 2:室外空氣的二氧化碳含量低于室內空氣
從下面的數據集中,我們可以推斷出以下觀(guān)察結果。
兩個(gè)地點(diǎn)的 CO 水平在早上到下午都達到峰值。這是由于使用液化石油氣的家庭烹飪。這導致 CO 水平急劇上升,隨后下午 CO 水平下降。
來(lái)自位置 2 的數據集顯示 CO 水平突然下降。這是由于傳感器放置在敞開(kāi)的窗戶(hù)附近的原因。這允許更多的室外氣氛與傳感器交互。這得出結論,室外空氣中的 CO 水平低于室內空氣。這項關(guān)于室內和室外空氣比較的研究有一些類(lèi)似的有趣觀(guān)察。
溫度和濕度是成反比的。每當溫度升高時(shí),濕度就會(huì )下降,反之亦然。
算法:
將所需的密鑰(例如 API 密鑰、Thing Speak 的通道 ID、WiFi SSID 和密碼)作為字符串。
配置模擬和數字引腳以獲取輸入。
等待設備連接到 WiFi 熱點(diǎn)。
從 DHT11(溫度和濕度)和 MQ-07 讀取并存儲數據,然后將其存儲在變量中。
將硬件設置為每分鐘讀取傳感器數據。
將數據上傳到云端。
重復這些步驟。
代碼:
下載這些庫并將其移動(dòng)到您的 Arduino 庫文件夾中。ESP8266、DHT-11庫和MQ-7。該項目由 L Mrudula Qury 構建和測試。您可以在此處從GitHub 存儲庫下載所有文件。
//圖書(shū)館
#include <ESP8266WiFi.h>
#include "dht.h" //for dht11 //溫濕度傳感器庫
#include "MQ7.h" //for mq07 //氣體傳感器庫
//....庫結束
//DHT設置
#define dht_apin D3 //數字引腳傳感器連接到NodeMCU的D3
DHT DHT;
//...設置結束
//Wifi 設置和 Thingspeak 憑證
char* ssid="你的 SSID"; //獲取wifi的ssid
char* pass="您的密碼"; //輸入對應的密碼
char* host="api.thingspeak.com";
char* writeapikey="IIHQG7GURQAKBDDM"; //
//...結尾
//引腳設置
const int mq07=A0; //Mq07連接到NodeMCU的模擬引腳A0
//...結尾
//MQ7設置
MQ7 mq7(A0, 3.3); //至于nodeMCU vcc=3.3v
//...結尾
無(wú)效設置(){
Serial.begin(115200);
WiFiClient客戶(hù)端;//客戶(hù)端變量
//引腳模式
pinMode(mq07,輸入);
//...結尾
//無(wú)線(xiàn)連接
WiFi.begin(ssid, pass);
而(WiFi.status()!= WL_CONNECTED)
{
延遲(200);
Serial.print("..");
}
Serial.println();
Serial.println("NodeMCU 已連接!");
Serial.println(WiFi.localIP());
//---------------------
}
// 項目所需的變量
浮動(dòng)溫度、濕度;
浮動(dòng)共同數量;
const int httpport = 80;
//--------------------------------------
無(wú)效循環(huán)(){
延遲(2000);
//來(lái)自DHT11的溫度和濕度
DHT.read11(dht_apin);
溫度=DHT.溫度;//加載溫度
濕度=DHT.濕度;//加載濕度
Serial.print("當前濕度 = ");
Serial.print(濕度);
Serial.print("%");
Serial.print("溫度 = ");
Serial.print(溫度);
Serial.println("C");
//.....結尾
//來(lái)自MQ07的CO
coquantity = mq7.getPPM(); //以PPM讀取COquantity
Serial.print("COquantity :");
Serial.print(coquantity);
Serial.println("ppm");
Serial.println("----------------------------------------- -------");
//....結尾
// 客戶(hù)端并將數據推送到服務(wù)器(云)
WiFiClient客戶(hù)端;
if(!client.connect(host,httpport))
{
Serial.println("沒(méi)有客戶(hù)端");
返回;
}
字符串 url="/update?key=";
url+=writeapikey;
//上傳溫度數據
url+="&field1=";
url+=字符串(濕度);
//----------------------------
// 上傳濕度數據
url+="&field2=";
url+=字符串(溫度);
//-------------
// 上傳光照強度數據
url+="&field3=";
url+=String(coquantity);
//-------------
// 上傳url到云端并斷開(kāi)客戶(hù)端
client.print(String("GET ") + url + "HTTP/1.1\r\n" + "Host :" + host + "\r\n" + "Connection: close\r\n\r\n" );
客戶(hù)端停止();
//-------------
// 等待 60 秒
延遲(60000);
}