Stasiun Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Melalui Server Blynk: 4 Langkah
Stasiun Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Melalui Server Blynk: 4 Langkah
Anonim
Stasiun Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Melalui Server Blynk
Stasiun Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Melalui Server Blynk
Stasiun Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Melalui Server Blynk
Stasiun Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Melalui Server Blynk
Stasiun Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Melalui Server Blynk
Stasiun Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Melalui Server Blynk
Stasiun Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Melalui Server Blynk
Stasiun Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Melalui Server Blynk

Github: DIY_Weather_Station

Hackster.io: Stasiun Cuaca

Anda pasti pernah melihat Aplikasi Cuaca kan? Seperti, ketika Anda membukanya, Anda akan mengetahui kondisi cuaca seperti Suhu, Kelembaban, dll. Pembacaan tersebut adalah nilai rata-rata dari area yang luas, jadi jika Anda ingin mengetahui parameter yang tepat terkait dengan ruangan Anda, Anda tidak bisa hanya mengandalkan Aplikasi Cuaca. Untuk tujuan ini mari kita beralih ke pembuatan Weather Station yang hemat biaya, dan juga dapat diandalkan dan memberi kita nilai yang akurat.

Stasiun cuaca adalah fasilitas dengan instrumen dan peralatan untuk mengukur kondisi atmosfer untuk memberikan informasi prakiraan cuaca dan untuk mempelajari cuaca dan iklim. Ini membutuhkan sedikit usaha untuk plug and code. Jadi mari kita mulai.

Tentang Nodemcu:

NodeMCU adalah platform IoT sumber terbuka.

Ini termasuk firmware yang berjalan pada SoC Wi-Fi ESP8266 dari Sistem Espressif, dan perangkat keras yang didasarkan pada modul ESP-12.

Istilah "NodeMCU" secara default mengacu pada firmware daripada kit dev. Firmware menggunakan bahasa skrip Lua. Ini didasarkan pada proyek eLua, dan dibangun di atas Espressif Non-OS SDK untuk ESP8266. Ia menggunakan banyak proyek sumber terbuka, seperti lua-cjson, dan spiff.

Sensor dan persyaratan Perangkat Lunak:

1. Nodemcu (esp8266-12e v1.0)

2. DHT11

3. BMP180

4. Arduino IDE

Langkah 1: Kenali Sensor Anda

Kenali Sensor Anda
Kenali Sensor Anda

BMP180:

Keterangan:

BMP180 terdiri dari sensor piezo-resistif, konverter analog ke digital dan unit kontrol dengan E2PROM dan antarmuka serial I2C. BMP180 memberikan nilai tekanan dan suhu yang tidak terkompensasi. E2PROM telah menyimpan 176 bit data kalibrasi individual. Ini digunakan untuk mengkompensasi offset, ketergantungan suhu dan parameter lain dari sensor.

  • UP = data tekanan (16 hingga 19 bit)
  • UT = data suhu (16 bit)

Spesifikasi Teknis:

  • Vin: 3 hingga 5VDC
  • Logika: Sesuai dengan 3 hingga 5V
  • Rentang penginderaan tekanan: 300-1100 hPa (9000m hingga -500m di atas permukaan laut)
  • Resolusi hingga 0,03hPa / 0,25m-40 hingga +85°C rentang operasional, +-2°C akurasi suhu
  • Board/chip ini menggunakan alamat I2C 7-bit 0x77.

DHT11:

Keterangan:

  • DHT11 adalah sensor suhu dan kelembaban digital dasar yang sangat murah.
  • Ini menggunakan sensor kelembaban kapasitif dan termistor untuk mengukur udara di sekitarnya, dan mengeluarkan sinyal digital pada pin data (tidak diperlukan pin input analog). Ini cukup mudah digunakan, tetapi membutuhkan waktu yang cermat untuk mengambil data.
  • Satu-satunya kelemahan nyata dari sensor ini adalah Anda hanya bisa mendapatkan data baru darinya setiap 2 detik sekali, jadi saat menggunakan perpustakaan kami, pembacaan sensor bisa berlangsung hingga 2 detik.

Spesifikasi Teknis:

  • Daya 3 hingga 5V dan I/O
  • Baik untuk pembacaan suhu 0-50 ° C ± 2 ° C akurasi
  • Baik untuk pembacaan kelembaban 20-80% dengan akurasi 5%
  • 2.5 mA max penggunaan saat ini selama konversi (saat meminta data)

Langkah 2: Konektivitas

Konektivitas
Konektivitas

DHT11 dengan Nodemcu:

Pin 1 - 3.3V

Pin 2 - D4

Pin 3 - NC

Pin 4 - Gnd

BMP180 dengan Nodemcu:

Vin - 3.3V

Gnd - Gnd

SCL - D6

SDA - D7

Langkah 3: Siapkan Blynk

Image
Image
Siapkan Blynk
Siapkan Blynk

Apa itu Blynk?

Blynk adalah Platform dengan aplikasi iOS dan Android untuk mengontrol Arduino, Raspberry Pi, dan sejenisnya melalui Internet.

Ini adalah dasbor digital tempat Anda dapat membangun antarmuka grafis untuk proyek Anda hanya dengan menarik dan melepas widget. Sangat mudah untuk mengatur semuanya dan Anda akan mulai bermain-main dalam waktu kurang dari 5 menit. Blynk tidak terikat pada papan atau perisai tertentu. Sebaliknya, ini mendukung perangkat keras pilihan Anda. Baik Arduino atau Raspberry Pi Anda terhubung ke Internet melalui Wi-Fi, Ethernet, atau chip ESP8266 baru ini, Blynk akan membuat Anda online dan siap untuk Internet Of Your Things.

Untuk info lebih lanjut dalam mengatur Blynk: Pengaturan Blynk Terperinci

Langkah 4: Kode

Kode
Kode

//Komentar untuk setiap baris diberikan dalam file.ino di bawah ini

#include #define BLYNK_PRINT Serial #include #include #include #include #include Adafruit_BMP085 bmp; #define I2C_SCL 12 #define I2C_SDA 13 float dst, bt, bp, ba; char dstmp[20], btmp[20], bprs[20], balt[20]; bool bmp085_present=benar; char auth="Letakkan kunci Otentikasi Anda dari aplikasi Blynk di sini"; char ssid = "SSID WiFi Anda"; char pass = "Kata Sandi Anda"; #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); //Mendefinisikan pin dan timer BlynkTimer dhttype; void sendSensor() { if (!bmp.begin()) { Serial.println("Tidak dapat menemukan sensor BMP085 yang valid, periksa kabel!"); while (1) {} } float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(h) || isnan(t)) { Serial.println("Gagal membaca dari sensor DHT!"); kembali; } gamma ganda = log(h/100) + ((17,62*t) / (243,5+t)); dp ganda = 243,5*gamma / (17,62-gamma); float bp = bmp.readPressure()/100; float ba = bmp.readAltitude(); float bt = bmp.readTemperature(); float dst = bmp.readSealevelPressure()/100; Blynk.virtualWrite(V5, h); Blynk.virtualWrite(V6, t); Blynk.virtualWrite(V10, bp); Blynk.virtualWrite(V11, ba); Blynk.virtualWrite(V12, bt); Blynk.virtualWrite(V13, dst); Blynk.virtualWrite(V14, dp); } batalkan pengaturan() { Serial.begin(9600); Blynk.begin(auth, ssid, pass); dht.mulai(); Kawat.begin(I2C_SDA, I2C_SCL); penundaan (10); timer.setInterval(1000L, sendSensor); } void loop() { Blynk.run(); timer.run(); }

Direkomendasikan: