以下是Arduino IDE下nodemcu控制UART协议的JW01采集二氧化碳代码:

#include <SoftwareSerial.h>  //引用软串口库

SoftwareSerial mySerial(4, 5);  //定义软串口,4为RX,5为TX

void setup() {
  Serial.begin(9600);  //初始化串口
  mySerial.begin(9600);  //初始化软串口
}

void loop() {
  mySerial.write(0xff);  //发送命令,开始采集
  mySerial.write(0x01);
  mySerial.write(0x86);
  mySerial.write(0x00);
  mySerial.write(0x00);
  mySerial.write(0x00);
  mySerial.write(0x00);
  mySerial.write(0x00);
  mySerial.write(0x79);
  delay(10);  //等待采集完成
  while (mySerial.available()) {
    byte high = mySerial.read();  //读取高位数据
    byte low = mySerial.read();  //读取低位数据
    int co2 = (high << 8) | low;  //组成完整数据
    Serial.print("CO2: ");  //输出数据
    Serial.println(co2);
  }
  delay(2000);  //延迟2秒后再次采集
}

需要注意的是,JW01采集二氧化碳的协议为UART协议,需要使用软串口库进行通信。在代码中,使用mySerial.write()发送命令,使用mySerial.read()读取数据。在读取数据时,先读取高位数据,再读取低位数据,组成完整数据后输出。同时,需要使用delay()等待采集完成和延迟采集间隔时间。


原文地址: https://www.cveoy.top/t/topic/bTch 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录