Isi kandungan:

Stesen Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Over Blynk Server: 4 Langkah
Stesen Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Over Blynk Server: 4 Langkah

Video: Stesen Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Over Blynk Server: 4 Langkah

Video: Stesen Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Over Blynk Server: 4 Langkah
Video: Arduino Nano, BME280 и SSD1306 OLED-метеостанция 2024, November
Anonim
Stesen Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Over Blynk Server
Stesen Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Over Blynk Server
Stesen Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Over Blynk Server
Stesen Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Over Blynk Server
Stesen Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Over Blynk Server
Stesen Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Over Blynk Server
Stesen Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Over Blynk Server
Stesen Cuaca DIY Menggunakan DHT11, BMP180, Nodemcu Dengan Arduino IDE Over Blynk Server

Github: DIY_Weather_Station

Hackster.io: Stesen Cuaca

Anda pasti akan melihat Aplikasi Cuaca bukan? Seperti, apabila anda membukanya anda dapat mengetahui keadaan cuaca seperti Suhu, Kelembapan dll. Pembacaan tersebut adalah nilai rata-rata kawasan yang besar, jadi jika anda ingin mengetahui parameter yang tepat berkaitan dengan bilik anda, anda tidak boleh bergantung pada Aplikasi Cuaca. Untuk tujuan ini mari beralih ke pembuatan Weather Station yang menjimatkan kos, dan juga boleh dipercayai dan memberi kita nilai yang tepat.

Stesyen cuaca adalah kemudahan dengan instrumen dan peralatan untuk mengukur keadaan atmosfera untuk memberikan maklumat ramalan cuaca dan mengkaji cuaca dan iklim. Ia memerlukan sedikit usaha untuk memasang dan membuat kod. Oleh itu, mari kita mulakan.

Mengenai Nodemcu:

NodeMCU adalah platform IoT sumber terbuka.

Ini termasuk firmware yang berjalan pada ESP8266 Wi-Fi SoC dari Espressif Systems, dan perkakasan yang berdasarkan pada modul ESP-12.

Istilah "NodeMCU" secara lalai merujuk kepada firmware dan bukannya kit dev. Firmware menggunakan bahasa skrip Lua. Ia berdasarkan projek eLua, dan dibangunkan pada Espressif Non-OS SDK untuk ESP8266. Ia menggunakan banyak projek sumber terbuka, seperti lua-cjson, dan spiffs.

Keperluan Sensor dan Perisian:

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

2. DHT11

3. BMP180

4. Arduino IDE

Langkah 1: Ketahui Sensor Anda

Ketahui Sensor Anda
Ketahui Sensor Anda

BMP180:

Penerangan:

BMP180 terdiri daripada sensor piezo-resistive, analog ke digital converter dan unit kawalan dengan E2PROM dan antara muka I2C bersiri. BMP180 memberikan nilai tekanan dan suhu tanpa pampasan. E2PROM telah menyimpan 176 bit data penentukuran individu. Ini digunakan untuk mengimbangi offset, pergantungan suhu dan parameter lain dari sensor.

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

Spesifikasi Teknikal:

  • Vin: 3 hingga 5VDC
  • Logik: Patuh 3 hingga 5V
  • Julat penderiaan tekanan: 300-1100 hPa (9000m hingga -500m di atas permukaan laut)
  • Hingga 0.03hPa / 0.25m resolusi -40 hingga + 85 ° C julat operasi, + -2 ° C ketepatan suhu
  • Papan / cip ini menggunakan alamat 7-bit I2C 0x77.

DHT11:

Penerangan:

  • DHT11 adalah sensor suhu dan kelembapan digital asas yang sangat rendah.
  • Ia menggunakan sensor kelembapan kapasitif dan termistor untuk mengukur udara di sekitarnya, dan mengeluarkan isyarat digital pada pin data (tidak diperlukan pin input analog). Cukup mudah digunakan, tetapi memerlukan masa yang berhati-hati untuk mengambil data.
  • Satu-satunya kelemahan sebenar sensor ini ialah anda hanya dapat memperoleh data baru daripadanya setiap 2 saat, jadi ketika menggunakan perpustakaan kami, pembacaan sensor boleh sampai 2 detik.

Spesifikasi Teknikal:

  • Kuasa 3 hingga 5V dan I / O
  • Baik untuk bacaan suhu 0-50 ° C ketepatan ± 2 ° C
  • Baik untuk bacaan kelembapan 20-80% dengan ketepatan 5%
  • Penggunaan semasa maksimum 2.5 mA semasa penukaran (semasa meminta data)

Langkah 2: Kesambungan

Kesalinghubungan
Kesalinghubungan

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
Persediaan Blynk
Persediaan Blynk

Apa itu Blynk?

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

Ia adalah papan pemuka digital di mana anda boleh membina antara muka grafik untuk projek anda dengan hanya menyeret dan melepaskan widget. Sangat mudah untuk mengatur semuanya dan anda akan mula bermain-main dalam masa kurang dari 5 minit. Blynk tidak terikat pada papan atau perisai tertentu. Sebaliknya, ia menyokong perkakasan pilihan anda. Sama ada Arduino atau Raspberry Pi anda dihubungkan ke Internet melalui Wi-Fi, Ethernet atau cip ESP8266 baru ini, Blynk akan membuat anda dalam talian dan bersedia untuk Internet Perkara Anda.

Untuk maklumat lebih lanjut mengenai penyediaan Blynk: Persediaan Blynk Terperinci

Langkah 4: Kod

Kod
Kod

// Komen untuk setiap baris diberikan dalam fail.ino di bawah

#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 = "Masukkan kunci Pengesahan anda dari aplikasi Blynk di sini"; char ssid = "SSID WiFi anda"; char pass = "Kata Laluan Anda"; #definisi DHTPIN 2 #definisi DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE); // Mendefinisikan pin dan pemasa BlynkTimer dhttype; batal sendSensor () {if (! bmp.begin ()) {Serial.println ("Tidak dapat mencari sensor BMP085 yang sah, periksa pendawaian!"); sementara (1) {}} float h = dht.readHumidity (); terapung t = dht.readTemperature (); if (isnan (h) || isnan (t)) {Serial.println ("Gagal membaca dari sensor DHT!"); kembali; } gamma berganda = log (h / 100) + ((17.62 * t) / (243.5 + t)); double dp = 243.5 * gamma / (17.62-gamma); terapung bp = bmp.readPressure () / 100; apungan ba = bmp.readAltitude (); apungan 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); } batal persediaan () {Serial.begin (9600); Blynk.begin (auth, ssid, pass); dht.begin (); Wire.begin (I2C_SDA, I2C_SCL); kelewatan (10); timer.setInterval (1000L, sendSensor); } gelung kosong () {Blynk.run (); pemasa.run (); }

Disyorkan: