Jakiś czas temu przestałem rozwijać AFE Firmware T4, który obsługiwał do czterech przekaźników, przycisków, diod LED. Idealnie pasował do urządzeń cztero-kanałowych, jak Sonoff 4CH, czy Geekcreit.
Dlaczego przestałem rozwijać? Bo w całości możliwości tego firmware przejął podstawowy AFE Firmware T0 w wersji 2.
Teraz jednak AFE T4 wraca. Wraca, bo będzie obsługiwał trzydzieści dwa przekaźniki, przyciski, czujniki binarne (PIR, magnetyczne itp) oraz diod LED. W wersji PRO dodatkowo: wejście analogowo-cyfrowe oraz czujnik temperatury DS18B20
AFE Firmware T4 będzie wykorzystywał ekspander wejść/wyjść MCP23017, który to właśnie może rozszerzyć ESP o dodatkowe szesnaście GPIO. Te szesnaście dodatkowych GPIO można wykorzystać do podłączenia np. przekaźników, diod LED, przycisków, tak jak do standardowych GPIO w ESP.
W pracach nad tą wersją wykorzystuje ten o to gotowy moduł z chip'em MCP23017 Koszt tego modułu to 25zł / PL lub 3$ / CN (grudzień 2020) . Może być zasilany napięciem od 3 do 5.5V - wiec świetnie nadaje się do ESP, z którym łączy się po szynie I2C Główne parametry tego moduł
- 32 wejść / wyjść
- częstotliwość pracy I2C: 100kHz, 400kHz, 1,7MHz
- 8 różnych adresów I2C
- posiada wyjście przerwania portów A oraz portów B - jednak w AFE nie mam potrzeby, żeby je wykorzystywać
Poniżej innego rodzaju moduł z chipem MCP23017
Co mamy w AFE Firmware T4.
Na ten moment w zasadzie wszystko, co w podstawowej wersji AFE Firmware Obsługiwany sprzęt:
- ESP8286/8285 1Mb do 4Mb
- do 32 przekaźników
- do 32 przycisków: mono/bi-stabilnych
- do 32 diod LED
- do 32 czujników binarnych, czyli: różnego typu czujników ruchu, magnetycznych, które mają dwa stany: ON / OFF lub OPEN / CLOSED itp
API
- HTTP
- MQTT
- Domoticz HTTP API
- Domoticz MQTT API
Funkcje
- Sterowanie przekaźnikami bezprzewodowo przez sieć WiFi
- Ustawiania stanu początkowego przekaźników po uruchomieniu
- Ustawienie stany przekaźników po podłączeniu się do brokera MQTT
- Obsługa wiadomości LWT (tylko po MQTT)
- Automatyczne wyłączanie przekaźników po zadanym czasie
- Przekaźnik ustawiany sygnałem LOW lub HIGH
- Sterowanie przekaźnikami zewnętrznymi włącznikami/przyciskami mono (dzwonkowym) lub bistabilnymi
- LED może informować o stanie przekaźnika
- Czujnik binarny może wysyłać stany ON/OFF lub OPEN/CLOSED, można również ustawić, kiedy firmware ma wysyłać stan ON (CLOSED), a kiedy OFF (OPEN)
- Odczyty z przetwornika analogowo-cyfrowego
- Odczyty temperatury z czujnika DS18B20
- Konfiguracja przez przeglądarkę w języku PL lub EN
- Możliwość nadania stałego adresu IP dla urządzenia
- Aktualizacja oprogramowania przez przeglądarkę
Konfiguracja AFE Firmware T4 z ekspanderem
Konfigurujemy szynę I2C
- Standardowo w ESP I2C chodzi po
- GPIO5 (D1) - SCL (zegar)
- GPIO4 (D2) - SDA (dane)
W AFE jest możliwość ustawienia innych GPIO dla I2C, natomiast korzystanie z innych GPIO należy robić rozważnie, bo niektóre z nich mogą mieć specyficzne funkcje
Konfiguracja wykorzystania expandera MCP23017 Ekspander można wykorzystać do podłączenia diody LED, przekaźnika lub przycisku. Cała konfiguracja polega na ustawieniu, jak dany element jest podłączony do ESP
- bezpośrednie do standardowego GPIO ESP
- lub do którego ekspandera i jego GPIO
Poniżej przykład na diodzie LED
Jeśli równocześnie skonfigurowane zostanie standardowe GPIO oraz wykorzystanie ekspandera MCP, AFE Firmware wykorzysta standardowe GPIO, konfiguracja przez MCP23017 zostanie pominięta.
Na koniec
Wspomniany przeze mnie moduł może mieć 8 różnych adresów, co daje możliwość podłączenia na jednej szynie I2C osiem takich modułów, co teoretycznie pozwoliłoby na podłączenie np. 128 przekaźników.
Niestety moje pierwsze testy wykazały, że jak podłączyłem cztery takie moduły to ESP, dające możliwość podłączenia 48 przekaźników to tak zbudowane urządzenie z AFE Firmware nie dało radę funkcjonować. ESP ruszył przy dwóch MCP23017, czyli z obsługa do 32 przekaźników, ale nie było rewelacji
Wersja, którą udostępniam to na razie dwa ekspander MCP23017, natomiast nie poddaję się i spróbuje wycisnąć co się da z ESP i AFE, aby odpalić co najmniej dwa MCP23017. Warunek konieczny: musi to przyzwoicie działać.
Najnowsza wersja do pobrania: AFE Firmware T4
Status prac: zmian, defektów w AFE T4
Pomoc przy testowaniu i sugestie mile widziane.
@adrian czy finalnie przewidujesz bogatszą obsługę wejść ? Chodzi mi o obsługę kontaktronów , PIR i wszelkiej maści wyłączników krańcowych.
Ta wersja ładnie się wgrywa , konfig na razie bez problemów i ekspander jako przyciski działa , Za krótko żeby wyciągać wnioski i nie testowałem jeszcze przekaźników i współpracy przycisk- przekaźnik , oraz pracy bez WIFI i Brokera
-tak chce dodać jeszcze taki binarny sensor: pir, kontaktron, magnetyczny - jak zwał tak zwał
Świetna sprawa.
Dzięki Twojemu T4 Adrian będę mógł znacznie zmniejszyć ilość Sonoff 4CH w swojej rozdzielni co za tym idzie mniej ESP w jednym miejscu. Obecnie mam 11 sztuk a muszę dodać jeszcze jeden aby mieć 48 włączanych punktów świetlnych. Widzę że będę musiał również zmienić całą konstrukcję w rozdzielni jeśli T4 końcowa wersja będzie działać.
Jestem gotowy do pomocy niestety w pisaniu programu nie pomogę ale mogę coś po testować lub wesprzeć $ Twoją pracę. Gdzie mogę nabyć ekspander w Pl aby zacząć testy ?
Uzupełnij jeszcze info dla laików takich jak ja czyli do jakiego modułu najlepiej podpiąć ? Sonoff 4CH, Geekcreit ? Czy coś mniejszego np NodeMCU lub jakaś mała konstrukcja ESP np Wemos D1 mini ?
No i zachodzi pytanie jakich przekaźników używać do tej konstrukcji do zapalania oświetlenia LED.
Witaj Adrianie . Widze ze jeszce jestes.
chodzi mi o komendy dla gpio i expandera jakie sa dla expandera i dla gpio Czy cos sie zmienilo? Pytam bo dawno nie uczestniczylem z wami.
edit
dwa miesiace odlozylem ta zabawe i wylecialem z wprawy ale pozapominalem
ale juz wiem dla kazdego przekaznika komendy nastepujace
http://192.168.0.xx/?device=relay&name=R1&command=on&source=domoticz
http://192.168.0.xx/?device=relay&name=R1&command=off&source=domoticz
itd
sory za zamieszanie
Podlaczylem wkoncu swoja plytke z szescioma przekaznikami pod expaner MCP23017 ten czarny ktory Adianie dales zdiecie wczesniej
skonfigurowalem wszystko ,czyli przekazniki podlaczone zostaly do expandera od B1 do B6 i a przyciski uzylem gpio 12,13,14 i z ekspandera
A1,A2 i A3.Narazie proba zostala zrobiona przez http i wszysko dzialalo jak nalezy w moim domoticzu.Przysciski ustawilem wszyskie narazie jako bistabilne.
Bede jeszcze kontynuowal swoje proby jak cos to dam znac.
Musze jeszce dodac, wielkie brawa dla naszego szefa ,kawal dobrej roboty Adian odwaliles.Dziekujemy
Ja zauważyłem , że po dodaniu urządzenia ze statycznym IP występuje ten przypadek , który już był opisany nazwa modułu jest wyświetlania w postaci ESP-12345 zamiast nazwy nadanej przy konfiguracji.
Druga bardziej istotna rzecz to stan przekaźników po resecie lub zaniku zasilania , przy ustawieniu "ostatnia zapamiętana wartość" , stan przekaźników ustawia się losowo , testowałem to przy przekaźnikach konfigurowanych na wyj ekspandera i przez GPIO ESP.
Nie ważny jest też sposób wyzwalania L/ H przekaźnika , po prostu wszystkie przekaźniki OFF po restarcie np 2 szt ON, reszta OFF .
Cała reszta jak praca bez WIFI czy rozłączenia z Brokerem jest bez zarzutów
@isom - nie testowałem rzeczywiście stanów początkowych przekaźników - zobaczę/naprawię
co do nazwy host, jest zgłoszony do naprawy przy autorów arduino do ESP. To co odkryłem to nazwa się ustawia przy "twardym" reset (odłączenie od zasilania, lub przycisk reset) przy software'owym reset nie ustawiana jest nazwa host'a przez biblioteki arduino
dzięki
@isom - sprawdziłem ustawianie przekaźnika przy restart i działało dobrze
- co masz ustawione u siebie? (załączam na czym testuje)
- nie masz ustawionego jakiegoś czasu automatycznego wyłączenia
- robiłeś czystą instalację, aktualizację z innej wersji?

