Oggi vedremo un modo un po’ particolare per inviare SMS da Arduino…
In commercio si trovano diversi shields che consentono di collegare Arduino alla rete GSM per inviare/ricevere SMS, sfruttare la connessione dati (GPRS o UMTS) o effettuare chiamate.
Un modo alternativo per inviare SMS da Arduino è sfruttare uno degli SMS Gateway presenti su Internet: questi servizi consentono, tramite form Web o chiamate API, di inoltrare SMS a dispositivi mobili. Tra i vari service providers, ho scelto Skebby.

I principali servizi che Skebby mette a disposizione sono:
- classic, consegna garantita, sms lunghi, personalizzazione mittente
- basic, consegna best effort, servizio economico
- zerocent, gratuito, invio a terminali con installata l’app di Skebby
Vedremo come utilizzare Arduino per inviare SMS classic (a pagamento con mittente personalizzato) e SMS zerocent (gratuito ma richiede l’app installata).
Il funzionamento logico è il seguente:
Registrazione
Per poter utilizzare i servizi di Skebby, è necessario registrarsi:
Al momento della registrazione, ti verranno dati in omaggio 10 SMS.
Nella prossima pagina, lo sketch per Arduino…
Pagine: 1 2







ciao,Luca,ho trovato questo skech che dovrebbe inviare una mail con la shield classica ethernet:come devo modificarla per usare la libreria ethercard? grazie
#include
#include
// Local network configuration:
byte mac[] = { 0×90, 0xA2, 0xDA, 0×00, 0×23, 0x5D };
byte ip[] = { 192,168,0, 177 };
// Login data:
String UserName64 = “XXXXXXX”;
String Password64 = “XXXXXXX”;
// SMTP server data:
// smtp.libero.it : 212.52.84.54
// smtp.iol.it : 212.52.84.203
// out.virgilio.it : 62.211.72.20
byte server[] = { 212, 52, 84, 54 }; // SMTP server
String ServerName = “libero.it”;
// Mail data:
String Sender = “XXXXXXX@libero.it”;
String Recipient = “XXXXXXX@libero.it”;
String Subject = “Messaggio inviato da Arduino!”;
String Body = “Testo del messaggio\nsu piu’\ndi una riga.”;
int time = 1000;
int wait = 1000;
String ServerResponse=”";
EthernetClient client;
void setup()
{
Serial.begin(9600);
Serial.println(“Program started, waiting for router…”);
delay(time); /* allow the router to identify the Arduino before the Arduino connects to the internet */
Serial.println(“Starting network module…”);
Ethernet.begin(mac, ip);
delay(2000);
Serial.println(“connecting…”);
if (client.connect(server, 25)) {
Serial.println(“connected”);
SendMsg(“HELO ” + ServerName); /* say hello*/
SendMsg(“AUTH LOGIN “);
SendMsg(UserName64); /* Username*/
SendMsg(Password64); /* Password */
SendMsg(“MAIL From:”); /* identify sender */
SendMsg(“RCPT To:”); /* identify recipient */
SendMsg(“DATA”);
SendMsg(“To: ” + Recipient); /* recipient in message header */
SendMsg(“From: ” + Sender); /* seder name in message header */
SendMsg(“Subject: “+ Subject); /* insert subject */
SendMsg(“”); /* empty line */
SendMsg(Body); /* insert body */
SendMsg(“”); /* empty line */
SendMsg(“.”); /* end mail */
SendMsg(“QUIT”); /* terminate connection */
client.println();
} else {
Serial.println(“connection failed”);
}
}
void loop()
{
if (client.available()) {
char c = client.read();
Serial.print(c);
}
if (!client.connected()) {
Serial.println();
Serial.println(“disconnecting.”);
client.stop();
for(;;)
;
}
}
void GetResponse() {
if (client.available()) {
char c = client.read();
while (client.available()) { // Store command char by char.
ServerResponse +=c;
c = client.read();
}
Serial.println(“<<>>” + m);
delay(wait); /* wait for a response */
GetResponse();
}
Ciao Marco
non mi sono dimenticato della tua domanda
sto preparando un esempio…
bye
Ciao Luca,
vorrei sapere come richiesto anche da Daj come poter comunicare con winsock (vb.net o c#) via TCP per realizzare un’applicazione desktop. Se avessi anche spezzoni di codice sarebbero graditi.
Ciao e Grazie
Ciao Luca!
i tuoi tutorial sono ottimi.
Volevo chiederti…esistono delle APIDOCS per la libreria EtherCard?
Non riesco a capire alcuni passi di codice…
Grazie
Leandro
ciao Leandro,
no, purtroppo la documentazione ufficiale è un po’ carente…
Hi, do you know why my arduino stopped at “Skebby SMS Demo”? No further message.
Hi Tom, if the sketch hangs at that point, probably Arduino can’t talk with the ethernet shield. Do the other examples/tutorials work?