Ultrasonic 7-in-1 RS485 Weather Sensor for Arduino (Wind Speed, Wind Direction, Temp, Humidity, Pressure, Light, Rain) - DFRobot

Ultrasonic 7-in-1 RS485 Weather Sensor for Arduino (Wind Speed, Wind Direction, Temp, Humidity, Pressure, Light, Rain) - DFRobot
Ultrasonic 7-in-1 RS485 Weather Sensor for Arduino (Wind Speed, Wind Direction, Temp, Humidity, Pressure, Light, Rain) - DFRobotUltrasonic 7-in-1 RS485 Weather Sensor for Arduino (Wind Speed, Wind Direction, Temp, Humidity, Pressure, Light, Rain) - DFRobotUltrasonic 7-in-1 RS485 Weather Sensor for Arduino (Wind Speed, Wind Direction, Temp, Humidity, Pressure, Light, Rain) - DFRobotUltrasonic 7-in-1 RS485 Weather Sensor for Arduino (Wind Speed, Wind Direction, Temp, Humidity, Pressure, Light, Rain) - DFRobotUltrasonic 7-in-1 RS485 Weather Sensor for Arduino (Wind Speed, Wind Direction, Temp, Humidity, Pressure, Light, Rain) - DFRobotUltrasonic 7-in-1 RS485 Weather Sensor for Arduino (Wind Speed, Wind Direction, Temp, Humidity, Pressure, Light, Rain) - DFRobotUltrasonic 7-in-1 RS485 Weather Sensor for Arduino (Wind Speed, Wind Direction, Temp, Humidity, Pressure, Light, Rain) - DFRobotUltrasonic 7-in-1 RS485 Weather Sensor for Arduino (Wind Speed, Wind Direction, Temp, Humidity, Pressure, Light, Rain) - DFRobotUltrasonic 7-in-1 RS485 Weather Sensor for Arduino (Wind Speed, Wind Direction, Temp, Humidity, Pressure, Light, Rain) - DFRobotUltrasonic 7-in-1 RS485 Weather Sensor for Arduino (Wind Speed, Wind Direction, Temp, Humidity, Pressure, Light, Rain) - DFRobotUltrasonic 7-in-1 RS485 Weather Sensor for Arduino (Wind Speed, Wind Direction, Temp, Humidity, Pressure, Light, Rain) - DFRobotUltrasonic 7-in-1 RS485 Weather Sensor for Arduino (Wind Speed, Wind Direction, Temp, Humidity, Pressure, Light, Rain) - DFRobotUltrasonic 7-in-1 RS485 Weather Sensor for Arduino (Wind Speed, Wind Direction, Temp, Humidity, Pressure, Light, Rain) - DFRobot
รหัสสินค้า AS20575
หมวดหมู่ วัดสภาพแวดล้อมและแก๊ส Environmental / Gas
ราคา 11,185.00 บาท
สถานะสินค้า พร้อมส่ง
จำนวน
ชิ้น
หยิบลงตะกร้า
หนังสือรับรองบริษัท
บุ๊คแบ๊งค์
คุ้มครองโดย LnwPay

ดูรายละเอียดการใช้งานได้ที่ Click


Introduction

Tired of juggling multiple sensors for comprehensive weather data? This ultrasonic all-in-one RS485 7-in-1 Weather Station delivers precise environmental insights, simplifying setup and integration, especially with Arduino systems. Get reliable measurements for wind speed and direction, temperature, humidity, atmospheric pressure, light intensity, and rainfall from a single, robust unit.

All-in-One Precision Sensing with Advanced Technology
Gain a complete environmental picture with seven crucial meteorological parameters measured by this single, integrated sensor. It features advanced ultrasonic wind sensing – meaning no moving parts for superior accuracy, longevity, and minimal maintenance – alongside a highly sensitive optical tipping bucket rain gauge (resolution 0.1mm, accuracy ±4%). This ensures you receive comprehensive and reliable data for all key weather conditions.

High Accuracy Optical Tipping Bucket Rain Gauge
Robust Industrial-Grade Design & Communication
Engineered for dependability in harsh outdoor environments, the UV-resistant, IP54 waterproof ABS housing ensures long-term performance. Data transmission is reliable and versatile thanks to the standard RS485 output and Modbus-RTU protocol, facilitating stable, long-distance communication and seamless integration into industrial control systems, LoRaWAN setups, and other data acquisition platforms.

