Daftar Isi:
- Langkah 1: Bill of Material
- Langkah 2: Sensor Suhu DS18B20
- Langkah 3: Menghubungkan Sensor ke NodeMCU
- Langkah 4: Memasang Perpustakaan yang Sesuai
- Langkah 5: Menguji Sensor
- Langkah 6: Menggunakan Blynk
- Langkah 7: Kesimpulan
Video: IoT Dibuat Sederhana: Memantau Banyak Sensor: 7 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
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
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
- 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.
-
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
- 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:
- OneWire
- 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
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
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:
- Buat Proyek Baru.
- Beri nama (dalam kasus saya "Monitor Suhu Ganda")
- Pilih Perangkat Baru - ESP8266(WiFi) sebagai "Perangkat Saya"
- Salin AUTH TOKEN yang akan digunakan dalam kode (Anda dapat mengirimkannya ke email Anda).
-
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
- Termasuk Widget "Grafik Sejarah", yang mendefinisikan V10 dan V11 sebagai pin virtual
- 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
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:
Seri IoT ESP8266: 2- Memantau Data Melalui ThingSpeak.com: 5 Langkah
Seri IoT ESP8266: 2- Memantau Data Melalui ThingSpeak.com: Ini adalah bagian kedua dari Seri IoT ESP8266. Untuk melihat bagian 1, lihat Seri IoT ESP8266 yang dapat diinstruksikan ini: 1 Hubungkan ke Router WIFI. Bagian ini bertujuan untuk menunjukkan kepada Anda cara mengirim data sensor Anda ke salah satu layanan cloud gratis IoT yang populer https://thingspeak.com
Cara Memantau Jarak Ultrasonik Dengan ESP8266 dan AskSensors IoT Cloud: 5 Langkah
Cara Memantau Jarak Ultrasonik Dengan ESP8266 dan AskSensors IoT Cloud: Instruksi ini menyajikan cara memantau jarak dari suatu objek menggunakan sensor ultrasonik HC-SR04 dan node MCU ESP8266 yang terhubung ke cloud AskSensors IoT
CloudyData - ESP8266 ke Google Sheets Dibuat Sederhana: 10 Langkah (dengan Gambar)
CloudyData - ESP8266 ke Google Spreadsheet Dibuat Sederhana: Saya telah lama mencari penyimpanan data cloud selama beberapa tahun terakhir: menarik untuk memantau data dari jenis sensor apa pun, tetapi lebih menarik jika data ini tersedia di mana-mana tanpa kesulitan penyimpanan apa pun seperti menggunakan SD
Space Race: Game Clicker Arduino Sederhana untuk Dibuat Bersama Anak-Anak: 7 Langkah
Space Race: Game Clicker Arduino Sederhana untuk Dibuat Bersama Anak-Anak: ¡Saya mengunggah video yang menunjukkan cara kerjanya hari ini! Tetap disiniMari bersenang-senang dengan instruksi bertema luar angkasa yang dapat dibuat bersama anak-anak, dan kemudian dinikmati oleh mereka sendiri sebagai mainan.Anda dapat menggunakannya sebagai sarana untuk mengajari mereka sejarah tentang co
Rangkaian LED-blinky yang Mudah Dibuat, Murah, dan Sederhana Dengan CMOS 74C14: 5 Langkah
Rangkaian Blinky LED yang Mudah Dibuat, Murah, dan Sederhana Dengan CMOS 74C14: Terkadang Anda hanya membutuhkan beberapa LED kedip, untuk dekorasi natal, karya seni kedip, atau hanya untuk bersenang-senang dengan kedip kedip. Saya akan menunjukkan cara membuat rangkaian yang murah dan sederhana dengan hingga 6 LED berkedip. Catatan: Ini adalah instruksi pertama saya dan