RS485 Wind Speed Transmitter

简介

风向传感器是用于测量风的水平风速的专业气象仪器。其内部采用霍尔角度传感器,传感器的外壳和风杯均采用铝合金材料,使用特种模具精密压铸工艺,尺寸公差甚小表面精度甚高,内部电路均经过防护处理,整个传感器具有很高的强度、耐候性、防腐蚀和防水性。电缆接插件为军工插头,具有良好的防腐、防侵蚀性能,能够保证仪器长期使用。选用低惯性风向标感应风向,当风吹动风杯转动通过轴杆带动轴芯磁铁转动,通过计算得到准确的风速信息。可以测量0~32.4m/s风速,具有很高的性价比,可广泛用于气象、海洋、环境、机场、港口、实验室、工农业及交通等领域。

特性

技术规格

尺寸

使用说明书

1、线色说明

颜色 功能
红色 电源正
黑色 电源负
黄色 RS485+/A/T+
绿色 RS485-/B/T-

2、Modbus协议

参数名称 寄存器地址 功能类型 功能号 参数范围及说明 默认值
风速值 0x0000 INT16
只读
0x03/读 0-324
Modbus从机地址 0x1000 INT16
读写
0x03/读
0x10/写
0-255 2
风速值
参数范围 0-324 默认值:无
参数存储

意义:风向测量值

举例:如果返回的值是00 25(16进制,原码) = 0x0025 = 37,那么风速测量值为37/10=3.7m/s

Modbus从机地址(ADDRESS)
参数范围 0-255 默认值:2
参数存储 立即存储

Modbus地址,可设置为0-255。使用0地址可以设置任何地址。

  1. 读寄存器0x0000,即风速的测量值

    主机查询帧(16进制):02 03 00 00 00 01 84 39(8byt)

    从机地址 功能码 寄存器起始地址 寄存器长度 校验码高位 校验码低位
    1byt 1byt 2byt 2byt 1byt 1byt
    0x02 0x03 0x00 0x00 0x00 0x01 0x84 0x39

    从机应答帧(16进制):02 03 02 00 25 3D 9F(7byt)

    从机地址 功能码 有效字节数 数据区 校验码高位 校验码低位
    1byt 1byt 1byt 2byt 1byt 1byt
    0x02 0x03 0x02 0x00 0x25 0x3D 0x9F

    风速值为(16进制,原码)00 25 = 0x0025 = 37,那么风速测量值为37 / 10 = 3.7m/s

  2. 修改寄存器0x1000,即Modbus从机地址(ADDRESS)

    将即Modbus从机地址修改为03

    主机查询帧(16进制):00 10 10 00 00 01 02 00 03 FA 00(11byt)

    从机地址 功能码 寄存器起始地址 寄存器长度 有效字节数 写入的从机地址 校验码高位 校验码低位
    1byt 1byt 2byt 2byt 1byt 2byt 1byt 1byt
    0x00 0x10 0x10 0x00 0x00 0x01 0x02 0x00 0x03 FA 00

    从机应答帧(16进制):00 10 10 00 00 01 04 D8(7byt),即为修改成功。

在树莓派上使用

1、接线

这里需要用到USB转485模块

接线图

2、安装库和下载例程

在终端依次输入一下命令

cd /tmp
wget https://project-downloads.drogon.net/wiringpi-latest.deb   //下载wiringpi库
sudo dpkg -i wiringpi-latest.deb  //安装wiringpi库
cd .....                                                     //进入你想保存文件的目录
git clone https://github.com/DFRobotdl/RS485_Wind_Speed_Transmitter.git     //下载github上的程序
cd RS485_Wind_Speed_Transmitter/

3、主要API接口函数列表

/**
  @brief  initialize serial port
  @param  device Address of serial port,In Linux, it is the directory where the device is located.
  @return  Return 1 for initialization failure, and return 0 for initialization success
*/
unsigned char Init(char *device);

/**
  @brief  Modify address
  @param  Address1 For the current address, you can set any address with 0 address
  @param  Address2 The modified address.
  @return  A return value of 1 indicates success, and a return value of 0 indicates failure
*/
unsigned char ModifyAddress(unsigned char Address1, unsigned char Address2);

/**
  @brief  Read wind speed
  @param  Address The address where you want to read the data
  @return  The return value ≥0 indicates successful reading, the return value is wind speed, and the return value -1 indicates failed reading
*/
float readWindSpeed(unsigned char Address);

4、查看设备

在终端输入:

sudo ls -l /dev

找到你刚刚接入的设备

5、打开之前下载的min.c文件,将程序中程序中设备端口与实际改为一致并保存。

6、使用终端打开程序所在的文件夹,编译并运行

gcc -Wall -lwiringPi -o Wind_Speed *.c
sudo ./Wind_Speed

就看到准确的风速信息了

如何在Arduino和microbit主控上使用风速仪与风向仪?

点击查看:如何在Arduino和microbit 主控上使用风速仪与风向仪? ————RS485转UART

常见问题

还没有客户对此产品有任何问题,欢迎通过 qq 或者论坛联系我们! 更多问题及有趣的应用,可以访问论坛进行查阅或发帖

更多

DFRobot 商城购买链接