Mandare e-mail tramite Arduino collegato col Wi-fi ad internet

Salve, era un po' che non scrivevo qui sul forum, vi ricordate un certo topic a proposito dell'automatizzazione di un acquario(ce ne sono molti...). Comunque sia, l'altro giorno pensavo quando sarebbe comodo avere un sito in internet con tutte le informazioni dell'acquario(temperatura,luci,pompe) per quando si è in vacanza. Da quello che ho capito collegando l'arduino alla rete di casa esso con la relativa libreria funge da server, giusto? Però visto che non ho l'IP pubblico questo è inutile, quindi pensavo di far mandare una mail da arduino con tutte le informazioni, poi una volta che viene visualizzato il mio sito(pensavo ad altervista) uno script PHP(che ho già creato e sembra funzionare) legge questi valori e li salva in un database MySQL, poi da lì si possono fare tante cose(per adesso ho solo creato una tabella coi valori, ma pensavo a dei grafici come i piani cartesiani). Il mio problema insomma è in arduino: quale shield dovrei prendere per trovare una bella libreria con un bel po' di esempi? Un'altra cosa(scontata probabilmente): vorrei far funzionare tutto senza l'uso di nessun computer di mezzo(altrimenti mi basterebbe la porta seriale). Grazie a tutti per il sostegno che date e ciao.

PS: Ho letto della possibilità di usare Fonerra(è un router, no?) collegandolo colla porta seriale ad arduino ma ho paura di fare la stessa cavolata che feci comprando un LCD che poi non essendo un HD44780 era privo di librerie e documentazione. La cosa risulta essere veramente così conveniente?

come non hai ip pubblico? TUTTI hanno ip pubblico, magari non hai ip statico che è una cosa diversa ma puoi risolvere con un dyndns come no ip o appunto dyndns

Scusa, hai ragione, mi sono confuso, volevo dire che sono nattato essendo Fastweb.

comunque puoi anche fare richieste in http dirette senza passare per le mail quindi metti uno script in PHP che si interfaccia magari ad un database di testo (o mysql come vuoi) e salvi li i dati, poi da un'altra pagina in php li visualizzi e basta.

purtroppo molti provider mail utilizzano https per i loro server e l'eth shield ancora non lo supporta per le mail

comunque puoi anche fare richieste in http dirette senza passare per le mail

Intendi passare le variabili tramite GET?

purtroppo molti provider mail utilizzano https per i loro server e l'eth shield ancora non lo supporta per le mail

In che senso, io da qua http://arduino.cc/playground/Italiano/Mail mi sembra possibile, anche perchè credo che quando l'arduino manda l'email essa non passa dalla porta 80, ma invece dalla 993 che è quella di IMAP per Google(Io avevo intenzione di usare gmail) o comunque quella di SMTP(che poi è quella dell'esempio).

in realtà https non va sulla porta 80 ed indica più che altro un protocollo sicuro via SSL, il che implica che in realtà anche il protocollo mail è protetto (se vai in outlook per capirci ti chiede se usa connessione sicura ssl non per niente, indifferente dalle porte).

comunque si passare le variabili in get oppure se vuoi pure in post

Comunque sia, come faccio a mandare da arduino la richiesta di una determinata pagina senza troppi giri? Potresti dirmi anche perchè credi che sia svantaggioso l'altro metodo dell'email? Se invece volessi fare l'incontrario, da server ad Arduino dovrei per forza usare la mail? Invece a proposito dell'hardware, dici che se usassi Fonera dovrei per forza avere un computer di mezzo o c'è una libreria per fare tutto direttamente da arduino? Grazie per queste risposte fulminee.

fonera alla fine è un vero e proprio pc su cui gira linux ma applicato come router, il fatto che abbia un'interfaccia seriale semplifica l'interfacciamento e quindi no non servirebbe un pc.

non so se può farlo in contemporanea, potresti però fare una pagina in php che riceve i dati e poi stampa (con un comunq echo) i dati che vuoi riceva arduino, quindi li salvi su arduino

prova a fare una telnet al tuo script in php, il sistema è lo stesso

