Daftar Isi:

IoT Dibuat Sederhana: Memantau Banyak Sensor: 7 Langkah
IoT Dibuat Sederhana: Memantau Banyak Sensor: 7 Langkah

Video: IoT Dibuat Sederhana: Memantau Banyak Sensor: 7 Langkah

Video: IoT Dibuat Sederhana: Memantau Banyak Sensor: 7 Langkah
Video: Membuat Alat GPS Pelacak Lokasi Ukuran Mini Arduino - PCBWAY.COM 2024, Juli
Anonim
IoT Dibuat Sederhana: Memantau Banyak Sensor
IoT Dibuat Sederhana: Memantau Banyak Sensor
IoT Dibuat Sederhana: Memantau Banyak Sensor
IoT Dibuat Sederhana: Memantau Banyak Sensor

Beberapa minggu yang lalu, saya menerbitkan di sini tutorial tentang pemantauan suhu menggunakan DS18B20, sensor digital yang berkomunikasi melalui bus 1-Wire, mengirim data melalui internet dengan NodeMCU dan Blynk:

IoT Dibuat Sederhana: Memantau Suhu Di Mana Saja

Tapi apa yang kami lewatkan dalam eksplorasi, adalah salah satu keuntungan besar dari jenis sensor ini yaitu kemungkinan mengumpulkan banyak data, dari beberapa sensor yang terhubung ke bus 1-kawat yang sama. Dan, sekarang saatnya untuk juga menjelajahinya.

Kami akan memperluas apa yang dikembangkan pada tutorial terakhir, memantau sekarang dua sensor DS18B20, yang dikonfigurasi satu dalam Celcius dan yang lainnya dalam Fahrenheit. Data akan dikirim ke Aplikasi Blynk, seperti yang ditunjukkan pada diagram blok di atas.

Langkah 1: Bill of Material

  • NodeMCU ESP 12-E (*)
  • 2 X DS18B20 Sensor Suhu
  • Resistor 4.7K Ohm
  • Papan tempat memotong roti
  • Pengkabelan

(*) Semua jenis perangkat ESP dapat digunakan di sini. Yang paling umum adalah NodeMCU V2 atau V3. Keduanya akan selalu bekerja dengan baik.

Langkah 2: Sensor Suhu DS18B20

Sensor Suhu DS18B20
Sensor Suhu DS18B20

Kami akan menggunakan dalam tutorial ini versi tahan air dari sensor DS18B20. Ini sangat berguna untuk suhu yang jauh dalam kondisi basah, misalnya di tanah yang lembab. Sensor diisolasi dan dapat melakukan pengukuran hingga 125oC (Adafrut tidak merekomendasikan untuk menggunakannya di atas 100oC karena jaket kabel PVC-nya).

DS18B20 adalah sensor digital yang membuatnya baik digunakan bahkan untuk jarak jauh! Sensor suhu digital 1-kawat ini cukup presisi (±0,5°C pada sebagian besar rentang) dan dapat memberikan presisi hingga 12 bit dari konverter digital-ke-analog onboard. Mereka bekerja sangat baik dengan NodeMCU menggunakan satu pin digital, dan Anda bahkan dapat menghubungkan beberapa pin ke pin yang sama, masing-masing memiliki ID 64-bit unik yang dibakar di pabrik untuk membedakannya.

Sensor bekerja dari 3.0 hingga 5.0V, yang berarti dapat diaktifkan langsung dari salah satu pin NodeMCU 3.3V.

Sensor memiliki 3 kabel:

  • Hitam: GND
  • Merah: VCC
  • Kuning: Data 1-Kawat

Di sini, Anda dapat menemukan data lengkap: Lembar Data DS18B20

Langkah 3: Menghubungkan Sensor ke NodeMCU

Menghubungkan Sensor ke NodeMCU
Menghubungkan Sensor ke NodeMCU
  1. Hubungkan 3 kabel dari masing-masing sensor di Breadboard mini seperti yang ditunjukkan pada foto di atas. Saya menggunakan konektor khusus untuk memperbaiki kabel sensor dengan lebih baik.
  2. Perhatikan bahwa kedua sensor berada secara paralel. Jika Anda memiliki lebih dari 2 sensor, Anda harus melakukan hal yang sama.

    • Merah ==> 3.3V
    • Hitam ==> GND
    • Kuning ==> D4
  3. Gunakan resistor 4.7K ohm antara VCC (3.3V) dan Data (D4)

