Un programme simple pour envoyer des commandes au modem SIM800 intégré avec l'ESP32

De Wiki de Mémoire Vive
Révision datée du 3 décembre 2023 à 19:31 par 192.168.2.1 (discussion) (Page créée avec « Avec ce programme, les commandes sont lues sur la console Arduino, ou avec Putty connecté sur le port série. Cela permet d'envoyer ou de recevoir des SMS, et aussi de faire sonner le tel distant. <pre> // 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 <Arduino.h> #include "utilities.h"... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Avec ce programme, les commandes sont lues sur la console Arduino, ou avec Putty connecté sur le port série.

Cela permet d'envoyer ou de recevoir des SMS, et aussi de faire sonner le tel distant.




// 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 <Arduino.h>
#include "utilities.h"

// Set serial for debug console (to the Serial Monitor, default speed 115200)
#define SerialMon Serial
// Set serial for AT commands (to the module)
#define SerialAT  Serial1

void setupModem()
{
#ifdef MODEM_RST
    // Keep reset high
    pinMode(MODEM_RST, OUTPUT);
    digitalWrite(MODEM_RST, HIGH);
#endif

    pinMode(MODEM_PWRKEY, OUTPUT);
    pinMode(MODEM_POWER_ON, OUTPUT);

    // Turn on the Modem power first
    digitalWrite(MODEM_POWER_ON, HIGH);

    // Pull down PWRKEY for more than 1 second according to manual requirements
    digitalWrite(MODEM_PWRKEY, HIGH);
    delay(100);
    digitalWrite(MODEM_PWRKEY, LOW);
    delay(1000);
    digitalWrite(MODEM_PWRKEY, HIGH);

    // Initialize the indicator as an output
    pinMode(LED_GPIO, OUTPUT);
    digitalWrite(LED_GPIO, LED_OFF);
}

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();

}

void loop()
{
    while (SerialAT.available()) {
        SerialMon.write(SerialAT.read());
    }
    while (SerialMon.available()) {
        SerialAT.write(SerialMon.read());
    }

}