logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Własny Zigbee Gateway na ESP32/8266 i ksIotFramework (framework do iot)

cziter15 30 Sty 2025 22:40 3225 2

TL;DR

  • Powstała bramka Zigbee na ESP32/8266 oparta o własny ksIotFramework i moduł EBYTE-E180 z firmware EZSP.
  • Zamiast implementować pełny stos Zigbee na ESP, urządzenie wystawia UART na socket jako most Serial To Ethernet.
  • Brama obsługuje też asystenta powiadomień audio: MAX98357A, dekodowanie MP3 przez ESPAudio-I2S, sterowanie odtwarzaniem przez MQTT i LED.
  • Wykorzystano ESP32S3 ze sprzętowym USB do debugowania i aktualizacji, a PCB oraz obudowę zaprojektowano w EasyEDA.
Wygenerowane przez model językowy.
REKLAMA
📢 Słuchaj (AI):
  • Witam,

    Od kilku lat buduję projekty w oparciu o mikrokontrolery ESP32/8266. Bawiłem się na początku atmegami / Arduino, ale gdy tylko wspomniane moduły wpadły w moje ręce, pozostałem przy nich. Swoje projekty opieram o ksIotFramework - swój własny framework IoT, który bazuje na portach Arduino pod ESP. Napisałem go głównie po to, by nie klonować wzoru firmware'u za każdym razem, tylko wydzielić współdzielone komponenty do osobnej biblioteki.

    Bibliotekę napisałem, wzorując się na tym, czego nauczyłem się programując zawodowo gry - architektura oparta o kompozycję, gdzie każda kategoria funkcjonalności osadzona jest w odrębnym komponencie. Przykładami komponentów są np. WiFiConnector, MqttConnector czy Led. Każdy komponent przypomina osobny program Arduino. Wszystkie wykonują się po kolei i zamknięte są w obiekcie Aplikacji.

    Wracając jednak do projektu - Zigbee Gateway.

    Protokół Zigbee jest rozwiązaniem obecnym w automatyce domowej. Dzięki gotowym modułom, takim jak EBYTE-E180, jego implementacja w urządzeniu jest prosta. Wystarczy uruchomić na nim firmware EZSP, który wystawia cały interfejs za pomocą UART. Co więcej, jest wiele gotowych programów do obsługi tego protokołu, w tym również są wtyczki do Home Assistanta. Okazało się, że nie muszę implementować na ESP całej logiki, a jedynie wystawić UART na socket - czyli de facto zrobić coś w rodzaju mostu Serial To Ethernet. W ten sposób obsłużyłem Zigbee w projekcie.

    Moduł Zigbee Gateway z widocznymi elementami elektronicznymi.

    Chciałem jednak, by bramka Zigbee nie była tylko prostą bramką, bo takie można zakupić w formie USB sticka. Urządzenie miało zostać zamontowane w centralnym pomieszczeniu i służyć również jako elektroniczny asystent powiadomień. Ta funkcjonalność zrealizowana została przy pomocy układu MAX98357A, który jest konwerterem DAC I2S. Można do niego podłączyć praktycznie bezpośrednio głośnik o mocy do 3 W. Dekodowanie strumieni MP3 odbywa się z pomocą biblioteki ESPAudio-I2S. Żądania odtworzenia określonych dźwięków docierają z pomocą MQTT. Alerty sygnalizowane są również za pomocą diody LED.

    Zigbee Gateway z niebieskim podświetleniem na drewnianej półce, obok świątecznego pudełka.

    Co ciekawe, ESP32S3 posiada sprzętowe USB. Daje to możliwość debugowania oraz aktualizacji oprogramowania.

    Zarówno obudowa, jak i PCB zaprojektowane zostały w EasyEDA. Produkcję laminatów i obudowy zleciłem zewnętrznej firmie. Lutowanie elementów 0603 nie jest trudne, zrobiłem to za pomocą płyty grzewczej, dobrego topnika i pasty.

    Aktualizacje i worklogi  znajdziecie również na portalu Hackaday:
    https://hackaday.io/project/194721-ks-zigbee-gateway

    Fajne? Ranking DIY
    O autorze
    cziter15
    Poziom 11  
    Offline 
    cziter15 napisał 34 postów o ocenie 21, pomógł 2 razy. Mieszka w mieście Bydgoszcz. Jest z nami od 2013 roku.
  • REKLAMA
  • #2 21418336
    gulson
    Administrator Systemowy
    Posty: 29382
    Pomógł: 148
    Ocena: 6060
    Dziękuję za prezentacje. Sporo się tutaj dzieje, a stosunkowo krótki opis. Mamy nawet nowy framework. Masz jakieś plany rozwoju? Widzę, że udostępniasz wszystko na github, może jakaś społeczność się zbuduje?
    Jak mi podasz Paczkomat na Prywatną Wiadomość, to wyślę mały upominek.
  • #3 21418493
    cziter15
    Poziom 11  
    Posty: 34
    Pomógł: 2
    Ocena: 21
     gulson napisał:
    Sporo się tutaj dzieje, a stosunkowo krótki opis. Mamy nawet nowy framework.

    Typowy problem pisania postów przez autora. Framework powstawał od kilku lat, postawiłem na nim kilka urządzeń. Zaczynałem z prostymi układami na ESP8266 gdzie w zasadzie w każdym urządzeniu nagle musiałem kopiować WiFiManager i cały jego setup. Aktualnie doszedłem do miejsca, gdzie mam własny device portal napisany w Vue jako Single Page Application. Strona ta serwowana jest jako skompresowany "blob" i używa mechanizmów Cache. Dalej komunikacja leci po Websocket. Daje to bardzo responsywny interfejs zarówno do konfiguracji WiFi docelowego z poziomu AP, jak i podczas normalnej pracy - jako interfejs debugowania urządzenia.

    Zrzut ekranu z portalu urządzenia z szczegółami technicznymi urządzenia ESP32.

    Zrzut ekranu urządzenia pokazujący terminal z logami aplikacji i polem do wpisywania komend.

    Efekt pracy urządzenia widać najlepiej z poziomu frontendu HomeAssistant:
    Interfejs użytkownika systemu zarządzania inteligentnym domem pokazujący przegląd pomieszczeń.

    Możemy sterować oświetleniem, przełącznikami a także monitorować parametry takie jak wilgotność, natężenie światła czy temperatura.
    W zasadzie wszystko zależy, jakie urządzenia wykonawcze i sensory podepniemy do sieci Zigbee.

    gulson napisał:
    Masz jakieś plany rozwoju?

    Nic konkretnego, chciałbym zbudować drona za jakiś czas - też w oparciu o framework. Wszystko na ten moment jest jako hobbystyczne projekty.

    gulson napisał:
    Widzę, że udostępniasz wszystko na github, może jakaś społeczność się zbuduje?

    Fajnie byłoby wokół frameworka zbudować taką społeczność, bo znacząco przyspiesza projektowanie małych urządzeń IoT zwłaszcza dla hobbystów. Przyznam szczerze, że tutaj trochę nie wiem, jak dotrzeć do ludzi z tym projekcikiem.
📢 Słuchaj (AI):
REKLAMA