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线连接到电脑。

  1. 安装库文件

打开Arduino IDE,选择菜单栏的“工具”->“管理库”,在弹出的窗口中搜索“ModbusMaster”,点击“安装”按钮安装这个库文件。

  1. 编写代码

在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浓度和温度输出到串口。

  1. 上传代码并测试

将NodeMCU开发板通过USB线连接到电脑,选择对应的开发板和串口,点击“上传”按钮将代码上传到开发板上。上传完成后打开串口监视器,可以看到JW01二氧化碳传感器的CO2浓度和温度数据。

ArduinoIDE 下 nodemcu怎么使用RS485通信的JW01二氧化碳传感器怎么接线

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

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