arduino modbusRTU通讯读取温湿度传感器数据-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7491|回复: 10

[未解决] arduino modbusRTU通讯读取温湿度传感器数据

[复制链接]
发表于 2020-9-25 09:44 | 显示全部楼层 |阅读模式
各位大神,求助你们arduino modbusRTU通讯读取温湿度传感器数据的问题
读取总不成功
还报地址不合法
读取语句和地址怎么编写好呢
这是我在IDE上输入的程序
#include <ArduinoModbus.h>
float temperature;
float humidity;
void setup() {
  Serial.begin(9600);
  while (!Serial);
  Serial.println("Modbus Temperature Humidity Sensor");
   if (!ModbusRTUClient.begin(9600))
  {
    Serial.println("Failed to start Modbus RTU Client!");
    while (1);
  }
  else{
     Serial.println("start Modbus RTU Client");
     delay(5000);
  }
}

void loop() {
  if (!ModbusRTUClient.requestFrom(1, HOLDING_REGISTERS, 0000, 2))
  {
    Serial.print("failed to read registers! ");
    Serial.println(ModbusRTUClient.lastError());
  } else
  {
    short rawtemperature = ModbusRTUClient.read();
    short rawhumidity = ModbusRTUClient.read();
    temperature = rawtemperature / 10.0;
    humidity = rawhumidity / 10.0;
    Serial.println(temperature);
    Serial.println(humidity);
  }

  delay(5000);
}

发表于 2020-9-26 12:30 | 显示全部楼层
直接串口通讯的方式读取就行了
 楼主| 发表于 2020-9-26 17:28 来自手机 | 显示全部楼层
您好能说的更具体点吗?我是通讯小白。我在程序中把arduino做为主站,温度变送器做为从站,调用MIDBUS库函数发读请求,然后读数据。可是监示器总显示地址非法,好像还有语法错误。该怎么做才好呢
 楼主| 发表于 2020-9-28 09:32 | 显示全部楼层
XlinliY.Zhang 发表于 2020-9-26 12:30
直接串口通讯的方式读取就行了

您好,您说的直接串口通讯是直接发送数组,然后再读取返回的数组吗
发表于 2020-9-29 12:37 | 显示全部楼层
819589474 发表于 2020-9-28 09:32
您好,您说的直接串口通讯是直接发送数组,然后再读取返回的数组吗

是               
 楼主| 发表于 2020-9-29 14:13 来自手机 | 显示全部楼层
谢谢您,我试一下
发表于 2020-10-3 09:51 来自手机 | 显示全部楼层
你的问题解决了吗
 楼主| 发表于 2020-10-3 16:35 来自手机 | 显示全部楼层
没有呢,谢谢您的记挂。您有做过这个吗?
发表于 2020-10-3 16:51 | 显示全部楼层
819589474 发表于 2020-10-3 16:35
没有呢,谢谢您的记挂。您有做过这个吗?

有需要可以有偿提供援助
 楼主| 发表于 2020-10-3 17:42 来自手机 | 显示全部楼层
哦,这个有偿费用高不?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 22:53 , Processed in 0.101133 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表