Un programme simple pour envoyer des commandes au modem SIM800 intégré avec l'ESP32
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.
Ce code assure une communication bidirectionnelle entre deux ports série, SerialAT (généralement connecté au module GSM) et SerialMon (utilisé pour le débogage ou la communication avec l'ordinateur hôte). Les données reçues sur l'un des ports sont immédiatement transférées vers l'autre port, permettant ainsi une transmission en temps réel des données entre le module GSM et l'ordinateur hôte.
// 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()); } }