设为首页收藏本站

咖啡集成CAFFZ - 智能开发者社区

 找回密码
 立即注册
搜索
查看: 32|回复: 3

雨量计(品高PG-210)范例

[复制链接]

1111

经验值

161

帖子

2479

金币

积分
1114
发表于 2019-7-15 17:05:43 | 显示全部楼层 |阅读模式
#include <ModbusMaster.h>

ModbusMaster node;

void setup() {
  Serial.begin(9600); //设置波特率9600
  node.begin(2, Serial); //设置从机地址1
}

void loop() {
  uint8_t result = node.readHoldingRegisters(0x0000, 1); //设置寄存器地址0x00FF 数量
  //Serial.println(result);
  //Serial.println(node.ku8MBSuccess);
  if (result == node.ku8MBSuccess) { //检验是否读取成功
    for (int i = 0; i <1; i++) {
      String m=String(node.getResponseBuffer(i));
      Serial.println(m); //打印寄存器的值,要除以5
      Serial.println("===============");
      float ll=m.toFloat()/5;
      Serial.println(ll);
      //Serial.println("");
    }
  }
  delay(1000);
}


ModbusMaster-master.zip

266.16 KB, 下载次数: 0

ttl接线.txt

66 Bytes, 下载次数: 0

塑料雨量传感器排版A4(1).doc

367.24 KB, 下载次数: 0

1111

经验值

161

帖子

2479

金币

积分
1114
 楼主| 发表于 2019-7-15 17:09:54 | 显示全部楼层
(1)485转ttl :(一头接传感器,一头接Arduino板)
红色(V+): 电源正
黑色(G): 电源地
黄(T+): RS485+/A/T+
绿(T-): RS485-/B/T-

(2)接Arduion板:
485转TTL:   VCC    TXD  RXD    GND

  Arduino D1  5v      RX    TX       GND

1111

经验值

161

帖子

2479

金币

积分
1114
 楼主| 发表于 2019-7-15 17:23:58 | 显示全部楼层
数据库结果
1563182554(1).png

1111

经验值

161

帖子

2479

金币

积分
1114
 楼主| 发表于 2019-7-15 17:25:42 | 显示全部楼层
完整代码如下(含有 WIFI 连接功能,每分钟将雨量数据提交到服务器)

#include <ModbusMaster.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#define UKey "" // Yeelink提供的U-ApiKey
String ssid = "CAFFZ"; // 需要连接的wifi热点名称
String password = "www.caffz.com"; // 需要连接的wifi热点密码

ModbusMaster node;
float val=0;
bool flag=false;

/* 从服务器取得数据
*/
void readYeelinkData() {
  HTTPClient http;
  const String apiAddress = "/smart_farm/index.php?c=collector&a=insert&sn=1601&sv="+String(val);
  http.begin("cloud.caffz.com", 20000, apiAddress);
  int httpCode =  http.GET(); // 使用GET形式来取得数据
  Serial.print("code:");
  Serial.println(httpCode);
  if(httpCode == 200) { // 访问成功,取得返回参数
      String payload = http.getString();
      Serial.println(payload);
  } else { // 访问不成功,打印原因
     String payload = http.getString();
     Serial.print("context:");
     Serial.println(payload);
  }
}
void setup() {
  Serial.begin ( 9600 );
  node.begin(2, Serial); //设置从机地址1

  int connectCount = 0;
  WiFi.begin ( ssid.c_str(), password.c_str() );
  while ( WiFi.status() != WL_CONNECTED ) {
    delay ( 1000 );
    Serial.print ( "." );
    if(connectCount > 30) {
      Serial.println( "Connect fail!" );
      break;
    }
    connectCount += 1;
  }
  if(WiFi.status() == WL_CONNECTED) {
    Serial.println ( "" );
    Serial.print ( "Connected to " );
    Serial.println ( ssid );
    Serial.print ( "IP address: " );
    Serial.println ( WiFi.localIP() );
    connectCount = 0;
  }
  //readYeelinkData(); // 读取数据点测试

  flag=true;

}

void timerHdl()
{
  uint8_t result = node.readHoldingRegisters(0x0000, 1); //设置寄存器地址0x00FF 数量
  //Serial.println(result);
  //Serial.println(node.ku8MBSuccess);
  if (result == node.ku8MBSuccess) { //检验是否读取成功
    /*for (int i = 0; i <1; i++) {
      Serial.print(node.getResponseBuffer(i),HEX); //打印寄存器的值,要除以5
      //Serial.println("");
    }*/
    String m=String(node.getResponseBuffer(0));
    val=m.toFloat()/5;
    Serial.println("val==="+String(val));
    readYeelinkData();
  }
}

void loop() {
   if(flag==true)
   {
    timerHdl();
    delay(1000*60);
    }
}

高级模式
B Color Image Link Quote Code Smilies @朋友

本版积分规则

QQ|站点统计|Archiver|手机版|小黑屋|CAFFZ社区 - 每一天我们都有新的知识产生 ( 粤ICP备18101488号  

GMT+8, 2019-9-15 22:13 , Processed in 1.310403 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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