Bonjour à tous,
J'ai investis dans ces deux cartes il y a plusieurs mois dans le but de commander des actions par SMS.
L'idée est aussi de déclencher l'envois d'un SMS par une entrée, un capteur de présence par exemple. je suis nouveau dans le monde arduino sur les liaisons série mais je programme qd même des application simple et logiques.
Mon projet :
Créer un échange entre mon portable et ma maison en cas d'absence, savoir si il y a une intrusion ou déclencher la fermeture des volets par exemple.
Mon matos :
Une carte arduino MEGA 2560, une carte GSM Shield arduino avec la puce M10, un détecteur de présence, 4 leds sur les pins 9, 10, 11 et 12. Ma version de l'IDE : 1.0.5, installée tel qu'elle, pas de téléchargement de librairies supplémentaires ... je précise. Les deux cartes sont emboitées ensemble pour la partie câblage, pas trop compliqué ... et les leds entre le com pour le - et sur les sorties pour le +.
Mon Programme :
J'utilise ce programme pour faire qques tests, allumer par SMS des Leds suivant un code et pouvoir les éteindre. Malheureusement je n'ai aucunes réactions, quelque soit le SMS ... J'ai essayer tout un tas d'autre programme en vain.
Mes questions :
Faut il installer qque chose de plus sur mon Mac ? Une librairie complémentaire ?
La liaison série nécessite peut etre de séparer les deux cartes et de passer en filaire ?
Ma version d'IDE n'est pas bonne ?
Aurriez vous un programme pour tester qque chose en particulier sur ma carte pour vérifier les choses de base ?
J'ai loupé un énorme truc ???
Merci d'avance à vous ...
Mon code :
char inchar; //Will hold the incoming character from the Serial Port.
int led1 = 9;
int led2 = 10;
int led3 = 11;
int led4 = 12;
void setup()
{
// prepare the digital output pins
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
//Initialize GSM module serial port for communication.
Serial.begin(9600);
delay(3000); // give time for GSM module to register on network etc.
Serial.println("AT+CMGF=1"); // set SMS mode to text
delay(200);
Serial.println("AT+CNMI=3,3,0,0"); // set module to send SMS data to serial out upon receipt
delay(200);
}
void loop()
{
//If #a1b1c1d1 comes as sms, all LEDs should light up.
if(Serial.available() >0)
{
inchar=Serial.read();
if (inchar=='#')
{
delay(10);
inchar=Serial.read();
//first led
if (inchar=='a')
{
delay(10);
inchar=Serial.read();
if (inchar=='0')
{
digitalWrite(led1, LOW);
}
else if (inchar=='1')
{
digitalWrite(led1, HIGH);
}
delay(10);
//Second led
inchar=Serial.read();
if (inchar=='b')
{
inchar=Serial.read();
if (inchar=='0')
{
digitalWrite(led2, LOW);
}
else if (inchar=='1')
{
digitalWrite(led2, HIGH);
}
delay(10);
// Third led
inchar=Serial.read();
if (inchar=='c')
{
inchar=Serial.read();
if (inchar=='0')
{
digitalWrite(led3, LOW);
}
else if (inchar=='1')
{
digitalWrite(led3, HIGH);
}
delay(10);
//Fourth led
inchar=Serial.read();
if (inchar=='d')
{
delay(10);
inchar=Serial.read();
if (inchar=='0')
{
digitalWrite(led4, LOW);
}
else if (inchar=='1')
{
digitalWrite(led4, HIGH);
}
delay(10);
}
}
Serial.println("AT+CMGD=1,4"); // delete all SMS
}
}
}
}
}