Ciao a tutti, apro questo topic per chiedervi un aiuto.
Ho fatto una ricerca su internet e su questo forum ma non sono riuscito a risolvere il mio problema e spero che possiate darmi una mano.
Mi spiego: nel mio arduino uno ho collegato una "GSM Shield" con inserita una SIM della TIM ed alcuni sensori che inviano i loro dati ad un database MySql.
Fin qui tutto ok, funziona perfettamente.
Il problema nasce quando sostituisco la SIM della TIM con una SIM della WIND. L' arduino non si connette e, di conseguenza, non invia più i dati a MySql (non riesco proprio a capirne il motivo). Ovviamente quando sostituisco la SIM, nel codice arduino modifico i dati APN della SIM.
Mi chiedevo se qualcuno di voi ha mai avuto un problema come il mio e se lo ha risolto.
Riporto di seguito il codice arduino che ho scritto.
Grazie a tutti, ciao.
#include <GSM.h>
#include <DHT11.h>
// PIN Number
#define PINNUMBER ""
// APN data
#define GPRS_APN "internet.wind" // replace your GPRS APN
#define GPRS_LOGIN "" // replace with your GPRS login
#define GPRS_PASSWORD "" // replace with your GPRS password
int pin=4;
int Value1=0;
int Value2=0;
long inclinazione=0;
long luminosita=0;
float temperatura1;
float temperatura2;
float umidita;
// initialize the library instance
GSMClient client;
GPRS gprs;
GSM gsmAccess;
// URL, path & port (for example: arduino.cc)
char server[] = "xxxxxxxxxxxxxx";
char path[] = "xxxxxxxxxxxxxxx";
int port = 80; // port 80 is the default for HTTP
DHT11 dht11(pin);
void setup()
{
}
void loop()
{
// ------ INCLINOMETRO ------------------
inclinazione=0;
for (int i=0;i<1500;i++)
{
Lettura();
inclinazione+=Value1-Value2;
}
inclinazione=inclinazione/750;
// --------------------------------------
// Temperatura - Umidità ----------------
int err;
float temp, umi;
float cont1, cont2;
cont1=0;
cont2=0;
for (int k=0;k<1000;k++)
{
dht11.read(umi, temp);
cont1=cont1+temp;
cont2=cont2+umi;
}
temperatura1=cont1/1000.0;
umidita=cont2/1000.0;
// ---------------------------------------
// LUCE
luminosita=0;
for (int j=0;j<500;j++)
{
luminosita = luminosita + analogRead(2);
}
luminosita = luminosita/500;
// ---------------------------------------
// Temperatura LM35
long cont3=0;
for (int p=0;p<500;p++)
{
cont3 = cont3 + analogRead(3);
}
cont3 = cont3/500;
temperatura2 = cont3/1024.0*500.0;
boolean notConnected = true;
while (notConnected)
{
if ((gsmAccess.begin(PINNUMBER) == GSM_READY) &
(gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD) == GPRS_READY))
notConnected = false;
else
{
delay(1000);
}
}
if (client.connect(server, port))
{
client.print("GET ");
client.print("/caricadati.php?temperatura1=");
client.print(temperatura1);
client.print("&temperatura2=");
client.print(temperatura2);
client.print("&umidita=");
client.print(umidita);
client.print("&luminosita=");
client.print(luminosita);
client.print("&inclinazione=");
client.print(inclinazione);
client.println(" HTTP/1.1");
client.print("Host: ");
client.println(server);
client.println("Connection: close");
client.println();
}
client.stop();
gsmAccess.shutdown();
delay(600000);
}
void Lettura()
{
Value1=analogRead(A0);
Value2 = analogRead(A1);
}