Esphome - esp32 - pojemnościowy sensor wilgotności

Witam serdecznie zacząłem zabawę z esphome i planuje zrobienie sensora wilgotności w kwiatkach wymyśliłem sobie taką logikę że sensor będzie włączany do prądu co jakiś czas przez gpio15 będzie następował odczyt i wyłączenie sensora jak i zablokowanie wysyłania do homeassistant danych po wyłączeniu gpio15 i tu mam problem bo jeżeli nie używam tej logiki to sensor działa i wysyła sobie dane , ale gdy uzyje logiki aktualizuje się tylko sensor wewnętrzny id: “_Pomiar1” ale ten z Templatki juz ni huhu. Załączam kod , nie śmiejcie się bo chat gpt płakał jak to pisał.
Docelowo chce mieć kilka takich czujników podłączonych do 1 esp i nie chce aby żarły prąd

switch:
  - platform: gpio
    pin: GPIO15
    id: sensor_power
    name: "Zasilanie GPIO15"

sensor:
  - platform: adc
    pin: GPIO34
    id: "_Pomiar1"
    internal: true
    attenuation: 12db
    update_interval: never  # Wyłącz automatyczne odczyty

  - platform: template
    name: "Wilgnotność 1"
    id: "Pomiar1"
    unit_of_measurement: "%"
    icon: "mdi:water-percent"
    device_class: "humidity"
    state_class: "measurement"
    accuracy_decimals: 1
    update_interval: never  # Wyłącz automatyczne aktualizacje
    lambda: |-
      if (id(sensor_power).state) {
        return id(_Pomiar1).state;
      } else {
        return id(Pomiar1).state;
      }

interval:
  - interval: 60sec
    then:
      - switch.turn_on: sensor_power  # Włącz zasilanie sensora
      - delay: 10s  # Poczekaj na stabilizację sensora
      - component.update: _Pomiar1  # Wykonaj odczyt z sensora
      - switch.turn_off: sensor_power  # Wyłącz zasilanie sensora

W konfiguracji nie pomogę - brak pomysłu, ale ciekaw jestem co to za sensor, podrzucisz jakieś info?

Pojemnościowy czujnik wilgotności gleby moduł niełatwy do korozji szeroki przewód napięciowy 3.3 ~ 5.5V odporny na korozję W/ Gravity for Arduino - AliExpress 502
To pojemnościowy od kitajców

Przepraszam, że podcinam skrzydła, ale czy ma sens DIY?
Wersja Zigbee w jakiejś listopadowej promce Ali (kody+monety) - wyszło 25,19PLN:

Czytałem że z tym zigbee to jakaś sciema i ludzie dostają BLE albo zigbe2mqtt wogule nie gada z tym , możesz potwierdzić działanie ?

Pozatym nie chodziło mi o koszty a czy mogę

Tak działa z Z2M. Mogę sprawdzić w wolnej chwili, sparowałem, sprawdziłem i leży w szufladzie. Za to mogę polecić Mi Flora, działa u mnie od paru lat, obecnie w domu ale przeżyła dwie zimy w glebie i nic temu czujnikowi nie dolega. Do tego obecnie BLE Proxy i jest łatwo o zintegrowanie jej do HA.

1 polubienie

dzięki spróbuję jednego i drugiego

Te tanie Zigbee są strasznie duże w realu, na zdjęciu wydawały się małe. W wolnej chwili dodam tu ich model i link dla karty z device w z2m.

z kodem sobie poradziłem wystarczyło wywalić template i robić to bezpośrednio na sensorze.

Generalnie tak jest jak się kupuje osprzęt z jakiegoś zamkniętego systemu i chce wykorzystać inaczej.
Plusem tanich konstrukcji jest to, że trafiają często do ludzi, którzy są w stanie dokonać inżynierii odwrotnej (nie szkoda, bo tanie).
Zigbee standaryzuje tylko niskopoziomową warstwę połączenia (a mimo to zdarzają się odstępstwa powodujące wadliwe działanie sprzętu).
Natomiast warstwa funkcjonalna, o ile nie stanowi czegoś prostego (żarówka, przełącznik, prosty czujnik), co definiuje standard, to do działania wymaga sterownika (co się nazywa coverter w Z2M lub quirk w ZHA).
Wątpię aby czujniki wilgotności gleby itp. były zdefiniowane w podstawach standardu (ale sprawdzać mi się nie chce), a jeśli nie są, to w zasadzie producent może robić je jak chce…
Z tym, że niektórzy chińscy producenci (którzy produkują łącznie zdecydowaną większość lub nawet całość tego niestandardowego co jest na rynku…) w ogóle olali kluczowe założenia standardu, więc każde ich urządzenie wymaga osobnego sterownika… Ale właściwie do tego jak Tuya postawiła wszystko na głowie w swoich modułach Zigbee już się wszyscy przyzwyczaili (a moduły przez nich projektowane używa większość chińskich wytwórców).

Tylko to wywołuje takie zjawisko: każdy nowy wypust jest nieobsługiwany w żadnym innym ekosystemie niż ich własny…
a reszta w rękach ludu, tfu, oczywiście nie żadnego ludu, tylko przytomnych użytkowników (większość szarej masy potencjalnych nabywców nie ma wiedzy, czasu lub chęci by się tym zająć).

Podobnie jest z wypustami BLE, niby częściowo jest to ustandaryzowane, ale większość producentów robi co chce i o ile komunikacja jest nieszyfrowana, to w zasadzie wystarczy podsłuchiwać co sprzęt nadaje i porównywać z oficjalnym rozwiązaniem (ale to też wymaga sprzętu, chęci, czasu itd…)

