Automatic Weather Station (AWS) Industrial Grade
Automatic Weather Station (AWS) adalah stasiun cuaca otomatis yang digunakan untuk mengukur, merekam, dan mengirimkan data kondisi atmosfer secara otomatis tanpa perlu pengukuran manual oleh operator.
AWS dapat dianggap sebagai satu sistem yang menggabungkan beberapa sensor, data logger, komunikasi, dan catu daya:
- Sensor temperatur & kelembapan: Suhu dan Humidity
- Pyranometer / solar radiation sensor: Radiasi matahari
- Anemometer: Kecepatan angin dan arah angin
- Rain gauge: Curah hujan
- Barometer: Tekanan atmosfer
- Data logger/controller: Membaca dan menyimpan data sensor
- Communication module: Transmisi data ke cloud
- Power supply: Memberikan energi listrik ke sistem AWS
Contohnya pada:
- Pertanian: menentukan waktu penyiraman, pemupukan, atau penyemprotan.
- Energi surya: mengetahui potensi radiasi matahari dan mengevaluasi performa PLTS.
- Penerbangan/UAV: menentukan apakah kondisi angin dan cuaca aman untuk penerbangan drone.
- Lingkungan: menghubungkan kondisi meteorologi dengan kualitas udara.
- Mitigasi Bencana: membantu pemantauan kondisi yang berpotensi menyebabkan banjir, longsor, atau cuaca ekstrem.
Anemometer Wind Speed and Wind Direction
- Wind Vane + Cup Anemometer: merupakan jenis anemometer yang paling umum digunakan pada weather station konvensional.
- Ultrasonic Anemometer: Merupakan jenis anemometer untuk AWS modern, Sensor menggunakan gelombang ultrasonik yang dikirimkan antar transducer.
- Laser Doppler Anemometer (LDA): menggunakan laser dan efek Doppler untuk mengukur kecepatan aliran, umumnya digunakan untuk penelitian fluida, wind tunel, eksperimen aerodinamika, dan penelitian laboratorium.
Anemometer ultrasonik merupakan sensor meteorologi yang digunakan untuk mengukur kecepatan dan arah angin dengan memanfaatkan gelombang ultrasonik. Sensor ini bekerja dengan mengirimkan dan menerima gelombang ultrasonik melalui beberapa transduser, kemudian menganalisis perbedaan waktu tempuh gelombang akibat pengaruh aliran angin.
Berbeda dengan anemometer mekanis, anemometer ultrasonik tidak memiliki komponen bergerak seperti cup atau baling-baling, sehingga memiliki respons pengukuran yang cepat, umur operasional lebih panjang, dan kebutuhan pemeliharaan yang rendah.
Teknologi ini banyak digunakan pada Automatic Weather Station (AWS), sistem pemantauan lingkungan, pertanian presisi, penerbangan, dan berbagai aplikasi meteorologi yang membutuhkan pengukuran angin secara kontinu, akurat, dan real-time.
Cara mengakses RS-CFSFX-NO1-2 Ultrasonic anemometer
- Protocol: Modbus RTU.
- Slave ID: 1 (0x01).
- Baudrate: 4800 bps.
- Data bits: 8
- Stop bits: 1
- CRC: Modbus CRC-16
Konfigurasi tersebut tercantum pada manual sensor. Baudrate dapat diubah menjadi 2400, 4800, atau 9600 bps melalui register konfigurasi.
Misalnya sensor mengirim:
- 007D hex = 125 desimal.
- Wind Speed = 125 / 100 = 1.25 m/s.
- 005A hex = 90 desimal.
- Yang artinya angin dari arah timur (East).
- Slave ID = 01
- Function = 03
- Start Register = 0000
- Number of Registers = 0002
- 01 03 00 00 00 02 C4 0B
- 01 = Slave ID
- 03 = Function Code
- 00 00 = Starting Register
- 00 02 = Read 2 Register
- C4 0B = CRC
- 01 = Slave ID
- 03 = Function Code
- 04 = 4 byte data
- 00 7D = Wind Speed
- 00 5A = Wind Direction
- EA 10 = CRC
Mikrokontroller atau mikroprocessor kemudian mengambil dua register
Register 1 = Wind Direction
- Register 0 = 125.
- Register 1 = 90.
- Wind Speed = 125 / 100 = 1.25 m/s
- Wind Direction = 90°
- Wind Speed: 1.25 m/s
- Wind Direction = 90°
Implementasi Rangkaian Sensor Anemometer Ultrasonic dengan Modbus RS485
Jika Anda menggunakan library ModbusMaster pada mikrokontroller seperti ESP32, konsep kode untuk sensor ini dapat dibuat seperti berikut:
//This code was created by Gapmekatron
//Copyright © 2026 gapmekatron.com
#include ModbusMaster.h
#define RS485_RX 16
#define RS485_TX 17
#define RS485_DE 4
HardwareSerial RS485Serial(1);
ModbusMaster node;
void preTransmission()
{
digitalWrite(RS485_DE, HIGH);
}
void postTransmission()
{
digitalWrite(RS485_DE, LOW);
}
void setup()
{
Serial.begin(115200);
pinMode(RS485_DE, OUTPUT);
digitalWrite(RS485_DE, LOW);
RS485Serial.begin(
4800,
SERIAL_8N1,
RS485_RX,
RS485_TX
);
node.begin(1, RS485Serial);
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);
Serial.println("RS-CFSFX-N01-2 Starting...");
}
void loop()
{
uint8_t result;
// Read register 0x0000 - 0x0001
result = node.readHoldingRegisters(0x0000, 2);
if (result == node.ku8MBSuccess)
{
uint16_t windSpeedRaw =
node.getResponseBuffer(0);
uint16_t windDirection =
node.getResponseBuffer(1);
float windSpeed =
windSpeedRaw / 100.0;
Serial.print("Wind Speed : ");
Serial.print(windSpeed, 2);
Serial.println(" m/s");
Serial.print("Wind Direction : ");
Serial.print(windDirection);
Serial.println(" deg");
Serial.println("-------------------------");
}
else
{
Serial.print("Modbus Error: ");
Serial.println(result);
}
delay(1000);
}
