Pengertian Sensor Arah Angin
Sensor arah angin digunakan untuk mengukur arah dari mana angin bertiup. Biasanya, sensor ini bekerja dengan prinsip magnetik atau resistif untuk mendeteksi sudut arah angin. Sensor ini akan memberikan data berupa nilai yang menggambarkan posisi arah angin dalam derajat (0°-360°) atau sebagai kode digital yang mewakili arah angin tertentu (misalnya, utara, selatan, timur, barat, dll).
kegunaan sensor arah angin
Sensor arah angin memiliki banyak kegunaan di berbagai bidang yang memerlukan pemantauan arah angin. Berikut adalah beberapa kegunaan utama dari sensor arah angin:
1. Pemantauan Cuaca
Sensor arah angin digunakan dalam stasiun meteorologi untuk memantau kondisi cuaca. Dengan mengetahui arah angin, meteorolog dapat memprediksi perubahan cuaca, seperti pergerakan sistem cuaca (misalnya, badai atau hujan), dan memberikan peringatan dini kepada masyarakat.
2. Navigasi dan Pelayaran
Di dunia pelayaran dan navigasi laut, sensor arah angin penting untuk mengarahkan kapal atau pesawat. Mengetahui arah angin sangat krusial untuk:
- Pelayaran: Untuk mengoptimalkan penggunaan layar pada kapal layar.
- Navigasi Udara: Untuk membantu pesawat dalam perencanaan penerbangan dan mengatur rute, terutama di wilayah yang terpengaruh oleh angin kencang atau arus udara.
3. Pertanian
Sensor arah angin digunakan dalam pertanian untuk:
- Mengatur irigasi dan penyemprotan pestisida: Mengetahui arah angin membantu mengoptimalkan distribusi air atau pestisida, menghindari area yang tidak diinginkan.
- Memahami kondisi mikroklimat: Arah angin dapat mempengaruhi distribusi suhu dan kelembapan, yang memengaruhi hasil pertanian.
4. Energi Angin (Wind Energy)
Dalam pembangkit listrik tenaga angin (PLTB), sensor arah angin sangat penting untuk:
- Mengatur turbin angin: Menentukan arah angin yang optimal untuk memutar turbin angin dan menghasilkan listrik. Sensor ini membantu turbin berorientasi ke arah angin yang tepat untuk efisiensi maksimum.
- Pemantauan kinerja turbin: Mengumpulkan data arah angin untuk menilai kinerja turbin dan merencanakan pemeliharaan.
5. Pengendalian Polusi Udara
Sensor arah angin membantu dalam pengelolaan polusi udara di kota-kota besar atau daerah industri. Dengan mengetahui arah angin, pihak berwenang dapat memprediksi penyebaran polusi dan merencanakan langkah-langkah mitigasi, seperti penutupan area atau pemberitahuan kepada masyarakat.
6. Keamanan dan Pertahanan
Dalam bidang keamanan dan pertahanan, sensor arah angin digunakan untuk mendeteksi dan menganalisis pergerakan bahan kimia atau gas berbahaya yang dilepaskan di udara. Hal ini sangat penting dalam perencanaan respons terhadap kebocoran atau serangan kimia.
7. Olahraga Ekstrem
Untuk olahraga yang bergantung pada angin seperti terjun payung, selancar angin, atau paralayang, sensor arah angin sangat berguna untuk mengetahui kondisi angin dan memastikan keselamatan dan kenyamanan para atlet.
8. Perencanaan Infrastruktur
Dalam pembangunan infrastruktur seperti gedung tinggi, jembatan, dan menara telekomunikasi, data arah angin digunakan untuk merancang struktur yang mampu bertahan terhadap angin kencang atau badai. Sensor ini juga membantu dalam analisis lingkungan untuk mengurangi dampak angin terhadap kenyamanan dan keamanan penghuninya.
9. Perubahan Iklim
Sensor arah angin dapat digunakan dalam penelitian ilmiah untuk memahami pola cuaca dan perubahan iklim. Data arah angin digunakan untuk mengamati pergerakan massa udara dan interaksi atmosfer, yang merupakan bagian dari studi tentang perubahan iklim global.
10. Sistem Otomatisasi dan IoT
Pada sistem berbasis IoT (Internet of Things) atau automasi rumah, sensor arah angin dapat digunakan untuk mengontrol perangkat seperti penutup jendela otomatis atau penyesuaian panel surya, berdasarkan data angin yang diterima. Misalnya, jika angin bertiup kencang dari arah tertentu, sistem dapat menutup jendela untuk mencegah kerusakan.
penjelasan sensor arah angin
Sensor arah angin adalah alat yang digunakan untuk mengukur arah datangnya angin. Sensor ini sangat penting dalam berbagai aplikasi, terutama dalam meteorologi, navigasi, pertanian, dan energi terbarukan. Sensor ini mengidentifikasi arah angin berdasarkan posisi atau pergerakan udara yang mengarah ke sensor tersebut.
Cara Kerja Sensor Arah Angin
Sensor arah angin bekerja dengan berbagai prinsip, tergantung jenis sensor yang digunakan. Umumnya, ada dua jenis sensor arah angin yang sering digunakan:
- Sensor Mekanik (Anemometer Mekanik):
- Menggunakan baling-baling atau roda yang berputar mengikuti arah angin.
- Posisi baling-baling atau roda menunjukkan arah dari mana angin datang.
- Sensor Elektronik:
- Menggunakan prinsip magnetik atau resistif untuk mendeteksi pergerakan angin.
- Biasanya, sensor ini menghasilkan sinyal elektrik yang mencerminkan arah angin yang sedang terjadi.
Komponen Utama Sensor Arah Angin:
- Cincin atau Roda (Pada sensor mekanik): Memiliki bentuk seperti kompas yang menunjukkan arah angin.
- Sensor Elektronik: Memiliki elemen yang merespons perubahan arah angin dan menghasilkan sinyal yang bisa diproses lebih lanjut.
Komponen yang Dibutuhkan:
- Sensor arah angin dengan output RS485 (MAX485).
- Arduino Uno, Arduino Mega, atau ESP32.
- Modul MAX485 (jika sensor tidak memiliki modul RS485 internal).
- Kabel jumper.
- Power supply (jika diperlukan).

