Skocz do zawartości

Pomocna odpowiedź

Dnia 8.12.2022 o 16:45, dariann napisał:

Mam w zapasie jeszcze jeden NodeMCU, więc spróbuję podłączyć mu multiplekser i sprawdzę jak będzie się spisywał, bo jeszcze nie bawiłem się takim układem. Do następnych projektów wezmę jednak zaproponowany esp32, bo ten ADC w NodeMCU nawet przy pomiarach napięcia baterii wykonywanych co sekundę odczytuje wartość +-2, co przy praktycznie podwójnym podziale napięcia (mój dzielnik i wewnętrzny dzielnik) nie powinno mieć miejsca. Z tego co widzę to chyba nie mają go w botlandzie, chyba że kiepsko szukam.

Dzięki chłopaki za propozycje i podpowiedzi!

Widzę, że temat jest jakby przeterminowany. Ale ciekaw jestem jak kolega ogarnął tę stację pogodową.

Ja pracuję na Lua z ESP8266 i mam uruchomionych i pracujących parę indywidualnych projektów domowych w tym sterowanie urządzeń grzewczych. O ile wiem z praktyki bo próbowałem się przesiąść na ten układ, to firmware https://nodemcu-build.com/ nie wspiera już płytek ESP32 . Tak że wychodzi na to, że kolejna przesiadka czyli Arduino jednak. Próbuję przekowertować niektóre aplikacje ale bez sukcesu póki co.

  • Lubię! 1
  • 1 miesiąc później...

Projekt nie jest przeterminowany ale raczej toczy się niestety bardzo powoli ze względu na limit wolnego czasu. Aktualnie pracuję nad modułem wyświetlania warunków pogodowych i użyłem w nim Raspberry Pico W oraz dwóch wyświetlaczy e-ink, jednak pisanie programu, który sensownie by te dane wyświetlał wraz z możliwością ustawień jest czasochłonne. Ta wersja malinki daje dużo możliwości, bo ma szybki procesor (dwu-rdzeniowy) więcej RAMu niż ESP8266 i dużo wewnętrznych modułów. Pewien etap wyświetlania już nawet miałem (temperatura i wilgotność z czujnika za oknem, stan baterii oraz stan WiFi; patrz załączone zdjęcie) i całość była napisana w natywnym C++17. Jednak stwierdziłem, że ta zabawa zbyt długo trwa i zacząłem szukać czegoś innego. Natrafiłem na projekt esphome, który pozwala na zbudowanie oprogramowania dla układu ESP z gotowych elementów, a w pliku "yaml" trzeba wpisać tylko to, czego się używa i jak ma to ze sobą rozmawiać. Co najlepsze, tylko za pierwszym razem trzeba programować "po kabelku" a potem już można aktualizować oprogramowanie przez OTA. Ponadto, jest także zdalny widok log'u. Bardzo fajnie to działa. Niestety, wsparcie dla Pico W jest świeże i wiele funkcji nie działa tak dobrze jak dla ESP, więc czeka mnie przebudowa. Chcę podmienić Pico W na ESP32 i jak już zacznie coś się dziać to napiszę.

stacja_eink.jpg

(edytowany)

Stacja pogodowa na ESP32 wg projektu Rui Santosa 

https://RandomNerdTutorials.com/esp32-websocket-server-sensor/

Jest też taki sam projekt stacji  ESP8266 ale po wgraniu projektu nie otwierała mi sie strona na przegladarce.

Generalnie jesli zajmujesz się IOT to polecam tego Portugalczyka RandomNerdTutorials.com Prezentuje on płatne i bezpłatne materiały dotyczące obsługi platform programistycznych, oraz mnóstwo przykładów rozwiązań sprzętowych i programistycznych z objaśnieniami jak to działa . 

https://randomnerdtutorials.com/esp32-guides-sensors-modules/

https://randomnerdtutorials.com/esp8266-nodemcu-guides-sensors-modules/

Korzystając z jego bardzo komunikatywnych materiałów szybko ogarnąłem arduino. Polecam

 

Edytowano przez czeslaw
  • Lubię! 2
1 godzinę temu, czeslaw napisał:

Polecam

Popieram kolegę - bardzo dobrze omówione przykłady, w wielu przypadkach wystarczy je ogarnąć zamiast szukać w dokumentacji, pozostawiając ją do głębszego zrozumienia zagadnienia.

Polecam szczególnie stronkę o pinologii ESP32, w wielu przypadkach można się dowiedzieć dlaczego nasz genialnie (niewątpliwie) zaprojektowany układ nie ma najmniejszego zamiaru działać 🙂

  • Lubię! 1

