NodeMCU SPI 接口连接 MQ135 传感器并读取数据
#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 秒钟,等待下一次读取。
原文地址: https://www.cveoy.top/t/topic/ngMj 著作权归作者所有。请勿转载和采集!