RS485 Weather Station with IP54 waterproof ABS Housing

Versatile Powering & Simplified Arduino Integration
Benefit from installation flexibility with a wide DC 10V∼30V power input range. Getting started is straightforward, particularly for Arduino users, with the provided example tutorial enabling quick sensor performance verification and rapid data access for your projects.

RS485 Weather Station Detect 7 Crucial Meteorological Parameters


Applications

  • Meteorological Observation & Research
  • Agricultural Greenhouse Management & Precision Farming
  • Smart Industry & Industrial Automation
  • Ship Safety Monitoring & Marine Applications
  • Urban Environmental Monitoring Stations

Specification

  • Power Supply Voltage: DC 10V∼30V
  • Working Current: <10mA
  • Output Interface: RS485 (Modbus-RTU protocol)
  • Measured Parameters: Ultrasonic Wind Speed & Direction, Temperature, Humidity, Atmospheric Pressure, Light Intensity, Rainfall
  • Measurement Range:
         Wind Speed: 0∼40 m/s (Startup Wind Speed: 0.5 m/s)
         Wind Direction: 0∼359∘
         Humidity: 0∼99%RH
         Temperature: −40∘C∼80∘C
         Atmospheric Pressure: 0∼120 kPa
         Light Intensity: 0∼200000 Lux
         Rainfall Intensity: ≤4 mm/min
  • Measurement Accuracy:
         Wind Speed: ±(0.5+2%FS) (60%RH,25∘C)
         Wind Direction: ±3∘ (60%RH,25∘C)
         Humidity: ±3%RH (60%RH,25∘C)
         Temperature: ±0.5∘C (25∘C)
         Atmospheric Pressure: ±0.15 kPa (101 kPa,25∘C)
         Light Intensity: ±7% (25∘C)
         Rainfall: ±4%
  • Response Time:
         Wind Speed: 1s
         Wind Direction: 1s
         Humidity: ≤25s
         Temperature: ≤8s
         Atmospheric Pressure: ≤2s
         Light Intensity: ≤2s
  • Long-Term Stability:
         Humidity: ≤1%/year
         Temperature: ≤0.1∘C/year
         Atmospheric Pressure: −0.1 kPa/year
         Light Intensity: ≤5%/year
  • Protection Level: IP54
  • Housing Material: ABS Polymer Plastic
  • Sensor Cable Length: 14cm
  • Adapter Cable Length: 150cm

Documents

Shipping List

  • RS485 9-in-1 Weather Station Sensor x1
  • Adapter Cable x1

Tutorial

Requirements

Connection Diagram

If the power of the RS485 device is small and the required current is less than 12V-160mA, the RS485 to UART signal conversion module does not require a 12V external power supply, making wiring more convenient.

Sample Code

#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); //TX,RX
uint8_t Com[8] = { 0x01, 0x03, 0x01, 0xF4, 0x00, 0x04, 0x04, 0x07 }; //Wind speed and direction
uint8_t Com1[8] = { 0x01, 0x03, 0x01, 0xF8, 0x00, 0x02, 0x44, 0x06 }; //Temperature and humidity
uint8_t Com2[8] = { 0x01, 0x03, 0x01, 0xFD, 0x00, 0x03, 0x95, 0xC7 }; //Atmospheric pressure, light
uint8_t Com3[8] = { 0x01, 0x03, 0x02, 0x01, 0x00, 0x01, 0xD4, 0x72 }; //Rainfall
float tem, hum, ws, ap;
int wd, wdangle, lux;

void setup() {
Serial.begin(9600);
mySerial.begin(4800);
}
void loop() {
readhumiture();
Serial.print("TEM = ");
Serial.print(tem, 1);
Serial.print("°C ");
Serial.print("HUM = ");
Serial.print(hum, 1);
Serial.print("%RH ");

readAtmosphericPressure_Light();
Serial.print("AP = ");
Serial.print(ap, 1);
Serial.print("Kpa ");
Serial.print("Lux = ");
Serial.print(lux);
Serial.print("(lux) ");

float Rain = readRainfall();
Serial.print("Rain = ");
Serial.print(Rain, 1);
Serial.println("mm ");

readWindSpeed_WindDirection();
Serial.print("Wind Speed = ");
Serial.print(ws, 1);
Serial.print("m/s ");
Serial.print("Wind Direction = ");
Serial.print(wd);
Serial.print(" WindDirection_Angle = ");
Serial.print(wdangle);
Serial.println("° ");
Serial.println(" ");
delay(2000);
}