Możesz wszystko, ale zamiast GPT raczej powinieneś przekopać dokumentację.
Swoją drogą tak się zastanawiam ile energii ten czujnik zużywa, że z tym walczysz, to ma być zasilane bateryjnie?

Ja do tematu bym podszedł od odwrotnej strony i przeanalizował jakieś już istniejące projekty podobnych urządzeń - z takiej analizy można się dużo nauczyć.

chciałem podrzucić jeszcze jednego ciekawego linka ale nie mogę go odnaleźć…

nie ale zasilam to z pinów GPIO a do jenego modułu podepne 8 sond do kwiatków chce aby czytały sie po kolei

HEHE okazuje się że wynajduję koło na nowo

Szczerze mówiąc w takiej sytuacji zastanowiłbym się nad jakimś multiplekserem analogowym albo ADC z wbudowanym multiplekserem, mimo to zajrzyj pod linka, który wrzuciłem wyżej (jeśli znajdę drugi link o ile projekt nadal jest otwarty, to też dodam).

1 polubienie

już analizuję kod pewno coś wykorzystam w swoim projekcie

ps. po analizie uznaje że zrobię to prościej oni przy każdym kwiatku używają mikrokontrolera po co , ja bede miał jedna jednostke obliczeniową i tylko osobno sensory

Znalazłem, ale tu jest tylko ciekawie rozwiązany deep sleep (no i jak na mój gust zajebiście rozwiązana wizualizacja na wyświetlaczu… ale nie tego szukałeś)

każdy przykład kodu do zassania jest dla mnie pomocny , bardzo dziekuję z esp mam kontakt 2 dni więc wiele przedemną i najlepiej uczyć się na gotowcach

hmm nie wiem jakie masz doświadczenie z elektroniką, ale na moje oko

to jest moim zdaniem fatalny pomysł


Generalnie jak na to zastosowanie idealny wydaje się być MCP3008 (tani, prosty, dostępny w pełnowymiarowych obudowach DIL = da się zamontować nawet na prostej płytce uniwersalnej, stosowany od wielu lat w DIY), akurat ma 8 wejść, rozdzielczość nie jest kluczowa (10bit to i tak za dobrze, bo dokładność w sumie zależy od napięcia odniesienia).
Rozbudowa o kolejny układ używa tylko jednego dodatkowego pinu CS (a można użyć kilka na tej samej magistrali SPI)

A w ESP32 na typowych płytkach masz dostępne tylko 6 wlotów multipleksera analogowego na pierwszym przetworniku, a drugi ADC jest w ogóle nie do wykorzystania, bo koliduje z obsługą WiFi.

Alternatywnie jak chcesz jakieś gotowe płytki to widzę, że obecnie wybór sprzętu obsługiwanego w ESPHome jest całkiem spory (jeszcze niedawno wybór był drastycznie mniejszy i w zasadzie jedynym sensownym posunięciem był ADC111x)
https://esphome.io/#analogue

dlaczego zasilanie z pinów gpio to zły pomysł ? sprawdziłem oporności nie ma rezystorów pullup

Bo to pomiar analogowy, więc potrzebujesz stabilnych warunków pracy tych sond (więc zakładam, że potrzeba źródła zasilania ze sporym nadmiarem obciążalności i zawsze stabilnym napięciem wyjściowym, a tego GPIO nie zapewnia; swoją drogą chyba mylisz pojęcia, bo wyjście nigdy nie zawiera pullupu, może go mieć tylko wejście i to nie w trybie analogowym).
Aha jeszcze jedno - pullup “programowy” realizowany w MCU to tak naprawdę nie rezystor, a raczej źródło prądowe.

Daj schemat tej sondy, to będę mógł to ocenić bardziej realnie teraz tylko piszę co mi się wydaje (ale podejrzewam, że nie mylę się jakoś bardzo).

Dobra sam sobie poszukałem, masz do poczytania (tu z foto widzę, że są drobne różnice ale zasada działania na 100% ta sama)

Dlatego chce zapalac te czujniki po kolei a nie zeby pracowaly wszystkie na raz. Potestuje najwyzej upale plytke. Co do odczytów jak narazie wydaje się stabilnie.

Co do artykulu jest z przed 4 lat i pewno byly uzywane pierwsze wersje tej sondy ja mam 2.0 ktora jest stabliniejsza od wczesniejszych przy 3.3v

A w ogóle zmierzyłeś pobierany prąd przez taki czujnik?
W zasadzie istotne są wartości krańcowe przy 0% i 100% wilgotności.
Bez tej wiedzy nie ma co zaczynać, sprawdż przy zasilaniu 5V i 3.3V
jeśli masz 2 multimetry, to użyj obu (jeden do mierzenia faktycznego napięcia zasilania na czujniku już po spadku na amperomierzu, a drugim mierz ten prąd).

Jeśli najwyższa wartość będzie mniejsza od 20mA to można pomyśleć o zasilaniu z GPIO
Maksymalnie dopuszczalne jest 40mA (ale trzeba to ustawić w konfiguracji)
Potrzebujesz 6 GPIO na wyjścia (zmierz czy wystawiają faktycznie równe napięcia) i 6 na wejścia, bo 8 czujników nie da się podłączyć do ESP32, nie możesz przecież wszystkich wpiąć w jedno wejście.