Strony Poprzednia 1 2
Zaloguj się lub zarejestruj by napisać odpowiedź
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Sprzęt / Hardware → Router jako konsola przez TTL
Strony Poprzednia 1 2
Zaloguj się lub zarejestruj by napisać odpowiedź
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ć
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
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 sensorsi 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 Minia cala resztę tego co nie potrzebujesz za komentuj
Jeśli chodzi o Arduino to polecam MySensors:
https://www.mysensors.org/build/temp
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 ![]()
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?
OT: wiecie że są dedykowane softy typu: https://github.com/espterm/espterm-firmware ?
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
Strony Poprzednia 1 2
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Sprzęt / Hardware → Router jako konsola przez TTL
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc