#include <SPI.h>

const int CS_PIN = D8; // 将 MQ135 传感器的 CS 引脚连接到 NodeMCU 的 D8 引脚

void setup() { Serial.begin(9600); pinMode(CS_PIN, OUTPUT); SPI.begin(); }

void loop() { digitalWrite(CS_PIN, LOW); // 使 MQ135 传感器的 CS 引脚输出低电平 delay(10); // 等待传感器稳定

// 发送读取命令,并读取传感器返回的数据 byte data[2]; SPI.transfer(0x01); // 发送读取命令 data[0] = SPI.transfer(0x00); // 读取高位数据 data[1] = SPI.transfer(0x00); // 读取低位数据

digitalWrite(CS_PIN, HIGH); // 使 MQ135 传感器的 CS 引脚输出高电平

// 将读取的数据转换为 PPM 值 int ppm = ((data[0] << 8) | data[1]) / 10;

Serial.print("MQ135 PPM: "); Serial.println(ppm);

delay(1000); }

说明:

  • 在 setup() 函数中,设置了串口通信和 MQ135 传感器的 CS 引脚为输出模式,并初始化了 SPI 库。
  • 在 loop() 函数中,先将 MQ135 传感器的 CS 引脚输出低电平,然后发送读取命令,并读取传感器返回的数据。
  • 读取的数据为 16 位,其中高位数据在第一个字节,低位数据在第二个字节。将读取的数据转换为 PPM 值并输出到串口中。
  • 最后延时 1 秒钟,等待下一次读取。
NodeMCU SPI 接口连接 MQ135 传感器并读取数据

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

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