简介:
就是最近需要用到二氧化碳监测,买了一个JW01用来监测环境Co2的浓度。开始怎么尝试都计算不出来,机缘巧合终于测试出来数据了。
注意有两款:
一款单测Co2,另一款可以测试多种。我就买错了。
我一直无法计算出Co2的浓度,最大的原因就是图示模块标注的这个5V,我用ESP32S3的话,最后尝试的是3.3V,完成了数据的传输。
代码的话就是直接根据数据手册,也有大佬给出了代码:
jw01二氧化碳CO2传感器(三合一jw01 v2.2)使用方法:esp8266 nodemcu CH340,arduino_jw01二氧化碳传感器-CSDN博客
代码我也贴在这了:
#include <HardwareSerial.h>
#include "public.h"
#define RX1 15
#define TX1 16
HardwareSerial Co2(1);
void setup() {
Serial.begin(9600);
Co2.begin(9600,SERIAL_8N1,RX1,TX1);
}
void loop() {
const int packetSize = 6;
byte packet[packetSize];
if(Co2.available() > 0){
for(int i = 0 ; i < packetSize ; i++){
packet[i] = Co2.read();
}
int co2 = (packet[1] * 256) + packet[2];
Serial.print("CO2 Concentration: ");
Serial.print(co2);
Serial.println(" PPM");
}
delay(500);
}
主要就是想强调供电电压那个地方。害的我好惨。
PS:
可能是我太小白了,感悟了一个思路,关于通信类模块的连接。先测试能不能正确接收到,测试模块监测的数据。而后再来进行后面的转换计算思路。多用串口。我要时刻提醒我自己!
标签:Co2,S3,packetSize,ESP32,packet,int,JW01,jw01,Serial From: https://blog.csdn.net/2301_81377064/article/details/140877737