Arduino, ESP8266, BMP280 a já

Tvoříte zajímavý projekt? Pochlubte se s ním.
Pravidla fóra
Vkládejte prosím jen HOTOVÉ projekty, které chcete představit ostatním.
Odpovědět
jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Arduino, ESP8266, BMP280 a já

Příspěvek od jankop » 13 led 2018, 16:23

Narazil jsem na eBay na úžasnou nabídku. Senzor BME280 za cca 26Kč. Hned jsem si nějaké objednal. Byl jsem však trochu zklamán, protože senzory, které záhy dorazily, byly BMP280. Ty neobsahují vlhkoměrné čidlo, ale pouze tlakoměr a teploměr. Za ty peníze je to i tak výborné a příště se snad dočkám i toho vlhkoměru. Musel jsem jen trochu upravit svůj záměr, naprogramovat si trojkombinaci barometr, vlhkoměr a teploměr. Vlhkoměr jsem musel vypustit.
Pokud má někdo doma ESP8266 a senzor BMP280, může si můj barometr vyzkoušet. S menšími úpravami jde pochopitelně použít i senzor BMP85 nebo BMP180, koneckonců i ten BME280 by asi fungoval a možná i bez úprav. Vyzkoušel jsem i variantu s OLED displejem. Podmíněnými příkazy by bylo možné vytvořit velmi sofistikovaný a rozsáhlý program, ale nešlo mi o to, vytvořit univerzální šablonu. Spíš jsem chtěl předvést, co a jak je možné s ESP8266 udělat či naprogramovat. Program je ve své podstatě jednoduchý a jeho podstatnou část tvoří právě grafika barometru, která je vytvořena ve vektorovém formátu SVG. To bylo poměrně obtížné. Grafické editory SVG generují obrovské soubory a jsou pro tento účel prakticky nepoužitelné. V textovém editoru dosáhnete zmenšení vektorového obrázku klidně o dva řády, ale je to pro změnu velmi pracné.
Využitelné pro inspiraci je třeba využití Tickeru pro časové přerušení ke čtení tlačítka, senzoru a monitoring WiFi připojení. Ticker po prvotní inicializaci periodicky volá kratičkou funkci, která pouze nastavuje příznak k obsluze dané události. A v hlavní smyčce loop() se testuje existence tohoto příznaku a v pozitivním případě se volá konkrétní funkce.
Využití často najde i rutina pro čtení tlačítka. V tomto konkrétním provedení dovede vyvolat dvě různé událost v závislosti na době stisku. Události jsou precizně rozlišitelné a myslím, že celkově je ošetření tlačítka velmi důkladné.
Barometr funguje jako webový server a když se na něj připojíme prohlížečem, mobilem nebo třeba chytrou televizí, tak nám barometr ukazuje velikost tlaku přepočtenou na hladinu moře. Jen je pro správné měření nutno dopředu nastavit nadmořskou výšku umístění barometru (konstanta LOCALALTUD).
Přímo v programu je zahrnuta podpora pro Wi-Fi Protected Setup / PBC. To je jedna z mála metod, jak se jednoduše připojit k WiFi access pointu bez nutnosti přeprogramovávat heslo a SSID v modulu ESP8266.
Často je velice užitečná implementovaná funkce mDNS. Ta dovoluje identifikovat modul ESP8266 v síti prostřednictvím definovaného jména, bez znalosti jeho IP adresy.
Aplikace také obsahuje alespoň základní možnost zaheslování přístupu k údajům barometru.
Také jsem si vyzkoušel jednoduché OTA (On the Air) a byl jsem příjemně překvapen. OTA je programování prostřednictvím WiFi, bez nutnosti sériového připojení. Svoje zařízení doma jsem schopen přeprogramovat odkudkoliv ze světa, pokud ovšem povolím mapování portů ve svém routeru. Také programování "On the Air" je chráněno alespoň základním heslem.
Zdroje ESP8266 jsou alokovány takto:

Kód: Vybrat vše

Projekt zabírá 334284 bytů (32%)  úložného místa pro program. Maximum je 1044464 bytů.
Globální proměnné zabírají 40464 bytů (49%)  dynamické paměti, 41456 bytů zůstává pro lokální proměnné. Maximum je 81920 bytů.
Pokud někoho můj program inspiruje, budu rád.
Chválit mě můžete tady na fóru :-) a stejné místo doporučuji i k dotazům.
A tady je konečně odkaz:
http://esp8266.fancon.cz/esp8266-web-ba ... meter.html

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Arduino, ESP8266, BMP280 a já

Příspěvek od jankop » 26 úno 2018, 21:59

Tak jsem si pohrál se vzhledem barometru a doplnil jsem některé funkční drobnosti.
http://esp8266.fancon.cz/esp8266-web-ba ... meter.html

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů