Wszystko o esp8266 | Webinsider - Internet widziany od środka ™

Tag: esp8266

Opcja “restore_from_flash”, czyli sposób na zapamiętywanie ustawień w ESPHome na układach ESP8266

Jednym z częściej powtarzających się pytań/problemów, dotyczących ESPHome jest to, że wprowadzone zmiany – np. stan przełącznika, ustawiona temperatura termostatu – nie są zapamiętywane po ponownym uruchomieniu urządzenia. W takiej sytuacji najczęściej chodzi o ESPHome uruchomione na układzie ESP8266, gdzie faktycznie, w domyślnej konfiguracji zmiany nie są zapisywane w pamięci urządzenia (w przypadku ESP32 problem ten nie występuje, bo tu są domyślnie zapisywane). Na szczęście można to łatwo zmienić…

ESP32 Touch Pad, czyli prosty sposób nie tylko na dotykowe sensory (przyciski) m.in. w ESPHome i Home Assistant

Wprawdzie w mojej “stajni” urządzeń z rodziny ESP cały czas dominują różne modele ESP8266 (ze sporą przewagą NodeMCU v3 nad innymi, ze względu na świetną płytkę deweloperską, jaką można kupić do tych modułów), to coraz śmielej rozpychają się urządzenia z serii ESP32. Nie tylko dlatego, że ich cena często jest bardzo podobna, przy mocniejszych parametrach i większej liczbie GPIO. Czasem dlatego, że tylko z ESP32 pewne rozwiązania działają. Będą to m.in. takie rozwiązania jak I2S Audio, Bluetooth (BLE), czy bohater tego wpisu, czyli ESP32 Touch Pad.

Jeśli korzystasz z ESPHome i czujników BME280, to po aktualizacji ESPHome do wersji 2024.2.0, musisz dokonać zmian w konfiguracji platformy dla czujnika BME280 (I2C)

Rano dokonałem aktualizacji ESPHome do najnowszej wersji, czyli 2024.2.0, po czym rutynowo zacząłem aktualizować kolejne urządzenia. I tak się złożyło, że już na pierwszym urządzeniu napotkałem błąd związany z czujnikiem BME280 (temperatura, ciśnienie i wilgotność powietrza). A że ten czujnik jest przeze mnie wykorzystywany dość często, to problemu nie można było zostawić bez rozwiązania.

Dzwonek na bazie ESP8266 i ESPHome, z integracją z Home Assistant, czyli inteligencja dzwoni do drzwi

Nieprzypadkowo się mówi, że tymczasowe rozwiązania często stają się rozwiązaniami stałymi, i to nie tylko z powodu przyzwyczajenia. I tak właśnie było z dzwonkiem na furtce – po przeprowadzce, by był tymczasowy dzwonek, wykorzystałem istniejący przycisk, do którego doprowadziłem zasilanie 5V i dodałem najzwyklejszy buzzer (brzęczyk), który sobie popiskiwał, gdy ktoś nacisnął przycisk, tym samym zamykając obwód. Proste, ale skuteczne, bo nawet swój system zasilania awaryjnego posiadał, w postaci układu z akumulatorkiem 18650. W końcu jednak nadeszła pora, by brzęczyk był bardziej smart.

Urządzenie iSpindel wysyła po MQTT dane do Home Assistant, a ten po HTTP wysyła je do Brewfather, czyli wirtualny iSpindel

W artykule “Sterownik do piwnej lodówki, czyli grzanie i chłodzenie (brzeczki, piwa), na bazie ESPHome i Home Assistant, z integracją z Brewfather” wspomniałem, że w mojej – coraz mniej tylko testowej – migracji z BrewPiLess do ESPHome, m.in. celu lepszej integracji z Home Assistant, jest jeszcze jedna luka, a mianowicie urządzenie iSpindel, które w standardzie przesyłało informacje do BrewPiLess, a BrewPiLess dalej słał jej do Home Assistant (MQTT) i Brewfather (HTTP). Po zastąpieniu BrewPiLess przez ESPHome skonfigurowałem urządzenie iSpindel tak, by przekazywało informacje bezpośrednio to Brewfather, co jest dla mnie ważniejsze, niż to, by mieć je (tylko) w Home Assistant. W końcu jednak przyszła pora, by również tym tematem się zająć…

Gdy ESPHome podczas kompilacji oprogramowania blokuje cały system (komputer), można ograniczyć maksymalną liczbę jednoczesnych procesów kompilacji

