Thermostat with OLED for Wemos D1 mini

Zybi
Posty: 1511
Rejestracja: ndz cze 26, 2016 4:24 pm

Wstępna zajawka, soft jeszcze "gorący".
Firmware nie jest wrażliwe na brak połączenia z serwerem.

.
Załączniki
Termostat.png
Termostat.png (25.82 KiB) Przejrzano 10630 razy
Awatar użytkownika
maffiu
Posty: 500
Rejestracja: śr lis 30, 2016 9:30 pm
Lokalizacja: Kraków/Skawina

:)
Zybi
Posty: 1511
Rejestracja: ndz cze 26, 2016 4:24 pm

W załączniku udostępniam firmware do testów.
Kompilacja dedykowana jest dla modułu WeMos D1 mini z shield-em OLED 0.6" 64x48.

EDIT: z wyświetlaczem 128x64 po I2C na SSD1306 też zadziała.

Wejście w tryb konfiguracji bezpośrednio po flashowaniu jest automatyczne. Logujemy się na 192.168.4.1 do siec: ESP_THERMOSTAT hasło: 12345678. Kolejne wejścia w tryb konfiguracji po zwarciu GPIO3/RX do masy na 10 s. Wyjście z trybu konfiguracji kolejne zwarcie tego pinu do masy na 1 sekundę, albo reset modułu.
W trybie konfiguracji wbudowana dioda na module szybko błyska, a na OLED mamy CONFIG MODE. W czasie normalnej pracy dioda jest wygaszona, a na OLED pod poziomą kreską jest ONLINE. Wszelkie zaburzenia w połączeniu z serwerem sygnalizowane są miganiem diody oraz odpowiednimi statusami na wyświetlaczu OLED.

Wersja testowa umożliwia:
- pomiar z jednego czujnika (pełna wersja 8)
- ustawienie temperatury w zakresie 20-30 stopni, rozdzielczość 0,5 stopnia (pełna wersja od -55 do 125 z rozdzielczością 0,1)
- ustawienie histerezy w zakresie do 2 stopni, rozdzielczość 0,5 stopnia (pełna wersja do 10 stopni z rozdzielczością 0,1)
- dwa przekaźniki
- dwa przyciski do sterowania przekaźnikami (sterowanie z przycisku dla przekaźnika termostatu używany, gdy mamy np. uszkodzony/niewykrywany czujnik, bo inaczej i tak termostat przejmuje kontrolę)

Po zwarciu GPIO16 do masy na OLED mamy pokazane odczyty ustawionej temperatur i histerezy, ale na pinie tym należy zapewnić pull-up, czyli rezystor ok. 4,7k z piny do +3,3Vcc.
Uwaga funkcja CLEAR EEPROM nie kasuje GUID-a.

GPIO0 - DS18B20
GPIO2 - Led Config
GPIO1/TX - diagnostyka na konsoli
GPIO3/RX - Pin Config
GPIO4 - SDA_OLED
GPIO5 - SCL_OLED
GPIO14 - Button 1
GPIO12 - Button 2
GPIO15 - Relay 1 (termostatowy)
GPIO13 - Relay 2
GPIO16 - Toggle OLED

Soft wgrywamy pod adres: 0x00000
CrystalFreq: 26M
SPI SPEED: 40Mhz
SPI MODE: DIO
FLASH SIZE: 32 Mbit (4MByte)
BAUDRATE: 115200

Aktywni testerzy dostaną pełną wersję

.
Zybi
Posty: 1511
Rejestracja: ndz cze 26, 2016 4:24 pm

W załączniku nowa testowa wersja termostatu.
W paczce są kompilacje pod wyświetlacze OLED I2C: 128x64 oraz 64x48 z funkcją OTA, więc wejście na stronę konfiguracji jak poniżej:

Kod: Zaznacz cały

192.168.4.1:82
Więcej o zaimplementowanej funkcji OTA tu:
viewtopic.php?f=11&t=3636

Zmiany:
- poprawiono wyświetlanie danych
- zrezygnowano z wyboru czujnika, będzie tylko jeden
- pokazano na OLED aktualny stan przekaźnika współpracującego z termostatem
- dodano automatyczne wyłączenie przekaźnika przy uszkodzonym czujniku DS18B20

.
Zybi
Posty: 1511
Rejestracja: ndz cze 26, 2016 4:24 pm

W załączniku wersja końcowa termostatu, nie mam więcej pomysłów na usprawnienia.
Generalnie firmware zostało uproszczone do minimum.
Przekaźnik "termostatowy" sterowany jest przez czujnik temperatury, który ma na nim nadrzędną kontrolę. Przycisk do ręcznego załączania przekaźnika zlikwidowano, a kanał na smartfonie służy tak naprawdę jedynie do podglądu jego stanu.
Do sterowania ręcznego wykorzystujemy przekaźnik nr 2, który należy podłączyć równolegle do załączanego obwodu grzejnego.