void readWindSpeed_WindDirection(void) {
uint8_t Data[12] = { 0 };
uint8_t ch = 0;
bool flag = 1;
long timeStart = millis();
long timeStart1 = 0;
while (flag) {

if ((millis() - timeStart1) > 100) {
while (mySerial.available() > 0) {
mySerial.read();
}
mySerial.write(Com, 8);
timeStart1 = millis();
}

if ((millis() - timeStart) > 1000) {
Serial.println("Time out");
return -1;
}

if (readN(&ch, 1) == 1) {
if (ch == 0x01) {
Data[0] = ch;
if (readN(&ch, 1) == 1) {
if (ch == 0x03) {
Data[1] = ch;
if (readN(&ch, 1) == 1) {
if (ch == 0x08) {
Data[2] = ch;
if (readN(&Data[3], 10) == 10) {
if (CRC16_2(Data, 11) == (Data[11] * 256 + Data[12])) {
ws = (Data[3] * 256 + Data[4]) / 100.00;
wd = Data[7] * 256 + Data[8];
wdangle = Data[9] * 256 + Data[10];
flag = 0;
}
}
}
}
}
}
}
}
}
}


void readhumiture(void) {
uint8_t Data[10] = { 0 };
uint8_t ch = 0;
bool flag = 1;
long timeStart = millis();
long timeStart1 = 0;
while (flag) {

if ((millis() - timeStart1) > 100) {
while (mySerial.available() > 0) {
mySerial.read();
}
mySerial.write(Com1, 8);
timeStart1 = millis();
}

if ((millis() - timeStart) > 1000) {
Serial.println("Time out1");
return -1;
}

if (readN(&ch, 1) == 1) {
if (ch == 0x01) {
Data[0] = ch;
if (readN(&ch, 1) == 1) {
if (ch == 0x03) {
Data[1] = ch;
if (readN(&ch, 1) == 1) {
if (ch == 0x04) {
Data[2] = ch;
if (readN(&Data[3], 6) == 6) {
if (CRC16_2(Data, 7) == (Data[7] * 256 + Data[8])) {
hum = (Data[3] * 256 + Data[4]) / 10.00;
tem = (Data[5] * 256 + Data[6]) / 10.00;
flag = 0;
}
}
}
}
}
}
}
}
}
}


void readAtmosphericPressure_Light(void) {
uint8_t Data[10] = { 0 };
uint8_t ch = 0;
long timeStart = millis();
long timeStart1 = 0;
bool flag = 1;
while (flag) {

if ((millis() - timeStart1) > 100) {
while (mySerial.available() > 0) {
mySerial.read();
}
mySerial.write(Com2, 8);
timeStart1 = millis();
}


if ((millis() - timeStart) > 1000) {
Serial.println("Time out2");
return -1;
}

if (readN(&ch, 1) == 1) {
if (ch == 0x01) {
Data[0] = ch;
if (readN(&ch, 1) == 1) {
if (ch == 0x03) {
Data[1] = ch;
if (readN(&ch, 1) == 1) {
if (ch == 0x06) {
Data[2] = ch;
if (readN(&Data[3], 8) == 8) {
if (CRC16_2(Data, 9) == (Data[9] * 256 + Data[10])) {
ap = (Data[3] * 256 + Data[4]) / 10.00;
lux = Data[5] << 24 | Data[6] << 16 | Data[7] << 8 | Data[8];
flag = 0;
}
}
}
}
}
}
}
}
}
}

float readRainfall(void) {
uint8_t Data[10] = { 0 };
uint8_t ch = 0;
long timeStart = millis();
long timeStart1 = 0;
bool flag = 1;
float data;
while (flag) {

if ((millis() - timeStart1) > 100) {
while (mySerial.available() > 0) {
mySerial.read();
}
mySerial.write(Com3, 8);
timeStart1 = millis();
}


if ((millis() - timeStart) > 1000) {
Serial.println("Time out3");
return -1;
}

if (readN(&ch, 1) == 1) {
if (ch == 0x01) {
Data[0] = ch;
if (readN(&ch, 1) == 1) {
if (ch == 0x03) {
Data[1] = ch;
if (readN(&ch, 1) == 1) {
if (ch == 0x02) {
Data[2] = ch;
if (readN(&Data[3], 4) == 4) {
if (CRC16_2(Data, 5) == (Data[5] * 256 + Data[6])) {
data = (Data[3] * 256 + Data[4]) / 10.00;
flag = 0;
}
}
}
}
}
}
}
}
}
return data;
}