Cara Penggunaan dengan Arduino Uno
Arduino Uno adalah salah satu board mikrokontroler yang paling banyak digunakan. Untuk menghubungkan sensor pH dengan Arduino Uno
wiring arduino uno menggunakan lcd

Arduino Uno:
- VCC pada modul MAX485 -> 5V pada Arduino.
- GND pada modul MAX485 -> GND pada Arduino.
- A pada modul MAX485 -> A pada sensor arah angin.
- B pada modul MAX485 -> B pada sensor arah angin.
- RO (Receiver Output) pada modul MAX485 -> disambungkan ke pin 9
- DI (Driver Input) pada modul MAX485 -> disambungkan ke pin 10
- DE dan RE disambungkan dan dihubungkan ke pin 8
#define EN_RS485 8
#include <ModbusMaster.h>
#include <SoftwareSerial.h>
#include <LiquidCrystal_I2C.h>
const int col = 16;
const int row = 2;
LiquidCrystal_I2C lcd(0x27, col, row);
ModbusMaster node;
SoftwareSerial mySerial(9, 10); // RX, TX
#define SLAVE_ADDR ((uint16_t)0x01)
uint16_t nilai;
float k;
void preTransmission() {
digitalWrite(EN_RS485, 1);
}
void postTransmission() {
digitalWrite(EN_RS485, 0);
}
void setup() {
// put your setup code here, to run once:
pinMode(EN_RS485, OUTPUT);
lcd.init();
//lcd.begin();
lcd.backlight();
lcd.setCursor(5, 0);
lcd.print("TEMINS");
lcd.setCursor(5, 1);
lcd.print("STORE");
delay(5000);
Serial.begin(9600);
mySerial.begin(4800);
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);
node.begin(SLAVE_ADDR, mySerial);
delay(100);
}
void loop() {
// put your main code here, to run repeatedly:
lcd.init();
//lcd.begin();
lcd.backlight();
lcd.setCursor(5, 1);
lcd.print(k);
lcd.print("");
lcd.setCursor(3, 0);
lcd.print("ARAH ANGIN");
//delay(10000);
k = baca_sensor(0) / 10.0;
Serial.println("ARAH ANGIN: " + String(k));
delay(5);
// Serial.println("============================================");
delay(100);
}
int baca_sensor(uint16_t alamat) {
int result;
result = node.readHoldingRegisters(alamat, 1);
if (result == node.ku8MBSuccess) {
nilai = node.getResponseBuffer(0);
} else {
Serial.println("modbus fail");
}
return nilai;
}
wiring arduino uno menggunakan serial monitor

- VCC pada modul MAX485 -> 5V pada Arduino.
- GND pada modul MAX485 -> GND pada Arduino.
- A pada modul MAX485 -> A pada sensor arah angin.
- B pada modul MAX485 -> B pada sensor arah angin.
- RO (Receiver Output) pada modul MAX485 -> disambungkan ke pin 9
- DI (Driver Input) pada modul MAX485 -> disambungkan ke pin 10
- DE dan RE disambungkan dan dihubungkan ke pin 8
#define EN_RS485 8
#include <ModbusMaster.h>
#include <SoftwareSerial.h>
ModbusMaster node;
SoftwareSerial mySerial(9, 10); // RX, TX
#define SLAVE_ADDR ((uint16_t)0x01)
uint16_t nilai;
float k;
void preTransmission() {
digitalWrite(EN_RS485, 1);
}
void postTransmission() {
digitalWrite(EN_RS485, 0);
}
void setup() {
// put your setup code here, to run once:
pinMode(EN_RS485, OUTPUT);
Serial.begin(9600);
mySerial.begin(4800);
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);
node.begin(SLAVE_ADDR, mySerial);
delay(1000);
}
void loop() {
// put your main code here, to run repeatedly:
k = baca_sensor(0) / 10.0;
Serial.println("ARAH ANGIN : " + String(k));
delay(5);
Serial.println("============================================");
delay(1000);
}
int baca_sensor(uint16_t alamat) {
int result;
result = node.readHoldingRegisters(alamat, 1);
if (result == node.ku8MBSuccess) {
nilai = node.getResponseBuffer(0);
} else {
Serial.println("modbus fail");
}
return nilai;
}
Cara Penggunaan dengan ESP32
ESP32 adalah mikrokontroler yang lebih canggih dengan konektivitas Wi-Fi dan Bluetooth. Dengan ESP32, Anda dapat mengirimkan data pH ke server atau aplikasi web melalui jaringan.
wiring esp32 menggunakan lcd

ESP32:
- VCC pada modul MAX485 -> VIN pada ESP32.
- GND pada modul MAX485 -> GND pada ESP32.
- A pada modul MAX485 -> A pada sensor arah angin.
- B pada modul MAX485 -> B pada sensor arah angin.
- RO (Receiver Output) pada modul MAX485 -> RX (pin 16) pada ESP32.
- DI (Driver Input) pada modul MAX485 -> TX (pin 17) pada ESP32.
- DE dan RE pada modul MAX485 -> D18 pada ESP32
- download library softwareserial khusus esp 32
#define EN_RS485 18
#include <ModbusMaster.h>
#include <SoftwareSerial.h>
#include <LiquidCrystal_I2C.h>
const int col = 16;
const int row = 2;
LiquidCrystal_I2C lcd(0x27, col, row);
ModbusMaster node;
SoftwareSerial mySerial(16, 17); // RX, TX
#define SLAVE_ADDR ((uint16_t)0x01)
uint16_t nilai;
float k;
void preTransmission() {
digitalWrite(EN_RS485, 1);
}
void postTransmission() {
digitalWrite(EN_RS485, 0);
}
void setup() {
// put your setup code here, to run once:
pinMode(EN_RS485, OUTPUT);
//lcd.init();
lcd.begin();
lcd.backlight();
lcd.setCursor(5, 0);
lcd.print("TEMINS");
lcd.setCursor(5, 1);
lcd.print("STORE");
delay(5000);
Serial.begin(9600);
mySerial.begin(4800);
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);
node.begin(SLAVE_ADDR, mySerial);
delay(100);
}
void loop() {
// put your main code here, to run repeatedly:
//lcd.init();
//lcd.begin();
lcd.backlight();
lcd.setCursor(5, 1);
lcd.print(k);
lcd.print("");
lcd.setCursor(3, 0);
lcd.print("ARAH ANGIN");
//delay(10000);
k = baca_sensor(0) / 10.0;
Serial.println("ARAH ANGIN: " + String(k));
delay(5);
// Serial.println("============================================");
delay(100);
}
int baca_sensor(uint16_t alamat) {
int result;
result = node.readHoldingRegisters(alamat, 1);
if (result == node.ku8MBSuccess) {
nilai = node.getResponseBuffer(0);
} else {
Serial.println("modbus fail");
}
return nilai;
}
wiring ESP32 menggunakan serial monitor

