#include #include int RXPin = 2; int TXPin = 3; int GPSBaud = 4800; TinyGPSPlus gps; SoftwareSerial gpsSerial(RXPin, TXPin); SoftwareSerial Sara(10,11); #define DEBUG // Mode debogage // Initialisation //******************************************************************************************************* void setup() { // GPRS //******************************************************************************************************* Sara.begin(115200); Serial.begin(115200); gpsSerial.begin(GPSBaud); Sara.println("verification de l'etat GPRS"); Serial.println("AT+CGATT?"); GetSara(); Sara.println("verification de la connection au reseau GPRS"); Serial.println("AT+UPSND=0,8"); // Pour afficher le numero de l'erreur GetSara(); Sara.println("configuration par default"); Serial.println("ATZ"); GetSara(); Sara.println("affichage erreur"); Serial.println("AT+CMEE=1"); GetSara(); Sara.println("Code Pin"); Serial.println("AT+CPIN=\"5005\""); // Code PIN GetSara(); delay(1000); // Connexion au reseau #ifdef DEBUG Serial.println("AT+CSQ");//état de la connection Sara.println("Operateur"); Serial.println("AT+COPS?"); // Operateur GetSara(); delay(2000); //numero du centre operateur Sara.println("envoi de la commande: AT+CSCA=\"+33770499999\""); Serial.print("AT+CSCA=\"+33770499999\"\r"); GetSara(); delay(2000); // Connexion au reseau Sara.println("Etat de la connexion au reseau :"); Sara.println("La connexion est etablie si +CREG: 0,1"); Serial.println("AT+CREG?"); // Connexion au reseau GetSara(); #endif Sara.println("Activation du mode SMS"); Serial.println("AT+CMGF=1"); // Activation du mode SMS GetSara(); Sara.println("Envoi du numero de telephone"); Serial.println("AT+CMGS=\"+33*********\""); // Envoi du numero de telephone GetSara(); delay(500); Sara.println("Corps du message"); Serial.println("Debut de l'envoie SMS :)"); // Corps du message Sara.println("CTR+Z"); Serial.write(0x1A); // CTR+Z GetSara(); delay(500); } //fin du setup // Envoie des Trames par SMS //*************************************************************************************************** void loop() { while(gpsSerial.available() > 0) if (gps.encode(gpsSerial.read())) sms(); if (millis() > 5000 && gps.charsProcessed() < 10) //Toutes les 5 secondes passées et si aucun caractère n'arrive alors montre "Aucun GPS Detecté" { Serial.println(F("Aucun GPS n'est detecte")); while(true); // instruction à répéter jusqu'a l'infini } delay(500); } //**********************************//GPS//******************************************************* void LectureTrames() { if (gps.location.isValid()) { delay(500); Serial.print(gps.location.lat(), 6); Serial.print(F(",")); Serial.print(gps.location.lng(), 6); } else { Serial.print(F("Donnees Invalides")); } Serial.println(); } // Contenu du SMS //************************************************************************************************** void sms() { //06*** devient 336***, 07*** devient 337***, 09***=>339*** +33 est l'indicatif FR... //33********* numéro Antoine //33********* numéro Dwayne Serial.println("AT+CMGS=\"+33*********\""); // Envoi du numero de telephone LectureTrames(); Serial.write(0x1A); } // Lecture pour le moniteur série //*************************************************************************************************** void GetSara() { delay(500); if(Sara.available()) { Sara.print("\n"); delay(500); while(Sara.available()) { Sara.print((char)Sara.read()); // On vide la memoire tampon du SIM900 } Sara.print("\n"); } }