Miniatúrny shield dizajnovaný pre wifi a bluetooth moduly WEMOS mini ESP12 a ESP32 vývojové dosky, ktoré môžete nájsť aj v našej ponuke. V katalógu máme zaradené aj iné wemos mini shiedy. Pre viac kód a knižnice odporúčame preštudovať GIT.
Senzor je veľmi jednoduchý a nie je určený pre reálne aplikácie. Odporúčame ho skôr pre zoznámenie sa s fungovaním WEMOS MINI modulov. Pre presnejší senzor s väčším rozsahom odporúčame DHT22. Pre detailnejšie informácie odporúčame preštudovať datasheet alebo prejdite na GitHub. Dátový pin senzora je pripojený na pin D4.
A) https://diyprojects.io/shield-wemos-d1-mini-dht11-dht22-arduino-code-esp-easy/#.XwbudigzZ3g
Návod
Ako použiť Wemos mini shield DHT11 na meranie teploty a vlhkosti
V tomto návode si ukážeme jednoduché meranie teploty a vlhkosti pomocou vývojovej dosky ESP12-F Wemos D1 mini a Wemos mini shieldu so senzorom DHT11. Ide o praktický projekt vhodný pre začiatočníkov, ktorí si chcú vyskúšať prácu so senzorom, Arduino IDE a základmi IoT merania.
Výhodou shieldu je, že senzor nemusíte zapájať pomocou samostatných vodičov. Shield sa nasadí na Wemos mini dosku a v programe stačí použiť správny pin a knižnicu.
Najskôr si hodnoty zobrazíme v Serial Monitore. Potom projekt rozšírime aj o odosielanie nameraných údajov na platformu ThingSpeak, kde sa budú zobrazovať v online grafoch.
Čo budeme v návode robiť?
Cieľom návodu je rozbehnúť jednoduché meranie teploty a vlhkosti vzduchu. Projekt si rozdelíme na dve časti.
Najprv otestujeme DHT11 shield a zobrazíme hodnoty v Serial Monitore v Arduino IDE.
Potom hodnoty odošleme cez WiFi na ThingSpeak, kde si ich môžeme pozrieť v grafoch.
Po úspešnom otestovaní sa dá projekt ďalej rozšíriť napríklad o displej, Home Assistant alebo jednoduchú domácu meteostanicu.
WiFi pripojenie, ak chcete odosielať údaje naThingSpeak
DHT11 shield je miniatúrna nadstavba pre Wemos mini dosky. Senzor je určený na jednoduché meranie teploty a vlhkosti vzduchu. Pri tomto shielde je dátový pin senzora pripojený na pin D4.
Poznámka: DHT11 je jednoduchý senzor vhodný najmä na učenie, testovanie a nenáročné projekty. Ak potrebujete presnejšie meranie alebo širší rozsah, vhodnejšou voľbou môže byť senzor DHT22.
Čo je DHT11 shield?
DHT11 shield slúži na meranie teploty a vlhkosti vzduchu. Keďže ide o shield, nie je potrebné zapájať senzor cez samostatné prepojovacie vodiče ako pri bežnom DHT11 module.
Shield sa jednoducho nasadí na Wemos mini dosku. Vďaka tomu je zapojenie prehľadnejšie a vhodné aj pre začiatočníkov.
Základné parametre DHT11 shieldu:
meranie teploty: 0 až 50 °C, presnosť približne ±2 °C,
meranie vlhkosti: 20 až 90 % RH, presnosť približne ±5 % RH,
operačné napätie: 3,3 V až 5 V,
dátový pin: D4.
Zapojenie
Zapojenie je pri tomto shielde veľmi jednoduché.
Skontrolujte orientáciu pinov na Wemos mini doske a DHT11 shielde.
Nasaďte DHT11 shield na Wemos mini dosku.
Pripojte Wemos mini k počítaču pomocou USB kábla.
Otvorte Arduino IDE.
Keďže dátový pin senzora je na shielde pripojený na D4, budeme tento pin používať aj v programe.
Príprava Arduino IDE
Pred nahratím programu je potrebné mať pripravené Arduino IDE a podporu pre Wemos mini dosku.
1. Výber dosky
V Arduino IDE vyberte správnu dosku podľa použitého modelu. Pri Wemos mini doskách sa najčastejšie používa doska z rodiny ESP8266.
Ak ešte nemáte v Arduino IDE pridanú podporu pre ESP8266 dosky, bude potrebné ju najskôr doplniť cez správcu dosiek.
Postup môže byť napríklad takýto:
Otvorte File → Preferences.
Do poľa Additional Boards Manager URLs vložte adresu pre ESP8266 dosky. (https://arduino.esp8266.com/stable/package_esp8266com_index.json)
Otvorte Tools → Board → Boards Manager.
Vyhľadajte ESP8266 a nainštalujte podporu dosiek.
Potom vyberte vhodnú dosku pre Wemos D1 mini.
2. Výber portu
Po pripojení dosky cez USB vyberte správny port:
Tools → Port
Ak port nevidíte, skontrolujte USB kábel. Niektoré USB káble slúžia iba na nabíjanie a neprenášajú dáta. Pri niektorých doskách môže byť potrebné mať nainštalovaný aj ovládač pre použitý USB prevodník.
Inštalácia knižníc
Na komunikáciu so senzorom DHT11 použijeme knižnicu pre DHT senzory.
V Arduino IDE otvorte Sketch → Include Library → Manage Libraries.
Do vyhľadávania napíšte DHT sensor library.
Nainštalujte knižnicu DHT sensor library od Adafruit.
Následne vyhľadajte Adafruit Unified Sensor.
Nainštalujte aj túto podpornú knižnicu.
Knižnica DHT sensor library zabezpečí komunikáciu so senzorom DHT11. Knižnica Adafruit Unified Sensor je podporná knižnica, ktorú DHT knižnica často vyžaduje.
Testovací kód pre Serial Monitor
Najskôr si overíme, či senzor funguje lokálne. Nasledujúci kód načíta teplotu a vlhkosť zo senzora DHT11 a zobrazí ich v Serial Monitore.
/*
* NÁVOD - Meranie teploty a vlhkosti pomocou DHT11 shieldu
* Techfun.sk
*
* V tomto príklade načítame teplotu a vlhkosť zo senzora DHT11
* a zobrazíme ich v Serial Monitore.
*/
#include <DHT.h>
#define DHTPIN D4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
Serial.println("Test DHT11 shieldu");
}
void loop() {
float vlhkost = dht.readHumidity();
float teplota = dht.readTemperature();
if (isnan(vlhkost) || isnan(teplota)) {
Serial.println("Nepodarilo sa nacitat data zo senzora DHT11.");
delay(2000);
return;
}
Serial.print("Teplota: ");
Serial.print(teplota);
Serial.print(" °C | Vlhkost: ");
Serial.print(vlhkost);
Serial.println(" %");
delay(2000);
}
Vysvetlenie kódu
Na začiatku programu pripojíme knižnicu:
#include <DHT.h>
Potom nastavíme pin, na ktorom je senzor pripojený:
#define DHTPIN D4
Následne nastavíme typ senzora:
#define DHTTYPE DHT11
V časti setup() sa spustí sériová komunikácia a inicializuje sa senzor:
Serial.begin(115200);
dht.begin();
V hlavnej slučke loop() sa načítava vlhkosť a teplota:
float vlhkost = dht.readHumidity();
float teplota = dht.readTemperature();
Ak sa hodnoty nepodarí načítať, program vypíše chybovú hlášku. Ak je všetko v poriadku, hodnoty sa zobrazia v Serial Monitore.
Nahratie programu do dosky
Pripojte Wemos mini k počítaču cez USB kábel.
V Arduino IDE vyberte správnu dosku.
Vyberte správny port.
Kliknite na tlačidlo Upload.
Po nahratí otvorte Serial Monitor.
Nastavte rýchlosť 115200 baud.
Ak je všetko správne zapojené a knižnice sú nainštalované, v Serial Monitore by sa mali pravidelne zobrazovať hodnoty teploty a vlhkosti.
Odosielanie nameraných hodnôt na ThingSpeak
Keď už máme meranie teploty a vlhkosti funkčné v Serial Monitore, môžeme projekt posunúť ďalej a odosielať hodnoty na online službu ThingSpeak.
ThingSpeak je IoT platforma od MathWorks, ktorá umožňuje ukladať dáta zo zariadení, zobrazovať ich v grafoch a neskôr s nimi ďalej pracovať. Pri tomto projekte môžeme do jedného kanála odosielať napríklad:
Vytvorte nový kanál cez Channels → My Channels → New Channel.
Pomenujte si kanál napríklad Wemos DHT11 meranie.
Zapnite Field 1 a pomenujte ho Teplota.
Zapnite Field 2 a pomenujte ho Vlhkosť.
Kanál uložte.
Na zapisovanie dát do kanála budete potrebovať Write API Key. Nájdete ho v detaile kanála v záložke API Keys. Tento kľúč je potrebný na odosielanie hodnôt do vášho kanála.
Poznámka: API kľúč nezverejňujte. V ukážkovom kóde ho nahraďte vlastným kľúčom z vášho ThingSpeak účtu.
Kód pre odosielanie dát na ThingSpeak
Nasledujúci kód načíta teplotu a vlhkosť zo senzora DHT11 a odošle ich na ThingSpeak.
/*
* NÁVOD - Odosielanie teploty a vlhkosti na ThingSpeak
* Techfun.sk
*
* V tomto príklade načítame hodnoty zo senzora DHT11
* a odošleme ich cez WiFi na platformu ThingSpeak.
*/
#include <ESP8266WiFi.h>
#include <DHT.h>
#define DHTPIN D4
#define DHTTYPE DHT11
const char* ssid = "NAZOV_WIFI";
const char* password = "HESLO_WIFI";
const char* server = "api.thingspeak.com";
String apiKey = "VAS_WRITE_API_KEY";
DHT dht(DHTPIN, DHTTYPE);
WiFiClient client;
void setup() {
Serial.begin(115200);
dht.begin();
Serial.println("Pripajam sa na WiFi...");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("WiFi pripojene.");
}
void loop() {
float vlhkost = dht.readHumidity();
float teplota = dht.readTemperature();
if (isnan(vlhkost) || isnan(teplota)) {
Serial.println("Nepodarilo sa nacitat data zo senzora DHT11.");
delay(2000);
return;
}
if (client.connect(server, 80)) {
String url = "/update?api_key=" + apiKey +
"&field1=" + String(teplota) +
"&field2=" + String(vlhkost);
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + server + "\r\n" +
"Connection: close\r\n\r\n");
Serial.print("Odoslane na ThingSpeak: ");
Serial.print("Teplota ");
Serial.print(teplota);
Serial.print(" °C, Vlhkost ");
Serial.print(vlhkost);
Serial.println(" %");
} else {
Serial.println("Nepodarilo sa pripojit na ThingSpeak.");
}
client.stop();
delay(20000);
}
Hodnoty NAZOV_WIFI, HESLO_WIFI a VAS_WRITE_API_KEY nahraďte vlastnými údajmi.
V ukážke používame oneskorenie 20 sekúnd, aby sa dáta neodosielali príliš často. Pri meraní teploty a vlhkosti zvyčajne nie je potrebné posielať hodnoty každú sekundu.
Vysvetlenie ThingSpeak kódu
Tento kód vychádza z predchádzajúceho testovacieho programu. Rozdiel je v tom, že okrem čítania hodnôt zo senzora DHT11 sa Wemos mini pripojí na WiFi a odošle namerané údaje na ThingSpeak.
Na začiatku programu pripojíme knižnice:
#include <ESP8266WiFi.h>
#include <DHT.h>
Knižnica ESP8266WiFi.h umožní pripojenie Wemos mini dosky k WiFi sieti. Knižnica DHT.h slúži na komunikáciu so senzorom DHT11.
Rovnako ako v prvom príklade nastavíme pin senzora a typ použitého senzora:
#define DHTPIN D4
#define DHTTYPE DHT11
Pri tomto shielde je dátový pin senzora pripojený na D4, preto používame práve tento pin.
Do týchto riadkov doplníte údaje svojej WiFi siete:
Hodnota field1 predstavuje teplotu a hodnota field2 predstavuje vlhkosť. Preto je dôležité, aby boli v ThingSpeak kanáli zapnuté práve tieto dve polia.
Ak sa pripojenie na server podarí, program odošle HTTP požiadavku na ThingSpeak:
Po odoslaní dát sa spojenie ukončí a program počká 20 sekúnd:
client.stop();
delay(20000);
Oneskorenie 20 sekúnd zabezpečí, že sa hodnoty neodosielajú príliš často. Pri meraní teploty a vlhkosti väčšinou stačí odosielať údaje v dlhších intervaloch.
Kde si pozrieť grafy?
Po nahratí programu otvorte svoj kanál na ThingSpeak. Ak je všetko nastavené správne, vo Field 1 sa budú zobrazovať hodnoty teploty a vo Field 2 hodnoty vlhkosti.
Ak sa dáta nezobrazujú, skontrolujte najmä:
či je Wemos mini pripojený na WiFi,
či ste zadali správny Write API Key,
či sú v kanáli zapnuté Field 1 a Field 2,
či sa v Serial Monitore nevypisuje chybová hláška.
Časté otázky a problémy
Ak sa meranie alebo odosielanie údajov nespráva podľa očakávania, pozrite si najčastejšie problémy nižšie. Kliknutím na konkrétny problém sa zobrazí odporúčané riešenie.
Problém: V Serial Monitore nič nevidím
Skontrolujte:
či je nastavená rýchlosť 115200 baud,
či je vybraný správny port,
či sa program správne nahral do dosky,
či používate USB kábel s dátovým prenosom.
Problém: Zobrazuje sa chyba čítania zo senzora
Skontrolujte:
či je shield správne nasadený,
či je v kóde použitý pin D4,
či je nastavený typ senzora DHT11,
či sú nainštalované potrebné knižnice,
či je doska správne napájaná.
Problém: Wemos mini sa nepripojí na WiFi
Skontrolujte:
či je správne zadaný názov WiFi siete,
či je správne zadané heslo WiFi siete,
či sa doska nachádza v dosahu WiFi signálu,
či WiFi sieť používa pásmo 2,4 GHz, nie iba 5 GHz.
Ak sa doska na WiFi pripojí, ale spojenie je nestabilné alebo sa dáta na ThingSpeak odosielajú len občas, problém môže byť aj v slabom WiFi signáli.
Silu WiFi signálu si môžete dočasne vypísať do Serial Monitoru pomocou funkcie WiFi.RSSI(). Tá zobrazí hodnotu signálu v dBm. Čím je hodnota bližšie k nule, tým je signál silnejší.
Tieto riadky môžete vložiť napríklad do časti loop() po úspešnom pripojení na WiFi. Ak sa zobrazujú veľmi nízke hodnoty RSSI, skúste dosku presunúť bližšie k routeru alebo použiť stabilnejšie WiFi pripojenie.
Problém: Dáta sa neodosielajú na ThingSpeak
Skontrolujte:
či máte správne zadaný Write API Key,
či je kanál na ThingSpeak vytvorený a uložený,
či sú zapnuté polia Field 1 a Field 2,
či má doska funkčné internetové pripojenie,
či sa v Serial Monitore vypisuje hláška o odoslaní dát.
Problém: Hodnoty sa zdajú nepresné
DHT11 nie je presný merací senzor. Hodí sa skôr na jednoduché projekty, testovanie a zoznámenie sa s Wemos mini modulmi. Ak potrebujete presnejšie meranie teploty a vlhkosti, odporúčame pozrieť sa po presnejšom senzore, napríklad DHT22.
Kam sa dá projekt posunúť ďalej?
Odosielanie údajov na ThingSpeak je len jedna z možností. Po úspešnom otestovaní môžete projekt ďalej rozšíriť napríklad o:
zobrazenie teploty a vlhkosti na OLED alebo TFT displeji,
odosielanie údajov do ďalších online služieb,
prepojenie s Home Assistant,
upozornenie pri prekročení nastavenej teploty alebo vlhkosti,
vytvorenie jednoduchej WiFi meteostanice.
Tento návod je dobrý základ. Najskôr si overíte, že senzor funguje, potom dáta odošlete do online grafu a následne môžete projekt rozšíriť podľa vlastných potrieb.
Záver
Wemos mini shield DHT11 je jednoduchý spôsob, ako začať s meraním teploty a vlhkosti. Vďaka shield prevedeniu netreba riešiť zložité zapojenie a na prvé testy stačí Arduino IDE, DHT knižnica a krátky program.
Po doplnení odosielania na ThingSpeak sa z jednoduchého testu stane malý IoT projekt, ktorý dokáže zobrazovať namerané hodnoty v online grafoch.
DHT11 je vhodný najmä na učenie a základné testovanie. Na presnejšie merania alebo reálne aplikácie je vhodnejšie použiť presnejší senzor. Ako prvý krok do sveta IoT merania je však Wemos mini s DHT11 shieldom veľmi dobrý štart.
Používame cookies na zlepšenie vášho zážitku, analýzu návštevnosti a zobrazovanie relevantného obsahu. Môžete prijať všetky, odmietnuť nepodstatné alebo si spravovať svoje preferencie.
Predvoľby cookies
Táto webová stránka používa súbory cookie, aby sme vám mohli poskytnúť čo najlepší používateľský zážitok. Informácie o cookies sa ukladajú vo vašom prehliadači a slúžia napríklad na rozpoznanie vašej opätovnej návštevy alebo na to, aby nám pomohli pochopiť, ktoré časti webu sú pre vás najzaujímavejšie a najužitočnejšie.
Vďaka týmto cookies Vám môžeme ponúknuť relevantné produkty a služby na mieru, a to na základe Vašich nákupov, Vášho správania a Vašich preferencií.
Nevyhnutné
Nevyhnutné cookies musia byť vždy povolené, aby sme si mohli zapamätať vaše preferencie pre cookies nastavenia.
Personalizácia obsahu
Tieto cookies nám umožnia zobraziť Vám obsah a reklamy podľa údajov, ktoré sú o Vás dostupné tak, aby sme sa čo najlepšie trafili do Vašich potrieb. Ide najmä o to, aký obsah ste si zobrazili alebo to, na akom zariadení na naše stránky prichádzate.
Analytické
Táto webová stránka používa službu Google Analytics na zhromažďovanie anonymných informácií, ako je počet návštevníkov stránky alebo najnavštevovanejšie stránky. Ponechanie týchto cookies zapnutých nám pomáha zlepšovať našu webovú stránku.
Marketingové
Slúžia na zobrazovanie personalizovaných reklám a meranie kampaní.