PENGUKUR KECEPATAN ANGIN DENGAN ANEMOMETER BERBASIS ARDUINO

Dosen Pengampu : 
Aminuddin R

Disusun Oleh :

                                                         Farhan Pribadi W.U.             3.32.20.2.10

                                                         Tulung Azasia                          3.32.20.2.23

EK-3C 

LATAR BELAKANG

Sektor penerbangan / bandara adalah aktivitas manusia yang sangat dipengaruhi cuaca. Dalam penerbangan  cuaca adalah salah satu faktor penting  penerbangan pesawat. Cuaca merupakan fenomena alam yang tidak dapat dikendalikan tetapi dapat dipantau dan dianalisis dengan weather monitoring berdasarkan arah dan kecepatan angin. Weather monitoring adalah proses memantau dan menganalisis data yang diterima pada jarak yang jauh dari sumbernya.

                Iklim dan cuaca dapat dianalisis dengan menggunakan satelit cuaca yang didukung oleh Stasiun Pemantau Cuaca atau AWS (Automatic Weather Station). Untuk mempredikasi cuaca diperlukan stasiun pemantau cuaca yang terletak di lahan luas secara tersebar. Indonesia memerlukan AWS dalam jumlah yang banyak untuk memberikan gambaran iklim dan cuaca untuk mendukung sistem penerbangan.

                Penelitian ini berfokus pada perancangan dan pengukuran kecepatan dan arah angin, dalam penelitian ini, perangkat untuk mengukur kecepatan dan arah angin dibangun menggunakan Arduino Mega

Komponen Yang Digunakan :

1. Mikrokontroller     : Arduino Mega
2. Masukkan              : Sensor OctoCoupler
3. Keluaran                : LCD 16x2

Cara Kerja :
Cara kerja dari alat ini yaitu, ketika angin berhembus sensor octocoupler akan mendeteksi kecepatan angin dengan membaca piringan cakram dan memanfaatkan pembacaan sinar sebagai pemicu on off Optocoupler. Kemudian sensor akan mengirim data sinyal ke Arduino yang mengirim data tersebut ke LCD dan akan ditampilkan sesuai rumus yang digunakan.

Power Point Presentasi (link PPT)
















Program Ardiuno (link Program)

# define windPin 2

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

// Constants definitions

const float pi = 3.14159265; // pi number

int period = 1000; // Measurement period (miliseconds)

int delaytime = 1000; // Time between samples (miliseconds)

int radio = 90; // Distance from center windmill to outer cup (mm)

int jml_celah = 18; // jumlah celah sensor

// Variable definitions

unsigned int Sample = 0; // Sample number

unsigned int counter = 0; // B/W counter for sensor

unsigned int RPM = 0; // Revolutions per minute

float speedwind = 0; // Wind speed (m/s)

void setup()

{

// Set the pins

pinMode(2, INPUT);

digitalWrite(2, HIGH);

lcd.init();

lcd.backlight();

 

// sets the serial port to 9600

Serial.begin(9600);

 

// Splash screen

Serial.println("ANEMOMETER");

Serial.println("**********");

Serial.println("Based on depoinovasi anemometer sensor");

Serial.print("Sampling period: ");

Serial.print(period/1000);

Serial.print(" seconds every ");

Serial.print(delaytime/1000);

Serial.println(" seconds.");

Serial.println("** You could modify those values on code **");

Serial.println();

}

 

void loop()

{

Sample++;

Serial.print(Sample);

Serial.print(": Start measurement…");

windvelocity();

Serial.println(" finished.");

Serial.print("Counter: ");

Serial.print(counter);

Serial.print("; RPM: ");

RPMcalc();

Serial.print(RPM);

Serial.print("; Wind speed: ");

lcd.setCursor(0,0);

lcd.print("RPM:");

lcd.setCursor(4,0);

lcd.print(RPM);

WindSpeed();

lcd.setCursor(0,1);

lcd.print("WS:");

lcd.setCursor(3,1);

lcd.print(speedwind);

lcd.setCursor(6,1);

lcd.print("m/s");

Serial.print(speedwind);

Serial.print(" [m/s]");

Serial.println();

delay(1000);

}

 

//easure wind speed

void windvelocity()

{

speedwind = 0;

counter = 0;

attachInterrupt(0, addcount, CHANGE);

unsigned long millis();

long startTime = millis();

while(millis() < startTime + period) {}

detachInterrupt(1);

}

void RPMcalc()

{

RPM=((counter/jml_celah)*60)/(period/1000); // Calculate revolutions per minute (RPM)

}

void WindSpeed()

{

speedwind = ((2 * pi * radio * RPM)/60) / 1000; // Calculate wind speed on m/s

}

void addcount()

{

counter++;

}

Link Github 


Komentar