Pilotage d’une Led

Adaptation du Sketch écrit pour la carte TC35 :

 /*  
 *****************************************  
  SMS receiver and light on or off a LED  
 ****************************************  
  This sketch, for the Arduino GSM shield, waits for a SMS message   
  from a specific phone number then light on or off or send the LED  
  Status.  
  Circuit:  
  * GSM shield attached to and Arduino  
  * SIM card that can receive SMS messages  
  * Led plug in pin 13  
 */  
 //-- include the GSM library  
 #include <GSM.h>  
 //-- PIN Number for the SIM and Your Phone Number  
 #define PINNUMBER ""  
 #define MYPHONE "+33xxxxxxxxx"  
 //-- initialize the library instances  
 GSM gsmAccess;  
 GSM_SMS sms;  
 //-- Array to hold the number a SMS is retreived from  
 char cSenderNumber[20],charBuf[20],c;  
 String sNumber="", sMsg, sMessage="", sSmsNumber="";   
 int dp=0,dpLed=0;  
 //-- Led PIN  
 int led = 12;  
 //-- SetUp  
 void setup()   
 {//-- initialize the digital pin as an output.  
  pinMode(led, OUTPUT);     
  //-- initialize serial communications and wait for port to open:  
  Serial.begin(9600);  
  while (!Serial) {  
   ; // wait for serial port to connect. Needed for Leonardo only  
  }   
  Serial.println("SMS Messages Receiver");    
  // connection state  
  boolean notConnected = true;  
  // Start GSM connection  
  while(notConnected)  
  {if(gsmAccess.begin(PINNUMBER)==GSM_READY)  
    notConnected = false;  
  else  
  {Serial.println("Not connected");  
   delay(1000);  
   }  
  }  
  Serial.println("GSM initialized");  
  Serial.println("Waiting for messages");  
 }  
 //-- Sketch  
 void loop()   
 {//--If there are any SMSs available()   
  if (sms.available())  
  {Serial.println("Message received from:");  
   //-- Get remote number  
   sms.remoteNumber(cSenderNumber, 20);  
   sNumber=cSenderNumber;  
   Serial.println(sNumber);    
   //-- Read message bytes and print message  
   while(c=sms.read())  
    {sMsg=sMsg+c;}  
   Serial.println(sMsg);  
   dp=0;  
   //-- If it's Your Phone Calling  
   if(sNumber.equals(MYPHONE))  
   { sSmsNumber=MYPHONE;  
     sMsg.toUpperCase();  
     if (sMsg=="ON")    
      dp=1;   
     if (sMsg=="OFF")   
      dp=2;   
     if (sMsg=="?")   
      dp=3;      
     switch (dp) {   
     case 1 :   
      {digitalWrite( led, HIGH);    
      dpLed=1;   
      break;}   
     case 2 :   
      {digitalWrite( led, LOW);    
      dpLed=0;   
      break;}   
     case 3 :   
      {if (dpLed==1)   
        sMessage="La LED est ON";   
        else   
        sMessage="La LED est OFF";       
       SendSms();     
       break;    
       }    
     case 0 :     
      {sMessage="Erreur, tapez ON, OFF ou ?, merci !";   
      SendSms();    
      break;}   
    }   
   }  
   else  
   {//-- Sender UnKnown  
      sMessage="Message '"+sMsg+"' du "+sNumber;   
      sSmsNumber=MYPHONE;   
      SendSms();   
      delay(1000);  
      sSmsNumber=sNumber;  
      sMessage="Je ne vous connais pas !";  
      SendSms();  
   }  
   Serial.println("\nEND OF MESSAGE");  
   sMsg="";  
   sNumber="";  
   //-- Delete message from modem memory  
   sms.flush();  
   Serial.println("MESSAGE DELETED");  
  }  
  delay(1000);  
 }  
 //-- Sending message function  
 void SendSms()   
 {sSmsNumber.toCharArray(charBuf, 20);  
  // send the message  
  sms.beginSMS(charBuf);  
  sms.print(sMessage);  
  sms.endSMS();   
 }  

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

Articles récents
Commentaires récents
fatima dans Bienvenue !
AdminDroid dans Bienvenue !
fatima dans Bienvenue !
Archives
Catégories