26

Odp: Router jako konsola przez TTL

kofec napisał/a:

i na sonoff musisz wgrac zbbridge

Nie chciałbym tracić funkcjonalności Tasmoty, która pokazuje temperaturę za pomocą czujnika DS18B20.

W konfiguracji Tasmoty można wybrać GPIO1 i GPIO3 jako TX i RX lub też jako I2C - może to się da wykorzystać tylko nie wiem jak?
https://obrazki.elektroda.pl/8233150300_1618395894_thumb.jpg

27 (edytowany przez kofec 2021-04-14 22:32:44)

Odp: Router jako konsola przez TTL

To widzę tu dwa rozwiązania.
Albo własną kompilacja Tasmota i dodanie tego co potrzebujemy - podobnie jak w openwrt. Opis jest na stronie.
Można wtedy pobawić się też https://tasmota.github.io/docs/TasmotaClient/
Albo przerzucenie tego czujnika DS18B20 do Arduino i tam go obsłużyć

28 (edytowany przez jzef 2021-04-15 07:17:45)

Odp: Router jako konsola przez TTL

Ale co miałbym kompilować jak w Tasmota na liście GPIO jest kilkadziesiąt urządzeń do wyboru. Mam np. czujnik DS18B20 to wybieram go z listy pod GPIO14, podłączam do portu micro-jack i działa.

Czyli jak GPIO1 i GPIO3 to są piny TX, RX w Sonoff to po wybraniu z listy Serial Tx (148) i Serial Rx (149) mamy chyba port szeregowy TTL - czy nie? Tylko trzeba pewnie wyłączyć SerialLog aby Tasmota nie wysyłał na ten port żadnych informacji debug - podobnie jak chciałem wykorzystać port TTL w OpenWrt:

05:53:31 CMD: seriallog
05:53:31 RSL: stat/tasmota/RESULT = {"SerialLog":{"2":{"Active":"0"}}}

Zresztą w Tasmota jest chyba tak iż SerialLog wyłącza się automatycznie po 10 minutach od restartu lub włączenia Sonoff

29

Odp: Router jako konsola przez TTL

Własnie to ze masz kilkadziesiąt czujników do wyboru spowodowało, że w zainstalowanej przez ciebie wersji nie ma (nie zmieściło się) USE_TCP_BRIDGE - https://tasmota.github.io/docs/Serial-to-TCP-Bridge/
Opis buildów masz tutaj:
https://tasmota.github.io/docs/Builds/
Serial to TCP da Ci możliwość łączenia się z dowolnego punktu - w Tasmota ustalasz port na którym ma być wystawiona konsola z Arduino np: 8888  i później telnet <ip tasmota> 8888 i już masz.
Tak jak napisane w poradniku musisz mieć dostępne urządzenia TCP Tx (208) and TCP Rx (209)
Kompilacja własnego buildu: https://tasmota.github.io/docs/Compile-your-build/
i tam masz plik: https://github.com/arendst/Tasmota/blob … r_config.h
gdzie możesz wszystko sobie wybrać i tak np:

// -- One wire sensors ----------------------------
#define USE_DS18x20                              // Add support for DS18x20 sensors with id sort, single scan and read retry (+2k6 code)
//  #define W1_PARASITE_POWER                      // Optimize for parasite powered sensors

i tu ważny element ze od komentować "USE_TCP_BRIDGE":

#define USE_SERIAL_BRIDGE                        // Add support for software Serial Bridge (+0k8 code)
//#define USE_TCP_BRIDGE                           //  Add support for Serial to TCP bridge (+1.3k code)

i możesz jeszcze się pobawić:

//#define USE_TASMOTA_CLIENT                       // Add support for Arduino Uno/Pro Mini via serial interface including flashing (+2k6 code, 64 mem)
  #define USE_TASMOTA_CLIENT_FLASH_SPEED 57600   // Usually 57600 for 3.3V variants and 115200 for 5V variants
  #define USE_TASMOTA_CLIENT_SERIAL_SPEED 57600  // Depends on the sketch that is running on the Uno/Pro Mini