@adrian ustawienia, które wstawiłeś mam oba na ostatnia wartość, przy 4 przekaźnikach i restarcie lub zaniku zasilania są losowe ustawienia , przywracałem fabryczne jak zmieniałem konfig przekaźników z ekspandera na GPIO ESP , wgrywałem czysty soft po czyszczeniu pamięci .
Nie sprawdzałem przy mniejszej ilości przekaźników , bo uważam że to nie ma sensu.
dzięki @isom za sprawdzenie, musze to przeanalizować, bo wygląda, że coś tutaj specjalnego trzeba zrobić dla tych urządzeń
Ja wczoraj mialem poprobowac ale utknelem w lutowaniu esp wemos. Do wemosa dodaja takie nozki do lutowania , one sa tak kiepskiej jakosci ze sie nie chca lutowac. Soedzilem tak duzo czasu zeby to zmontowac , ze stwierdzilem ze to nie ma sensu tyle pracy w to wkladac. A chcialem mianowicie zrobic do tych swoich listw zeby byl wujmowany expander i wemos. Gdyby sie cos stalo, pomimo wlozonej pracy na poczatku , pozniej szybko bym mogl wymienic expander czy wemos.
Moze ktos podpowie czy ten pomysl moj ma sens. Czy przylutowac na stale oszczedzajac czas.
I to moja prototypowa plytka
i czy w przyszlosci moga byc problemy z polaczeniem z tymi nozkami np przez wilgoc
@adrian po zobaczeniu twojej plytki dalej sie uparlem ze tą swoja zrobie druga. Ale to jest porazka. Te plytki uniwersalne to szajs.Przynajmniej te co ja dobie kupilem. Nie da rady tego szybko lutowac. Skad masz taka plytke. Sam ja zaprojektowales. Czy to jakis gotowiec. Czy tez uniwersalna ale lepszej jakosci. Jak ona wyglada z drugiej strony.
Moj szajs tak wyglada
@krzysztofch tak te brązowe to qpa trochę
- na zdjęciu mam taką w niej ścieżki + / i są poziomo połączone, a te w środku pionowo - bardziej nadaje się do modułów: Wemosy itp
- te są tez ciekawe, używam ich często, ale pod gołego ESP8266/32 - nie gotowych modułów np. Wemos
@krzysztofch Też mam te brązowe ale ok może masz cyne kiepskiej jakości ??
Ja pod gołe ESP zamówiłem taką jak @Adrian pokazuje:
https://pl.aliexpress.com/item/4000184873566.html?spm=a2g0s.9042311.0.0.27425c0fzjiuKX
Mam kilka gołyc ESP8266 12F wylutowanych bo zmieniałem na 07S ze względu na wejście antenowe.
Cześć, druga wersja beta do pobrania: AFE Firmware T4 2.4.0.B2
- obsługuje 2 ekspandery - czyli teraz można podłączyć do 32 przekaźników, przycisków lub diod LED - lub oczywiście kombinację np.16 przekaźników i 16 przycisków
- dodałem dwie opcje do konfiguracji MQTT Brokera, związane z przechowywaniem wiadomości, temat poruszany tutaj
- przechowywanie wiadomości LWT w brokerze
- przechowywanie wszystkich wiadomości
Nie robiłem nic w kontekście problemu zgłoszonego przez @isom dot. przywracania stanów początkowych przekaźników. Natomiast pracując nad tą wersją nie doświadczyłem, ani razu tego problemu - wiec może go rozwiązałem, nie wiedząc o tym - do sprawdzenia.
To co przede mną do dopieszczenie kodu, zakup drugiego expandera i trochę testów.
Pomoc przy testowaniu, jak zawsze jest dla mnie bardzo pomocna. Dzięki!
@adrian to co zgłaszałem dalej niestety ma miejsce zobacz log , na początku ustawiam dwa przekaźniki na ON , zaraz po resecie AFE stan jednego jest OFF , drugiego ON .
Testowane na GPIO 14 i 12 GPIO ESP na razie bez podłączonego ekspandera
- dzięki za log'a bardzo pomaga
- czy nie masz ustawione tak, że w konfiguracji urządzenia masz ustawione, że korzystasz z 16 przekaźników ?
- i skonfigurowałeś dwa pierwsze ten z GPIO 14 i 12 ?
- a resztę przekaźników od 3 dalej nie konfigurowałeś? tak wygląda z loga
- jak AFE startuje to odtwarza ostatnią wartość przekaźnika
- i tu każdy przekaźnik od 3 do 16 ma GPIO 12 tak jak jeden z tych dwóch i go wyłącza - bo taki mają stan przekaźniki 3 do 16 - OFF - a mają GPIO 12
może nie napisałem wyraźnie
- zrób proszę tak, w konfiguracji urządzenia ustaw tyle przekaźników ile używasz.
- i sprawdź czy te co używasz mają różne gpio
Jeśli to będzie to to ufff .... pewnie lepiej będzie jak ustawię domyślną wartość GPIO na brak niż na 12 jak chyba jest teraz.
daj znać przy okazji
@adrian hej. Ja jestem w trakcie lutowania tych swoich przekaznikow. Przyszly do mnie te fajne plytki fi lutowania te czarne. Sa zarabiste. Dziekuje.
Ale mam jeszcze pytanie. Czy moze planujesz dodac na samym koncu do tego softu wejscie analogowe , ktore bedzie mi potrzebne do mierzenia obciazenia pradu.
Tez by mi sie przydalo choc na jeden sesor
ds18b20. Aby mierzyc temperature w tablicy rozdzielczej lub byc moze do innych celow tez.