Un programme pour recevoir des SMS sur l'ESP32

De Wiki de Mémoire Vive
Révision datée du 4 décembre 2023 à 22:23 par 192.168.2.1 (discussion)
Aller à la navigation Aller à la recherche

Cette fois le programme est plus "opérationnel", il s'agit de recevoir des SMS sur le module ESP32-SIM800. Ainsi, on pourra envoyer des commandes depuis un tel pouvant déclencher des actions sur l'ESP32.

Voici le code, qui s'appuie sur la bibliothèque AsyncSMS. Ce code envoie un accusé de réception "BIEN RECU".

Nous pourrons revenir sur tout cela en atelier, avec de plus amples explications.

https://github.com/centaq/arduino-async-sms

// Please select the corresponding model

// #define SIM800L_IP5306_VERSION_20190610
// #define SIM800L_AXP192_VERSION_20200327
// #define SIM800C_AXP192_VERSION_20200609
  #define SIM800L_IP5306_VERSION_20200811



#include "AsyncSMS.h"
#include "utilities.h"

#define SerialMon Serial
#define SerialAT  Serial1


AsyncSMS smsHelper(&SerialAT, 115200);

void messageReceived(char * number, char * message) {
  //Do something with your message
  Serial.println("Message received");
  Serial.println(number);
  Serial.println(message);
  // envoyer un message d'acquittement à l'émetteur
  String numberString = String(number); // Convertir en String
  Serial.println(numberString.c_str());
  smsHelper.send(numberString.c_str(), "BIEN RECU", 10);
}

void setup() {
  // Set console baud rate
  SerialMon.begin(115200);

  // Set GSM module baud rate and UART pins
  SerialAT.begin(115200, SERIAL_8N1, MODEM_RX, MODEM_TX);

  setupModem();
  smsHelper.init();
  smsHelper.smsReceived = *messageReceived;
}

void loop() {
  smsHelper.process();
}