Dueville (VI)
Online
Edison Member
Karma: 15
Posts: 1051
http://cesarecacitti.wordpress.com/
|
 |
« on: February 06, 2013, 11:43:02 am » |
Ciao a tutti, ho comprato da qualche mese uno zipit z1 ( non trovavo lo Z2 e legge di murpy, dopo 2 giorni l'ho trovato su ebay  ), appena arrivato l'ho riflashato e quindi ho una specie di linux che mi permette pure di fare il telnet. Il dispositivo ha il wifi e quindi pensavo di usare una ethernet shield (enc28j60) e uno di quelli stupidi routerini wifi da pochi soldi per fare una specie di server che accende led e controlla carichi controllati dallo zipit. In questi giorni compro l'ethernet shield e il router, ma come posso gestire il telnet? Grazie Ciao
|
|
|
|
« Last Edit: February 06, 2013, 11:51:03 am by cece99 »
|
Logged
|
Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield. Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586
|
|
|
|
0
Offline
Tesla Member
Karma: 82
Posts: 8229
:(){:|:&};:
|
 |
« Reply #1 on: February 06, 2013, 12:30:26 pm » |
il telnet non è altro che una interfaccia umana per inviare caratteri ascii via TCP
|
|
|
|
|
Logged
|
|
|
|
|
Dueville (VI)
Online
Edison Member
Karma: 15
Posts: 1051
http://cesarecacitti.wordpress.com/
|
 |
« Reply #2 on: February 06, 2013, 12:49:03 pm » |
Quindi il con il mio modulo ethernet mi metto in ascolto sulla TCP porta 23 e salvo quello che ricevo in una variabile e lo uso come una seriale?
|
|
|
|
|
Logged
|
Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield. Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586
|
|
|
|
0
Offline
Tesla Member
Karma: 82
Posts: 8229
:(){:|:&};:
|
 |
« Reply #3 on: February 06, 2013, 02:33:02 pm » |
esatto! in realtà puoi usare qualsiasi porta: telnet ipArduino portaArduino se nonmetti nulla come porta telenet di defult usa la 23 ovvio che al posto dell'IP puoi usare anche un url se hai settato DNS o robe simili... ma lasciamo perdere per ora 
|
|
|
|
|
Logged
|
|
|
|
|
Dueville (VI)
Online
Edison Member
Karma: 15
Posts: 1051
http://cesarecacitti.wordpress.com/
|
 |
« Reply #4 on: February 07, 2013, 08:46:08 am » |
esatto! in realtà puoi usare qualsiasi porta: telnet ipArduino portaArduino se nonmetti nulla come porta telenet di defult usa la 23 ovvio che al posto dell'IP puoi usare anche un url se hai settato DNS o robe simili... ma lasciamo perdere per ora  Naaa, a me basta fare tutto in locale, niente DNS. Quindi devi solo attendere una connessione TCP con il chip?
|
|
|
|
|
Logged
|
Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield. Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586
|
|
|
|
0
Offline
Tesla Member
Karma: 82
Posts: 8229
:(){:|:&};:
|
 |
« Reply #5 on: February 07, 2013, 09:24:12 am » |
sì
|
|
|
|
|
Logged
|
|
|
|
|
Dueville (VI)
Online
Edison Member
Karma: 15
Posts: 1051
http://cesarecacitti.wordpress.com/
|
 |
« Reply #6 on: February 07, 2013, 09:29:59 am » |
sì
Capire come si fa..... sto cercando di capire come funziona un' altro sketch che usa il telnet...
|
|
|
|
|
Logged
|
Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield. Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586
|
|
|
|
0
Offline
Tesla Member
Karma: 82
Posts: 8229
:(){:|:&};:
|
 |
« Reply #7 on: February 07, 2013, 10:24:53 am » |
hompage->reference->libraries->ethernet->server http://arduino.cc/en/Reference/ServerConstructorvedi quel pezzo di codice? ecco, in particolare vedi if (client == true) { // read bytes from the incoming client and write them back // to any clients connected to the server: server.write(client.read()); } centro! in pratica anzichè scrivere Serial.wrire(balabl) o Server.read(blabla) scriverai client.write(blabla) e client.read(blabla).... facile no?
|
|
|
|
|
Logged
|
|
|
|
|
Dueville (VI)
Online
Edison Member
Karma: 15
Posts: 1051
http://cesarecacitti.wordpress.com/
|
 |
« Reply #8 on: February 07, 2013, 10:26:27 am » |
Ma io volevo usare un enc28j60...
|
|
|
|
|
Logged
|
Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield. Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586
|
|
|
|
0
Offline
Tesla Member
Karma: 82
Posts: 8229
:(){:|:&};:
|
 |
« Reply #9 on: February 07, 2013, 10:29:30 am » |
che scommetto ha una libreria praticamente identica. edit: edi infatti, notare l'esempio http://www.geeetech.com/wiki/index.php/Arduino_ENC28J60_Ethernet_Modulenon solo è simile, ma anzi ha anche le print().. ti ricordo che le print convertotno i valori in stringhe ascii (leggibili da un umano), se non lo sono già, mentre le write scrivono i byte "grezzi"
|
|
|
|
« Last Edit: February 07, 2013, 10:32:14 am by lesto »
|
Logged
|
|
|
|
|
Dueville (VI)
Online
Edison Member
Karma: 15
Posts: 1051
http://cesarecacitti.wordpress.com/
|
 |
« Reply #10 on: February 07, 2013, 10:50:37 am » |
Allora, questo è il codice che ho "scritto" ma sul telnet non vedo nulla: /* * Web Server * * A simple web server that shows the value of the analog input pins. */
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192, 168, 1, 4 };
Server server(23);
void setup() { Ethernet.begin(mac, ip); server.begin(); }
void loop() { Client client = server.available(); if (client) { // an http request ends with a blank line boolean current_line_is_blank = true; while (client.connected()) { if (client.available()) { server.print("test"); } } // give the web browser time to receive the data delay(1); client.stop(); } }[code] [/code]
|
|
|
|
|
Logged
|
Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield. Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586
|
|
|
|
0
Offline
Tesla Member
Karma: 82
Posts: 8229
:(){:|:&};:
|
 |
« Reply #11 on: February 07, 2013, 11:20:29 am » |
metti qualche serial per capire cosa succede, se il server vede la connessione al client etc...
sei in lan o su internet? nel secondo caso probabilmente hai NAT e firewall da impostare
|
|
|
|
|
Logged
|
|
|
|
|
Dueville (VI)
Online
Edison Member
Karma: 15
Posts: 1051
http://cesarecacitti.wordpress.com/
|
 |
« Reply #12 on: February 07, 2013, 12:58:17 pm » |
metti qualche serial per capire cosa succede, se il server vede la connessione al client etc...
sei in lan o su internet? nel secondo caso probabilmente hai NAT e firewall da impostare
Ovviamente sono in lan ho messo dei serial: /* * Web Server * * A simple web server that shows the value of the analog input pins. */
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192, 168, 1, 4 };
Server server(23);
void setup() { Ethernet.begin(mac, ip); server.begin(); Serial.begin(9600); Serial.println("parto"); }
void loop() { Client client = server.available(); if (client) { // an http request ends with a blank line boolean current_line_is_blank = true; while (client.connected()) { Serial.println("zipit"); if (client.available()) { Serial.println("invio"); server.print("a"); } // give the web browser time to receive the data delay(1); client.stop(); } } }[code] Ma mi esce solo "parto", non arriva mai ad "invia" [/code]
|
|
|
|
« Last Edit: February 07, 2013, 01:08:22 pm by cece99 »
|
Logged
|
Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield. Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586
|
|
|
|
0
Offline
Tesla Member
Karma: 82
Posts: 8229
:(){:|:&};:
|
 |
« Reply #13 on: February 07, 2013, 07:00:56 pm » |
E per forza, zipit ti compare perio... Tu stampi al Clint "a" solo se available cioè se ti ha scitto dei dati, quindi se via telnet appena ti connetti incii qualxosa... Però devi essere velocissimo, più del codice Arduino ad arrivare al if  togli l'if available e tutto torna... Con la serial non avresti mai messo available lì, perché ora lo metti?
|
|
|
|
|
Logged
|
|
|
|
|
Dueville (VI)
Online
Edison Member
Karma: 15
Posts: 1051
http://cesarecacitti.wordpress.com/
|
 |
« Reply #14 on: February 08, 2013, 08:43:52 am » |
Con questo sketch "invia" ma non riceve nulla: /* * Web Server * * A simple web server that shows the value of the analog input pins. */
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192, 168, 1, 4 };
Server server(23);
void setup() { Ethernet.begin(mac, ip); server.begin(); Serial.begin(9600); Serial.println("parto"); }
void loop() { Client client = server.available(); if (client) { // an http request ends with a blank line
while (client.connected()) {
Serial.println("invio"); server.print("a"); // give the web browser time to receive the data delay(1); client.stop(); } } }[code] [/code]
|
|
|
|
|
Logged
|
Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield. Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586
|
|
|
|
|