硬件部件:
ESP32 3.2× 1個(gè)
SGP30× 1個(gè)
AM2302× 1個(gè)
微型USB電纜× 1個(gè)
跳線(xiàn)× 1個(gè)
面包板× 1個(gè)
軟件應(yīng)用程序和在線(xiàn)服務(wù):
Arduino IDE
由于疫情影響,我不得不在家工作。在冬天,我必須關(guān)閉門(mén)窗。我待的時(shí)間越長(zhǎng),二氧化碳的含量越高,這讓我有點(diǎn)頭暈?zāi)垦:蛻卸?。盡管CO2是一種無(wú)害氣體,但長(zhǎng)時(shí)間處于高濃度CO2中的人會(huì)危害健康:在室內(nèi)常見(jiàn)水平1000 ppm左右,您會(huì)開(kāi)始感到疲勞和困倦;達(dá)到2000 ppm時(shí),您將入睡并感到非常疲倦,無(wú)法進(jìn)行任何工作。長(zhǎng)時(shí)間接觸并集中注意力會(huì)導(dǎo)致頭痛和身體不適。
監(jiān)測(cè)室內(nèi)的二氧化碳水平實(shí)際上可能比我們的常識(shí)更重要,因此我制作了一個(gè)二氧化碳監(jiān)測(cè)器,顯示室內(nèi)的二氧化碳水平提醒我及時(shí)打開(kāi)門(mén)窗以改善室內(nèi)空氣。
監(jiān)測(cè)CO2和TVOC的傳感器
在室溫下,二氧化碳(CO2)是一種無(wú)色,無(wú)味,不可燃的氣體,必須有一個(gè)專(zhuān)門(mén)的傳感器來(lái)監(jiān)測(cè)。SGP30是用于室內(nèi)空氣質(zhì)量監(jiān)測(cè)的氣體傳感器。SGP30可以檢測(cè)范圍很廣的H2,并將基于H2濃度計(jì)算出的等效二氧化碳讀數(shù)通過(guò)I2C返回給微控制器。SGP30能夠設(shè)置濕度補(bǔ)償以獲得更好的精度,因此需要外部濕度傳感器才能使用。此外,SGP30傳感器可檢測(cè)多種揮發(fā)性有機(jī)化合物(VOC),并返回總揮發(fā)性有機(jī)化合物(TVOC)讀數(shù)。
我將AM2302與SGP30配合使用。AM2302是一種數(shù)字溫度和濕度傳感器,非常常見(jiàn)且易于使用。
顯示器示意圖
如圖所示,我需要微控制器在SGP30和AM2302旁邊接收數(shù)據(jù)和LCD模塊顯示。
ESP32 3.2英寸LCD是一個(gè)很好的選擇,因?yàn)樗琇CD顯示模塊。ESP32 3.2英寸LCD是為Arduino和ESP32開(kāi)發(fā)的開(kāi)發(fā)板,集成了LCD。LCD是320x240 TFT,驅(qū)動(dòng)器是ILI9341,它使用SPI與ESP32進(jìn)行通信。ESP32 3.2英寸LCD已集成SD模塊,可通過(guò)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傳感器庫(kù)。
3.安裝Adafruit SGP30傳感器庫(kù)。
4.安裝TFT_eSPI庫(kù)。
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ù)慕^對(duì)濕度值,以提高TVOC和eCO2的精度。
sgp.setHumidity(getAbsoluteHumidity(t, h));《br》
8.命令傳感器返回單個(gè)eCO2 / VOC測(cè)量值。
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。
測(cè)試
通常,室外空氣中的CO2含量為400 ppm。在不超過(guò)1000ppm的二氧化碳中,人們對(duì)健康的影響有限或沒(méi)有。一旦二氧化碳含量超過(guò)1000ppm,人們就會(huì)感到疲勞,注意力不集中和注意力不集中。
接通板上電源,SGP30需要一段時(shí)間進(jìn)行準(zhǔn)備。屏幕正常顯示二氧化碳水平后,我嘗試對(duì)SGP30稍作喘息,該值將增加,然后回到約400PPM。將董事會(huì)放在會(huì)議室中,兩小時(shí)的會(huì)議結(jié)束后,CO2含量將增加到840PPM。
將酒精或洗發(fā)水放在木板旁邊,隨著蒸發(fā),TVOC含量會(huì)迅速增加。
演示視頻:
我使用其他ESP32 + DISPLAY模塊來(lái)實(shí)現(xiàn)相同的監(jiān)視器。這些監(jiān)視器可以放在家里,小房間,辦公室,溫室或汽車(chē)中,以提醒我們及時(shí)更換新鮮空氣,并更加注意空氣質(zhì)量。我可以將監(jiān)視器與許多揮發(fā)性有機(jī)化合物一起放在車(chē)間中,以測(cè)量TVOC含量,提醒同事戴上口罩并改善空氣質(zhì)量,以保持健康。
責(zé)任編輯:pj
-
傳感器
+關(guān)注
關(guān)注
2550文章
51035瀏覽量
753071 -
監(jiān)測(cè)器
+關(guān)注
關(guān)注
0文章
173瀏覽量
38782 -
濕度傳感器
+關(guān)注
關(guān)注
7文章
308瀏覽量
58533
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論