Différences entre les versions de « ESP 32 LILYGO TTGO t-call ESP32 SIM800H »
Ligne 114 : | Ligne 114 : | ||
- installer la bibliothèque StreamDebugger | - installer la bibliothèque StreamDebugger | ||
- charger ce code, mais qui génère une erreur, | |||
<pre> | |||
/* | |||
Rui Santos | |||
Complete project details at https://RandomNerdTutorials.com/esp32-sim800l-send-text-messages-sms/ | |||
Permission is hereby granted, free of charge, to any person obtaining a copy | |||
of this software and associated documentation files. | |||
The above copyright notice and this permission notice shall be included in all | |||
copies or substantial portions of the Software. | |||
*/ | |||
// SIM card PIN (leave empty, if not defined) | |||
const char simPIN[] = "0000"; | |||
// Your phone number to send SMS: + (plus sign) and country code, for Portugal +351, followed by phone number | |||
// SMS_TARGET Example for Portugal +351XXXXXXXXX | |||
#define SMS_TARGET "0749541320" | |||
// Configure TinyGSM library | |||
#define TINY_GSM_MODEM_SIM800 // Modem is SIM800 | |||
#define TINY_GSM_RX_BUFFER 1024 // Set RX buffer to 1Kb | |||
#include <Wire.h> | |||
#include <TinyGsmClient.h> | |||
// TTGO T-Call pins | |||
#define MODEM_RST 5 | |||
#define MODEM_PWKEY 4 | |||
#define MODEM_POWER_ON 23 | |||
#define MODEM_TX 27 | |||
#define MODEM_RX 26 | |||
#define I2C_SDA 21 | |||
#define I2C_SCL 22 | |||
// Set serial for debug console (to Serial Monitor, default speed 115200) | |||
#define SerialMon Serial | |||
// Set serial for AT commands (to SIM800 module) | |||
#define SerialAT Serial1 | |||
// Define the serial console for debug prints, if needed | |||
#define DUMP_AT_COMMANDS | |||
#ifdef DUMP_AT_COMMANDS | |||
#include <StreamDebugger.h> | |||
StreamDebugger debugger(SerialAT, SerialMon); | |||
TinyGsm modem(debugger); | |||
#else | |||
TinyGsm modem(SerialAT); | |||
#endif | |||
#define IP5306_ADDR 0x75 | |||
#define IP5306_REG_SYS_CTL0 0x00 | |||
bool setPowerBoostKeepOn(int en){ | |||
Wire.beginTransmission(IP5306_ADDR); | |||
Wire.write(IP5306_REG_SYS_CTL0); | |||
if (en) { | |||
Wire.write(0x37); // Set bit1: 1 enable 0 disable boost keep on | |||
} else { | |||
Wire.write(0x35); // 0x37 is default reg value | |||
} | |||
return Wire.endTransmission() == 0; | |||
} | |||
void setup() { | |||
// Set console baud rate | |||
SerialMon.begin(115200); | |||
// Keep power when running from battery | |||
Wire.begin(I2C_SDA, I2C_SCL); | |||
bool isOk = setPowerBoostKeepOn(1); | |||
SerialMon.println(String("IP5306 KeepOn ") + (isOk ? "OK" : "FAIL")); | |||
// Set modem reset, enable, power pins | |||
pinMode(MODEM_PWKEY, OUTPUT); | |||
pinMode(MODEM_RST, OUTPUT); | |||
pinMode(MODEM_POWER_ON, OUTPUT); | |||
digitalWrite(MODEM_PWKEY, LOW); | |||
digitalWrite(MODEM_RST, HIGH); | |||
digitalWrite(MODEM_POWER_ON, HIGH); | |||
// Set GSM module baud rate and UART pins | |||
SerialAT.begin(115200, SERIAL_8N1, MODEM_RX, MODEM_TX); | |||
delay(3000); | |||
// Restart SIM800 module, it takes quite some time | |||
// To skip it, call init() instead of restart() | |||
SerialMon.println("Initializing modem..."); | |||
modem.restart(); | |||
// use modem.init() if you don't need the complete restart | |||
// Unlock your SIM card with a PIN if needed | |||
if (strlen(simPIN) && modem.getSimStatus() != 3 ) { | |||
modem.simUnlock(simPIN); | |||
} | |||
// To send an SMS, call modem.sendSMS(SMS_TARGET, smsMessage) | |||
String smsMessage = "Hello from ESP32!"; | |||
if(modem.sendSMS(SMS_TARGET, smsMessage)){ | |||
SerialMon.println(smsMessage); | |||
} | |||
else{ | |||
SerialMon.println("SMS failed to send"); | |||
} | |||
} | |||
void loop() { | |||
delay(1); | |||
} | |||
</pre> | |||
<pre> | |||
+CPIN: SIM PIN | |||
+CPIN: SIM PIN | |||
OK | |||
AT+CPIN? | |||
+CPIN: SIM PIN | |||
OK | |||
AT+CPIN="0000" | |||
OK | |||
AT+CMGF=1 | |||
ERROR | |||
AT+CSCS="GSM" | |||
ERROR | |||
AT+CMGS="0749541320" | |||
ERROR | |||
SMS failed to send | |||
</pre> |
Version du 30 novembre 2023 à 14:57
ESP 32
Matériel acheté : Le système est basé sur une carte LILYGO TTGO t-call ESP32 SIM800H qui intègre à la fois un ESP32 et un module SIM800H. Donc rien à souder ou adapter, juste à alimenter en USB-C.
https://fr.aliexpress.com/item/33045221960.html?spm=a2g0o.order_list.order_list_main.16.577c5e5b3XhXo9&gatewayAdapt=glo2fra PRix payé : 26,56€ avec le port
Lire doc, https://fablabutc.fr/wp-content/uploads/2021/01/Tutoriel_ESP32.pdf
telecharger IDE Arduino
installer IDE (win)
Installer le package “ESP32 by expressif systems” (cf. doc)
La doc pour l'envoi des SMS avec Home Assistant, mais pour l'instant ce n'est pas le sujet, on va essayer de faire fonctionner l'ESP32 de façon autonome.
https://hacf.fr/blog/esphome-sms-appels-sans-internet/
Étape 1 : Installation de l'IDE Arduino
Téléchargez et installez l'IDE Arduino depuis le site officiel : Arduino Software.
Étape 2 : Ajout du support pour ESP32 dans l'IDE Arduino
Ouvrez l'IDE Arduino.
Allez dans Fichier -> Préférences.
Dans la section "URL de gestionnaire de cartes supplémentaires", ajoutez l'URL suivante : https://dl.espressif.com/dl/package_esp32_index.json.
Cliquez sur OK pour fermer la fenêtre de préférences.
Allez dans Outils -> Type de carte (board) -> Gestionnaire de cartes.
Recherchez "esp32" dans la barre de recherche.
Cliquez sur l'option pour installer le package pour les cartes ESP32.
Étape 3 : Sélection de la carte ESP32
Après l'installation, allez dans Outils -> Type de carte et sélectionnez votre carte ESP32.
Choisissez également le port correct sous Outils -> Port pour votre carte ESP32.
Étape 4 : Téléversement d'un programme de test
Voici un exemple de code simple
void setup() { Serial.begin(9600); // Démarre la communication série à 9600 bauds } void loop() { Serial.println("Bonjour, ESP32 !"); // Envoyer un message au moniteur série delay(1000); // Attendre une seconde }
Et un autre qui fonctionne aussi, (https://github.com/Xinyuan-LilyGO/LilyGo-T-Call-SIM800/commit/b0304b918dc726939bfa914272670d1cc28a8cbf)
#include <esp_system.h> void setup() { Serial.begin(9600); delay(1000); esp_chip_info_t chip_info; esp_chip_info(&chip_info); Serial.println("\nInformations sur le module ESP32 :"); Serial.printf("Modèle du module: %d\n", chip_info.model); Serial.printf("Cœurs CPU: %d\n", chip_info.cores); Serial.printf("Fréquence du CPU: %d MHz\n", ESP.getCpuFreqMHz()); Serial.printf("Révision du module: %d\n", chip_info.revision); } void loop() { // Votre code ici }
Et encore un, il en faut peu pour être heureux !
const int ledPin = 13; // GPIO de la LED intégrée sur la carte TTGO T-Call ESP32 SIM800H void setup() { pinMode(ledPin, OUTPUT); // Définir le GPIO de la LED en sortie } void loop() { digitalWrite(ledPin, HIGH); // Allumer la LED delay(1000); // Attendre une seconde digitalWrite(ledPin, LOW); // Éteindre la LED delay(1000); // Attendre une seconde }
Étape 5 : envoi d'un SMS
L'objectif est d'utiliser le SIM800H pour envoyer un SMS.
Ce tuto peut être une source d'inspiration, https://randomnerdtutorials.com/esp32-sim800l-send-text-messages-sms/
- installer la bibliothèque TinyGSM
- installer la bibliothèque StreamDebugger
- charger ce code, mais qui génère une erreur,
/* Rui Santos Complete project details at https://RandomNerdTutorials.com/esp32-sim800l-send-text-messages-sms/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. */ // SIM card PIN (leave empty, if not defined) const char simPIN[] = "0000"; // Your phone number to send SMS: + (plus sign) and country code, for Portugal +351, followed by phone number // SMS_TARGET Example for Portugal +351XXXXXXXXX #define SMS_TARGET "0749541320" // Configure TinyGSM library #define TINY_GSM_MODEM_SIM800 // Modem is SIM800 #define TINY_GSM_RX_BUFFER 1024 // Set RX buffer to 1Kb #include <Wire.h> #include <TinyGsmClient.h> // TTGO T-Call pins #define MODEM_RST 5 #define MODEM_PWKEY 4 #define MODEM_POWER_ON 23 #define MODEM_TX 27 #define MODEM_RX 26 #define I2C_SDA 21 #define I2C_SCL 22 // Set serial for debug console (to Serial Monitor, default speed 115200) #define SerialMon Serial // Set serial for AT commands (to SIM800 module) #define SerialAT Serial1 // Define the serial console for debug prints, if needed #define DUMP_AT_COMMANDS #ifdef DUMP_AT_COMMANDS #include <StreamDebugger.h> StreamDebugger debugger(SerialAT, SerialMon); TinyGsm modem(debugger); #else TinyGsm modem(SerialAT); #endif #define IP5306_ADDR 0x75 #define IP5306_REG_SYS_CTL0 0x00 bool setPowerBoostKeepOn(int en){ Wire.beginTransmission(IP5306_ADDR); Wire.write(IP5306_REG_SYS_CTL0); if (en) { Wire.write(0x37); // Set bit1: 1 enable 0 disable boost keep on } else { Wire.write(0x35); // 0x37 is default reg value } return Wire.endTransmission() == 0; } void setup() { // Set console baud rate SerialMon.begin(115200); // Keep power when running from battery Wire.begin(I2C_SDA, I2C_SCL); bool isOk = setPowerBoostKeepOn(1); SerialMon.println(String("IP5306 KeepOn ") + (isOk ? "OK" : "FAIL")); // Set modem reset, enable, power pins pinMode(MODEM_PWKEY, OUTPUT); pinMode(MODEM_RST, OUTPUT); pinMode(MODEM_POWER_ON, OUTPUT); digitalWrite(MODEM_PWKEY, LOW); digitalWrite(MODEM_RST, HIGH); digitalWrite(MODEM_POWER_ON, HIGH); // Set GSM module baud rate and UART pins SerialAT.begin(115200, SERIAL_8N1, MODEM_RX, MODEM_TX); delay(3000); // Restart SIM800 module, it takes quite some time // To skip it, call init() instead of restart() SerialMon.println("Initializing modem..."); modem.restart(); // use modem.init() if you don't need the complete restart // Unlock your SIM card with a PIN if needed if (strlen(simPIN) && modem.getSimStatus() != 3 ) { modem.simUnlock(simPIN); } // To send an SMS, call modem.sendSMS(SMS_TARGET, smsMessage) String smsMessage = "Hello from ESP32!"; if(modem.sendSMS(SMS_TARGET, smsMessage)){ SerialMon.println(smsMessage); } else{ SerialMon.println("SMS failed to send"); } } void loop() { delay(1); }
+CPIN: SIM PIN +CPIN: SIM PIN OK AT+CPIN? +CPIN: SIM PIN OK AT+CPIN="0000" OK AT+CMGF=1 ERROR AT+CSCS="GSM" ERROR AT+CMGS="0749541320" ERROR SMS failed to send