可以使用数字输入引脚来读取 MQ135 模块的输出值,然后将其转化为二氧化碳浓度数据。

具体实现步骤如下:

  1. 在 Arduino IDE 中选择 NodeMCU 开发板,并将其连接到电脑上。

  2. 在程序中定义一个数字输入引脚,用于接收 MQ135 模块的输出信号。

#define MQ_PIN D5 //数字输入引脚
  1. 在程序中初始化串口和 Wi-Fi 连接。
void setup() {
  Serial.begin(9600); //初始化串口
  WiFi.begin(ssid, password); //初始化 Wi-Fi 连接
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  Serial.println("Connected to WiFi");
}
  1. 在程序中定义一个函数,用于读取 MQ135 模块的输出值,并将其转化为二氧化碳浓度数据。
float getCO2() {
  int val = analogRead(MQ_PIN); //读取 MQ135 模块的输出值
  float voltage = val / 1024.0 * 5.0; //将模拟值转化为电压值
  float Rs = (5.0 - voltage) / voltage * RLOAD; //计算 MQ135 模块的电阻值
  float ratio = Rs / RZERO; //计算 MQ135 模块的电阻比值
  float ppm = pow(10, ((log10(ratio) - B) / A)); //计算二氧化碳浓度数据
  return ppm; //返回二氧化碳浓度数据
}

其中,RLOAD 为电路中的负载电阻,RZERO、A 和 B 为 MQ135 模块的相关参数,可以在数据手册中查找。

  1. 在程序中使用 getCO2() 函数来读取 MQ135 模块的输出值,并将其打印出来。
void loop() {
  float co2 = getCO2(); //读取 MQ135 模块的输出值
  Serial.print("CO2 Concentration: ");
  Serial.print(co2);
  Serial.println(" ppm");
  delay(1000);
}

注意:为了提高精度,需要对 MQ135 模块进行预热,并根据实际情况调整相关参数。同时,为了避免数字输入引脚被干扰,需要将其与 GND 之间加上一个电阻。


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

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