Ciao a tutti,
Con un arduino uno wi-fi R4 dovrei ricevere dei pacchetti Telnet da un access point , Un modulo DT06 che invia dati.
Dove posso trovare qualche esempio?
Successivamente devo visualizzarli in forma grafica su un display da 2.8" un Shield Rm68090 che avevo utilizzato in passato con un arduino Uno , c'è una libreia equivalente anche per Uno wi_fi ?
Grazie
Mmm ... relativamente alla rete, vari esempi d'uso della UNO R4 WiFi li trovi QUI ... ma non vedo nulla relativo a Telnet Tu avevi usato qualche cosa in precedenza su altro Arduino o conosci librerie per quanto vuoi fare tu?
... magari se metti il link si sa di cosa stai parlando.
Guglielmo
E quale libreria avevi usato ?
La cosa importante è il controller, quel display usa ILI9341, quindi bisogna trovare una libreria per quel controller. E che la lib vada per R4.
Quindi in sostanza hai bisogno di un client telnet?
Il protocollo telnet è piuttosto semplice da implementare.
Googlando due minuti ho trovato questa libreria che purtroppo usa un client Ethernet.
Poi ho trovato questa libreria derivata dalla prima che usa un client WiFi, ma purtroppo limitato al solo mondo ESP.
La cosa assurda è che sia EthernetClient che il WiFiClient sono figli dello stesso genitore nel framework Arduino... avrebbero potuto usare un generico Client senza "specializzazione" e rendere la libreria completamente indipendente dall'hardware.
Purtroppo non ho disponibile una Uno R4 WiFi, ma appena ho due minuti disponibile provo a reimplementare la classe derivata usando un Client generico e la testo con le MCU che ho disponibili.
Ciao Grazie Del supporto
Avevo usato quella generica del TFT che c'è negli esempi per arduino ma Atmel
Qui c'è il fork che usa un client generico. I sorgenti sono un po' rimaneggiati rispetto all'originale (poca roba).
Per ora ho provato solo con ESP32, ma dovrebbe andare con qualsiasi MCU e qualsiasi interfaccia WiFi o Ethernet adattando ovviamente gli #include
e le modalità di connessione alla rete.
Più tardi se riesco provo con un Nano 33 IoT usando quindi la libreria WiFiNINA.h
.
Con Arduino Uno R4 se non ricordo male va usata la WiFiS3.h
.
Appena riesco gli do anche una sistemata secondo le indicazioni "ufficiali" per inserirla nella lista delle librerie di Arduino IDE
Se volete farvi due risate, provate ad eseguire lo sketch starWars.ino, ma usando un terminale seriale tipo Putty oppure facendo collegare direttamente Putty al server telnet towel.blinkenlights.nl
Ciao Grazie
Sono riuscito a connetermi alla Wi-Fi con la libreria standard ma il telnet no.
Invece usando un modulo D1 WI.FI con quello mi connetto e ricevo i dati ma non mi supera i 80 caratteri ne trasmetto sui 120, c'è sempre qualcosa che non va.
Il D1 poi non ha tutti i pin per il display , o cambio tipo di TFT con qualcosa in SPI.
Ho provato con la libreria nel demo starwar ho inserito i dati del server si connette e mi stampa nella seriale la stringa trasmessa. Non ho capito però come funziona la chiamata a Telnet.listen() l'unica funzione che c'è nel main dove posso estrarre la stringa ?
La libreria di partenza purtroppo ha molte lacune. Come puoi vedere anche dal commento dello stesso autore a questa riga del sorgente, non è previsto alcun metodo per manipolare l'output del client telnet: di base viene solo stampato sulla seriale.
Se mi fai capire un po' meglio quali sono le tue esigenze, provo ad aggiungere qualche metodo un po' più utile.
Ad ogni modo, nulla ti impedisce di leggere direttamente lo stream del client WiFi dopo aver inviato il comando. In questo modo puoi farne quel che vuoi dell'output.
Se ad esempio nel loop()
togli la chiamata a listen()
e metti qualcosa come questo, ottieni lo stesso comportamento salvando di volta in volta il testo inviato dal server nella variabile String data
che puoi usare per eseguire tutte le elaborazioni del caso.
// telnet.listen();
if (baseClient.available()) {
String data = baseClient.readStringUntil('\n');
Serial.println(data);
}
Ciao Grazie io devo ricevere la stringa che viene trasmessa ogni 500 ms da una centralina di accensione di un motore che ho sviluppato, Inviare saltuariamente dei comandi con una stringa che contiene dei parametri.
Lo scopo finale è quello di avere una piccola console a batteria con un display tft touch che visualizzi alcuni parametri motore (magari graficamente con dei quadranti) come giri temperatura ecc, e poter inviare comandi per attivare disattivare delle funzioni per esempio antifurto.
Beh allora dovrebbe essere già sufficiente il pezzo di codice che ti o scritto prima.
Per inviare dei comandi invece, dai un'occhiata all'esempio telnetRaspberry.ino
, che però presuppone che tu abbia già creato un utente abilitato sul server telnet.
Il server è un modulo DT06 ESP-link
non ho ben capito cosa mettere come login
Più tardi provo anche io ad installare questo firmware su un ESP32 e vedo che succede.
Edit:
come non detto, il firmware è solo per ESP8266 ed al momento non ne ho disponibili. Se mi ricordo ci provo questa sera.
Ho provato a inviare comandi ma non succede nulla mi ritorna la prompt $.
Ma prima di provare con la Uno, hai provato con un client telnet sul PC come ad esempio Putty?
Si la centralina ha un micro infineon col debugger ho monitorato la ricezione, col putty da pc funziona perfettamente.Riceve i dati dal Dt06
Ho fatto qualche prova arduino si blocca nel login , ho provato con Anonymous ma non va , non saprei cosa mettere