Bonjour à tous,
je profite du confinement pour avancer sur mes projets.
je souhaite surveiller la température et le niveau d'eau dans un garage.
Pas de Wi-Fi mais de la 4G.
je me suis donc orienté sur un Sim900 avec une carte "free" à 2 €
le module sim900 fonctionne en SMS
ma page en PHP fonctionne très bien depuis un PC
Bonjour à tous, je profite du confinement pour avancer sur mes projets je souhaite surveiller la température et le niveau d'eau dans un garage.Pas de Wi-Fi mais de ces 4 G.je me suis donc orienté sur un Sim900 avec une carte gratuite à 2 € ma page en PHP fonctionne très bien depuis un PC je souhaite donc que ce soit mon Arduino qui lui envoie les valeurs mais j'ai une erreur dans mon script ...
#include <SoftwareSerial.h>
SoftwareSerial gprsSerial(7, 8);
void setup()
{
//Allumer la carte SIM900
pinMode(9, OUTPUT);
digitalWrite(9, HIGH);
delay(300);
gprsSerial.begin(9600);
Serial.begin(9600);
Serial.println("boot");
delay(2000);
gprsSerial.flush();
Serial.flush();
// cherche le nombre de reseau mobile
gprsSerial.println("AT + CGATT ? ");
delay(100);
toSerial();
// Profil GPRS
gprsSerial.println("AT + SAPBR = 3, 1, \"CONTYPE\",\"GPRS\"");
delay(2000);
toSerial();
// Config APN
gprsSerial.println("AT+SAPBR=3,1,\"APN\",\"mms.free.fr\"");
delay(2000);
toSerial();
// Connection au GPRS
gprsSerial.println("AT+SAPBR=1,1");
delay(2000);
toSerial();
}
void loop()
{
// initialisation du service HTTP
gprsSerial.println("AT+HTTPINIT");
delay(2000);
toSerial();
// adresse serveur
gprsSerial.println("AT+HTTPPARA=\"URL\",\"http://***.fr/http/temp.php?temp=33&niveau=33\""); //Envoi de valeur fixe pour debug
/*
gprsSerial.print("AT+")
gprsSerial.print("HTTPPARA=\"URL\",");
gprsSerial.print("\"http://***.fr/http/temp.php"); // envoi des variables
gprsSerial.print("?temp=");
gprsSerial.print(temp);
gprsSerial.print("&niveau=");
gprsSerial.print(niveau);
gprsSerial.println("\"");
*/
delay(2000);
toSerial();
// Lancer la session
// 0 = GET, 1 = POST, 2 = HEAD
gprsSerial.println("AT+HTTPACTION=0");
delay(6000);
toSerial();
// lis les donnees
gprsSerial.println("AT+HTTPREAD");
delay(1000);
toSerial();
//Fermer la session
gprsSerial.println("");
gprsSerial.println("AT+HTTPTERM");
toSerial();
delay(300);
gprsSerial.println("");
delay(10000);
}
void toSerial()
{
while (gprsSerial.available() != 0)
{
Serial.write(gprsSerial.read());
}
}
sur mon terminal en sortie j'ai :
boot
NORMAL POWER DOWN
⸮⸮⸮⸮
ERROR
ERROR
OK
OK
OK
+HTTPACTION:0,601,0
OK
OK
OK
OK
OK
+HTTPACTION:0,601,0
OK
OK
OK
OK
OK
+HTTPACTION:0,601,0
j'ai egalement un doute sur la ligne :
// 0 = GET, 1 = POST, 2 = HEAD
gprsSerial.println("AT+HTTPACTION=0");
entre le Get et le post
J'ai essayé de mettre un maximum de commentaire.
Merci de votre aide
Arnaud