Obsah:
- Krok 1: Kusovník
- Krok 2: Snímač teploty DS18B20
- Krok 3: Připojení senzorů k NodeMCU
- Krok 4: Instalace přivlastněných knihoven
- Krok 5: Testování senzorů
- Krok 6: Použití Blynku
- Krok 7: Závěr
Video: Jednoduché IoT: Monitorování více senzorů: 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Před několika týdny jsem zde zveřejnil návod k monitorování teploty pomocí DS18B20, digitálního senzoru, který komunikuje po sběrnici 1-Wire a odesílá data přes internet pomocí NodeMCU a Blynk:
Jednoduché IoT: Monitorování teploty kdekoli
Co jsme ale při průzkumu postrádali, byla jedna z velkých výhod tohoto druhu senzoru, kterou je možnost shromažďování více dat z více senzorů připojených ke stejné 1vodičové sběrnici. A teď je na čase to také prozkoumat.
Rozšíříme to, co bylo vyvinuto v minulém tutoriálu, nyní monitorujeme dva senzory DS18B20, nakonfigurovaný jeden v Celciusu a druhý ve Fahrenheitu. Data budou odeslána do aplikace Blynk, jak ukazuje výše uvedený blokový diagram.
Krok 1: Kusovník
- NodeMCU ESP 12-E (*)
- 2 x snímač teploty DS18B20
- Rezistor 4,7K Ohmů
- BreadBoard
- Elektrické vedení
(*) Zde lze použít jakýkoli typ zařízení ESP. Nejběžnější jsou NodeMCU V2 nebo V3. Obojí bude vždy fungovat dobře.
Krok 2: Snímač teploty DS18B20
V tomto tutoriálu použijeme vodotěsnou verzi senzoru DS18B20. Je velmi užitečný pro vzdálenou teplotu ve vlhkých podmínkách, například na vlhké půdě. Senzor je izolovaný a může provádět měření až do 125 ° C (Adafrut nedoporučuje používat jej přes 100 ° C kvůli kabelovému plášti z PVC).
DS18B20 je digitální senzor, díky kterému je dobré jej používat i na velké vzdálenosti! Tyto 1vodičové digitální snímače teploty jsou poměrně přesné (± 0,5 ° C ve velké části rozsahu) a z integrovaného převodníku digitálního signálu na analogový mohou poskytnout přesnost až 12 bitů. Fungují skvěle s NodeMCU pomocí jediného digitálního pinu a dokonce můžete připojit více ke stejnému pinu, každý z nich má v továrně vypálené jedinečné 64bitové ID, které je odlišuje.
Senzor pracuje od 3,0 do 5,0 V, což znamená, že může být napájen přímo z jednoho z 3,3 V pinů NodeMCU.
Senzor má 3 vodiče:
- Černá: GND
- Červená: VCC
- Žlutá: 1vodičová data
Zde najdete úplná data: DS18B20 Datasheet
Krok 3: Připojení senzorů k NodeMCU
- Připojte 3 vodiče z každého senzoru na mini Breadboard, jak je znázorněno na výše uvedené fotografii. Pomocí speciálních konektorů jsem na něj lépe upevnil kabel senzoru.
-
Všimněte si, že oba senzory jsou paralelně. Pokud máte více než 2 senzory, měli byste udělat to samé.
- Červená ==> 3,3V
- Černá ==> GND
- Žlutá ==> D4
- Mezi VCC (3,3 V) a Data (D4) použijte odpor 4,7 K ohmů
Krok 4: Instalace přivlastněných knihoven
Aby bylo možné DS18B20 používat správně, budou nutné dvě knihovny:
- OneWire
- Teplota v Dallasu
Nainstalujte obě knihovny do svého depozitáře knihovny Arduino IDE.
Všimněte si, že knihovna OneWire MUSÍ být speciální, upravená pro použití s ESP8266, jinak během kompilace dojde k chybě. Poslední verzi najdete na výše uvedeném odkazu.
Krok 5: Testování senzorů
Pro testování senzorů si stáhněte níže uvedený soubor z mého GitHubu:
NodeMCU_DS18B20_Dual_Se nsor_test.ino
/**************************************************************
*Test snímače teploty pro více teplot**2 x senzor OneWire: DS18B20*Připojeno k NodeMCU D4 (nebo Arduino Pin 2)**Vyvinuto Marcelo Rovai - 25. srpna 2017 ***************** **********************************************/ #zahrnout # zahrnout #define ONE_WIRE_BUS 2 // DS18B20 na pinu NodeMCU D4 OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); neplatné nastavení () {Serial.begin (115200); DS18B20.begin (); Serial.println („Testování dat duálních senzorů“); } void loop () {float temp_0; float temp_1; DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Senzor 0 zachytí Temp v Celcius temp_1 = DS18B20.getTempFByIndex (1); // Senzor 0 zachytí Temp ve Fahrenheit Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); zpoždění (1000); }
Při pohledu na výše uvedený kód bychom si měli všimnout, že nejdůležitější řádky jsou:
temp_0 = DS18B20.getTempCByIndex (0); // Senzor 0 zachytí Temp v Celcius
temp_1 = DS18B20.getTempFByIndex (1); // Senzor 0 zachytí teplotu ve stupních Fahrenheita
První vrátí hodnotu ze senzoru [0] (podívejte se na "index (0)") v Celciusu (podívejte se na část kódu: "getTempC". Druhý řádek souvisí se senzorem [1] a vrátí data Zde můžete mít „n“senzory, protože pro každý z nich máte jiný „index“.
Nyní nahrajte kód do svého NodeMCU a sledujte teplotu pomocí sériového monitoru.
Výše uvedená fotografie ukazuje očekávaný výsledek. Držte každý ze senzorů v ruce, měli byste vidět, jak teplota stoupá.
Krok 6: Použití Blynku
Jakmile začnete zaznamenávat údaje o teplotě, je čas je vidět odkudkoli. Uděláme to pomocí Blynka. Všechna zachycená data se tedy budou zobrazovat v reálném čase na vašem mobilním zařízení a také pro to postavíme historický depozitář.
Postupujte podle následujících kroků:
- Vytvořit nový projekt.
- Pojmenujte jej (v mém případě „Monitor duální teploty“)
- Vyberte „Nové zařízení - ESP8266 (WiFi) jako„ Moje zařízení “
- Zkopírujte AUTH TOKEN, který bude použit v kódu (můžete jej poslat na váš e -mail).
-
Obsahuje dva widgety „Gauge“, které definují:
- Virtuální pin, který bude použit s každým senzorem: V10 (senzor [0]) a V11 (senzor [1])
- Teplotní rozsah: -5 až 100 oC pro senzor [0]
- Teplotní rozsah: 25 až 212 oC pro senzor [1]
- Frekvence čtení dat: 1 sekunda
- Obsahuje widget „Graf historie“, definující V10 a V11 jako virtuální piny
- Stiskněte „Play“(trojúhelník v pravém horním rohu)
Aplikace Blynk vám samozřejmě oznámí, že NodeMCU je offline. Je čas nahrát celý kód do vašeho Arduino IDE. Můžete ho získat zde:
NodeMCU_Dual_Sensor_Blynk_Ext.ino
Změňte „fiktivní data“pomocí vlastních přihlašovacích údajů.
/ * Blynk pověření */
char auth = "VAŠE KÓD AUTHY BLYNK ZDE"; / * Pověření WiFi */ char ssid = "VAŠE SSID"; char pass = "VAŠE HESLO";
A to je vše!
Mějte plný kód. Je to v podstatě předchozí kód, kam jsme vstupovali s parametry Blynk a konkrétními funkcemi. Všimněte si 2 posledních řádků kódu. Ty jsou zde nejdůležitější. Pokud máte více senzorů shromažďujících data, měli byste mít také ekvivalentní nové řádky jako ty (s definovanými příslušnými novými virtuálními piny).
/**************************************************************
* IoT Multiple Temperature Monitor with Blynk * Knihovna Blynk je licencována pod licencí MIT * Tento příklad kódu je public domain. **Více senzorů OneWire: DS18B20*Vyvinuto Marcelo Rovai - 25. srpna 2017 ************************** ******************************//*ESP & Blynk*/ #include #include #define BLYNK_PRINT Sériové // Komentovat zakázat výtisky a ušetřit místo / * pověření Blynk * / char auth = "VAŠE KÓD AUTHY BLYNK ZDE"; / * Pověření WiFi */ char ssid = "VAŠE SSID"; char pass = "VAŠE HESLO"; / * TIMER */ #include Časovač SimpleTimer; / * Teplotní senzor DS18B20 */ #include #include #define ONE_WIRE_BUS 2 // DS18B20 na arduino pin2 odpovídá D4 na fyzické desce OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); int temp_0; int temp_1; neplatné nastavení () {Serial.begin (115200); Blynk.begin (auth, ssid, pass); DS18B20.begin (); timer.setInterval (1000L, getSendData); Serial.println (""); Serial.println ("Testování dat duálních senzorů"); } void loop () {timer.run (); // Zahájí SimpleTimer Blynk.run (); } /************************************************** ****Odeslat údaje ze senzoru Blynku **************************************** *********/ void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Senzor 0 zachytí Temp v Celcius temp_1 = DS18B20.getTempFByIndex (1); // Senzor 0 zachytí Temp ve 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); // virtuální pin V10 Blynk.virtualWrite (11, temp_1); // virtuální pin V11}
Jakmile je kód nahrán a spuštěn, zkontrolujte aplikaci Blynk. Nyní by měl být také spuštěn, jak je znázorněno na výše uvedené obrazovce tisku z mého iPhone.
Krok 7: Závěr
Jako vždy doufám, že tento projekt pomůže ostatním zorientovat se ve vzrušujícím světě elektroniky, robotiky a IoT!
Aktualizované soubory najdete na mém GitHubu: NodeMCU Dual Temp Monitor
Pro více projektů navštivte můj blog: MJRoBot.org
Saludos z jihu světa!
Uvidíme se na mém dalším pokynu!
Děkuji, Marcelo
Doporučuje:
Monitorování počasí pomocí senzoru Raspberry Pi3 a DHT11: 4 kroky
Monitorování počasí pomocí senzoru Raspberry Pi3 a DHT11: V tomto tutoriálu vám ukážu, jak připojit DHT11 k Raspberry Pi a odeslat údaje o vlhkosti a teplotě na LCD. Čidlo teploty a vlhkosti DHT11 je pěkný malý modul který poskytuje digitální teplotu a vlhkost
Jednoduché Arduino LoRa Communciation (více než 5 km): 9 kroků
Jednoduché Arduino LoRa Communciation (více než 5 km): Budeme testovat E32-TTL-100 s mojí knihovnou. Jedná se o bezdrátový transceiverový modul, který pracuje na frekvenci 410 441 MHz (nebo 868 MHz nebo 915 MHz) na základě původního RFIC SX1278 od společnosti SEMTECH, k dispozici je transparentní přenos, úroveň TTL. Modul přijímá LORA
Pěstování více salátu na menším prostoru nebo Pěstování salátu ve vesmíru, (více či méně) .: 10 kroků
Pěstování více salátu na menším prostoru Nebo … Pěstování salátu ve vesmíru ((více či méně)): Toto je profesionální příspěvek do soutěže Growing Beyond Earth, Maker Contest, podané prostřednictvím Instructables. Nemohl jsem být více nadšený, že navrhuji vesmírnou produkci plodin a zveřejňuji svůj první Instructable. Na začátku nás soutěž požádala, abychom
Použití více než 4 motorů - skládání více štítů motoru: 3 kroky
Použití více než 4 motorů - stohování více motorových štítů: Instruktabilní vibrotaktilní senzorické substituční a augmentační zařízení (https: //www.instructables.com/id/Vibrotactile-Sens …) ukazuje způsob, jak vytvořit zařízení, které překládá senzorické vstup do vibračních podnětů. Tyto vibrační podněty jsou
Arduino ovládání více senzorů P.I.R na stejném kabelu: 3 kroky
Arduino ovládání více PIR senzoru na stejném Bord: Dnes vám řeknu, jak připojit více PIR senzorů s jedním Arduino Bord > zde jsem také použil 4kanálový reléový modul pro některé další funkce. ARDUINO + 4kanálový reléový modul + 4 PIR senzor (NEBO Můžete použít tolik pinů arduina