Oggi sono riuscito finalmente a collegare la mia Arduino al router DIR- 300 (dlink) fisicamente saldando tre cavi sulla porta seriale del router e collegandoli ad Arduino (gnd del router su gnd di Arduino, tx del router su rx di Arduino e rx del router su tx di Arduino)
Ora manca solo il codice.
Vi chiedo aiuto perchè non so da che parte iniziare e che protocolli usare per la comunicazione.
arduino come al solito usa Serial e va liscio.
Lato router devi farti il programma come se fosse un normale PC. Problema: NON usare processing che il router non supporta interfaccie grafiche, e quindi NON va.
Se scrivi il programma in java, puoi usare direttamente la libreria TXRX, però devi installare la JRE (sun o openJDK) sul router. Vantaggio: compili sul PC senza problemi, e uppi i file.class sul router e funziona tutto (salvo interfaccie grafiche)
Se scrivi in C o C++, non conosco alcuna libreria (ma ce ne sono tantissime) e non devi installare nulla sul router. Se non hai GCC sul router, o lo installi, e compili direttamente dal router, oppure fai una cross-compile da PC e uppi l'eseguibile creato.
Puoi imparare a compilare e uppare gli sketch da riga di comando, e quindi usare il router anche per programmare arduino...
la 4.6.1, è la più aggiornata e non da problemi. Se la usi anche per programmare arduino (e quindi installi i vari pacchetti avr), controlla di non essere affetto dal bug del delay
Ho cercato, ma non trovo nessuna guida su come installare gcc su dd-wrt! Mi sai aiutare?
Poi, mi potresti dare delle info su come uppare gli sketch da riga di comando (sempre con il router) ? Per fare questo dovrei stabilire una connessione tra arduino e router e tra router e Mac, ma come posso fare?
Altra cosa: che protocolli dovrebbe usare il mio programmino in C per far comunicare il tutto?
allora, prima di tutto per comunicare si usa il protocollo seriale, se cerchi sicuramente c'è una guida in C con libreria annessa che spiega tutto.
Per la compilazione e l'upload, cerca qualche guida sil file preferencies.txt di arduino IDE: è possibile settare 2 parametri per cui arduino, quando compila, ti mostra cosa sta facendo (ti scrive i comandi)
per GCC ho dato un'occhiata veloce, devi fare una cross-compilazione. nulla di facile, soprattutto per grossi progetti, mi sa che ti conviene usare il PC per programmare arduino, e magari java (se ci sta) per il programma sul router.
infine la comunicazione pc->router credo che si faccia in ssh, quello che probabilmente hai usato per settare il SO sul router!
Se il router è già provvisto di dd-wrt, potresti connetterti al router via telnet o ssh e poi utilizzare la porta seriale mappata sul sistema operativo linux che usa dd-wrt. Infatti nella directory /dev del tuo router dovresti trovare una porta tipo tts
Ne segue che potresti fare una cosa del tipo:
echo 123 > /dev/tts/0
con questo comando invii il valore 123 sulla porta seriale alla quale è in ascolto arduino...
Ti aggiungo un link al mio blog, dove faccio la stessa cosa con una fonera+ (il procedimento è lo stesso... XD)
Connettiti alla Fonera, poi sul tuo Android, cerca la console (o terminale non so come la chiama).
Avrai di fronte una shell a linea di comando linux, a questo punto devi dare i comandi:
telnet num.indirizzo.ip.fonera
ora sei connesso alla fonera, quindi puoi darle i comandi sulla porta seriale...
Se poi vuoi farti una cosa un po' semplificata con interfaccia grafica, allora devi scriverti una app... ma te lo consiglio solo se i comandi da dare sono pochi e sempre gli stessi, così da agganciarli a dei pulsanti, altrimenti se li devi scrivere ogni volta pure dalla app è tempo perso...
vorrei proprio creare una app Android grafica (pulsanti) cosi da poter dare sempre gli stessi comandi.
Ho già installato l' Ambiente di Sviluppo Android (Eclipse + Android)... ma non so da dove iniziare!