Langkah 4: Memasang Perpustakaan yang Sesuai

Untuk menggunakan DS18B20 dengan benar, dua perpustakaan akan diperlukan:

  1. OneWire
  2. DallasSuhu

Instal kedua perpustakaan di penyimpanan Perpustakaan IDE Arduino Anda.

Perhatikan bahwa perpustakaan OneWire HARUS menjadi yang khusus, dimodifikasi untuk digunakan dengan ESP8266, jika tidak, Anda akan mendapatkan kesalahan selama kompilasi. Anda akan menemukan versi terakhir di tautan di atas.

Langkah 5: Menguji Sensor

Menguji Sensor
Menguji Sensor

Untuk menguji sensor, unduh file di bawah ini dari GitHub saya:

NodeMCU_DS18B20_Dual_Se nsor_test.ino

/**************************************************************

* Tes Pengirim Suhu Berganda * * 2 x Sensor OneWire: DS18B20 * Terhubung ke NodeMCU D4 (atau Arduino Pin 2) * * Dikembangkan oleh Marcelo Rovai - 25 Agustus 2017 **************** **********************************************/ #termasuk # sertakan #define ONE_WIRE_BUS 2 // DS18B20 pada pin NodeMCU D4 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature DS18B20(&oneWire); void setup() { Serial.begin(115200); DS18B20.begin(); Serial.println("Menguji data Sensor Ganda"); } void loop() { float temp_0; mengambang temp_1; DS18B20.requestTemperatures(); temp_0 = DS18B20.getTempCByIndex(0); // Sensor 0 akan menangkap Temp dalam Celcius temp_1 = DS18B20.getTempFByIndex(1); // Sensor 0 akan menangkap Temp di Fahrenheit Serial.print("Temp_0: "); Serial.print(temp_0); Serial.print(" oC. Temp_1: "); Serial.print(temp_1); Serial.println("oF"); penundaan (1000); }

Melihat kode di atas, kita harus memperhatikan bahwa baris yang paling penting adalah:

temp_0 = DS18B20.getTempCByIndex(0); // Sensor 0 akan menangkap Temp dalam Celcius

temp_1 = DS18B20.getTempFByIndex(1); // Sensor 0 akan menangkap Suhu dalam Fahrenheit

