Vlhkost a teplota jsou velmi běžnými parametry pro měření na mnoha místech, jako je farma, skleník, zdravotnictví, průmysl a domácnosti. Měření vlhkosti a teploty jsme již pokryli pomocí Arduina a zobrazili jsme data na LCD.
V tomto projektu IoT budeme monitorovat vlhkost a teplotu přes internet pomocí ThingSpeak, kde ukážeme aktuální data vlhkosti a teploty přes internet pomocí serveru ThingSpeak. Toho je dosaženo datovou komunikací mezi Arduino, modulem senzoru DHT11, modulem WIFI ESP8266 a LCD. Teploměr a stupnice vlhkosti v stupních Celsia zobrazují okolní teplotu a vlhkost prostřednictvím LCD displeje a také je odesílají na server ThingSpeak k živému monitorování odkudkoli na světě.
Nastavení Working and ThingSpeak:
Tento projekt založený na IoT, který má čtyři sekce, nejprve snímač vlhkosti a teploty DHT11 snímá údaje o vlhkosti a teplotě . Za druhé Arduino Uno extrahuje data snímače DHT11 jako vhodné číslo v procentech a stupnici Celsia a odešle je do modulu Wi-Fi. Zatřetí Wi-Fi modul ESP8266 odesílá data do serveru ThingSpeak. A nakonec ThingSpeak analyzuje data a zobrazuje je ve formě grafu. Volitelný LCD displej se také používá k zobrazení teploty a vlhkosti.
ThingSpeak poskytuje velmi dobrý nástroj pro projekty založené na IoT pro Arduino. Používáním webu ThingSpeak můžeme sledovat naše data přes internet odkudkoli a také můžeme ovládat náš systém přes internet pomocí kanálů a webových stránek poskytovaných společností ThingSpeak. ThingSpeak „Sbírá“ data ze senzorů, „Analyzuje a vizualizuje“ data a „Činí“ spuštěním reakce. Zde vysvětlujeme, jak odesílat data na server ThingSpeak pomocí modulu WIFI ESP8266:
1. Nejprve musí uživatel vytvořit účet na ThingSpeak.com, poté se přihlásit a kliknout na Začít.
2. Nyní přejděte do nabídky „Kanály“ a na další stránce klikněte na možnost Nový kanál.
3. Nyní uvidíte formulář pro vytvoření kanálu, vyplňte Název a Popis podle vašeho výběru. Poté vyplňte „Vlhkost“ a „Teplota“ do štítků Pole 1 a Pole 2, zaškrtněte políčka u obou polí. Zaškrtněte také políčko „Zveřejnit“ níže ve formuláři a nakonec uložte kanál. Nyní byl vytvořen váš nový kanál.
4. Nyní klikněte na kartu „Klíče API“ a uložte klíče API pro zápis a čtení, zde používáme pouze klíč pro zápis. Tento klíč musíte zkopírovat do char * api_key v kódu.
5. Poté klikněte na „Import / Export dat“ a zkopírujte adresu URL požadavku Update Channel Feed, která je:
api.thingspeak.com/update?api_key=SIWOYBX26OXQ1WMS&field1=0
6. Nyní musí uživatel otevřít „api.thingspeak.com“ pomocí funkce httpGet s postUrl jako „update? Api_key = SIWOYBX26OXQ1WMS & field1 = 0“ a poté odeslat data pomocí zdroje dat nebo adresy požadavku na aktualizaci.
Před odesláním dat musí uživatel upravit tento řetězec dotazu nebo postUrl s datovými poli teploty a vlhkosti, jak je znázorněno níže. Zde jsme přidali oba parametry do řetězce, který musíme odeslat pomocí požadavku GET na server, poté jsme k odeslání dat na server použili httpGet . Celý kód zkontrolujte níže.
Sprintf (postUrl, "update? Api_key =% s & pole1 =% s & pole2 =% s", api_key, humidStr, tempStr); httpGet ("api.thingspeak.com", postUrl, 80);
Celý proces je demonstrován v části Video na konci tohoto článku.
Práce na tomto projektu je založena na jednovodičové sériové komunikaci pro načítání dat z DHT11. Nejprve Arduino vyšle startovací signál do modulu DHT a poté DHT dá signál odezvy obsahující data. Arduino shromažďuje a extrahuje data do dvou částí, nejprve vlhkost a druhá teplota a poté je odesílá na 16x2 LCD a server ThingSpeak. ThingSpeak zobrazuje Data ve formě grafu níže:
Zde se můžete dozvědět více o senzoru DHT11 a jeho propojení s Arduino.
Popis obvodu:
Připojení pro tento projekt monitorování teploty a vlhkosti ThingSpeak jsou velmi jednoduché. Zde se pro zobrazení teploty a vlhkosti používá displej z tekutých krystalů, který je přímo připojen k Arduinu ve 4bitovém režimu. Kolíky LCD, jmenovitě RS, EN, D4, D5, D6 a D7, jsou připojeny k Arduino digitálnímu kolíku číslo 14, 15, 16, 17, 18 a 19. Tento LCD je volitelný.
Senzorový modul DHT11 je připojen k digitálnímu kolíku 12 Arduina. Kolíky Vcc a GND modulu Wi-Fi ESP8266 jsou přímo připojeny k 3,3 V a GND Arduina a CH_PD je také připojeno k 3,3 V. Kolíky Tx a Rx ESP8266 jsou přímo připojeny k pinům 2 a 3 Arduina. Zde se také používá softwarová sériová knihovna, která umožňuje sériovou komunikaci na pinech 2 a 3 Arduina. Rozhraní Wi-Fi modulu ESP8266 na Arduino jsme již podrobně pokryli.
Programovací část:
Programová část tohoto projektu hraje velmi důležitou roli při provádění všech operací. Nejprve zahrneme požadované knihovny a inicializujeme proměnné.
#include "dht.h" // Včetně knihovny pro dht #include
Poté zadejte svůj klíč API pro zápis a vezměte několik řetězců.
char * api_key = "SIWOYBX26OXQ1WMS"; // Zadejte svůj klíč Write API z ThingSpeak static char postUrl; int humi, tem; void httpGet (řetězec IP, cesta řetězce, int port = 80);
Ve funkci void loop () čteme teplotu a vlhkost a poté zobrazujeme tyto hodnoty na LCD.
funkce void send2server () se používá k odesílání dat na server. Funkce Send2server je rutina přerušení služby časovače, která volá každých 20 sekund. Když zavoláme funkci aktualizace, je volána rutina služby přerušení časovače.
void send2server () {char tempStr; char humidStr; dtostrf (tem, 5, 3, tempStr); dtostrf (humi, 5, 3, humidStr); sprintf (postUrl, "update? api_key =% s & field1 =% s & field2 =% s", api_key, humidStr, tempStr); httpGet ("api.thingspeak.com", postUrl, 80); }