硬件部件:
ESP32 3.2× 1個
SGP30× 1個
AM2302× 1個
微型USB電纜× 1個
跳線× 1個
面包板× 1個
軟件應(yīng)用程序和在線服務(wù):
Arduino IDE
由于疫情影響,我不得不在家工作。在冬天,我必須關(guān)閉門窗。我待的時間越長,二氧化碳的含量越高,這讓我有點頭暈?zāi)垦:蛻卸?。盡管CO2是一種無害氣體,但長時間處于高濃度CO2中的人會危害健康:在室內(nèi)常見水平1000 ppm左右,您會開始感到疲勞和困倦;達(dá)到2000 ppm時,您將入睡并感到非常疲倦,無法進(jìn)行任何工作。長時間接觸并集中注意力會導(dǎo)致頭痛和身體不適。
監(jiān)測室內(nèi)的二氧化碳水平實際上可能比我們的常識更重要,因此我制作了一個二氧化碳監(jiān)測器,顯示室內(nèi)的二氧化碳水平提醒我及時打開門窗以改善室內(nèi)空氣。
監(jiān)測CO2和TVOC的傳感器
在室溫下,二氧化碳(CO2)是一種無色,無味,不可燃的氣體,必須有一個專門的傳感器來監(jiān)測。SGP30是用于室內(nèi)空氣質(zhì)量監(jiān)測的氣體傳感器。SGP30可以檢測范圍很廣的H2,并將基于H2濃度計算出的等效二氧化碳讀數(shù)通過I2C返回給微控制器。SGP30能夠設(shè)置濕度補(bǔ)償以獲得更好的精度,因此需要外部濕度傳感器才能使用。此外,SGP30傳感器可檢測多種揮發(fā)性有機(jī)化合物(VOC),并返回總揮發(fā)性有機(jī)化合物(TVOC)讀數(shù)。
我將AM2302與SGP30配合使用。AM2302是一種數(shù)字溫度和濕度傳感器,非常常見且易于使用。
顯示器示意圖
如圖所示,我需要微控制器在SGP30和AM2302旁邊接收數(shù)據(jù)和LCD模塊顯示。
ESP32 3.2英寸LCD是一個很好的選擇,因為它包含LCD顯示模塊。ESP32 3.2英寸LCD是為Arduino和ESP32開發(fā)的開發(fā)板,集成了LCD。LCD是320x240 TFT,驅(qū)動器是ILI9341,它使用SPI與ESP32進(jìn)行通信。ESP32 3.2英寸LCD已集成SD模塊,可通過SPI將數(shù)據(jù)保存到SD卡。ESP32 3.2英寸LCD提供了許多擴(kuò)展端口,允許許多傳感器連接到該端口。另外,該板具有觸摸能力,并且TFT可以用作輸入設(shè)備。
連接
固件
1.可從以下位置獲取固件:https : //github.com/Makerfabs/Project_Touch-Camera-ILI9341/tree/master/example/CO2_Monitor
2.在Arduino IDE上安裝Adafruit的DHT傳感器庫。
3.安裝Adafruit SGP30傳感器庫。
4.安裝TFT_eSPI庫。
5.用代碼“ Project_Touch-Camera-ILI9341 / example / CO2_Monitor / CO2_Monitor.ino”初始化AM2302和SGP30。
dht.begin();
if (! sgp.begin()){
Serial.println(“Sensor not found :(”);
while (1);
}《br》
6.從AM2302獲取溫度和濕度數(shù)據(jù)。
float h = dht.readHumidity();
float t = dht.readTemperature();《br》
7.設(shè)置用于補(bǔ)償?shù)慕^對濕度值,以提高TVOC和eCO2的精度。
sgp.setHumidity(getAbsoluteHumidity(t, h));《br》
8.命令傳感器返回單個eCO2 / VOC測量值。
if (! sgp.IAQmeasure()) {
Serial.println(“Measurement failed”);
return;
}
Serial.print(“TVOC ”);
Serial.print(sgp.TVOC);
Serial.print(“ ppb ”);
Serial.print(“eCO2 ”);
Serial.print(sgp.eCO2);
Serial.println(“ ppm”);《br》
9.在液晶顯示屏上顯示數(shù)值。
char buf[8];
dtostrf(t, 4, 0, buf);
tft.drawRightString(buf, 0 * 90 + 60 - 5, 167 - 27 + 155 - 18, 2);
dtostrf(h, 4, 0, buf);
tft.drawRightString(buf, 1 * 90 + 60 - 5, 167 - 27 + 155 - 18, 2);
dtostrf(TVOC, 4, 0, buf);
tft.drawRightString(buf, 2 * 90 + 60 - 5, 167 - 27 + 155 - 18, 2);《br》
10.將固件上傳到ESP32 3.2‘’LCD。
測試
通常,室外空氣中的CO2含量為400 ppm。在不超過1000ppm的二氧化碳中,人們對健康的影響有限或沒有。一旦二氧化碳含量超過1000ppm,人們就會感到疲勞,注意力不集中和注意力不集中。
接通板上電源,SGP30需要一段時間進(jìn)行準(zhǔn)備。屏幕正常顯示二氧化碳水平后,我嘗試對SGP30稍作喘息,該值將增加,然后回到約400PPM。將董事會放在會議室中,兩小時的會議結(jié)束后,CO2含量將增加到840PPM。
將酒精或洗發(fā)水放在木板旁邊,隨著蒸發(fā),TVOC含量會迅速增加。
演示視頻:
我使用其他ESP32 + DISPLAY模塊來實現(xiàn)相同的監(jiān)視器。這些監(jiān)視器可以放在家里,小房間,辦公室,溫室或汽車中,以提醒我們及時更換新鮮空氣,并更加注意空氣質(zhì)量。我可以將監(jiān)視器與許多揮發(fā)性有機(jī)化合物一起放在車間中,以測量TVOC含量,提醒同事戴上口罩并改善空氣質(zhì)量,以保持健康。
責(zé)任編輯:pj
-
傳感器
+關(guān)注
關(guān)注
2546文章
50490瀏覽量
751186 -
監(jiān)測器
+關(guān)注
關(guān)注
0文章
169瀏覽量
38762 -
濕度傳感器
+關(guān)注
關(guān)注
7文章
303瀏覽量
58469
發(fā)布評論請先 登錄
相關(guān)推薦
評論