Daftar Isi:

Menghubungkan Sensor DHT11/DHT22 ke Cloud Dengan Board berbasis ESP8266: 9 Langkah
Menghubungkan Sensor DHT11/DHT22 ke Cloud Dengan Board berbasis ESP8266: 9 Langkah

Video: Menghubungkan Sensor DHT11/DHT22 ke Cloud Dengan Board berbasis ESP8266: 9 Langkah

Video: Menghubungkan Sensor DHT11/DHT22 ke Cloud Dengan Board berbasis ESP8266: 9 Langkah
Video: DHT11 sensor Tutorial di NodeMCU ESP8266 beserta Pengujian & Kalibrasinya 2024, November
Anonim
Menghubungkan Sensor DHT11/DHT22 ke Cloud Dengan Board berbasis ESP8266
Menghubungkan Sensor DHT11/DHT22 ke Cloud Dengan Board berbasis ESP8266

Pada artikel sebelumnya, saya menghubungkan board NodeMCU berbasis ESP8266 saya ke layanan Cloud4RPi. Sekarang, saatnya untuk proyek nyata!

Perlengkapan

Persyaratan perangkat keras:

  • Papan apa pun berdasarkan chip ESP8266 (misalnya, NodeMCU)
  • Sensor DHT11 atau DHT22

Perangkat lunak dan layanan:

  • Pustaka sensor DHT oleh Adafruit - v1.3.7
  • Sensor Terpadu Adafruit - v1.0.3
  • cloud4rpi-esp-arduino - v0.1.0
  • Cloud4RPI - Panel kontrol cloud untuk perangkat IoT
  • PlatformIO IDE untuk VSCode

Langkah 1: Ukur Suhu dan Kelembaban

Ukur Suhu dan Kelembaban
Ukur Suhu dan Kelembaban

Saya sudah memiliki sensor DHT11, jadi saya memutuskan untuk menggunakannya untuk pengukuran suhu dan kelembaban. Mari kita pilih perpustakaan Arduino untuk membaca data sensor.

Registri Arduino berisi beberapa perpustakaan, dari mana saya memilih yang paling populer.

Menurut repositori GitHub mereka, kami juga diharuskan untuk menambahkan paket Adafruit Unified Sensor.

Langkah 2: Buat dan Konfigurasikan Proyek

Buat dan Konfigurasikan Proyek
Buat dan Konfigurasikan Proyek

Saya sudah menjelaskan cara membuat proyek PlatformIO dan menginstal perpustakaan di bagian pertama. Proyek saya disebut "MyNodeMCU". Strukturnya ditunjukkan di atas.

Proyek ini adalah contoh Cloud4RPi yang sedikit dimodifikasi. Saya memutuskan untuk menyimpan token perangkat dan kredensial Wi-Fi dalam file konfigurasi, bukan kode.

File platform.io terlihat sebagai berikut:

[platformio]default_envs = nodemcuv2[env:nodemcuv2] platform = espressif8266 framework = arduino board = nodemcuv2

Langkah 3: Instal Perpustakaan

Instal Perpustakaan
Instal Perpustakaan

Instalasi perpustakaan cukup sederhana. Anda dapat melakukannya dari antarmuka grafis IDE, atau dengan menambahkan nama pustaka yang diperlukan ke bagian lib_deps dari file platform.io:

; …lib_deps = cloud4rpi-esp-arduino Adafruit Unified Sensor Pustaka sensor DHT build_flags = -D MQTT_MAX_PACKET_SIZE=1024 -D MQTT_MAX_TRANSFER_SIZE=128 -D CLOUD4RPI_DEBUG=0 -D SSID_NAME=\"_YOUR_WIFI_\" -SSWOR_WIFI_\" -PASOR_WIFI_\" D CLOUD4RPI_TOKEN=\"_YOUR_DEVICE_TOKEN_\"

Pustaka yang ditambahkan akan diinstal secara otomatis ke dalam subfolder proyek.

Header main.cpp terlihat sebagai berikut:

#include #include #include #include "DHT.h"

Langkah 4: Hubungkan Sensor DHT11

Adafruit memberikan contoh koneksi sensor DHTtester.ino.

Kode ini menginisialisasi sensor dan mendefinisikan struktur untuk menyimpan hasil pengukuran (jika berhasil):

#define DHTPIN 2 // Pin digital terhubung ke sensor DHT#define DHTTYPE DHT11 // DHT 11 // … DHT dht(DHTPIN, DHTTYPE); dht.mulai(); // … struct DHT_Result { float h; mengapung t; }; DHT_Result dhtResult;

Fungsi selanjutnya menunjukkan cara membaca data sensor dan menyimpannya dalam struktur data yang dijelaskan di atas

void readSensors() { float h = dht.readHumidity(); // Baca suhu sebagai Celcius (default) float t = dht.readTemperature();

// Periksa apakah ada pembacaan yang gagal dan keluar

if (isnan(h) || isnan(t)) { Serial.println(F("Gagal membaca dari sensor DHT!")); kembali; } dhtResult.h = h; dhtResult.t = t; }

