• Arduino
    • Sensor
    • program Arduino
  • Project
  • Produk
  • IOT
Kamis, Maret 23, 2023
mikroavr.com
No Result
View All Result
  • Login
  • Arduino
    • Sensor
    • program Arduino
  • Project
  • Produk
  • IOT
  • Arduino
    • Sensor
    • program Arduino
  • Project
  • Produk
  • IOT
No Result
View All Result
mikroavr
No Result
View All Result
Home Arduino

Tutorial Menggunakan Weather Station DFRobot SEN0186 dengan Arduino ESP32

Jimmi Sitepu by Jimmi Sitepu
Maret 9, 2022
0 0
0
Tutorial Menggunakan Weather Station DFRobot SEN0186 dengan Arduino ESP32
0
SHARES
330
VIEWS
Share on FacebookShare on Twitter

Weather station banyak di gunakan untuk menganalisa keadaan cuaca dalam satu wilayah dalam beberapa tahun. Dari data-data yang di peroleh dapat di ambil sebuah kebijakan, misal nya penanggulangan bencana atau bahkan tindakan khusus di dunia perkebunan. dengan data ini semua analisa akan menjadi lebih terukur dan terencana.

Nah, kebetulan mimin mendapatkan amanah untuk membuat sebuah weather station, dengan menggunakan sensor APRS Weather Station keluaran DFRobot ( walau vendor nya bukan punya DFrobot), dengan SKU SENS0186. Yuk kita mulai dari spesifikasi Sensor ini, agar tidak salah urutan dalam penggunaaan nya seperti yang sudah saya alami, 🙂

READ ALSO

Membaca Sensor URM14 RS485 dengan ESP32 Arduino

4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

Spesifikasi Weather Station SENS0186

Adapun spesifikasi dari sensor ini adalah sebagai berikut,

  1. Tegangan Voltage Max 5V DC, jangan lebih. mimin lihat board nya menggunakan regulator AMS1117 3.3v.
  2. Mengukur Suhu dan Kelembaban udara
  3. Mengukur sudut arah angin, ketika mimin uji, hanya bisa mengukur sudut, 0, 45, 90, 135, 270 derajat.
  4. Mengukur kecepatan Angin
  5. Mengukur kecepatan hujan dalam 1 jam
  6. Mengukur kecepatan hujan dalam 24 jam,
  7. Controller tidak water prof, jadi harus di buat box lagi agar water prof,
  8. Dan yang terakhir adalah Tekanan Udara ( 0.1 hPa )

Installation Sensor

Installation sensor ini sangat penting, terutama di connector nya, agar sensor nya dapat di baca oleh Arduno dengan benar. Installaton nya adalah seperti berikut

Pertama-tama, part sensor terbagi 3. yaitu

  1. Sensor Kecepatan Angin
  2. Sensor Arah Angin
  3. Sensor Kecepatan Hujan

Ketiga Sensor ini memiliki kabel RJ45, Sebagai konektor yang akan di hubungkan ke kontroller, Kontroller nya dapat di lihat di bawah ini,

weather station

Kemeduan, perhatikan connector config yang berhawarna hijau, pastikan posisi nya di sana, jika tidak maka format data yang akan dikirim oleh controller di atas akan berbeda dengan yang ada pada tutorial kita. Contoh output sensor nya seperti di bawah ini,

raw data output

Selanjut nya installasi output sensor ke arduino, Biasa nya warna kable RJ45 nya adalah warna hitam. Output kabel nya seperti berikut ini,

Connector Weather Station\

Perhatikan Kabel output dari controller, ada 3 Warna, Merah Sebagai supply power Sensor, yaitu 5V, Kuning Sebagai Output Sensor itu sendiri, dan Black sebagai Grounding nya. Connector ini akan kita hubungkan ke ESP32 Arduino,

Wiring nya cukup mudah, Jika menggunakan Controller kita, wiring nya sebagai berikut,

Wired to Arduino Custome

Setelah terhubung kita lanjut ke Pembacaan Program Sensor, Gak sulit, cukup copy paste 🙂

Program Baca Sensor Weather

Sebelum kita parsing data Sensor nya, alangkah baiknya, kita lihat data raw yang di keluarkan oleh sensor, coding nya cukup sederhana, bisa di lihat pada code di bawah ini

 void setup() {   // put your setup code here, to run once:   
    Serial.begin(115200);   
    Serial1.begin(9600, SERIAL_8N1, 32, 17); 
} 
void loop() {   
// put your main code here, to run repeatedly:   
    while (Serial1.available()) {
       Serial.print(Serial1.read());   
    }   
    delay(1000); 
} 

Output sensor akan terlihat di serial monitor seperti pada gambar di bawah ini,


char                 databuffer[35];
double               temp;

unsigned long cur_time, old_time;

void setup()
{
  Serial.begin(9600);
  Serial1.begin(9600, SERIAL_8N1, 32, 17);

}
void loop()
{
  cur_time = millis();
  if (cur_time - old_time >= 5000) {
    getBuffer();                                                                      //Begin!
    
    Serial.print("Wind Direction: ");
    Serial.print(WindDirection());
    Serial.println("  ");
    Serial.print("Average Wind Speed (One Minute): ");
    Serial.print(WindSpeedAverage());
    Serial.println("m/s  ");
    Serial.print("Max Wind Speed (Five Minutes): ");
    Serial.print(WindSpeedMax());
    Serial.println("m/s");
    Serial.print("Rain Fall (One Hour): ");
    Serial.print(RainfallOneHour());
    Serial.println("mm  ");
    Serial.print("Rain Fall (24 Hour): ");
    Serial.print(RainfallOneDay());
    Serial.println("mm");
    Serial.print("Temperature: ");
    Serial.print(Temperature());
    Serial.println("C  ");
    Serial.print("Humidity: ");
    Serial.print(Humidity());
    Serial.println("%  ");
    Serial.print("Barometric Pressure: ");
    Serial.print(BarPressure());
    Serial.println("hPa");
    Serial.println("");
    Serial.println("");

    old_time = millis();
  }
}

void getBuffer()                                                                    //Get weather status data
{
  int index;
  for (index = 0; index < 35; index ++)
  {
    if (Serial1.available())
    {
      databuffer[index] = Serial1.read();
      if (databuffer[0] != 'c')
      {
        index = -1;
      }
    }
    else
    {
      index --;
    }
  }
}

int transCharToInt(char *_buffer, int _start, int _stop)                             //char to int)
{
  int _index;
  int result = 0;
  int num = _stop - _start + 1;
  int _temp[num];
  for (_index = _start; _index <= _stop; _index ++)
  {
    _temp[_index - _start] = _buffer[_index] - '0';
    result = 10 * result + _temp[_index - _start];
  }
  return result;
}

int WindDirection()                                                                  //Wind Direction
{
  return transCharToInt(databuffer, 1, 3);
}

float WindSpeedAverage()                                                             //air Speed (1 minute)
{
  temp = 0.44704 * transCharToInt(databuffer, 5, 7);
  return temp;
}

float WindSpeedMax()                                                                 //Max air speed (5 minutes)
{
  temp = 0.44704 * transCharToInt(databuffer, 9, 11);
  return temp;
}

float Temperature()                                                                  //Temperature ("C")
{
  temp = (transCharToInt(databuffer, 13, 15) - 32.00) * 5.00 / 9.00;
  return temp;
}

float RainfallOneHour()                                                              //Rainfall (1 hour)
{
  temp = transCharToInt(databuffer, 17, 19) * 25.40 * 0.01;
  return temp;
}

float RainfallOneDay()                                                               //Rainfall (24 hours)
{
  temp = transCharToInt(databuffer, 21, 23) * 25.40 * 0.01;
  return temp;
}

