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:

Komponen utama AWS terdiri dari:
  • 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
AWS dapat digunakan sebagai dasar pengambilan keputusan berbasis data.
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

Secara umum, jenis sensor pengukuran angin dapat dibagi menjadi beberapa teknologi yaitu:
  • 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.
Wind Vane + Cup Anemometer
Anemometer Ultrasonic
Laser Doppler Anemometer (LDA)

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.

Contoh Product Anemometer Ultrasonic Wind Speed and Wind Direction yaitu RS-CFSFX-NO1-2 Ultrasonic anemometer. Sensor ini dapat memberikan dua parameter utama, yaitu wind speed dan wind direction. Berdasarkan manual V1.3, sensor menggunakan catu daya DC 12–30 V, komunikasi RS485, dan alamat default 0x01 dengan baud rate default 4800 bps.
 
Jika anda sudah membeli produk ini di Gapmekatron silakan hubungi admin untuk mendapatkan software agar dapat melakukan konfigurasi parameter:

Cara mengakses RS-CFSFX-NO1-2 Ultrasonic anemometer

Sensor ini dapat diakses dengan menggunakan modul modbus RS485. 
Konfigurasi default sensor yaitu:
  • 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.

Bagian paling penting adalah register Modbus:

Misalnya sensor mengirim: 

Wind Speed = 007D hex
  • 007D hex = 125 desimal.
Karena wind speed menggunakan faktor x100 maka: 
  • Wind Speed = 125 / 100 = 1.25 m/s.
Sedangkan apabila Wind Direction = 005A hex:
  • 005A hex = 90 desimal.
Maka Wind Direction = 90 derajat:
  • Yang artinya angin dari arah timur (East).
 
 
 
Misalnya kita ingin request untuk membaca Wind Speed and Wind Direction.
  • Slave ID = 01
  • Function = 03
  • Start Register = 0000
  • Number of Registers = 0002
Maka request Modbus RTU dari mikrokontroller adalah:
  • 01 03 00 00 00 02 C4 0B
Strukturnya yaitu:
  • 01 = Slave ID
  • 03 = Function Code
  • 00 00 = Starting Register
  • 00 02 = Read 2 Register
  • C4 0B = CRC
Sensor kemudian memberikan response seperti:
  • 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 0 = Wind Speed
Register 1 = Wind Direction
Misalnya:
  • Register 0 = 125.
  • Register 1 = 90.
Maka:
  • Wind Speed = 125 / 100 = 1.25 m/s
  • Wind Direction = 90°
Data akhirnya dapat dibuat menjadi:
  • 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);
}