Konfiguracja portów:

GPIO0 - DS18B20
GPIO2 - Led Config
GPIO1/TX - diagnostyka na konsoli
GPIO3/RX - Pin Config
GPIO4 - SDA_OLED
GPIO5 - SCL_OLED
GPIO15 - Relay1 (auto)
GPIO13 - Relay2 (manual)
GPIO12 - Button1 for manually switching the Relay2
GPIO14 - Button2 for toggle OLED

Soft wgrywamy pod adres: 0x00000 z parametrami:

CrystalFreq: 26M
SPI SPEED: 40Mhz
SPI MODE: DIO
FLASH SIZE: 32 Mbit (4MByte)
BAUDRATE: 115200

Aby zachować pełną uniwersalność softu dla funkcjonalności OTA stałą nazwę dla strony logowania OTA zmieniłem na chip ID modułu ESP.
Logowanie będzie wyglądał więc w ten sposób:

Kod: Zaznacz cały

http://Chip_ID_modulu_ESP.local/update
czyli np.
http://3a9029.local/update
Chip ID modułu wyświetlany jest na stronie konfiguracyjnej.

Przypominam o zmianie sposobu logowania na stronę konfiguracyjną;

Kod: Zaznacz cały

http://192.168.4.1:82
Soft testowy w wersji na wyświetlacz OLED 64x48 oraz 128x64

.
mlynekg
Posty: 19
Rejestracja: śr maja 31, 2017 6:39 am

Witam

W nowej wersji mam problem nie mogę ustawić temperatury poniżej 25 stopni

Pozdrawiam
Zybi
Posty: 1511
Rejestracja: ndz cze 26, 2016 4:24 pm

mlynekg pisze: ndz sie 26, 2018 10:20 am Witam

W nowej wersji mam problem nie mogę ustawić temperatury poniżej 25 stopni

Pozdrawiam
Bo to nie są wersje pełne tylko testowe z ograniczeniami.
Najnowsza wersja ma już tryb manualny i automatyczny na jednym przekaźniku oraz ustawianą temperaturę bezpieczeństwa dla trybu manualnego, a także inne zmienione drobiazgi.
arto
Posty: 7
Rejestracja: ndz sie 26, 2018 12:13 pm

Witam wszystkich, ponieważ jestem tu nowy i gratuluję twórcom projektu.
Nie do końca rozumiem tylko, czy projekt jest otwarty czy komercyjny? Pytam, bo nie mogę znaleźć niektórych softów ani ich źródeł, a przekopanie się przez całe forum zajmie mi jeszcze trochę czasu, bo sporo tego...
Bo to nie są wersje pełne tylko testowe z ograniczeniami.
Gdzie znajdę pełną wersję lub jej źródła? Czy muszę za nią zapłacić i gdzie/ile? Jest jakieś konto, które wspiera rozwój projektu?
Jeśli tak, chętnie wesprę, bo projekt jest super, ale nigdzie nie znalazłem takiej informacji...
Zybi
Posty: 1511
Rejestracja: ndz cze 26, 2016 4:24 pm

Prześlij mi na priv chipID modułu ESP, do którego będziesz chciał wgrać soft, to Ci przygotuję pełną wersję.
Zamiast chipID może być sześć ostatnich znaków z adresu MAC modułu.
arto
Posty: 7
Rejestracja: ndz sie 26, 2018 12:13 pm

Zybi pisze: ndz sie 26, 2018 12:49 pm Prześlij mi na priv chipID modułu ESP, do którego będziesz chciał wgrać soft, to Ci przygotuję pełną wersję.
Zamiast chipID może być sześć ostatnich znaków z adresu MAC modułu.
Dzięki za chęć pomocy, ale takie podejście nie rozwiązuje mojego problemu, bo potrzebowałbym kilku takich modułów (na kilka pomieszczeń) a sugerowane podanie ID rozumiem jako ograniczenie softu do jednego urządzenia, poza tym nie używam Wemosa i chciałbym dopasować sobie pinologię do innych modułów. Drobne zmiany w źródłach i kompilacje potrafię zrobić sam, więc pomyślałem, że skoro źródła są otwarte, powinny być udostępnione, we wszystkich dostępnych na githubie nie widzę też ograniczenia przez ID... (chyba, że się mylę i projekt jest komercją, ale ze stopki oficjalnej strony wynika, że jednak nie...)
Zablokowany

Wróć do „Nowości”