int Humidity()                                                                       //Humidity
{
  return transCharToInt(databuffer, 25, 26);
}

float BarPressure()                                                                  //Barometric Pressure
{
  temp = transCharToInt(databuffer, 28, 32);
  return temp / 10.00;
}

Perhatikan output Sensor pada serial monitor, maka terlihat pada gambar di bawah ini,

Output sensor Weather Station

Nah, sensor sudah terbaca dengan sempurna, Sekian dulu tulisan kita tentang weather station,

Jika ingin tanya lebih jauh tentang sensor ini atau custom board untuk logger Weather Station, boleh whatsapp kita dengan click button di bawah ini

Obrolan di WhatsApp

Thanks

Link Refrensi: DFrobot sensor weather station

ShareTweetShare
Previous Post

Arduino Ethernet Tutorial, Project dengan Arduino Uno dan Mega

Next Post

Custome GPS Logger Arduino dengan Akeses Internet SIM7600 4G

Jimmi Sitepu

Jimmi Sitepu

Hobbyist Embedded System, Robotic, IOT and write all about them. So we have nice quote "Learning and Sharing"

Related Posts

sensor URM14 Arduino
ESP32

Membaca Sensor URM14 RS485 dengan ESP32 Arduino

Juli 7, 2022
4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega
Arduino

4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

Juni 13, 2022
Mendapatkan Waktu Akurat dengan NTP GPS
ESP32

Mendapatkan Waktu Akurat dengan NTP GPS

Mei 8, 2022
Custome GPS Logger Arduino dengan Akeses Internet SIM7600 4G
IOT

Custome GPS Logger Arduino dengan Akeses Internet SIM7600 4G

April 14, 2022
ethernet arduino
Arduino

Arduino Ethernet Tutorial, Project dengan Arduino Uno dan Mega

Februari 24, 2022
solder i2c arduino lcd
Arduino

Tutorial Program Arduino Lcd i2c dan Library nya

Februari 24, 2022
Next Post
Custome GPS Logger Arduino dengan Akeses Internet SIM7600 4G

Custome GPS Logger Arduino dengan Akeses Internet SIM7600 4G

Mendapatkan Waktu Akurat dengan NTP GPS

Mendapatkan Waktu Akurat dengan NTP GPS

Please login to join discussion

Tulisan Terbaru

sensor URM14 Arduino

Membaca Sensor URM14 RS485 dengan ESP32 Arduino

Juli 7, 2022
4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

Juni 13, 2022
Mendapatkan Waktu Akurat dengan NTP GPS

Mendapatkan Waktu Akurat dengan NTP GPS

Mei 8, 2022
Custome GPS Logger Arduino dengan Akeses Internet SIM7600 4G

Custome GPS Logger Arduino dengan Akeses Internet SIM7600 4G

April 14, 2022
Tutorial Menggunakan Weather Station DFRobot SEN0186 dengan Arduino ESP32

Tutorial Menggunakan Weather Station DFRobot SEN0186 dengan Arduino ESP32

Maret 9, 2022
ethernet arduino

Arduino Ethernet Tutorial, Project dengan Arduino Uno dan Mega

Februari 24, 2022

Browse by Category

  • Arduino
  • Ebook
  • ESP32
  • IOT
  • jasa
  • Komponen
  • PCB
  • Produk
  • program Arduino
  • Project
  • Rangkaian
  • Sensor
  • Tips
  • Uncategorized

Recent News

sensor URM14 Arduino

Membaca Sensor URM14 RS485 dengan ESP32 Arduino

Juli 7, 2022
4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

Juni 13, 2022
  • About US
  • Blog
  • MIKROAVR

© 2020 mikroavr.com - Learning and sharing.

No Result
View All Result
  • About US
  • Blog
  • MIKROAVR

© 2020 mikroavr.com - Learning and sharing.

Welcome Back!

Sign In with Google
OR

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In

Add New Playlist