简介:

核心板还是随便在淘宝买的一款ESP32-S3-DevKitC-1,就是最近需要用到二氧化碳监测,买了一个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:

可能是我太小白了,感悟了一个思路,关于通信类模块的连接。先测试能不能正确接收到,测试模块监测的数据。而后再来进行后面的转换计算思路。多用串口。我要时刻提醒我自己!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