Arduino IDE 下使用 RS485 与 JW01 二氧化碳传感器通信
Arduino IDE 下使用 RS485 与 JW01 二氧化碳传感器通信
本教程将指导您如何在 Arduino IDE 下使用 RS485 模块与 JW01 二氧化碳传感器进行通信,并提供代码示例和连接方法。
1. 连接硬件
首先,准备好以下硬件:
- NodeMCU 开发板
- JW01 二氧化碳传感器
- RS485 转 TTL 模块
- 杜邦线若干
将 RS485 转 TTL 模块的 A、B、GND 三个引脚分别连接到 JW01 二氧化碳传感器上的 A、B、GND 三个引脚上。然后将模块的 VCC、GND、TX、RX 四个引脚分别连接到 NodeMCU 开发板上的 3.3V、GND、D2、D1 四个引脚上。最后将 NodeMCU 开发板通过 USB 线连接到电脑。
2. 安装库文件
打开 Arduino IDE,选择菜单栏的“工具” -> “管理库”,在弹出的窗口中搜索“ModbusMaster”,点击“安装”按钮安装这个库文件。
3. 编写代码
在 Arduino IDE 中新建一个项目,然后将以下代码粘贴进去:
#include <ModbusMaster.h>
// 定义 RS485 转 TTL 模块的引脚
#define RS485_RX D2
#define RS485_TX D1
// 定义 JW01 二氧化碳传感器的 Modbus 地址
#define JW01_SLAVE_ID 1
// 创建一个 ModbusMaster 对象
ModbusMaster node(RS485_TX, RS485_RX);
void setup() {
Serial.begin(9600);
while (!Serial);
// 初始化 RS485 转 TTL 模块
pinMode(RS485_RX, INPUT);
pinMode(RS485_TX, OUTPUT);
// 初始化 ModbusMaster
node.begin(JW01_SLAVE_ID);
}
void loop() {
// 读取 JW01 二氧化碳传感器的数据
uint16_t data[2];
uint8_t result = node.readHoldingRegisters(0x0001, 2);
if (result == node.ku8MBSuccess) {
Serial.print("CO2 Concentration: ");
Serial.print(data[0]);
Serial.println(" ppm");
Serial.print("Temperature: ");
Serial.print((int16_t)data[1] / 10.0);
Serial.println(" ℃");
} else {
Serial.println("Read data failed.");
}
delay(1000);
}
代码中首先定义了 RS485 转 TTL 模块的引脚和 JW01 二氧化碳传感器的 Modbus 地址。然后创建了一个 ModbusMaster 对象,并在 setup() 函数中初始化了 RS485 转 TTL 模块和 ModbusMaster。在 loop() 函数中,通过 ModbusMaster 读取 JW01 二氧化碳传感器的数据,然后将 CO2 浓度和温度输出到串口。
4. 上传代码并测试
将 NodeMCU 开发板通过 USB 线连接到电脑,选择对应的开发板和串口,点击“上传”按钮将代码上传到开发板上。上传完成后打开串口监视器,可以看到 JW01 二氧化碳传感器的 CO2 浓度和温度数据。
原文地址: https://www.cveoy.top/t/topic/ngGE 著作权归作者所有。请勿转载和采集!