Langkah 5: Mengirim Data ke Cloud

Setelah kita memiliki data tersebut, langkah selanjutnya adalah mengirimkannya ke layanan Cloud4RPi.

Halaman Cloud4RPi untuk Arduino menjelaskan API perpustakaan, yang merupakan kumpulan metode yang digunakan untuk:

  • membuat, membaca dan memperbarui variabel,
  • mengirim nilai variabel ke cloud menggunakan protokol MQTT.

Pustaka mendukung tiga jenis variabel: Bool, Numeric, dan String.

Alur kerja library dimulai dengan membuat instance API menggunakan Device Token dari situs web cloud4rpi.io (lihat bagian 1 artikel untuk detailnya).

#jika ditentukan(CLOUD4RPI_TOKEN) Cloud4RPi c4r(CLOUD4RPI_TOKEN); #else Cloud4RPi c4r("!!!_NO_DEVICE_TOKEN_!!!"); #berakhir jika

Kemudian, deklarasikan variabel untuk pembacaan DHT11:

c4r.declareNumericVariable("DHT11_Temp");c4r.declareNumericVariable("DHT11_Hum");

Kemudian, dapatkan data dari sensor, simpan ke dalam variabel dan publikasikan data ke Cloud4RPi:

c4r.setVariable("DHT11_Temp", dhtResult.t);c4r.setVariable("DHT11_Hum", dhtResult.h); c4r.publishData();

Suhu dan kelembaban tidak berubah dengan cepat, jadi tidak perlu mengirim lebih dari satu nilai per 5 menit.

Langkah 6: Diagnostik

Cloud4RPi mendukung data diagnostik bersama dengan nilai variabel. Saya menggunakan waktu aktif, kekuatan sinyal Wi-Fi, dan alamat IP sebagai data diagnostik:

c4r.declareDiagVariable("IP_Address");c4r.declareDiagVariable("RSSI"); // Kekuatan sinyal WiFi c4r.declareDiagVariable("Uptime");

Catatan: Fungsi milis yang saya gunakan untuk mendapatkan reset uptime ke nol setiap ~50 hari. Yang lebih dari cukup untuk proyek saya.

Kode berikut menetapkan nilai variabel diagnostik:

c4r.setDiagVariable("RSSI", (String)WiFi. RSSI() + " dBm");c4r.setDiagVariable("IP_Address", WiFi.localIP().toString()); c4r.setDiagVariable("Waktu Aktif", uptimeHumanReadable(Millis saat ini)); c4r.publishDiag();

Fungsi uptimeHumanReadable mengonversi milidetik menjadi bentuk yang nyaman:

String uptimeHumanReadable(milidetik panjang yang tidak ditandatangani) { static char uptimeStr[32]; detik panjang yang tidak ditandatangani = milidetik / 1000; menit panjang yang tidak ditandatangani = detik / 60; unsigned int jam = menit / 60; unsigned int hari = jam / 24; detik -= menit * 60; menit -= jam * 60; jam -= hari * 24; sprintf(uptimeStr, "%d hari %2.2d:%2.2d:%2.2d", (byte)hari, (byte)jam, (byte)menit, (byte)dtk); kembali String(uptimeStr); }

Fungsi ini menghasilkan string seperti ini 5 hari 10:23:14 alih-alih angka besar yang aneh.

Langkah 7: Mulai dan Debug Proyek

Mulai dan Debug Proyek
Mulai dan Debug Proyek

Setelah mengkompilasi kode yang dibuat dan mem-flash-nya ke NodeMCU, perangkat terhubung ke layanan cloud dan mulai mengirim data.

Anda dapat meningkatkan verbositas logging dengan menyetel variabel praprosesor CLOUD4RPI_DEBUG ke 1 (tambahkan -D CLOUD4RPI_DEBUG=1 ke bagian build_flags di file platform.io).

Selanjutnya, buka situs cloud4rpi.io dan perhatikan perangkat baru secara online. Buka untuk melihat semua nilai variabel yang diterima dari perangkat: sensor dan diagnostik.

Langkah 8: Konfigurasi Dasbor

Konfigurasi Dasbor
Konfigurasi Dasbor

Pada langkah ini, koneksi data ke cloud sudah beroperasi. Sekarang, mari kita konfigurasikan representasi visual dari data.

Saya menggunakan UI konfigurasi Dasbor untuk membuat dasbor berikut.

Dasbornya dapat dibagikan, jadi saya langsung membagikannya dengan teman saya.

Langkah 9: Kesimpulan

Kesimpulan
Kesimpulan

Kode proyek lengkap tersedia di intinya.

Itu saja untuk saat ini!

Pertanyaan dan saran dipersilahkan di komentar.

Direkomendasikan: