Tutorial Penggunaan Sensor Kecepatan Angin dengan Arduino Uno, Arduino Mega, dan ESP32

Pengertian Sensor Kecepatan Angin (Anemometer)

Sensor kecepatan angin (anemometer) adalah alat yang digunakan untuk mengukur kecepatan angin. Sensor ini sering digunakan dalam berbagai aplikasi seperti meteorologi, pemantauan lingkungan, dan sistem pengendalian otomatis untuk mengukur angin yang dapat mempengaruhi kinerja suatu sistem.

Sensor kecepatan angin biasanya bekerja dengan memanfaatkan prinsip putaran atau perubahan hambatan listrik yang dipengaruhi oleh kecepatan angin.

Kegunaan Sensor Anemometer

Sensor anemometer digunakan untuk mengukur kecepatan angin. Kecepatan angin adalah salah satu parameter penting dalam berbagai bidang, baik untuk pemantauan cuaca, penelitian, maupun aplikasi industri. Berikut adalah beberapa kegunaan utama dari sensor anemometer:

1. Pemantauan Cuaca dan Meteorologi

  • Pengukuran Kecepatan Angin: Sensor anemometer digunakan di stasiun cuaca untuk mengukur kecepatan angin. Informasi ini sangat penting dalam memprediksi cuaca, terutama untuk memantau angin kencang yang bisa berpotensi menjadi badai atau topan.
  • Prediksi Badai dan Topan: Kecepatan angin merupakan indikator penting dalam memprediksi munculnya badai atau topan. Sensor anemometer membantu memberikan data yang akurat untuk memperingatkan masyarakat tentang kondisi cuaca yang berbahaya.

2. Industri Energi Terbarukan (Pembangkit Listrik Tenaga Angin)

  • Pembangkit Listrik Tenaga Angin (PLTA): Sensor anemometer digunakan pada turbin angin untuk mengukur kecepatan angin. Kecepatan angin yang optimal diperlukan untuk menghasilkan energi listrik yang efisien. Data kecepatan angin membantu mengatur posisi dan pengoperasian turbin.
  • Pemantauan Kinerja Turbin Angin: Dengan sensor anemometer, pengelola pembangkit listrik tenaga angin bisa memantau kinerja turbin secara real-time dan melakukan penyesuaian jika diperlukan.

3. Penerbangan dan Navigasi

  • Pengukuran Kecepatan Angin di Bandara: Di bandara, sensor anemometer digunakan untuk mengukur kecepatan angin pada lintasan pendaratan dan lepas landas. Informasi ini penting untuk memastikan keselamatan penerbangan, terutama saat cuaca buruk.
  • Navigasi Udara: Di pesawat terbang, sensor anemometer juga digunakan untuk mengukur kecepatan angin yang mempengaruhi kecepatan dan arah penerbangan.

4. Pengendalian Polusi Udara

  • Pemantauan Polusi: Kecepatan angin mempengaruhi penyebaran polutan di udara. Dengan memonitor kecepatan angin, sensor anemometer membantu dalam pemodelan penyebaran polusi dan merancang strategi pengendalian kualitas udara.

5. Pertanian dan Peternakan

  • Pemantauan Lingkungan Pertanian: Kecepatan angin mempengaruhi irigasi dan penyiraman tanaman. Di beberapa sistem pertanian, sensor anemometer digunakan untuk memantau kondisi angin agar dapat menyesuaikan waktu penyiraman atau pengaplikasian pestisida.
  • Menghindari Kerusakan Tanaman: Angin yang terlalu kencang dapat merusak tanaman. Sensor anemometer membantu petani memantau kecepatan angin dan mengambil tindakan pencegahan yang diperlukan.

6. Olahraga dan Rekreasi

  • Olahraga Air (Seperti Windsurfing, Kitesurfing): Dalam olahraga yang bergantung pada angin, seperti windsurfing atau kitesurfing, sensor anemometer digunakan untuk memantau kecepatan angin dan membantu atlet mempersiapkan diri dengan baik.
  • Olahraga Luar Ruangan: Kecepatan angin juga penting dalam olahraga luar ruangan lainnya, seperti lari atau bersepeda, karena angin dapat mempengaruhi kecepatan dan kenyamanan para atlet.

7. Pengendalian Sistem HVAC

  • Sistem Ventilasi: Sensor anemometer digunakan untuk memantau kecepatan angin dalam sistem ventilasi atau HVAC (heating, ventilation, and air conditioning). Kecepatan angin yang tepat diperlukan untuk memastikan sirkulasi udara yang efisien di dalam gedung.
  • Efisiensi Energi: Dalam bangunan berpendingin atau pemanas, sensor anemometer membantu mengatur aliran udara untuk mencapai efisiensi energi yang lebih baik.

8. Pengukuran Angin di Bidang Maritim

  • Navigasi Laut: Di kapal atau stasiun lepas pantai, sensor anemometer digunakan untuk memantau kecepatan angin yang mempengaruhi kondisi pelayaran. Data ini penting untuk navigasi dan keselamatan kapal.
  • Pemantauan Cuaca Laut: Sensor anemometer digunakan di pelabuhan atau stasiun cuaca laut untuk memprediksi kondisi angin yang mempengaruhi operasi perkapalan.

9. Pembangunan Infrastruktur

  • Perencanaan Bangunan dan Infrastruktur: Kecepatan angin harus diperhitungkan dalam desain gedung atau struktur lainnya. Sensor anemometer digunakan untuk mengukur kecepatan angin di lokasi pembangunan untuk memastikan struktur dapat menahan tekanan angin yang kuat.
  • Konstruksi Turbin Angin: Dalam pembangunan turbin angin, data yang akurat tentang kecepatan angin sangat diperlukan untuk menentukan lokasi terbaik untuk pemasangan turbin.

gambar contoh penjelasan warna kabel pada sensor kecepatan angin

Komponen yang Diperlukan

  • Arduino Uno , Arduino Mega atau ESP32
  • Sensor Kecepatan Angin (Anemometer)
  • Kabel Jumper
  • Breadboard (opsional)

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

Koneksi Hardware:

  1. VCC pada sensor ke 5V pada Arduino
  2. GND pada sensor ke GND pada Arduino
  3. Modul RS485 dihubungkan ke pin serial Arduino, yaitu pin RX (9) dan TX (10).

Dan berikut code sensor anemometer menggunakan lcd

#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(4, 1);
  lcd.print(k);
  lcd.print("M/S");
  lcd.setCursor(0, 0);
  lcd.print("kecepatan angin");
  //delay(10000);
  k = baca_sensor(0) / 10.0;
  Serial.println("KECEPATAN: " + 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 menggunakan serial monitor

Koneksi Hardware:

  1. VCC pada sensor ke 5V pada Arduino
  2. GND pada sensor ke GND pada Arduino
  3. Modul RS485 dihubungkan ke pin serial Arduino, yaitu pin RX (9) dan TX (10).

Dan berikut code sensor anemometer menggunakan serial monitor

#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("KECEPATAN : " + 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 Menggunakan 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

Komponen yang Diperlukan:

  • Arduino Uno atau Arduino Mega
  • Sensor Anemometer dengan Output RS485
  • Kabel Jumper
  • LCD i2c 16X2

Koneksi Hardware:

  1. VCC pada sensor ke 5V pada Arduino
  2. GND pada sensor ke GND pada Arduino
  3. Hubungkan Modul RS485 ke port serial1 di Arduino Mega, pin TX1 (18), RX1 (19), atau port lainnya.

Dan berikut code sensor anemometer menggunakan lcd

#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.init();
  //lcd.begin();
  lcd.backlight();
  lcd.setCursor(4, 1);
  lcd.print(k);
  lcd.print("M/S");
  lcd.setCursor(0, 0);
  lcd.print("KECEPATAN ANGIN");
  delay(1000);
  k = baca_sensor(0) / 10.0;
  Serial.println("KECEPATAN 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

Komponen yang Diperlukan:

  • Arduino Uno atau Arduino Mega
  • Sensor Anemometer dengan Output rs485
  • Kabel Jumper

Koneksi Hardware:

  1. VCC pada sensor ke 5V pada Arduino
  2. GND pada sensor ke GND pada Arduino
  3. Hubungkan Modul RS485 ke port serial1 di Arduino Mega, pin TX1 (18), RX1 (19), atau port lainnya.

Dan berikut code sensor anemometer menggunakan lcd

#define EN_RS485 10
#include <ModbusMaster.h>

ModbusMaster node;
#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(1000);
}

void loop() {
  // put your main code here, to run repeatedly:
  k = baca_sensor(0) / 10.0;
  Serial.println("KECEPATAN : " + 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;
}

Wiring esp32 menggunakan lcd

Komponen yang Diperlukan:

  • ESP32
  • Sensor Anemometer dengan Output rs485
  • Kabel Jumper
  • lcd i2c 16×2

Koneksi Hardware:

  1. VCC pada sensor tetap di aki lalu vcc di esp32 disambungkan ke breadboard agar bercabang
  2. GND pada sensor ke GND pada ESP32.
  3. Modul RS485 dihubungkan ke ESP32 menggunakan pin UART yang tersedia (misalnya, GPIO 16 untuk RX dan GPIO 17 untuk TX).
  4. pastikan anda mendownload library software serial khusus ESP32

Dan berikut code sensor anemometer menggunakan lcd

#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(4, 1);
  lcd.print(k);
  lcd.print("M/S");
  lcd.setCursor(0, 0);
  lcd.print("kecepatan angin");
  //delay(10000);
  k = baca_sensor(0) / 10.0;
  Serial.println("KECEPATAN: " + 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

Komponen yang Diperlukan:

  • ESP32
  • Sensor Anemometer dengan Output rs485
  • Kabel Jumper

Koneksi Hardware:

  1. VCC pada sensor tetap di aki lalu vcc di esp32 disambungkan ke breadboard agar bercabang
  2. GND pada sensor ke GND pada ESP32.
  3. Modul RS485 dihubungkan ke ESP32 menggunakan pin UART yang tersedia (misalnya, GPIO 16 untuk RX dan GPIO 17 untuk TX).
  4. pastikan anda mendownload library software serial khusus ESP32

Dan berikut code sensor anemometer menggunakan serial monitor

#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("KECEPATAN : " + 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;
}

Kesimpulan

Dalam tutorial ini, Anda telah mempelajari bagaimana cara menghubungkan dan menggunakan sensor kecepatan angin (anemometer) dengan Arduino Uno, Arduino Mega, dan ESP32. Ada dua jenis sensor yang digunakan:

  1. Sensor analog yang menghasilkan sinyal analog yang dapat dibaca menggunakan fungsi analogRead().
  2. Sensor digital yang menggunakan sinyal PWM untuk mengukur kecepatan angin berdasarkan frekuensi pulsa.

Dengan tutorial ini, Anda bisa mendapatkan data kecepatan angin secara real-time dan menampilkannya pada Serial Monitor atau menghubungkannya ke aplikasi lain untuk pemantauan lebih lanjut.

Leave a Reply

Your email address will not be published. Required fields are marked *