uint8_t readN(uint8_t *buf, size_t len) {
size_t offset = 0, left = len;
int16_t Tineout = 500;
uint8_t *buffer = buf;
long curr = millis();
while (left) {
if (mySerial.available()) {
buffer[offset] = mySerial.read();
offset++;
left--;
}
if (millis() - curr > Tineout) {
break;
}
}
return offset;
}

unsigned int CRC16_2(unsigned char *buf, int len) {
unsigned int crc = 0xFFFF;
for (int pos = 0; pos < len; pos++) {
crc ^= (unsigned int)buf[pos];
for (int i = 8; i != 0; i--) {
if ((crc & 0x0001) != 0) {
crc >>= 1;
crc ^= 0xA001;
} else {
crc >>= 1;
}
}
}

crc = ((crc & 0x00ff) << 8) | ((crc & 0xff00) >> 8);
return crc;
}

Expected Results

Print the collected ultrasonic wind speed and direction values, temperature values, humidity values, atmospheric pressure values, light values, and rainfall values

Installation Instructions

When measuring wind speed and direction, the N-shaped direction on the weather station sensor should be installed facing due north to avoid errors.
The applicable range of the bottom mounting bar: 46-51mm



FAQ

  1. The computer has multiple COM ports, and the selected port is incorrect.
  2. The device address is wrong, or there are devices with duplicate addresses (all factory defaults are 1).
  3. Baud rate, check mode, data bit, stop bit error.
  4. Host polling interval and waiting response time are too short, both need to be set above 200ms.
  5. 485 bus is disconnected, or A and B lines are connected in reverse.
  6. Too many devices or too long wiring, power supply should be provided nearby, 485 enhancer should be added, and 120Ω terminal resistance should be added.
  7. USB to 485 driver is not installed or damaged.
  8. Equipment is damaged.

Note: To ensure the accuracy of the equipment, please clean the lower surface of the measuring area of the equipment regularly to keep it clean and free of dust or other foreign matter.

วิธีการชำระเงิน

ชำระเงินค่าสินค้าโดยการโอนเงินเข้าบัญชีธนาคาร KBANK, SCB, BBL,TMB

กรุณาเก็บหลักฐานการโอนเงินของท่านไว้เพื่อแจ้งการชำระเงินด้วยค่ะ

 

ท่านสามารถแจ้งการชำระเงินผ่านระบบอัตโนมัติได้โดย Click Link ข้างล่างค่ะ

https://www.arduitronics.com/informpayment

 

บมจ. ธนาคารกสิกรไทย สาขาเซ็นทรัล แจ้งวัฒนะ ออมทรัพย์
ธนาคารไทยพาณิชย์ จำกัด (มหาชน) สาขาเซ็นทรัล แจ้งวัฒนะ ออมทรัพย์
ธนาคารกรุงเทพ จำกัด (มหาชน) สาขาเซนทรัล พระราม 3 สะสมทรัพย์
ธนาคารทหารไทยธนชาต จำกัด (มหาชน) สาขาเซนทรัล พระราม 3 กระแสรายวัน

เพิ่มเพื่อน

@rfm0967y

ติดต่อสอบถาม

เพิ่มเพื่อน

CATEGORY

Sensors / Modules [1695]

CONTACT US

มือถือ 0887823467 แฟกซ์ 02-0153201

Join เป็นสมาชิกร้านค้า

ร้านArduitronics
ร้านArduitronics
/www.arduitronics.com/
Join เป็นสมาชิกร้าน
2118
สมัครสมาชิกร้านนี้ เพื่อรับสิทธิพิเศษ

STATISTICS

หน้าที่เข้าชม15,375,197 ครั้ง
ผู้ชมทั้งหมด5,878,275 ครั้ง
เปิดร้าน21 พ.ค. 2556
ร้านค้าอัพเดท5 ก.ย. 2568

MEMBER

พูดคุย-สอบถาม