Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
|
2015:esp8266-ds18b20 [2016/01/16 17:10] Václav Pálka pokračování |
2015:esp8266-ds18b20 [2016/01/17 00:25] (aktuální) Václav Pálka pokračování3 |
||
|---|---|---|---|
| Řádek 4: | Řádek 4: | ||
| ===== Zadání ===== | ===== Zadání ===== | ||
| - | Seznamte se s WiFi čipem ESP8266 a jeho vývojovým prostředím. Vytvořte aplikaci WiFi teploměru s čidlem DS18B20, která bude v definovaném intervalu pomocí GET požadavku odesílat aktuální teplotu na server ThingSpeak nebo do vlastního PHP skriptu s vizualizací. | + | Seznamte se s Wi-Fi čipem ESP8266 a jeho vývojovým prostředím. Vytvořte aplikaci Wi-Fi teploměru s čidlem DS18B20, která bude v definovaném intervalu pomocí GET požadavku odesílat aktuální teplotu na server ThingSpeak nebo do vlastního PHP skriptu s vizualizací. |
| ===== Úvod ===== | ===== Úvod ===== | ||
| ==== ESP8266 ==== | ==== ESP8266 ==== | ||
| - | ESP8266 je ultra low coast čínský modu pro převod sériové linky na Wi-fi. Tento modul s cenou do 3$ disponuje mimo jiné 32 bitovým procesorem s několika GPIO piny a podporuje módy v b/g/n, zabezpečení WPA/WPA2 a umí pracovat jako Station nebo AP. Jednou z nesporných výhod jsou i rozměry, které jsou pro verzi ESP8266 ESP-01 | + | ESP8266 je ultra low coast čínský modu pro převod sériové linky na Wi-Fi. Tento modul s cenou do 3$ disponuje mimo jiné 32 bitovým procesorem s několika GPIO piny a podporuje módy v b/g/n, zabezpečení WPA/WPA2 a umí pracovat jako Station nebo AP. Jednou z nesporných výhod jsou i rozměry, které jsou pro verzi ESP8266 ESP-01 |
| 25 x 14 mm. | 25 x 14 mm. | ||
| Řádek 30: | Řádek 30: | ||
| V případě že chceme modul přeprogramovat je nutné, pro povolení programovaní, připojit pin GPIO0 na zem. Toto musí být provedeno ještě před připojením napájení, jinak nemusí k naprogramování dojít. | V případě že chceme modul přeprogramovat je nutné, pro povolení programovaní, připojit pin GPIO0 na zem. Toto musí být provedeno ještě před připojením napájení, jinak nemusí k naprogramování dojít. | ||
| + | |||
| + | {{ :2015:esp8266-ds18b20:20160117_001637.jpg?nolink&600 | Náhled na zapojení protipu}} | ||
| Řádek 41: | Řádek 43: | ||
| Inicializace použitých knihoven pro obsluhu ESP88226 a DS18B20 komunikující po 1-wire sběrnici. | Inicializace použitých knihoven pro obsluhu ESP88226 a DS18B20 komunikující po 1-wire sběrnici. | ||
| + | <code c> | ||
| #include <ESP8266WiFi.h> | #include <ESP8266WiFi.h> | ||
| #include <OneWire.h> | #include <OneWire.h> | ||
| #include <DallasTemperature.h> | #include <DallasTemperature.h> | ||
| + | </code> | ||
| === Informace o připojení === | === Informace o připojení === | ||
| Nastavení informací o Teplotním čidle, SSID a heslu sítě, na které bude zařízení připojeno a informace a přístupový API klíč pro ThingSpeak.com. | Nastavení informací o Teplotním čidle, SSID a heslu sítě, na které bude zařízení připojeno a informace a přístupový API klíč pro ThingSpeak.com. | ||
| - | | + | <code c> |
| - | #define ONE_WIRE_BUS 2 // Inicializace DS18B20 na pinu GPIO2 | + | #define ONE_WIRE_BUS 2 |
| - | OneWire oneWire(ONE_WIRE_BUS); | + | OneWire oneWire(ONE_WIRE_BUS); // Inicializace DS18B20 na pinu GPIO2 |
| DallasTemperature DS18B20(&oneWire); | DallasTemperature DS18B20(&oneWire); | ||
| | | ||
| Řádek 60: | Řádek 62: | ||
| const char* APIkey = "CM4O1WWET8RHAT99"; | const char* APIkey = "CM4O1WWET8RHAT99"; | ||
| - | float oldTemp; | ||
| bool scnd = false; | bool scnd = false; | ||
| + | </code> | ||
| === Připojení k síti === | === Připojení k síti === | ||
| Inicializace sériové komunikace a připojení k sítí. | Inicializace sériové komunikace a připojení k sítí. | ||
| + | <code c> | ||
| void setup() { | void setup() { | ||
| | | ||
| Řádek 88: | Řádek 90: | ||
| Serial.println(); | Serial.println(); | ||
| } | } | ||
| + | </code> | ||
| ==== Hlavní smyčka ==== | ==== Hlavní smyčka ==== | ||
| V této smyčce se provádí změření a odeslání teploty na server ThingSpeak.com | V této smyčce se provádí změření a odeslání teploty na server ThingSpeak.com | ||
| - | | + | <code c> |
| void loop() { | void loop() { | ||
| delay(30000); // Měření a odesílání teploty probíhá v intervalu cca 30s | delay(30000); // Měření a odesílání teploty probíhá v intervalu cca 30s | ||
| Řádek 154: | Řádek 156: | ||
| } | } | ||
| } | } | ||
| + | </code> | ||
| ===== Funkce ===== | ===== Funkce ===== | ||
| - | ===== Závěr ===== | ||
| + | Princip funkce zařízení funguje na jednoduchém principu, kdy se zařízení připojí k lokální Wi-Fi síti, jejíž údaje má uložené v programové syntaxi a následně s intervalem 30 sekund opakuje cyklus změření teploty, vytvoření URL pro odeslání informace na server ThingSpeak.com, odeslání informace a přijetí odpovědi ze serveru. | ||
| + | Na následujícím obrázku je možné vidět výpis ze sériové komunikace modulu s počítačem. | ||
| + | |||
| + | {{ :2015:esp8266-ds18b20:odpoved.png?nolink |Záznam sériové kominikace}} | ||
| + | |||
| + | Dále zde uvádím 24 hodinový záznam měření teploty v grafu ze serveru ThingSpeak.com. | ||
| + | |||
| + | {{ :2015:esp8266-ds18b20:teplota.png?nolink |Záznam teploty 24hodin}} | ||
| + | |||
| + | Vzhledem k dlouhé době opakovaní měření teploty a odezvy serveru na novou hodnotu na místo video záznamu o funkci přikládám odkaz na záznam posledních 24 hodin měření teploty, kdy je čidlo umístěno na stole v mém pokoji v místě mého trvalého bydliště. | ||
| + | |||
| + | [[https://thingspeak.com/channels/78922|Aktuální záznam teploty na ThingSpeak.com]] | ||
| + | |||
| + | Záznam bude aktuální po dobu, kdy zvládnou baterie dodávat dostatek proudu pro modul ESP8266. | ||
| + | |||
| + | ===== Závěr ===== | ||
| + | Modul ESP8266 byl sám o sobě pro mne rozuzlením podstaty Internetu věcí (IoT - Internet of Things), až v momentě, kdy jsem do ruky dostal desku o rozměru něco přes 2x1 cm jsem si uvědomil jak snadné je dnes připojit k procesoru Wi-Fi modul, ba co k samotnému modulu připojit zařízení, které tento modul napájený například z malé baterie, může obsluhovat. | ||