Bonsoir, J'ai un projet qui consiste à faire communiquer trois alarmes detecteur de fumée et envoyer leur niveau de batterie et l'alerte lorsqu'elle sonne tout cela sur un serveur. Ma tache est de prévenir l'utilisateur par sms au moin un fois par jour de l'état des alarmes et directement en cas d'alerte. Pour cela j'ai une Arduino UNO et un gprs gsm shield v2. j'arrive très bien à envoyer des sms mais maintenant je me retrouve bloquée je sais que l'arduino n'as pas de "notion du temps" et le deuxieme soucis et comment récuperer les informations du serveur sachant que l'arduino sera connécté en USB a la raspberry j'ai un programme pas encore terminée qui ressemble à ça mais je le sens très mauvais pour tout vous dire...Si vous avez des idées ou des solutions je uis preneur. Je precise que c'est moi qui doit recuperer les informations du serveur qui sont mise à disposition.
#include <SoftwareSerial.h>
#include <String.h>
long Battery1 = random(100); // valeur au hasard pour programme test
long battery2 = random (100);// valeur au hasard pour programme test
long Battery3 = random (100);// valeur au hasard pour programme test
int serialAvailable;
SoftwareSerial gprsSerial (7,8);
void setup() {
// put your setup code here, to run once:
gprsSerial.begin(19200); // GPRS shield baud rate
Serial.begin(19200);
delay(500);
}
void loop()
{
int donneesALire = Serial.available(); //lecture du nombre de caractères disponibles dans le buffer
if(donneesALire > 0) //si le buffer n'est pas vide
{
Sendsms();
//Il y a des données, on les lit et on fait du traitement
}
//on a fini de traiter la réception ou il n'y a rien à lire
}
void Sendsms(){
gprsSerial.print ("AT+CMGF= 1 \r"); // initialise Le mode ASCII
delay(100);
gprsSerial.println("AT+CMGS = \"0695765871\""); // destinataire du message
delay(100);
// contenu du message
gprsSerial.println("Niveau batterie 1: ");
gprsSerial.println(Battery1); //the content of the message
gprsSerial.println("niveau batterie 2: ");
gprsSerial.println( battery2);
gprsSerial.println("Niveau batterie 3:");
gprsSerial.println(Battery3);
delay(100);
gprsSerial.print((char)26);//the ASCII code of the ctrl+z is 26 (required according to the datasheet)
delay(100);
gprsSerial.println();
delay(86400000);
}