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. | ||