遥测终端机SDI-12;SDI-12

网站导航

技术文章

当前位置: 首页 > 技术文章
SDI-12传感器数据采集
时间:2025-04-08 15:40:40 点击次数:

SDI-12传感器数据采集

1.     SDI-12传感器接线。

VOUT1:+12V

GND:电压负极

SDI:SDI-12数据线

2.     配置中选择SDI-12传感器,此处使员的是SDI-12一体式的温湿度气压传感器,地址为‘0’也就是十进制48。

image.png

勾选对应的传感器并修改地址

 需要注意的是,SDI-12协议的通讯地址为ASCII编码的0-9 A-Z a-z范围,需要转换为对应的十进制数据。

表:SDI-12传感器地址与RTU地址对应表

SDI-12地址

RTU中传感器地址

0

48

1

49

2

50

3

51

4

52

5

53

6

54

7

55

8

56

9

57

A

65

Z

90

a

97

z

122

 

3.     采集数据。

 

设置好RTU之后会定时采集数据

收到的数据与调试信息如下:

0-0:13:58.423 [INFO]    接收数据长度:29->0+1.685+27.0+0.4735+100.712

 

0-0:13:58.425 [INFO]    温度:27.000000

0-0:13:58.427 [INFO]    湿度:0.473500

0-0:13:58.428 [INFO]    气压:100.711998

 

image.png

上位机上采集的数据

 

4.     SDI-12采集数据的命令

SDI12_SendBreak();                                                               //发送唤醒

 

        sprintf(CmdBuff, "%cM!", (char)RH_GetSensorAddr(num));                           //发送0M!

        if (SDI12_SendCmdAndResponse(/*"0M!"*/CmdBuff, &pData) > 0)                    //发送采集命令

        {

               if (SDI12_WaitResponse(2000, &pData) > 0)                                        //等待响应,就是采集完成

               {

                      sprintf(CmdBuff, "%cD0!", (char)RH_GetSensorAddr(num));            //发送0D0!

                      if (SDI12_SendCmdAndResponse(/*"0D0!"*/CmdBuff, &pData) > 0)//发送读取数据命令

                      {

                             if (TRUE == GetTempData((char*)pData, pSensorData))

                             {

                                    error = SENSORS_OK;

                                    break;

                             }

                             else

                             {

                                    error = SENSORS_INVALID;

                             }

                      }

 

               }

        }

 

首先发送break唤醒设备,然后发送0M!开始采集数据,等待数据采集完成后,发送0D0!读取数据,之后就可以收到数据的响应,并进行解析。

 

 

5.     SDI-12简介

SDI-12数据记录器和传感器通过数据线交换ASCII码来进行通讯。数据记录器向数据线上发出中断唤醒传感器,数据线上中断持续时间须大于12毫秒。数据记录器发送一个指令。 传感器返回一个相应的响应, 一个指令对应一个相应的传感器。 每个指令的第一个字符对应于记录器需要与之通讯的传感器地址。SDI-12 总线上的其他传感器不响应此指令继续处于低功率待机状态。当数据记录器向一个传感器发出开始测量指令,记录器在这台传感器的数据收集完成前不和其他传感器之间进行通讯。


如果您有任何问题,请跟我们联系!

欢迎来电:18571629282

Copyright © 2024 武汉水测家科技有限公司 版权所有  鄂ICP备2022002065号-1   --WTRExpert English website--

XML地图

QQ在线咨询
销售(微信同号)
18571629282
技术(微信同号)
13871206075