Przykłady z RandomNerdTutorials są ciekawe ale nie o to mi chodzi. Nawet ten spod pierwszego linku to raczej akademicki przykład użycia a nie funkcjonalne urządzenie. Jak chcesz sprawdzić temperaturę na zewnątrz, to szybciej spojrzysz na termometr za oknem lub na tzw. "widżet" na pulpicie telefonu z Androidem, który pokaże nie tylko aktualną pogodę ale też prognozę na jutro i nawet cały tydzień. Uważam, że sprawdzanie temperatury za pomocą przeglądarki w telefonie to ciekawy przykład ale "nie używalny", bo za dużo trzeba klikać. Nie mówiąc już o tym ile kodu trzeba napisać i przygotować wszystkie formatki HTML/CSS (wiem, że można pobrać gotowca z tamtej strony ale to i tak dużo roboty jak na jeden prosty czujnik). Ponadto, jak już masz wyświetlanie temperatury, to chciałoby się zobaczyć jaka była wcześniej np. w nocy albo rankiem, żeby zobaczyć czy rośnie, czy może spada i trzeba ubrać się cieplej? To właśnie pokazuje Domoticz, o którym poniżej.

Aktualnie przeprogramowałem układ ESP8266, który odczytuje mi temperaturę i nie używam już Lua tylko:
https://esphome.io/
teraz mam obsługę:
* czujnika AM2320 (za oknem)
* DHT11 (w pokoju)
* brokera MQTT do którego wysyłane są odczytane wartości
* dodatkowo dołączyłem do niego klawiaturę numeryczną ze starego telefonu, która ma przyciski zwierające rzędami i kolumnami tzw. matrix i konfiguracja jej sprowadza się do wprowadzenia pinów, pod które została podłączona oraz nazw klawiszy. Tutaj przykład z - według mnie - bardzo dobrze przygotowanej dokumentacji:
https://esphome.io/components/matrix_keypad
Każdy przycisk można ustawić tak aby wysyłał swój stan (ON, OFF), klik (szybka zmiana stanu OFF, ON, OFF), dwuklik lub nawet przytrzymanie, a co najlepsze da się to zrobić w kilku linijkach... i to działa.
https://esphome.io/components/binary_sensor/#on-click

Broker MQTT łączy mi moduł Zegbee2MQTT (https://www.zigbee2mqtt.io/supported-devices/)  zarządzający tzw. "inteligentnymi żarówkami" z Domoticzem (https://www.domoticz.com/) oraz z NodeRed (https://nodered.org/) które spinają urządzenia wykonawcze (np. żarówki) z czujnikami (np. czujniki ruchu lub oświetlenia), a także gromadzą te dane i mogą je wyświetlić jak zmieniały się w czasie.

Do powyższego chcę właśnie dołączyć urządzenie wyświetlające te dane bezpośrednio na wyświetlaczu e-ink w przedpokoju aby nie trzeba było nawet wyciągać telefonu. Dzięki temu, że w ESPHome można niejako budować z klocków i tylko łączyć kodem w C++ lub nawet skryptem, to stworzenie i uruchomienie urządzenia (pod warunkiem, że wszystko zadziała) jest duuużo szybsze. Dla porównania, już teraz (po 2 dniach testów) mam wyświetlanie dowolnego tekstu na wyświetlaczu e-ink, wysłanego do brokera MQTT pod określony "topic" i to przy pomocy zwykłej czcionki z pliku TTF (True Type Font) pobranej z internetu. Nie muszę się bawić w używanie np. "protocol buffers" do komunikacji między urządzeniami ani zastanawiać się jak skonwertować czcionkę na bitmapową i czy będzie dobrze wyglądać po konwersji. To w ESPHome po prostu działa i ta opisana funkcjonalność zajmuje mniej niż 100 linii.

Budowanie kolejnego czujnika otoczenia (czy to temperatury, wilgotności, jasności, itp) jest ciekawe ale lepsze jest zbudowanie czegoś, co rzeczywiście ułatwi życie i "przypomina" komercyjne rozwiązania, a do tego nie będzie od samego początku wymagało zagłębienia się w dokumentację, przez co urządzenie powstanie po prostu szybciej. Z braku wolnego czasu na dłubanie w szczegółach, to "szybciej" ma dla mnie szczególne znaczenie.

1 godzinę temu, dariann napisał:

to raczej akademicki przykład użycia a nie funkcjonalne urządzenie

Bo to nie są poradniki typu "jak zbudować coś" tylko "jak się robi to a to". Wyobraź sobie że chcesz zbudować dom: te podręczniki traktują o sposobie przygotowania dobrego betonu na fundament, a nie o architekturze.

Poza tym jeśli chcesz zrobić coś co jest wygodne to chyba mamy zupełnie inne podejście. Ja mam na ścianie wyłącznik światła (zdublowany w miejscu gdzie zwykłem siedzieć i oglądać ulubione seriale albo spożywać śniadanko), dłuższe wciśnięcie klawisza powoduje odpalenie syntezatora mowy który mnie informuje która jest godzina i ile mamy stopni na zewnątrz, inny klawisz odpowiada za opowiedzenie mi jaka będzie pogoda na dziś i jutro... Bez aplikacji, e-inków, emqutetów, domoticzy i takich tam 🙂

 

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...