Aujourd'hui nous allons nous affranchir de la librairie Akeru pour parler directement avec le modem via la liaison série. Nous utiliserons les commandes AT pour le bidouiller !
- MATÉRIEL -
- Arduino Uno + Akene
ou
- Akeru
- EXPLICATIONS -
Le modem communique avec l'ATmega via la librairie SoftwareSerial incluse dans l'IDE Arduino. Pour communiquer directement avec lui, nous pouvons exploiter le moniteur série comme une passerelle, qui affichera les données en provenance du modem et lui enverra les commandes rentrées par l'utilisateur.
Pour ce faire, nous initialisons la liaison SoftwareSerial, en faisant attention au brochage : les RX, TX de l'Akeru et de l'Akene sont inversés. Suivant votre configuration, il faudra donc déclarer :
- Code: Tout sélectionner
SoftwareSerial akene(4, 5); // Akene
SoftwareSerial akeru(5, 4); // Akeru
Ensuite nous initialisons le modem avec les commandes requises (identiques à celles présentes dans la fonction akeru.begin() de la librairie Akeru), et enfin nous faisons l'échange de données entre les deux liaisons.
- CODE -
- Code: Tout sélectionner
/*
* Communiquer avec Akeru/Akene via le moniteur série
* Pas besoin de la librairie Akeru !
* Envoyez les commandes AT via le moniteur et lisez les résultats
*
* SoftSerial setup : [Akeru] RX, TX = 5, 4
* [Akene] RX, TX = 4, 5
* Serial Monitor setup : 9600 bauds, NL et CR
*/
#include <SoftwareSerial.h>
SoftwareSerial akene(4, 5); // RX, TX (voir ci-dessus)
void setup()
{
// Initialisation liaison série
Serial.begin(9600);
Serial.println("Starting...");
// akeru.begin()
akene.begin(9600);
akene.write((uint8_t)'\0');
akene.write((uint8_t)';');
while(akene.available() < 3);
akene.read(); //'K'
akene.read(); //'O'
akene.read(); //';'
}
void loop()
{
// s'il y a des données en provenance du modem
if (akene.available())
{
// envoyer sur le moniteur série
Serial.write(akene.read());
}
// si l'on envoie des commandes via le moniteur série
if (Serial.available())
{
// envoyer au modem
akene.write(Serial.read());
}
}
- COMMANDES AT-
Ouvrez votre moniteur série, configuré avec "NL & CR". Sans les bons caractères de fin de trame, le moniteur série ne reconnaîtra pas les messages envoyés par le modem.
Tapez "AT" puis Entrée, le modem doit vous répondre "OK". Si ce n'est pas le cas vérifiez le paramétrage du SoftwareSerial.
Vous pouvez désormais dialoguer avec votre modem, le paramétrer et envoyer des messages directement depuis votre moniteur série ! La liste des commandes AT est disponible dans le manuel de référence :
Une commande utile pour éviter les caractères étranges apparaissant à cause de l'écho : ATE0.
C'est tout pour cette fois ! J'espère que ce tutoriel vous aura plu, et bonne bidouille en attendant le prochain !