a cala resztę tego co nie potrzebujesz za komentuj

Jeśli chodzi o Arduino to polecam MySensors:
https://www.mysensors.org/build/temp

30 (edytowany przez jzef 2021-05-15 23:00:46)

Odp: Router jako konsola przez TTL

kofec napisał/a:

Własnie to ze masz kilkadziesiąt czujników do wyboru spowodowało, że w zainstalowanej przez ciebie wersji nie ma (nie zmieściło się) USE_TCP_BRIDGE

Ale nadal nie rozumiem jak miałbym wykorzystać to do sterowania silnikiem krokowym? Jak miałbym wysłać polecenie HEX z laptopa do silnika przez ten Sonoff z wgranym mostkiem? Przecież Tasmota to nie Linux tak jak OpenWrt. Tam jest konsola ale działają w niej tylko konkretne polecenia np. setoptionxx, ipaddress1 itp.

Wydaje mi się iż gdyby wykorzystać router z OpenWrt, wyłączyć debug w bootloaderze i OpenWrt, połączyć TX z RX, RX z TX i masy ze sterownikiem silnika to wtedy np. w Putty na Windows w laptopie mam OpenWrt i tam mogę wysłać komendę HEX w taki sposób:

echo -n -e \\xAA\\x0A\\x02 > /dev/ttyS0

Rozumiem iż z Linuxa to by było pewnie tak:

echo -n -e \\xAA\\x0A\\x02 | nc -u IP_tasmota port

ale echo w CMD Windows tak nie działa sad

31 (edytowany przez Leo-PL 2021-08-08 13:49:56)

Odp: Router jako konsola przez TTL

Zauważyłem, że niewłaściwie próbowaliście konfigurować TCP Bridge'a.
https://tasmota.github.io/docs/Serial-to-TCP-Bridge/

Moja konfiguracja, na standardowym ESP-01 schowanym wewnątrz routera:
- Na GPIO1 wybieramy "TCP Rx"
- Na GPIO3 wybieramy "TCP Tx"
- Ustawiamy prędkość komendą TCPBaudRade <x> - w moim przypadku standardowe 115200
- Dodajemy regułkę komendą, np. Rule1 ON System#Boot DO TCPStart 23 ENDON
- Włączamy tą regułkę komendą Rule1 1

Ja łączę się do tego socat-em tak: socat stdio tcp-connect:router-dev1-console 23
Można też netcatem, oba są przeźroczyste dla danych.

Zwykłego telneta nie polecam, bo wygląd ekranu potrafi się dość srogo rozjeżdżać.
Edit: widzę, że niekoniecznie chodzi Wam o konsolę, ale mostek z Tasmoty też jest przeźroczysty, więc jest jeszcze szansa spróbować z wynalazkami typu ser2net (https://github.com/cminyard/ser2net), które wystawiają udawany port szeregowy jako pipe. Dla Windowsa też widziałem podobne rozwiązania. Jeżeli to ma być dedykowany mostek szeregowy, to może jednak ESP-Link?

32

Odp: Router jako konsola przez TTL

OT: wiecie że są dedykowane softy typu: https://github.com/espterm/espterm-firmware ?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

33

Odp: Router jako konsola przez TTL

Cezary napisał/a:

OT: wiecie że są dedykowane softy typu: https://github.com/espterm/espterm-firmware ?

To jest doskonałe! Zagwiazdkowane i sklonowane z GH.

A jeżeli już bawimy się w konsolę po sieci do routera, to w tych "developerskich" można byłoby podciągnąć jedno GPIO pod !SYS_RESET do JTAGa, jeżeli takowy w routerze jest, albo i kompletnego JTAGa: https://github.com/emard/wifi_jtag