Isi kandungan:
- Langkah 1: Bil Bahan
- Langkah 2: Sensor Suhu DS18B20
- Langkah 3: Menyambungkan Sensor ke NodeMCU
- Langkah 4: Memasang Perpustakaan yang Diperuntukkan
- Langkah 5: Menguji Sensor
- Langkah 6: Menggunakan Blynk
- Langkah 7: Kesimpulannya
Video: IoT dipermudahkan: Memantau Pelbagai Sensor: 7 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Beberapa minggu yang lalu, saya menerbitkan tutorial mengenai pemantauan suhu menggunakan DS18B20, sensor digital yang berkomunikasi melalui bas 1-Wire, menghantar data melalui internet dengan NodeMCU dan Blynk:
IoT dipermudahkan: Memantau Suhu Di Mana Saja
Tetapi apa yang kami terlepas dalam penerokaan, adalah salah satu kelebihan besar sensor jenis ini adalah kemungkinan mengumpulkan banyak data, dari pelbagai sensor yang disambungkan ke bas 1 wayar yang sama. Dan, sekarang masanya untuk menjelajahinya.
Kami akan memperluas apa yang dikembangkan pada tutorial terakhir, memantau sekarang dua sensor DS18B20, yang dikonfigurasi satu di Celcius dan satu lagi di Fahrenheit. Data akan dihantar ke Aplikasi Blynk, seperti yang ditunjukkan dalam gambarajah blok di atas.
Langkah 1: Bil Bahan
- NodeMCU ESP 12-E (*)
- Sensor Suhu 2 X DS18B20
- Perintang 4.7K Ohms
- Papan Roti
- Pendawaian
(*) Sebarang jenis peranti ESP boleh digunakan di sini. Yang paling biasa adalah NodeMCU V2 atau V3. Kedua-duanya akan sentiasa berfungsi dengan baik.
Langkah 2: Sensor Suhu DS18B20
Kami akan menggunakan dalam tutorial ini versi kalis air dari sensor DS18B20. Ia sangat berguna untuk suhu jauh dalam keadaan basah, misalnya di tanah lembap. Sensor diasingkan dan dapat melakukan pengukuran hingga 125oC (Adafrut tidak mengesyorkan menggunakannya lebih dari 100oC kerana jaket PVC kabelnya).
DS18B20 adalah sensor digital yang menjadikannya baik untuk digunakan walaupun jarak jauh! Sensor suhu digital 1-wayar ini cukup tepat (± 0,5 ° C melebihi julat) dan boleh memberikan ketepatan hingga 12 bit dari penukar digital-ke-analog onboard. Mereka berfungsi dengan baik dengan NodeMCU menggunakan pin digital tunggal, dan anda juga boleh menghubungkan beberapa pin ke pin yang sama, masing-masing mempunyai ID 64-bit unik yang dibakar di kilang untuk membezakannya.
Sensor berfungsi dari 3.0 hingga 5.0V, yang bermaksud bahawa ia dapat dihidupkan terus dari salah satu pin NodeMCU 3.3V.
Sensor mempunyai 3 wayar:
- Hitam: GND
- Merah: VCC
- Kuning: Data 1-Wire
Di sini, anda dapat mencari data lengkap: Lembaran Data DS18B20
Langkah 3: Menyambungkan Sensor ke NodeMCU
- Sambungkan 3 wayar dari setiap sensor di Breadboard mini seperti yang ditunjukkan pada foto di atas. Saya menggunakan penyambung khas untuk memasang kabel sensor dengan lebih baik.
-
Perhatikan bahawa kedua-dua sensor ini selari. Sekiranya anda mempunyai lebih daripada 2 sensor, anda harus melakukan perkara yang sama.
- Merah ==> 3.3V
- Hitam ==> GND
- Kuning ==> D4
- Gunakan perintang 4.7K ohm antara VCC (3.3V) dan Data (D4)
Langkah 4: Memasang Perpustakaan yang Diperuntukkan
Untuk menggunakan DS18B20 dengan betul, dua perpustakaan akan diperlukan:
- OneWire
- Suhu Dallas
Pasang kedua-dua perpustakaan tersebut di simpanan Arduino IDE Library anda.
Perhatikan bahawa perpustakaan OneWire HARUS menjadi yang istimewa, diubahsuai untuk digunakan dengan ESP8266, jika tidak, anda akan mendapat ralat semasa penyusunan. Anda akan mendapat versi terakhir di pautan di atas.
Langkah 5: Menguji Sensor
Untuk menguji sensor, muat turun fail di bawah dari GitHub saya:
NodeMCU_DS18B20_Dual_Se nsor_test.ino
/**************************************************************
* Ujian Pengirim Pelbagai Suhu * * 2 x Sensor OneWire: DS18B20 * Disambungkan ke NodeMCU D4 (atau Arduino Pin 2) * * Dibangunkan oleh Marcelo Rovai - 25 Ogos 2017 **************** ********************************************** / #sertakan # sertakan #define ONE_WIRE_BUS 2 // DS18B20 pada NodeMCU pin D4 OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); persediaan tidak sah () {Serial.begin (115200); DS18B20.begin (); Serial.println ("Menguji data Sensor Dual"); } gelung void () {float temp_0; terapung 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 dalam Fahrenheit Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Cetakan bersiri (temp_1); Serial.println ("oF"); kelewatan (1000); }
Melihat kod di atas, kita harus perhatikan bahawa garis 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 Temp di Fahrenheit
Yang pertama akan mengembalikan nilai dari Sensor [0] (lihat "indeks (0)") dalam Celcius (lihat bahagian kod: "getTempC". Baris kedua berkaitan dengan Sensor [1] dan akan mengembalikan data di Fahrenheit. Anda boleh mempunyai sensor "n" di sini kerana anda mempunyai "indeks" yang berbeza untuk masing-masing.
Muat naik sekarang kod di NodeMCU anda dan pantau suhu menggunakan Serial Monitor.
Foto di atas menunjukkan hasil yang diharapkan. Pegang setiap sensor di tangan anda, anda akan melihat suhu meningkat.
Langkah 6: Menggunakan Blynk
Sebaik sahaja anda mula menangkap data suhu, inilah masanya untuk melihatnya dari mana sahaja. Kami akan melakukan ini menggunakan Blynk. Jadi, semua data yang ditangkap akan dipaparkan dalam masa nyata pada peranti mudah alih anda dan kami juga akan membina simpanan sejarah untuk itu.
Ikuti langkah berikut:
- Buat Projek Baru.
- Beri nama (dalam kes saya "Monitor Suhu Ganda")
- Pilih Peranti Baru - ESP8266 (WiFi) sebagai "Peranti Saya"
- Salin TOKEN AUTH untuk digunakan dalam kod (anda boleh menghantarnya ke e-mel anda).
-
Termasuk dua Widget "Gauge", yang menentukan:
- Pin maya yang akan digunakan dengan setiap sensor: V10 (Sensor [0]) dan V11 (Sensor [1])
- Julat suhu: -5 hingga 100 oC untuk Sensor [0]
- Julat suhu: 25 hingga 212 oC untuk Sensor [1]
- Kekerapan membaca data: 1 saat
- Termasuk Widget "Grafik Sejarah", yang menentukan V10 dan V11 sebagai pin maya
- Tekan "Main" (Segitiga di sudut kanan atas)
Sudah tentu, Aplikasi Blynk akan memberitahu anda bahawa NodeMCU tidak berfungsi. Sudah tiba masanya untuk memuat naik kod penuh di Arduino IDE anda. Anda boleh mendapatkannya di sini:
NodeMCU_Dual_Sensor_Blynk_Ext.ino
Tukar "data dummy" dengan bukti kelayakan anda sendiri.
/ * Kelayakan Blynk * /
char auth = "KOD AUTH BLYNK ANDA DI SINI"; / * Kelayakan WiFi * / char ssid = "SSID ANDA"; char pass = "KATA LALUAN ANDA";
Dan itu sahaja!
Di bawah kod penuh. Ini pada dasarnya adalah kod sebelumnya, di mana kita memasukkan dengan parameter Blynk dan fungsi tertentu. Perhatikan 2 baris terakhir kod. Itulah yang paling penting di sini. Sekiranya anda mempunyai lebih banyak sensor yang mengumpulkan data, anda juga harus mempunyai barisan baru yang setara dengan yang baru (dengan pin maya baru yang berkaitan).
/**************************************************************
* Monitor Suhu Pelbagai IoT dengan Blynk * Perpustakaan Blynk dilesenkan di bawah lesen MIT * Contoh kod ini berada dalam domain awam. * * Multiple OneWire Sensor: DS18B20 * Dibangunkan oleh Marcelo Rovai - 25 Ogos 2017 ********************************** **************************** / / * ESP & Blynk * / #include #include #define BLYNK_PRINT Serial // Komen ini kepada lumpuhkan cetakan dan jimat ruang / * kelayakan Blynk * / char auth = "KOD AUTH BLYNK ANDA DI SINI"; / * Kelayakan WiFi * / char ssid = "SSID ANDA"; char pass = "KATA LALUAN ANDA"; / * TIMER * / #termasuk pemasa SimpleTimer; / * Sensor Suhu DS18B20 * / #masuk #masuk #definisi ONE_WIRE_BUS 2 // DS18B20 pada arduino pin2 sepadan dengan D4 pada papan fizikal OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); int temp_0; int temp_1; persediaan tidak sah () {Serial.begin (115200); Blynk.begin (auth, ssid, pass); DS18B20.begin (); timer.setInterval (1000L, getSendData); Serial.println (""); Serial.println ("Menguji data Sensor Dual"); } gelung kosong () {timer.run (); // Memulakan SimpleTimer Blynk.run (); } / ************************************************ *** * Hantar data Sensor ke Blynk ***************************************** ********* / batal 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 dalam Fahrenheit Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Cetakan bersiri (temp_1); Serial.println ("oF"); Blynk.virtualWrite (10, temp_0); // pin maya V10 Blynk.virtualWrite (11, temp_1); // pin maya V11}
Setelah kod dimuat naik dan dijalankan, periksa aplikasi Blynk. Ia seharusnya juga berjalan seperti yang ditunjukkan pada skrin cetak di atas dari iPhone saya.
Langkah 7: Kesimpulannya
Seperti biasa, saya harap projek ini dapat membantu orang lain mencari jalan dalam dunia elektronik, robotik, dan IoT yang menarik!
Sila lawati GitHub saya untuk fail yang dikemas kini: NodeMCU Dual Temp Monitor
Untuk lebih banyak projek, sila lawati blog saya: MJRoBot.org
Saludos dari selatan dunia!
Jumpa anda di arahan saya yang seterusnya!
Terima kasih, Marcelo
Disyorkan:
Siri IoT ESP8266: 2- Memantau Data Melalui ThingSpeak.com: 5 Langkah
Siri IoT ESP8266: 2- Memantau Data Melalui ThingSpeak.com: Ini adalah bahagian kedua dari Siri IoT ESP8266. Untuk melihat bahagian 1, rujuk siri IoT ESP8266: 1 Sambungkan ke Penghala WIFI ini. Bahagian ini bertujuan untuk menunjukkan cara menghantar data sensor anda ke salah satu perkhidmatan awan percuma IoT yang popular https: //thingspeak.com
Cara Memantau Jarak Ultrasonik Dengan ESP8266 dan AskSensors IoT Cloud: 5 Langkah
Cara Memantau Jarak Ultrasonik Dengan ESP8266 dan AskSensors Cloud IoT: Petunjuk ini menunjukkan cara memantau jarak dari objek menggunakan sensor ultrasonik HC-SR04 dan MC8 nod ESP8266 yang disambungkan ke awan AskSensors IoT
Memantau Lizard Terrarium Menggunakan Adosia IoT WiFi Controller + Motion Detect: 17 Langkah (dengan Gambar)
Memantau Lizard Terrarium Menggunakan Adosia IoT WiFi Controller + Motion Detect: Dalam tutorial ini kami akan menunjukkan kepada anda cara membina terarium kadal sederhana untuk sebilangan kecil telur skink yang secara tidak sengaja kami temui dan terganggu semasa berkebun di luar. Kami mahu telur menetas dengan selamat, jadi semua yang akan kita lakukan adalah mewujudkan ruang yang selamat dengan menggunakan
Arduino Mengawal Sensor P.I.R Pelbagai pada Bord yang Sama: 3 Langkah
Arduino Mengawal Sensor PIR Pelbagai di Bord yang Sama: Hari ini saya akan memberitahu anda bagaimana untuk menghubungkan beberapa PIR Sensor dengan Arduino Bord tunggal > di sini saya juga telah menggunakan modul relay 4 saluran untuk beberapa fungsi tambahan .ARDUINO + Modul Relay 4 Saluran + Sensor 4 PIR (ATAU Anda boleh menggunakan seberapa banyak pin arduin anda
Cara Membuat Peranti IoT untuk Mengawal Peralatan dan Memantau Cuaca Menggunakan Esp8266: 5 Langkah
Cara Membuat Peranti IoT untuk Mengawal Peralatan dan Memantau Cuaca Menggunakan Esp8266: Internet of things (IoT) adalah rangkaian antara peranti fizikal (juga disebut sebagai "peranti bersambung" dan "peranti pintar"), bangunan, dan item lain - disertakan dengan elektronik, perisian, sensor, penggerak, dan