我想实现arduion获取dht11数据然后通过modbus-rtu发送,但是我的数据目前总是发不过去
#include <ModbusRtu.h>
#include <DHT.h>
#define DHTPIN 12 // DHT11连接到Arduino的数字引脚2
#define DHTTYPE DHT11 // DHT11型号传感器
// Modbus从站对象和共享数据数组
Modbus slave(1, Serial, 0); // 从站地址为1
uint16_t au16data[2]; // 多两个元素用于存储DHT11的湿度和温度数据
// DHT11传感器对象
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(19200);
dht.begin(); // 启动DHT11传感器
slave.start(); // 启动Modbus从站
}
void loop() {
// 读取DHT11的湿度和温度数据并将其添加到共享数据数组中
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (!isnan(humidity)) {
//humidityValue = (uint16_t)(humidity * 10);
au16data[0] = humidity; // 将湿度值存储在数组的倒数第二个元素中
}
if (!isnan(temperature)) {
//temperatureValue = (int16_t)(temperature * 10);
au16data[1] = temperature; // 将温度值存储在数组的最后一个元素中
}
// 轮询Modbus从站,等待主站发送请求
slave.poll(au16data, 2);
delay(2000);
}
我是放到这个au16data数组里然后发送出去,但是我用modbus-poll工具检测到读不到数据,但是arduion的TX RX确实也在发送,因为硬件信号灯闪烁,有朋友知道问题吗,不胜感激