Obecnie rolę serwera – od strony sprzętu – dla m.in. Home Assistant i ESPHome pełni u mnie Raspberry Pi 3B+, czyli nie jest to może demon wydajności, ale na moje potrzeby obecnie wystarcza. Zresztą z takiej samej Maliny korzysta kolega, który przyczynił się do pomysłu na ten artykuł. Z tą różnicą, że ja Home Assistant i ESPHome mam w ramach Dockera (Home Assistant Container), a kolega w ramach dedykowanego systemu, czyli Home Assistant Operating System (HAOS). A poszło o to, o co przy takim demonie wydajności mogło pójść, czyli o wydajność. A konkretnie obciążenie Raspberry Pi przy kompilowaniu oprogramowania dla płytek (np. ESP8266, ESP32) z poziomu ESPHome.

Pin is used in multiple places, czyli niby mała zmiana w nowym ESPHome, która może poważnie zaskoczyć

Poranki, takie jak np. 1 stycznia to dobra okazja, by korzystając z tego, że sporo osób dłużej śpi, wykonać na spokojnie prace serwisowe, aktualizacje… Tak więc wczoraj zapuściłem rutynowe aktualizacje serwerów i usług na nich, w tym domowe Raspberry Pi, na którym działa m.in. Home Assistant i ESPHome. Wszystko przeszło sprawnie, przynajmniej do momentu, gdy zacząłem aktualizować urządzenia z ESPHome, po aktualizacji ESPHome na serwerze. Przy próbie aktualizacji jednej z testowych płytek ESP32 pojawił się błąd. Było to o tyle dziwne, że w kodzie nic nie zmieniałem, więc jak nic, zmiana musiała nastąpić w samym ESPHome…

Nowe ustawienia zaawansowane w BrewPiLess 4.3.1 (sterownik fermentacji na ESP8266 i ESP32)

Są w życiu takie sploty wydarzeń, że choć wiadomo, że przypadek, to… 12 grudnia opublikowałem artykuł “Sterownik do piwnej lodówki, czyli grzanie i chłodzenie (brzeczki, piwa), na bazie ESPHome i Home Assistant, z integracją z Brewfather”, w którym poza informacją, że w ramach testów oprogramowanie sterownika fermentacji (i piwnej lodówki) zmieniłem z BrewPiLess na ESPHome wspierane przez Home Assistant, wskazałem kilka powodów, dlaczego w ogóle dokonałem takiej zmiany, nawet jeśli testowej, skoro w BrewPiLess jestem od lat zadowolony. A tu niespodzianka, bo 15 grudnia pojawia się BrewPiLess w wersji 4.3.1, w którym część “minusów” znika. I choć oczywiście to przypadek, to splot wydarzeń dość zabawny… ;-)

Sterownik do piwnej lodówki, czyli grzanie i chłodzenie (brzeczki, piwa), na bazie ESPHome i Home Assistant, z integracją z Brewfather

Z racji tego, że po kilku latach przerwy wróciłem do warzenia piwa, to używany przez ten czas moduł działający na ESP8266 i oprogramowaniu BrewPiLess, pilnujący, by “piwna lodówka” (leżaki) miała odpowiednią temperaturę, przeszedł solidną rewitalizację. I choć spisuje się więcej niż dobrze, to testowo kontrolę nad piwną lodówką, jak i fermentacją piwa, postanowiłem tym razem powierzyć układowi opartemu na innym oprogramowaniu.

BrewPiLess z iSpindel, czyli jeszcze bardziej szczegółowa kontrola i analiza procesu fermentacji (nie tylko) piwa domowego

Jak już napisałem w opublikowanej “chwile temu” notce o promocyjnej cenie na usługę Brewfather Premium – po dłuższej przerwie wróciłem do warzenia piwa (w domu). Napisałem też, że oprócz Brewfather (w wersji Premium) proces warzenia, a właściwie w tym przypadku to głównie fermentacji, wspiera BrewPiLess oraz iSpindel, czyli naprawdę pomocny duet przy fermentacji, nie tylko przy kontroli jej temperatury, ale monitorowania całego przebiegu. I choć iSpindel bez problemu można podłączyć bezpośrednio do usługi Brewfather, to ja mam podłączony do BrewPiLess, i dopiero przez BrewPiLess (BPL) informacje trafiają do Brewfather.

