APRS气象站传感器套件

Weather Station Sensor (SKU: SEN0186)

目录

1 简介
2 产品参数
3 应用
4 数据接口
5 数据输出格式
6 指示灯
7 使用教程

7.1 连接示意图
7.2 示例代码
7.3 结果

8 更多

8.1 购买链接

简介
DFRobot为您带来这款集成了风速计、风向仪和雨量器的新版气象站套件。所有数据都可通过串口直接读取。同时兼容Arduino设备,方便用户使用。 配合DFRobot其他的传感器,可以有效地检测区域性的风速,风向,降雨量的天气参数,可以广泛应用于农业,工业,气候研究领域。
注意:2016/3/28 更新:升级温湿度传感器,提升测量范围

产品参数
工作电压: 5V
温度范围: -40 - 80℃
湿度范围: 0~99%
包装尺寸: 201830 CM
重量:4480g

应用
气象站
天气监测

数据接口
Weather Station board
接口板有2个数据输出口
DATA 接口速率2400,1 秒间隔输出。
TTL TXD 接口9600 速率(调试用),1 秒间隔输出。

数据输出格式
c000s000g000t086r000p000h53b10020
每秒输出37个字节,包括数据末尾的换行符CR/LF。
数据解析:

c000:风向角度,单位:度。
s000:前1 分钟风速,单位:英里每小时
g000:前5 分钟最高风速,单位:英里每小时
t086:温度(华氏)
r000:前一小时雨量(0.01 英寸)
p000:前24 小时内的降雨量(0.01 英寸)
h53:湿度(00%= 100%)
b10020:气压(0.1 hpa)

Note:
注1:
接口板会自动检测是否安装了气压片、温湿度传感器,没有安装的传感器数据将显示“...”。
比如没有安装温湿度传感器和气压片,则输出数据:
c000s0000g0000t...r000p000h..b.....

指示灯 STU 指示灯:随风速、雨量传感器通断状态同步闪动。 LINK 指示灯:随DATA 输出输出闪动。

使用教程
连接示意图
气象站接口板连接示意图
示例代码
注意在下载程序前,请先拔掉连接在主控器上的RX和TX接线,不然会妨碍程序下载

char databuffer[35];
double temp;

void getBuffer() //Get weather status data
{
int index;
for (index = 0;index < 35;index ++)
{
if(Serial.available())
{
databuffer[index] = Serial.read();
if (databuffer[

int transCharToInt(char *_buffer,int _start,int _stop) //char to int)
{
int _index;
int result = 0;
int num = _stop - _start + 1;
int _temp[num];
for (_index = _start;_index <= _stop;_index ++)
{
_temp[_index - _start] = _buffer[_index] - '0';
result = 10*result + _temp[_index - _start];
}
return result;
}

int WindDirection() //Wind Direction
{
return transCharToInt(databuffer,1,3);
}

float WindSpeedAverage() //air Speed (1 minute)
{
temp = 0.44704 * transCharToInt(databuffer,5,7);
return temp;
}

float WindSpeedMax() //Max air speed (5 minutes)
{
temp = 0.44704 * transCharToInt(databuffer,9,11);
return temp;
}

float Temperature() //Temperature ("C")
{
temp = (transCharToInt(databuffer,13,15) - 32.00) * 5.00 / 9.00;
return temp;
}

float RainfallOneHour() //Rainfall (1 hour)
{
temp = transCharToInt(databuffer,17,19) * 25.40 * 0.01;
return temp;
}

float RainfallOneDay() //Rainfall (24 hours)
{
temp = transCharToInt(databuffer,21,23) * 25.40 * 0.01;
return temp;
}

int Humidity() //Humidity
{
return transCharToInt(databuffer,25,26);
}

float BarPressure() //Barometric Pressure
{
temp = transCharToInt(databuffer,28,32);
return temp / 10.00;
}

void setup()
{
Serial.begin(9600);
}
void loop()
{
getBuffer(); //Begin!
Serial.print("Wind Direction: ");
Serial.print(WindDirection());
Serial.println(" ");
Serial.print("Average Wind Speed (One Minute): ");
Serial.print(WindSpeedAverage());
Serial.println("m/s ");
Serial.print("Max Wind Speed (Five Minutes): ");
Serial.print(WindSpeedMax());
Serial.println("m/s");
Serial.print("Rain Fall (One Hour): ");
Serial.print(RainfallOneHour());
Serial.println("mm ");
Serial.print("Rain Fall (24 Hour): ");
Serial.print(RainfallOneDay());
Serial.println("mm");
Serial.print("Temperature: ");
Serial.print(Temperature());
Serial.println("C ");
Serial.print("Humidity: ");
Serial.print(Humidity());
Serial.println("% ");
Serial.print("Barometric Pressure: ");
Serial.print(BarPressure());
Serial.println("hPa");
Serial.println("");
Serial.println("");
}

结果
SEN0186 serial monitor.png
注:由于测试环境没有风这一因素,所有关于风速和风向的参数都为0

更多
购买链接
Nextredirectltr.png购买 APRS气象站传感器套件(SKU:SEN0186)

标签: Arduino传感器