Baris pertama akan mengembalikan nilai dari Sensor [0] (lihat "index(0)") dalam Celcius (lihat bagian kode: "getTempC". Baris kedua terkait dengan Sensor[1] dan akan mengembalikan data di Fahrenheit Anda bisa memiliki sensor "n" di sini karena Anda memiliki "indeks" yang berbeda untuk masing-masing sensor.

Unggah sekarang kode di NodeMCU Anda dan pantau suhunya menggunakan Serial Monitor.

Foto di atas menunjukkan hasil yang diharapkan. Pegang masing-masing sensor di tangan Anda, Anda akan melihat suhu naik.

Langkah 6: Menggunakan Blynk

Menggunakan Blynk
Menggunakan Blynk
Menggunakan Blynk
Menggunakan Blynk

Setelah Anda mulai mengambil data suhu, saatnya untuk melihatnya dari mana saja. Kami akan melakukan ini menggunakan Blynk. Jadi, semua data yang diambil akan ditampilkan secara real time di perangkat seluler Anda dan kami juga akan membangun penyimpanan historis untuk itu.

Ikuti langkah-langkah di bawah ini:

  1. Buat Proyek Baru.
  2. Beri nama (dalam kasus saya "Monitor Suhu Ganda")
  3. Pilih Perangkat Baru - ESP8266(WiFi) sebagai "Perangkat Saya"
  4. Salin AUTH TOKEN yang akan digunakan dalam kode (Anda dapat mengirimkannya ke email Anda).
  5. Termasuk dua Widget "Pengukur", yang menentukan:

    • Pin virtual yang akan digunakan dengan masing-masing sensor: V10 (Sensor[0]) dan V11 (Sensor[1])
    • Kisaran suhu: -5 hingga 100 oC untuk Sensor [0]
    • Kisaran suhu: 25 hingga 212 oC untuk Sensor [1]
    • Frekuensi membaca data: 1 detik
  6. Termasuk Widget "Grafik Sejarah", yang mendefinisikan V10 dan V11 sebagai pin virtual
  7. Tekan "Mainkan" (Segitiga di sudut kanan atas)

Tentu saja, Aplikasi Blynk akan memberi tahu Anda bahwa NodeMCU sedang offline. Saatnya mengunggah kode lengkapnya di Arduino IDE Anda. Anda bisa mendapatkannya di sini:

NodeMCU_Dual_Sensor_Blynk_Ext.ino

Ubah "data dummy" dengan kredensial Anda sendiri.

/* Kredensial Blynk */

char auth = "KODE AUTH BLYNK ANDA DI SINI"; /* Kredensial WiFi */ char ssid = "SSID ANDA"; char pass = "PASSWORD ANDA";

Dan itu saja!

Di bawah kode lengkapnya. Ini pada dasarnya adalah kode sebelumnya, di mana kami memasukkan parameter Blynk dan fungsi tertentu. Perhatikan 2 baris terakhir dari kode. Mereka adalah yang paling penting di sini. Jika Anda memiliki lebih banyak sensor yang mengumpulkan data, Anda juga harus memiliki jalur baru yang setara dengan jalur tersebut (dengan pin virtual baru terkait yang ditentukan).

/**************************************************************

* IoT Multiple Temperature Monitor dengan Blynk * Perpustakaan Blynk dilisensikan di bawah lisensi MIT * Kode contoh ini ada di domain publik. * * Multiple OneWire Sensor: DS18B20 * Dikembangkan oleh Marcelo Rovai - 25 Agustus 2017 ********************************** ****************************/ /* ESP & Blynk */ #include #include #define BLYNK_PRINT Serial // Komentari ini ke nonaktifkan cetakan dan hemat ruang /* Kredensial Blynk */ char auth = "KODE AUTH BLYNK ANDA DI SINI"; /* Kredensial WiFi */ char ssid = "SSID ANDA"; char pass = "PASSWORD ANDA"; /* TIMER */ #termasuk timer SimpleTimer; /* Sensor Suhu DS18B20 */ #include #include #define ONE_WIRE_BUS 2 // DS18B20 pada pin2 arduino sesuai dengan D4 pada papan fisik OneWire oneWire(ONE_WIRE_BUS); DallasTemperature DS18B20(&oneWire); int suhu_0; int suhu_1; void setup() { Serial.begin(115200); Blynk.begin(auth, ssid, pass); DS18B20.begin(); timer.setInterval(1000L, getSendData); Serial.println(" "); Serial.println("Menguji data Sensor Ganda"); } void loop() { timer.run(); // Memulai SimpleTimer Blynk.run(); } /************************************************ *** * Kirim data Sensor ke Blynk ***************************************** *********/ void getSendData() { DS18B20.requestTemperatures(); temp_0 = DS18B20.getTempCByIndex(0); // Sensor 0 akan menangkap Temp dalam Celcius temp_1 = DS18B20.getTempFByIndex(1); // Sensor 0 akan menangkap Temp di Fahrenheit Serial.print("Temp_0: "); Serial.print(temp_0); Serial.print(" oC. Temp_1: "); Serial.print(temp_1); Serial.println("oF"); Blynk.virtualWrite(10, temp_0); //pin virtual V10 Blynk.virtualWrite(11, temp_1); //pin virtual V11 }

Setelah kode diunggah dan dijalankan, periksa aplikasi Blynk. Seharusnya sekarang juga berjalan seperti yang ditunjukkan pada layar cetak di atas dari iPhone saya.

Langkah 7: Kesimpulan

Kesimpulan
Kesimpulan

Seperti biasa, saya berharap proyek ini dapat membantu orang lain menemukan jalan mereka di dunia elektronik, robotika, dan IoT yang mengasyikkan!

Silakan kunjungi GitHub saya untuk file yang diperbarui: NodeMCU Dual Temp Monitor

Untuk proyek lainnya, silakan kunjungi blog saya: MJRoBot.org

Saludos dari selatan dunia!

Sampai jumpa di instruksi saya berikutnya!

Terima kasih, Marcelo

Direkomendasikan: