本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

使用ESP32监控CO2和TVOC
发布时间:2021-01-22
分享到:
使用ESP32监控CO2和TVOC
发布时间:2021-01-22
分享到:

硬件部件:

  • ESP32 3.2×    1个    
  • SGP30×    1个    
  • AM2302×    1个    
  • 微型USB电缆×    1个    
  • 跳线×    1个    
  • 面包板×    1个    

软件应用程序和在线服务:

  • Arduino IDE    

由于疫情影响,我不得不在家工作。在冬天,我必须关闭门窗。我待的时间越长,二氧化碳的含量越高,这让我有点头晕目眩和懒惰。尽管CO2是一种无害气体,但长时间处于高浓度CO2中的人会危害健康:在室内常见水平1000 ppm左右,您会开始感到疲劳和困倦;达到2000 ppm时,您将入睡并感到非常疲倦,无法进行任何工作。长时间接触并集中注意力会导致头痛和身体不适。

监测室内的二氧化碳水平实际上可能比我们的常识更重要,因此我制作了一个二氧化碳监测器,显示室内的二氧化碳水平提醒我及时打开门窗以改善室内空气。

监测CO2和TVOC的传感器

在室温下,二氧化碳(CO2)是一种无色,无味,不可燃的气体,必须有一个专门的传感器来监测。SGP30是用于室内空气质量监测的气体传感器。SGP30可以检测范围很广的H2,并将基于H2浓度计算出的等效二氧化碳读数通过I2C返回给微控制器。SGP30能够设置湿度补偿以获得更好的精度,因此需要外部湿度传感器才能使用。此外,SGP30传感器可检测多种挥发性有机化合物(VOC),并返回总挥发性有机化合物(TVOC)读数。

我将AM2302与SGP30配合使用。AM2302是一种数字温度和湿度传感器,非常常见且易于使用。

显示器示意图

如图所示,我需要微控制器在SGP30和AM2302旁边接收数据和LCD模块显示。

ESP32 3.2英寸LCD是一个很好的选择,因为它包含LCD显示模块。ESP32 3.2英寸LCD是为Arduino和ESP32开发的开发板,集成了LCD。LCD是320x240 TFT,驱动器是ILI9341,它使用SPI与ESP32进行通信。ESP32 3.2英寸LCD已集成SD模块,可通过SPI将数据保存到SD卡。ESP32 3.2英寸LCD提供了许多扩展端口,允许许多传感器连接到该端口。另外,该板具有触摸能力,并且TFT可以用作输入设备。

连接

固件
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获取温度和湿度数据。
float h = dht.readHumidity();
float t = dht.readTemperature();<br>
7.设置用于补偿的绝对湿度值,以提高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\t");
Serial.print("eCO2 ");
Serial.print(sgp.eCO2);
Serial.println(" ppm");<br>
9.在液晶显示屏上显示数值。
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需要一段时间进行准备。屏幕正常显示二氧化碳水平后,我尝试对SGP30稍作喘息,该值将增加,然后回到约400PPM。将董事会放在会议室中,两小时的会议结束后,CO2含量将增加到840PPM。
将酒精或洗发水放在木板旁边,随着蒸发,TVOC含量会迅速增加。

演示视频:

我使用其他ESP32 + DISPLAY模块来实现相同的监视器。这些监视器可以放在家里,小房间,办公室,温室或汽车中,以提醒我们及时更换新鲜空气,并更加注意空气质量。我可以将监视器与许多挥发性有机化合物一起放在车间中,以测量TVOC含量,提醒同事戴上口罩并改善空气质量,以保持健康。

 

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论