Błąd aktualizacji OTA w ESPHome dla ESP8266 ESP-01(S) i ogólne problemy z ESP32 S2 mini, czyli esptool przychodzi z pomocą

Z różnych układów ESP8266 korzystam od dawna. Od niedawna zacząłem wykorzystywać też nowsze układy ESP32. Dodatkowo od jakiegoś czasu korzystam z Home Assistant, gdzie przenoszę zarządzanie większością elementów tzw. “inteligentnego domu” (sic! ;-)), a więc i wcześniej działające najczęściej na autorskim kodzie układy ESP migruję do ESPHome (poza BrewPiLess i iSpindel, ale to inna bajka). I choć w większości przypadków ta migracja jest nie tylko bezproblemowa, to jeszcze jestem pozytywnie zaskoczony wygoda pracy z ESPHome, nie tylko w połączeniu z Home Assistant (tylko ten nieszczęsny YAML i zabawa ze spacjami… ;-)). Nie oznacza to jednak, że nie pojawiają się problemy wyzwania…

Własne szablony ustawień (presets) w Betaflight Configurator, czyli sporo gita i odrobina Node.js

Jako posiadacz licencji pilota/operatora drona postanowiłem, że pora na drona… FPV, co akurat niekoniecznie współgra z moimi uprawnieniami, przynajmniej bez dodatkowej osoby w roli obserwatora (o uprawnieniach pewnie na dniach coś napiszę, bo to całkiem ciekawy temat, który budzi też sporo swego rodzaju kontrowersji). I jak na informatyka i miłośnika wszelkiej maści rozwiązań IoT (np. Raspberry Pi, ESP8266) przystało, mam wrażenie, że więcej dłubię przy swojej małej ptaszynie, niż realnie nią latam. Choć tutaj jako wymówkę mam pogodę (woda w postaci deszczu i śniegu słabo sprzyja awaryjnym… lądowaniom) oraz symulatora, na którym cały czas doskonale swoje umiejętności w zakresie latania dronami FPV. A jednym z podstawowych programów służących do konfiguracji drona jest Betaflight Configurator (przynajmniej jeśli chodzi o drony z oprogramowaniem Betaflight), a w nowych wersjach pojawiła się całkiem interesująca opcja, która niekoniecznie jest aż tak oczywista…

Asystent Google po polsku wylądował (na razie tylko) na telefonach, czyli wiele szumu i… kapiszon

No i stało się, z 2 dni temu na moim telefonie wylądował Asystent Google obsługujący język polski. I jeśli przed oficjalnym startem usługi w naszym kraju myślałem, że w RSSach mam za dużo informacji w stylu “kiedy Asystent Google w końcu po polsku”, to przyznam, że w dniu jego oficjalnej premiery zmieniłem zdanie. Bo w porównaniu z tym, co zastałem w swoim czytników RSSów w dniu premiery, to było nic. I tak, 15 stycznia (dzień premiery) patrząc na morze wiadomości, jakie zalało mój czytnik (a mam w nim tylko mały wycinek wszystkich serwisów) miałem wrażenie, że w wielu “redakcjach” musieli się mocno w głowę uderzyć w pogoni za odsłonami. Bo wprawdzie Asystent Google po polsku faktycznie wystartował, ale…

Automatyczna wersja aplikacji na podstawie czasu kompilacji (data i godzina) w C/C++ na przykładzie Arduino IDE i ESP8266

Jestem właśnie w trakcie przygotowania pewnego rozwiązania programowo-sprzętowego, z którego oprócz mnie będą korzystały – jeśli wszystko pójdzie dobrze – również osoby “z zewnątrz”. Obok odpowiedniego sprzętu, istotnym elementem jest oprogramowanie, które całością zarządza. Z racji tego, że użytkownik będzie mógł samodzielnie zaktualizować oprogramowanie urządzenia, pojawiła się potrzeba wyraźnego i jednoznacznego określenia wersji, tak by w razie wystąpienia jakichś problemów (lub pytań ;-)) od razu było wiadomo z którą wersją mamy(y) do czynienia.
Oczywiście można to zrobić ręcznie, zmieniając przed każdą kompilacją numerek na wyższy, ale… Jeśli można coś relatywnie małym nakładem sił zautomatyzować, i nie ma to wpływu na parametry produktu/usługi, to zazwyczaj nie ma co się nawet zastanawiać…

Loading

Pin It on Pinterest