Obsah:
- Krok 1: Kusovník
- Krok 2: Snímač teploty DS18B20
- Krok 3: Pripojenie senzorov k NodeMCU
- Krok 4: Inštalácia vhodných knižníc
- Krok 5: Testovanie senzorov
- Krok 6: Použitie Blynku
- Krok 7: Záver
Video: IoT zjednodušené: Monitorovanie viacerých senzorov: 7 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Pred niekoľkými týždňami som tu publikoval návod na monitorovanie teploty pomocou digitálneho snímača DS18B20, ktorý komunikuje prostredníctvom 1-Wire zbernice a odosiela údaje cez internet pomocou NodeMCU a Blynk:
IoT je jednoduchý: monitorovanie teploty kdekoľvek
Čo nám však pri skúmaní chýbalo, bola jedna z veľkých výhod tohto druhu senzora, ktorou je možnosť zhromažďovania viacerých údajov z viacerých senzorov pripojených k tej istej 1-vodičovej zbernici. A teraz je načase to tiež preskúmať.
Rozšírime to, čo bolo vyvinuté v minulom návode, teraz budeme monitorovať dva senzory DS18B20, nakonfigurovaný jeden v Celciuse a druhý vo Fahrenheite. Údaje budú odoslané do aplikácie Blynk, ako je znázornené na vyššie uvedenom blokovom diagrame.
Krok 1: Kusovník
- NodeMCU ESP 12-E (*)
- 2 x snímač teploty DS18B20
- Rezistor 4,7K Ohm
- BreadBoard
- Elektrické vedenie
(*) Tu je možné použiť akýkoľvek typ zariadenia ESP. Najbežnejšie sú NodeMCU V2 alebo V3. Oba budú vždy fungovať dobre.
Krok 2: Snímač teploty DS18B20
V tomto návode použijeme vodotesnú verziu senzora DS18B20. Je veľmi užitočný pri vzdialených teplotách vo vlhkých podmienkach, napríklad na vlhkej pôde. Senzor je izolovaný a môže vykonávať merania až do 125 ° C (Adafrut ho neodporúča používať pri teplote nad 100 ° C kvôli káblovému plášťu z PVC).
DS18B20 je digitálny snímač, vďaka ktorému je dobré používať ho aj na dlhé vzdialenosti! Tieto 1-vodičové digitálne snímače teploty sú pomerne presné (± 0,5 ° C vo veľkej časti rozsahu) a môžu vstavaným digitálnym analógovým prevodníkom poskytovať presnosť až 12 bitov. Fungujú skvele s NodeMCU pomocou jediného digitálneho pinu a dokonca môžete k jednému pinu pripojiť aj viac, pričom každý z nich má v továrni vypálené jedinečné 64-bitové ID, ktoré ich odlišuje.
Senzor pracuje od 3,0 do 5,0 V, čo znamená, že môže byť napájaný priamo z jedného z 3,3 V pinov NodeMCU.
Senzor má 3 vodiče:
- Čierna: GND
- Červená: VCC
- Žltá: 1-vodičové údaje
Tu nájdete všetky údaje: DS18B20 Datasheet
Krok 3: Pripojenie senzorov k NodeMCU
- Pripojte 3 vodiče z každého senzora k mini Breadboardu, ako je to znázornené na vyššie uvedenej fotografii. Na lepšie upevnenie kábla snímača som použil špeciálne konektory.
-
Všimnite si toho, že oba snímače sú paralelné. Ak máte viac ako 2 senzory, mali by ste urobiť to isté.
- Červená ==> 3,3V
- Čierna ==> GND
- Žltá ==> D4
- Medzi VCC (3,3 V) a dátami (D4) použite odpor 4,7 K ohmov.
Krok 4: Inštalácia vhodných knižníc
Na správne používanie DS18B20 budú potrebné dve knižnice:
- OneWire
- Teplota v Dallase
Nainštalujte obe knižnice do svojho depozitára Arduino IDE Library.
Knižnica OneWire MUSÍ byť špeciálna, upravená tak, aby bola použitá s ESP8266, inak sa vám pri kompilácii zobrazí chyba. Poslednú verziu nájdete v uvedenom odkaze.
Krok 5: Testovanie senzorov
Na testovanie senzorov si stiahnite nasledujúci súbor z môjho GitHubu:
NodeMCU_DS18B20_Dual_Se nsor_test.ino
/**************************************************************
*Test odosielateľa viacerých teplôt**2 x OneWire senzor: DS18B20*Pripojený k NodeMCU D4 (alebo Arduino Pin 2)**Vyvinutý Marcelom Rovaiom - 25. augusta 2017 ***************** ********************************************************** zahrnúť #define ONE_WIRE_BUS 2 // DS18B20 na pine NodeMCU D4 OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); void setup () {Serial.begin (115200); DS18B20.begin (); Serial.println („Testovanie údajov dvoch senzorov“); } void loop () {float temp_0; float temp_1; DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Senzor 0 zachytí teplotu v Celcius temp_1 = DS18B20.getTempFByIndex (1); // Senzor 0 zachytí teplotu vo Fahrenheite Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); oneskorenie (1000); }
Pri pohľade na vyššie uvedený kód by sme si mali všimnúť, že najdôležitejšie riadky sú:
temp_0 = DS18B20.getTempCByIndex (0); // Senzor 0 zachytí teplotu v Celciuse
temp_1 = DS18B20.getTempFByIndex (1); // Senzor 0 zachytí teplotu vo Fahrenheite
Prvý vráti hodnotu zo senzora [0] (pozrite sa na „index (0)“) v Celciuse (pozrite sa na časť kódu: „getTempC“. Druhý riadok súvisí so senzorom [1] a vráti údaje Vo Fahrenheite by ste tu mohli mať „n“senzory, pretože pre každý z nich máte iný „index“.
Teraz nahrajte kód do svojho NodeMCU a monitorujte teplotu pomocou sériového monitora.
Vyššie uvedená fotografia ukazuje očakávaný výsledok. Držte každý zo senzorov v ruke, mali by ste vidieť, ako teplota stúpa.
Krok 6: Použitie Blynku
Akonáhle začnete zaznamenávať údaje o teplote, je načase ich vidieť odkiaľkoľvek. Urobíme to pomocou Blynka. Všetky zachytené údaje sa teda budú zobrazovať v reálnom čase na vašom mobilnom zariadení a tiež na to vytvoríme historický depozitár.
Postupujte podľa nasledujúcich krokov:
- Vytvorte nový projekt.
- Pomenujte ho (v mojom prípade „Monitor duálnej teploty“)
- Vyberte položku Nové zariadenie - ESP8266 (WiFi) ako „Moje zariadenia“
- Skopírujte AUTH TOKEN, ktorý sa má použiť v kóde (môžete ho poslať na svoj e -mail).
-
Obsahuje dva widgety „rozchod“, ktoré definujú:
- Virtuálny pin, ktorý sa má použiť s každým senzorom: V10 (senzor [0]) a V11 (senzor [1])
- Teplotný rozsah: -5 až 100 oC pre snímač [0]
- Teplotný rozsah: 25 až 212 oC pre snímač [1]
- Frekvencia čítania údajov: 1 sekunda
- Obsahuje miniaplikáciu „Graf histórie“, ktorá definuje V10 a V11 ako virtuálne piny
- Stlačte „Prehrať“(trojuholník v pravom hornom rohu)
Aplikácia Blynk vám samozrejme oznámi, že NodeMCU je offline. Je čas nahrať celý kód do vášho Arduino IDE. Môžete ho získať tu:
NodeMCU_Dual_Sensor_Blynk_Ext.ino
Zmeňte „fiktívne údaje“pomocou vlastných poverení.
/ * Blynk poverenia */
char auth = "VAŠE KÓDY AUTHY BLYNK TU"; / * Poverenia WiFi */ char ssid = "VAŠE SSID"; char pass = "VAŠE HESLO";
A je to!
Prezrite si celý kód. Je to v podstate predchádzajúci kód, kde sme vstupovali s parametrami Blynk a konkrétnymi funkciami. Všimnite si posledné 2 riadky kódu. Tie sú tu najdôležitejšie. Ak máte viac senzorov zhromažďujúcich údaje, mali by ste mať aj ekvivalentné nové riadky ako tieto (s definovanými príslušnými novými virtuálnymi kolíkmi).
/**************************************************************
* Viacnásobný monitor teploty IoT s Blynkom * Knižnica Blynk je chránená licenciou MIT * Tento príklad kódu je verejne dostupný. **Viacnásobný snímač OneWire: DS18B20*Vyvinutý Marcelom Rovaiom - 25. augusta 2017 *************************** ********************************************************************************** vypnite tlač a ušetrite miesto / * poverenia Blynka * / char auth = "VAŠE AUTORSKÉ KÓDY BLYNK TU"; / * Poverenia WiFi */ char ssid = "VAŠA SSID"; char pass = "VAŠE HESLO"; / * TIMER */ #include Časovač SimpleTimer; / * Teplotný snímač DS18B20 */ #include #include #define ONE_WIRE_BUS 2 // DS18B20 na arduino pine2 zodpovedá D4 na fyzickej doske OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); int temp_0; int temp_1; void setup () {Serial.begin (115200); Blynk.begin (auth, ssid, pass); DS18B20.begin (); timer.setInterval (1000L, getSendData); Serial.println (""); Serial.println („Testovanie údajov dvoch senzorov“); } void loop () {timer.run (); // Spustí SimpleTimer Blynk.run (); } /******************************************************** ****Odoslať údaje senzora spoločnosti Blynk **************************************** *********/ void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Senzor 0 zachytí teplotu v Celcius temp_1 = DS18B20.getTempFByIndex (1); // Senzor 0 zachytí teplotu vo Fahrenheite 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álny pin V10 Blynk.virtualWrite (11, temp_1); // virtuálny pin V11}
Po nahraní a spustení kódu skontrolujte aplikáciu Blynk. Teraz by mal byť tiež spustený, ako je znázornené na vyššie uvedenej tlačovej obrazovke z môjho iPhone.
Krok 7: Záver
Ako vždy, dúfam, že tento projekt pomôže iným zorientovať sa vo vzrušujúcom svete elektroniky, robotiky a internetu vecí!
Aktualizované súbory nájdete na mojom GitHube: Dual Temp Monitor NodeMCU
Viac projektov nájdete na mojom blogu: MJRoBot.org
Saludos z juhu sveta!
Uvidíme sa pri mojom ďalšom pokyne!
Ďakujem, Marcelo
Odporúča:
Ako používať Sensor21.com na monitorovanie senzorov: 3 kroky
Ako používať Sensor21.com na monitorovanie senzorov: Ak potrebujete platformu na monitorovanie a ovládanie vzdialených zariadení a senzorov pre vaše kutilské projekty, senzor21.com môže byť pre vás dobrým riešením. Má pripravené na použitie užívateľsky prívetivé grafické rozhranie. Jednoduché pridanie senzorov a ich sledovanie pomocou grafov. Nastaviť budíky pre e
Easy IOT - Rozbočovač RF senzorov ovládaný aplikáciou pre zariadenia IOT stredného dosahu: 4 kroky
Easy IOT - RF senzorový rozbočovač riadený aplikáciami pre zariadenia IOT stredného dosahu: V tejto sérii tutoriálov vytvoríme sieť zariadení, ktoré je možné ovládať prostredníctvom rádiového spojenia zo zariadenia s centrálnym rozbočovačom. Výhodou použitia sériového rádiového pripojenia 433 MHz namiesto WIFI alebo Bluetooth je oveľa väčší dosah (s dobrým
AKO KOPÍROVAŤ HRA SA ULOŽÍ NA Microsoft alebo 3. MU MU Zjednodušene: 9 krokov
JEDNODUCHÝ SPÔSOB, ako kopírovať hru, sa ukladá do systému Microsoft alebo tretej strany MU .: Pôvodný návod HERET Existuje množstvo tutoriálov pre Softmod a všetky sú dobré, ale dostať súbory na pevný disk Xbox je utrpenie, urobil som živý prenos. CD, ktoré to uľahčuje. Toto nie je úplný tutoriál softmod, tento
UbiDots-Pripojenie ESP32 a publikovanie údajov z viacerých senzorov: 6 krokov
UbiDots-Pripojenie ESP32 a publikovanie údajov z viacerých senzorov: ESP32 a ESP 8266 sú veľmi dobre známe SoC v oblasti IoT. Toto sú akési výhody pre projekty internetu vecí. ESP 32 je zariadenie s integrovaným WiFi a BLE. Stačí zadať konfiguráciu SSID, heslo a IP a integrovať veci do
Monitorovanie štrukturálneho zdravia občianskych infraštruktúr pomocou bezdrôtových senzorov vibrácií: 8 krokov
Monitorovanie štrukturálneho zdravia civilných infraštruktúr pomocou bezdrôtových vibračných senzorov: Zhoršenie starej budovy a občianskej infraštruktúry môže viesť k smrteľnej a nebezpečnej situácii. Neustále monitorovanie týchto štruktúr je povinné. Štrukturálne monitorovanie zdravia je mimoriadne dôležitou metodikou pri hodnotení