Nigdy nie sprawdzałem tego nawet w specyfikacji (o ile jest gdzieś określone) 256kbps to nie jest “zawrotna prędkość” więc przewody mogą być z pewnością długie (30 metrów bym się nie bał, eksperyment jednak dopiero pokaże czy mam rację…
Zasadniczo RX i TX nie są sygnałami różnicowymi, więc nie ma musu by były przesyłane jedną parą skrętki, ale skrętka lepiej tłumi zakłócenia zewnętrzne niż przewody proste, więc jest wskazana (wręcz w warunkach rzeczywistych puściłbym je prawdopodobnie w parach RX z zasilaniem i TX z masą patrząc od strony czujnika).
Z praktyki - wiele lat używałem połączenia RS232 z kablem długości koło 150m i była wykorzystana skrętka (wtedy to chyba jeszcze kat. 3).
OFF TOPIC
W robocie używam nagminnie RS422 nie zwracając uwagi na długość kabli, ani ilość połączeń pośrednich i jak dotąd nigdy takie połączenie nie było źródłem problemu (no chyba, że są zwarcia lub przerwy), tyle, że sygnał w RS422 jest różnicowy…
wobec powyzszych dyskusji strikte technicznych moje pytanie wydaje sie blahe i trywialne ale i tak je zadam
Postanowilem w koncu zabrac sie za lutowanie i jakies DIY a nie tylko gotowe czujniki, nieskrywana radosc czulem kiedy do LD2410B udalo mi sie ladnie (I za pierwszym razem!) dolutowac kabel usb (prosze sie nie smiac, to bylo moje drugie podejscie do lutowania w zyciu :D)
do rzeczy, w apce HLK czujnik widoczny, firmware podniesiony z 1.07 do 2.04
BLE Scanner rowniez wykrywa, HA nie (mam integracje BLE, USB dongla na ktorym smiga z 15 urzadzen)
Probowalem opisanych wyzej metod - bezskutecznie. Odleglosci od dongla 0,2 - 2m, wpiety i w laptop i w ladowarke sieciowa, usuwalem apke
Pytanie
Istnieje szansa ogarniecia tego po BT ? Brac sie od razu za ESP ? Ogarne to jak lutowalem 2 razy w zyciu ? a moze to jest dobra opcja by zaczac powazniej.
Use case narazie nie ma, jak mi sie uda to uruchomic to bede dopiero myslal co moglbym z tym zrobic
Upewnij się że aplikacja na telefonie nie jest uruchomiona - LD2410B używa aktywnego połączenia i jak jest połączona z aplikacją to nie połączy się z HA (i odwrotnie). A najlepiej od razu zrób po UART z ESPHome - bluetooth nawet przy najnowszym FW bywa niestabilne, natomiast z ESP zero problemów.
A co do lutowania - porządna cyna z topnikiem (a najlepiej dodatkowo sam topnik) czynią cuda. Praktykuj i będzie lepiej
Ja w wolnej chwili zrobiłem eksperyment i zamontowałem moduł sensora w obudowie szklanego włącznika Minitiger v2. O dziwo działa naprawdę dobrze. Ten włącznik jest wyposażony w ESP8285 i co gorsza GPIO 1 - TX ma zajęte przez Led do podświetlenia klawisza.
Musiałem trochę zmodyfikować elektronikę, co widać na foto poniżej.
Przewód do LED podłączyłem do wolnego GPIO, które w wersji 3ch, obsługuje przekaźnik.
Bałem się grubości samego szkła i plastików, ale niepotrzebnie, czujnik fajnie reaguje i co najważniejsze, jest niewidoczny i ma stałe zasilanie z 3,3V. Dlaczego 3V ? Bo jest łatwo dostępne obok RX, TX i GND, a po drugie takie zasilanie przewidział najprawdopodobniej producent , bo wyprowadził masę i pin do zasilenia 3,3V na dwóch pinach po przeciwnej stronie PCB
Czas pokaże, ale moduł ma chłodzenie od ściany. Tego nie widać może na foto, ale cały plastik pod sensorem musiałem wyciąć. W innym przypadku przyklejony sensor nie pozwalał na zatrzaśnięcie się szkła. Jednym słowem powiększyłem górny otwór mocujący w plastiku do rozmiaru sensora i pcb sensora jest wkomponowane w wycięcie, a strona bez anten praktycznie dotyka ściany.
Mimo wszystko jak klęknie, to dam znać , a jak nie, to po mięsiącu napiszę jak się sprawuje.
W ESPHome 2023.7.0 weszła poprawka umożliwiająca zmianę prędkości pracy UARTa dla integracji z LD2410
jak się okazuje 256kbps jest zbyt dużą prędkością dla programowego seriala, więc w przypadku płytek na których nie można użyć seriala sprzętowego jest w końcu dostępne obejście problemu (prędkość seriala w LD2410 trzeba przełączyć na niższą w aplikacji).
Ciekawe jaki to będzie mieć wpływ na całkiem poprawną pracę od dobrego miesiąca. Nie chwalę się bo chcę żeby było wiarygodnie, ale aktualizuję soft bez ingerencji w yamla
Podobno już przy tej prędkości na softowym serialu zdarzają się losowe rebooty ESP82xx.
Myślę, że żaden - zlikwidowano tylko sprawdzenie czy ustawiona prędkość to baud_rate=256000 czyli domyślna, dotychczas nie było możliwe skompilowanie z innymi ustawieniami.
Dziekuję za rozjaśnienie tego co pewnie gdzieś bym wyczytał
PS Po dość długim czasie poprawnej pracy modułu zamontowanego w szklanym włączniku, mogę polecić takie rozwiązanie z czystym sumieniem.
Ważne tylko, żeby zapewnić minimum chłodzenia, ( opis wyżej)
PPS Gdyby ktoś zrobił aktualizację ESPHome , a posiada w/w moduły sensora obecności, to bez zmiany konfiguracji dla tego sensora aktualizacja firmware nie będzie możliwa.
Stary konfig
Cześć,
mam taki sam problem, ale ja używam nodemcu… Żonglowanie RX/TX nic nie daje Status wszystkich encji jest nieznany i nie mam już pomysłu co z tym zrobić…
Teraz mam podpięte pod piny RX/TX, w kodzie opisane jako RX/TX, GPIO1/GPIO3 - bez różnicy tak samo działa, czyli nie działa…
NodeMCU ma ten sam problem co D1 - piny RX i TX są na stałe podpięte do mostka UART.
Z aplikacji zmień prędkość portu na jakąś mniejszą (bo defaultowa będzie za duża dla softwareowego seriala) i użyj inne piny niż GPIO1 i GPIO3 (po prostu jakieś nie zajęte innym sprzętem).
“zdrowe” GPIO w ESP8266/8285 to 4, 5, 12, 13 i 14 (czyli D1, D2 i D5-D7 na twojej płytce jeśli to NodeMCU v2 lub v3) wystarczy przeczytać pierwszy lepszy bryk (już był linkowany gdzieś wyżej) dotyczący podstaw “pinologii” tego MCU…
Skąd taki pomysł?
Przecież te GPIO w ESP8266 akurat służą do komunikacji między prockiem, a wlutowaną pamięcią flash, więc jeśli by się to udało skompilować to gwarantuję, że firmware będzie się wywracać w parę sekund.
(na szczęście jest jakieś podstawowe sprawdzanie poprawności kodu, więc albo w ogóle się nie skompiluje, albo zobaczysz przynajmniej ostrzeżenia o konfiguracji “pod górę”)
Wierzę, że tego YAMLa skopiowałeś od kogoś komu działa, więc jeśli
wybierzesz zdrowe GPIO,
połączysz poprawnie (RXa do TXb, TXa do RXb, masa do masy, a zasilanie jakoś sensownie)
ustawisz parametry portu z aplikacji producenta (aktualna wersja jest po angielsku, co jest sporym krokiem naprzód, bo większość z nas używała apki po chińsku) tak by pasowały do możliwości programowego portu szeregowego (19200bps to podobno max)
To powinno “odpalić od strzała” (na początek proponuję jakąś prostszą konfigurację - same podstawy, potem sobie to rozwiniesz na full-wypasa)
ALE, to że jakiś pin MCU jest wyprowadzony na złącze GPIO nie znaczy, że można go wykorzystać do dowolnego celu - na pinach GPIO6-GPIO11 we wszystkich konstrukcjach płytek prototypowych z ESP8266 jest już podpięty systemowy flash, de facto jest tam magistrala SPI, którą można wykorzystać też w innych celach do podpięcia jakichś wybranych urządzeń SPI - np. karty SD (stąd też zapewne litera S na początku opisów na soldermasce, bo chodzi o SDIO), ale nie są to piny do wykorzystania w dowolny sposób, czyli należy założyć że do wszystkich innych celów są one zakazane, swoją drogą nadruki na soldermasce “Sx” sugerują inne zastosowanie niż “zwykłe digital GPIO” które są oznaczane zwyczajowo “Dx”, czy analogowe “Ax”.
Może jeszcze ze 3 słowa o numeracji na obrazku oraz aliasach dostępnych w ESPHome czarne pola to numeracja pól lutowniczych modułu ESP12 lub jego odpowiednika (na zdjęciu wypust pod nazwą ESP8266MOD, w środku pod blaszanym ekranem na miniaturowej PCB on zawiera ESP8266, kość flash oraz trochę innych elementów głównie pasywnych), ta numeracja nie ma zastosowania w ESPHome i nie ma nic wspólnego z numeracją “pinów” stosowaną w ESPHome bladopomarańczowe pola to numeracja IOxx, nie wiem po co ona komu tzn.wiem , ale nie ma zastosowania w ESPHome bladofioletowe pola to numeracja GPIOxx - tego rodzaju aliasy są dostępne w ESPHome zawsze niektóre pozostałe opisy mogą istnieć jako aliasy, ale nie jest to regułą
teraz kwestia zapisu w konfiguracji YAML, tam gdzie podajemy numer pinu (de facto nie pinu tylko numer GPIO!),
dla przykładu użyłem GPIO2, skrótowo 2, z aliasami w/g definicji d1_mini czyli D4 lub LED
czyli jakiś zapis postaci
pin: REPLACEME
może przykładowo wyglądać tak
pin: 2
albo nieco czytelniej, bo widać,że w tym miejscu się odwołujemy do numeracji GPIO
pin: GPIO2
jeśli definicja płytki istnieje (poniższa pasuje dla płytek opartych na ESP8266 WeMOS D1 mini i NodeMCU) pod warunkiem użycia dedykowanych im definicji
pin: D4
a poniższa już pasuje tylko dla płytki D1 mini i pochodnych, ale NIE pasuje do NodeMCU w żadnej wersji (przy założeniu, że mamy nadal na myśli GPIO2)
pin: LED
UWAGA w przypadku definicji nodemcuv2 zapis LED wskazuje na GPIO16
Aktualną tabelę tych dodatkowych aliasów można zawsze sprawdzić na githubie w pliku
dla ESP8266 i ESP8285
dla całej obsługiwanej linii ESP32 (niezależnie od użytego MCU, niektóre nowsze modele wciąż mają status eksperymentalny)
dla RP2040 (obsługa jest eksperymentalna, więc nie każda integracja musi działać)