SmsCommand

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche

Description

Le but de ce petit projet est de commander une sortie d'Arduino en fonction d'un ordre reçu via SMS.

Ce projet utilise un interpréteur de commande rudimentaire pour dialoguer avec le SIM900 et dont le fonctionnement est décrit dans la page [SerialCommand].

Vous vous n'avez pas encore lu l'article [SerialCommand], je vous invite vivement à le faire, cela éliminera d'emblée une partie de la complexité du code ci-dessous.

Ce programme de démonstration fait également un usage intensif de messages de déboggages qui sont envoyés sur le port série. Vous pouvez également envoyer vos propres commandes AT directement sur le SIM900.

Vous devez configurer le Moniteur Serie d'Arduino IDE sur 19200 baud et Carriage Return.

Le montage

Un LED est raccordée sur la PIN 13 par l'intermédiaire d'une résistance de 330 Ohm.

SimpleLedPin13.png

Augmenter le buffer de NewSoftSerial

Librairie NewSoftSerial utilise un buffer (mémoire tampon) de 64 octets/bytes pour la réception des messages envoyés par le GPRS shield.

Lorsque vous voulez pouvoir consulter des messages SMS en mode texte, cette taille de buffer est insuffisant.

Le résultat le plus frappant, c'est que les commandes AT+CMGR ne retournerons pas le contenu du SMS ou se limiterons uniquement aux quelques premiers caractères.

Il faut donc modifier la librairie NewSoftSerial pour augmenter la taille du buffer. Rassurez-vous, cela se fait assez simplement.

Pour augmenter la taille du buffer:

  1. Chercher le fichier NewSoftSerial.h dans vos librairies Arduino
  2. Localiser la ligne _NewSS_MAX_RX_BUFF
  3. Augmenter la taille du buffer à 128 (au lieu de 64)
  4. Recompiler votre sketch.

Modus Operandi

  1. Charger le projet sur la carte Arduino
  2. démarrer le moniteur série
  3. démarrer le GPRS Shield en appuyant sur le bouton on/off
    1. Le programme attend le mot clé "Ready"
    2. Il teste ensuite la nécessité d'un code pin (et envois le code Pin si nécessaire)
    3. Il se met en attente de réception de message SMS
  4. Envoyer le message "on" par SMS au GPRS shield
  5. Le Shield reçoit une alerte SMS
    1. Le programme consulte la liste des messages.
    2. Il récupère ensuite le message.
    3. Il interprète le contenu du message.