ESP32:
- VCC pada modul MAX485 -> VIN pada ESP32.
- GND pada modul MAX485 -> GND pada ESP32.
- A pada modul MAX485 -> A pada sensor arah angin.
- B pada modul MAX485 -> B pada sensor arah angin.
- RO (Receiver Output) pada modul MAX485 -> RX (pin 16) pada ESP32.
- DI (Driver Input) pada modul MAX485 -> TX (pin 17) pada ESP32.
- DE dan RE pada modul MAX485 -> D18 pada ESP32
- download library softwareserial khusus esp 32
#define EN_RS485 18
#include <ModbusMaster.h>
#include <SoftwareSerial.h>
ModbusMaster node;
SoftwareSerial mySerial(16, 17); // RX, TX
#define SLAVE_ADDR ((uint16_t)0x01)
uint16_t nilai;
float k;
void preTransmission() {
digitalWrite(EN_RS485, 1);
}
void postTransmission() {
digitalWrite(EN_RS485, 0);
}
void setup() {
// put your setup code here, to run once:
pinMode(EN_RS485, OUTPUT);
Serial.begin(9600);
mySerial.begin(4800);
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);
node.begin(SLAVE_ADDR, mySerial);
delay(1000);
}
void loop() {
// put your main code here, to run repeatedly:
k = baca_sensor(0) / 10.0;
Serial.println("ARAH ANGIN : " + String(k));
delay(5);
Serial.println("============================================");
delay(1000);
}
int baca_sensor(uint16_t alamat) {
int result;
result = node.readHoldingRegisters(alamat, 1);
if (result == node.ku8MBSuccess) {
nilai = node.getResponseBuffer(0);
} else {
Serial.println("modbus fail");
}
return nilai;
}
Cara Penggunaan dengan Arduino Mega
Arduino Mega memiliki lebih banyak pin dan lebih banyak port serial dibandingkan dengan Arduino Uno, yang membuatnya lebih fleksibel untuk aplikasi dengan banyak perangkat RS485.
wiring arduino mega menggunakan lcd