C'è una cosa che non ho capito: con fonera è come con la ethernet shield, cioè faccio da server, oppure ottengo un semplice seriale wifi a cui posso connettermi da altri computer nella stessa rete, se fosse così sarebbe una fregatura perchè dovrei utilizzare anche un altro computer. Va bene che Fonera è come fosse un computer, però non posso programmarla. Quindi c'è una libreria che traduce un mio comando da arduino e lo manda tramite seriale alla fonera che poi lo manda al mio router di casa che lo manda al mio ipotetico server esterno? Grazie e buona notte.

in relatà sulla fonera puoi metterci script comunque passo la palla a chi ne sa di più in teoria semplicemente la puoi usare con sopra uno script per fare da ponte tra seriale e internet ma alla fine rimane un router e non necessiti di eth shield.

ma ripeto non la ho e la conosco solo per sentito dire

C'è una cosa che non ho capito: con fonera è come con la ethernet shield, cioè faccio da server, oppure ottengo un semplice seriale wifi a cui posso connettermi da altri computer nella stessa rete, se fosse così sarebbe una fregatura perchè dovrei utilizzare anche un altro computer. Va bene che Fonera è come fosse un computer, però non posso programmarla.

ciao, per utilizzare la seriale della Fonera con Arduino, devi aggiornare il firmware della Fonera con un os linux based come OpenWrt (https://openwrt.org/) o dd-wrt (http://www.dd-wrt.com/site/index). Sostanzialmente quel che devi fare è creare degli script php, perl, ruby, shell ... etc etc che vengano eseguiti sulla fonera, e che dialoghino con Arduino via seriale. Nello stesso modo creerai delle interfacce web accessibili dalla rete interna o esterna (in questo caso appoggiandoti a servizi come dyndns o similia).

Direi però che per quel che vuoi fare tu è sufficiente l'Eth shield da sola. Ci sono molti esempi nell'IDE, nonchè progetti in rete (basta cercare con google).

La soluzione più veloce e pulita (naturalmente secondo me), è questa: - Arduino regolarmente effettua una get sul tuo sito su Altervista, passando dei parametri e relativi valori ad uno script php ad hoc, che si occuperà poi di salvarli su db mysql Esempio stupido: Arduino come WebClient apre la url http://tuosito.altervista.org/tuoscript.php?temp=23.5&ph=5.5 il tuoscript.php recupera il valore delle get, e le salva su db mysql

Per approfondimenti, guardati i seguenti link: http://arduino.cc/en/Tutorial/WebClient http://www.tizag.com/phpT/postget.php

Quindi non c'è bisogno che Arduino sia accessibile da internet (è sufficiente che Arduino possa andare in rete) e puoi far aggiornare da Arduino i dati con frequenza fissa o in caso di eventi particolari.

La soluzione più veloce e pulita (naturalmente secondo me), è questa: - Arduino regolarmente effettua una get sul tuo sito su Altervista, passando dei parametri e relativi valori ad uno script php ad hoc, che si occuperà poi di salvarli su db mysql

Si, hai ragione, era stata la mia prima idea, però pensavo che non si potesse usare arduino da client, ma adesso che ho ho letto il tuo link ho capito anche come fare.

Quindi non c'è bisogno che Arduino sia accessibile da internet (è sufficiente che Arduino possa andare in rete) e puoi far aggiornare da Arduino i dati con frequenza fissa o in caso di eventi particolari.

Se invece volessi fare l'incontrario, da il mio server altervista ad arduino, come dovrei fare(visto che ho fastweb e quindi sono nattato), dovrei per forza usare il sistema della mail? Io vorrei fare il tutto wi-fi, in teoria usando una wi-fi shield non cambia niente dalla ethernet shield(tranne il prezzo :(), per questo pensavo a Fonera, quindi cosa mi consigliate? Che modello di Fonera? Mi conviene prendere dei vecchi modelli usati o quella nuova dal sito ufficiale che comunque con la spedizione non costa poco(50 euro)? Grazie ancora e ciao.

se usi wifi shield basta tu abbia un router wifi e stop, non è che il fonera (almeno per queste applicazioni) offra qualcosa in più

http://arduino.cc/en/Tutorial/WebClient questo script fa esattamente quello che vuoi: apre una pagina in php passando valori in get e poi legge il risultato e te lo stampa su seriale

se usi wifi shield basta tu abbia un router wifi e stop, non è che il fonera (almeno per queste applicazioni) offra qualcosa in più

Va bene, ma il wifi shield costa di più di fonera, comunque da quello che ho letto mi sembra un casino configurare la fonera quindi credo che non la userò. Però ho avuto un'altra idea: se prendessi il modulo ethernet e poi ci attaccassi un ripetitore wifi? La cosa sarebbe fattibile?

ma ora scusa la domanda ma non hai prorpio la possibilità di mettere arduino vicino al router? magari spostare il router dove hai l'acquario, in fondo sono 2 cavi di cui uno è l'alimentazione

ma ora scusa la domanda ma non hai prorpio la possibilità di mettere arduino vicino al router? magari spostare il router dove hai l'acquario, in fondo sono 2 cavi di cui uno è l'alimentazione

No, no posso perchè l'arduino è attaccato con una cavo di una certa misura alla scatola dei relè e alle varie sonde,lcd ecc. L'unico modo sarebbe far passare il cavo ethernet in mezzo alla stanza e la cosa non è molto estetica... Comunque cosa ne pensi del sistema ethernet shield-ripetitore wifi? Potrebbe funzionare?

Ciao, innanzitutto se hai eth shield la fonera NON ti serve.

Comunque cosa ne pensi del sistema ethernet shield-ripetitore wifi? Potrebbe funzionare?

se già hai un ap che permette di fare wds (tipo la fonera), allora fallo.

Altrimenti, se te lo devi procurare, acquisterei piuttosto uno shield WiFi.

Il RedFly, prodotto dalla Watterott, costa "solo" 65 eur, ma è prevista nel mese di settembre l'uscita di un altro shield wifi molto più economico, Carambola (è stato presentato all'ArduinoCamp). Inoltre dovrebbe uscira a breve anche il nuovo wifi shield ufficiale (presentato anche questo all'ArduinoCamp), che come prezzi dovrebbe essere una media dei due sopra citati.

Andrea96: Da quello che ho capito collegando l'arduino alla rete di casa esso con la relativa libreria funge da server, giusto? Però visto che non ho l'IP pubblico questo è inutile,

esatto, però puioi appoggiarti ad un server esterno. per esempio sia altervista.org che ilbello.com offrono spazi web con servizio PHP ed anche SQL (ma limitato con il numero di query al minuto) in modo gratuito.

Andrea96: quindi pensavo di far mandare una mail da arduino con tutte le informazioni

possibilissimo. cerca "telnet smtp" oppure smtp su questo forum, dovresti trovare qualcosa. In questo modo puoi, avendo a priori creato un'account e-mail, collegarti ad esso direttamente ed usarlo per spedire mail. Esiustono server che permettono l'invio di mail senza autenticxazione ma ormai son rari.

Andrea96: PS: Ho letto della possibilità di usare Fonera(è un router, no?) collegandolo colla porta seriale ad arduino ma ho paura di fare la stessa cavolata che feci comprando un LCD che poi non essendo un HD44780 era privo di librerie e documentazione. La cosa risulta essere veramente così conveniente?

fonera è un router che monta linux, che quindi può essere programmmato per essere molto più di un router. Secondo me per quello che vuoi fare è una spesa e complicazione inutile.

Ringrazio tutti per le spiegazioni/informazioni, credo che aspetterò questo Carambola. Comunque adesso che ho ritirato fuori il mio "vecchio"(era un anno che non lo usavo più) Arduino 2009 mi sono venute in mente un sacco di cosucce interessanti, soprattutto da quando ho scaricato la libreria PHP per la porta seriale, quindi aspettatevi di rivedermi presto qui, sul forum. Ciao a tutti.

magari l’avevate già visto…
http://arduino.cc/playground/Italiano/Mail
l’ip dinamico non è un problema se il tuo router supporta i servizi tipo dyndns. (anche se con fastweb è difficile avere connessioni in entrata, no nat no party)