Arduino Mega:
- VCC pada modul MAX485 -> 5V pada Arduino.
- GND pada modul MAX485 -> GND pada Arduino.
- A pada modul MAX485 -> A pada sensor arah angin.
- B pada modul MAX485 -> B pada sensor arah angin.
- RO (Receiver Output) pada modul MAX485 -> RX 1 (pin 19) pada Arduino.
- DI (Driver Input) pada modul MAX485 -> TX 1 (pin 18) pada Arduino.
- DE dan RE pada modul MAX485 -> D10 pada Arduino (atau pin digital lainnya).
#define EN_RS485 10
#include <ModbusMaster.h>
#include <LiquidCrystal_I2C.h>
const int col = 16;
const int row = 2;
LiquidCrystal_I2C lcd(0x27, col, row);
ModbusMaster node;
//SoftwareSerial mySerial(19, 18); // RX, TX
#define SLAVE_ADDR ((uint16_t)0x01)
uint16_t nilai;
float k;
void preTransmission() {
digitalWrite(EN_RS485, 1);
}
void postTransmission() {
digitalWrite(EN_RS485, 0);
}
void setup() {
// put your setup code here, to run once:
pinMode(EN_RS485, OUTPUT);
lcd.init();
//lcd.begin();
lcd.backlight();
lcd.setCursor(5, 0);
lcd.print("TEMINS");
lcd.setCursor(5, 1);
lcd.print("STORE");
delay(5000);
Serial.begin(9600);
Serial1.begin(4800);
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);
node.begin(SLAVE_ADDR, Serial1);
delay(100);
}
void loop() {
// put your main code here, to run repeatedly:
lcd.backlight();
lcd.setCursor(5, 1);
lcd.print(k);
lcd.print("");
lcd.setCursor(3, 0);
lcd.print("ARAH ANGIN");
k = baca_sensor(0) / 10.0;
Serial.println("ARAH ANGIN : " + String(k));
delay(5);
// Serial.println("============================================");
delay(100);
}
int baca_sensor(uint16_t alamat) {
int result;
result = node.readHoldingRegisters(alamat, 1);
if (result == node.ku8MBSuccess) {
nilai = node.getResponseBuffer(0);
} else {
Serial.println("modbus fail");
}
return nilai;
}
Wiring arduino mega menggunakan serial monitor

Arduino Mega:
- VCC pada modul MAX485 -> 5V pada Arduino.
- GND pada modul MAX485 -> GND pada Arduino.
- A pada modul MAX485 -> A pada sensor arah angin.
- B pada modul MAX485 -> B pada sensor arah angin.
- RO (Receiver Output) pada modul MAX485 -> RX 1 (pin 19) pada Arduino.
- DI (Driver Input) pada modul MAX485 -> TX 1 (pin 18) pada Arduino.
- DE dan RE pada modul MAX485 -> D2 pada Arduino (atau pin digital lainnya).
#define EN_RS485 10
#include <ModbusMaster.h>
ModbusMaster node;
//SoftwareSerial mySerial(19, 18); // RX, TX
#define SLAVE_ADDR ((uint16_t)0x01)
uint16_t nilai;
float k;
void preTransmission() {
digitalWrite(EN_RS485, 1);
}
void postTransmission() {
digitalWrite(EN_RS485, 0);
}
void setup() {
// put your setup code here, to run once:
pinMode(EN_RS485, OUTPUT);
Serial.begin(9600);
Serial1.begin(4800);
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);
node.begin(SLAVE_ADDR, Serial1);
delay(100);
}
void loop() {
// put your main code here, to run repeatedly:
k = baca_sensor(0) / 10.0;
Serial.println("ARAH ANGIN : " + String(k));
delay(5);
// Serial.println("============================================");
delay(100);
}
int baca_sensor(uint16_t alamat) {
int result;
result = node.readHoldingRegisters(alamat, 1);
if (result == node.ku8MBSuccess) {
nilai = node.getResponseBuffer(0);
} else {
Serial.println("modbus fail");
}
return nilai;
}
Catatan:
- Pastikan baud rate yang digunakan pada sensor arah angin dan Arduino/ESP32 sama (misalnya 9600 bps).
- Jika sensor arah angin memerlukan perintah khusus untuk mengirim data, Anda perlu mengirim perintah tersebut melalui RS485 sebelum membaca data.
- Pada ESP32, Anda dapat menggunakan HardwareSerial jika pin RX/TX yang tersedia.
Kesimpulan:
Dengan mengikuti tutorial ini, Anda dapat menghubungkan sensor arah angin MAX485 ke Arduino Uno, Arduino Mega, atau ESP32 dan membaca data arah angin yang dikirimkan oleh sensor. Pastikan wiring dan kode program sesuai dengan spesifikasi sensor yang Anda gunakan.