Modification de ESP 32 LILYGO TTGO t-call ESP32 SIM800H

Aller à la navigation Aller à la recherche

Attention : vous n’êtes pas connecté(e). Votre adresse IP sera visible de tout le monde si vous faites des modifications. Si vous vous connectez ou créez un compte, vos modifications seront attribuées à votre propre nom d’utilisateur(rice) et vous aurez d’autres avantages.

La modification peut être annulée. Veuillez vérifier les différences ci-dessous pour voir si c’est bien ce que vous voulez faire, puis publier ces changements pour finaliser l’annulation de cette modification.

Version actuelle Votre texte
Ligne 4 : Ligne 4 :
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.
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,
Lire doc,
Ligne 17 : Ligne 15 :




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.
La doc pour l'envoi des SMS avec Home Assistant
https://hacf.fr/blog/esphome-sms-appels-sans-internet/
https://hacf.fr/blog/esphome-sms-appels-sans-internet/


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


la doc de la carte, https://github.com/Xinyuan-LilyGO/LilyGo-T-Call-SIM800


Et voir cet échange de forum, https://forum.arduino.cc/t/esp32-sim800h-recevoir-un-sms/1195632/4
Étape 1 : Installation de l'IDE Arduino
 
 
== Étape 1 : Installation de l'IDE Arduino ==


Téléchargez et installez l'IDE Arduino depuis le site officiel : Arduino Software.
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 ==
Étape 2 : Ajout du support pour ESP32 dans l'IDE Arduino


Ouvrez l'IDE Arduino.
Ouvrez l'IDE Arduino.
Ligne 48 : Ligne 44 :




== Étape 3 : Sélection de la carte 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.
Après l'installation, allez dans Outils -> Type de carte et sélectionnez votre carte ESP32.
Ligne 55 : Ligne 51 :




== Étape 4 : Téléversement d'un programme de test ==
Étape 4 : Téléversement d'un programme de test


Voici un exemple de code simple  
Voici un exemple de code simple  
Ligne 61 : Ligne 57 :
<pre>
<pre>
void setup() {
void setup() {
   Serial.begin(19200); // Démarre la communication série à 19200 bauds
   Serial.begin(9600); // Démarre la communication série à 9600 bauds
}
}


Ligne 70 : Ligne 66 :
</pre>
</pre>


Et un autre qui fonctionne aussi, (https://github.com/Xinyuan-LilyGO/LilyGo-T-Call-SIM800/commit/b0304b918dc726939bfa914272670d1cc28a8cbf)
Et un autre qui fonctionne aussi,  
<pre>
<pre>
#include <esp_system.h>
#include <esp_system.h>


void setup() {
void setup() {
   Serial.begin(19200);
   Serial.begin(9600);
   delay(1000);
   delay(1000);
    
    
Ligne 106 : Ligne 102 :
   delay(1000); // Attendre une seconde
   delay(1000); // Attendre une seconde
}
}
</pre>
Celui-ci pour se connecter au wifi et afficher une page web
<pre>
#include <WiFi.h>
#include <ESPAsyncWebServer.h>
const char* ssid = "2-4Ghz-db94";    // Remplacez par le nom de votre réseau Wi-Fi
const char* password = "xggi62eed5tw0";  // Remplacez par le mot de passe de votre réseau Wi-Fi
AsyncWebServer server(80);
void setup() {
    Serial.begin(19200);
    // Connexion au réseau Wi-Fi
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
        delay(1000);
        Serial.println("Connexion au WiFi en cours...");
    }
    Serial.println("Connecté au réseau WiFi");
    Serial.print("Adresse IP attribuée : ");
    Serial.println(WiFi.localIP());
    // Définir les routes du serveur Web
    server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
        String html = "<html><body><h1>Bienvenue sur l'ESP32</h1></body></html>";
        request->send(200, "text/html", html);
    });
    // Lancer le serveur
    server.begin();
    Serial.println("serveur web lancé");
}
void loop() {
    // Votre code ici
}
</pre>
== É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, un peu modifié pour envoyer plusieurs SMS en boucle.
<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);
  // attendre la fin de l'initialisation
  delay(30000);
  }
}
void loop() {
  const int numberOfSMS = 2;
  String smsMessage = "Hello from ESP32!";
  for (int i = 0; i < numberOfSMS; i++) {
    if(modem.sendSMS(SMS_TARGET, smsMessage)){
      SerialMon.println("SMS #" + String(i) + " envoyé");
    }
    else{
      SerialMon.println("Échec de l'envoi du SMS #" + String(i));
    }
    delay(1000); // Attendre une seconde avant d'envoyer le prochain SMS
  }
  // Attendre un moment avant de recommencer la boucle
  delay(30000); // Attendre 30 secondes avant de recommencer l'envoi de SMS
}
</pre>
<pre>
Nouvelle ligne
115200 baud
/�e�AT
RDY
+CFUN: 1
+CPIN: SIM PIN
AT
OK
ATE0
ATE0
OK
AT+CMEE=0
OK
AT+CLTS=1
OK
AT+CBATCHK=1
OK
AT+CPIN?
+CPIN: SIM PIN
OK
AT+CPIN?
+CPIN: SIM PIN
OK
AT+CPIN="0000"
OK
AT+CMGF=1
ERROR
Échec de l'envoi du SMS #0
AT+CMGF=1
+CPIN: READY
OK
AT+CSCS="GSM"
OK
AT+CMGS="0749541320"
>Hello from ESP32!�
Call Ready
SMS Ready
ERROR
Échec de l'envoi du SMS #1
AT+CMGF=1
OK
AT+CSCS="GSM"
OK
AT+CMGS="0749541320"
>Hello from ESP32!�
+CMGS: 115
OK
SMS #2 envoyé
AT+CMGF=1
OK
AT+CSCS="GSM"
OK
AT+CMGS="0749541320"
>Hello from ESP32!�
+CMGS: 116
OK
SMS #3 envoyé
AT+CMGF=1
OK
AT+CSCS="GSM"
OK
AT+CMGS="0749541320"
>Hello from ESP32!�
+CMGS: 117
OK
SMS #4 envoyé
</pre>
== Étape 5 : paramétrage de la mise en veille ==
En l'état, la consommation du module est de l'ordre de 1400 mAh, c'est à dire de quoi vider un accu 18650 en moins de 2h.
Si l'envoi des SMS n'a pas à être trop fréquent, on peut paramétrer une mise en sommeil de l'ESP 32 auquel cas sa consommation est pratiquement réduite à zéro.
Pour cela, on ajoute, dans la partie Setup
<pre>
// paramétrage mise en sommeil
  esp_sleep_enable_timer_wakeup(30 * 1000000); // 30 secondes en microsecondes
</pre>
Et ceci dans la boucle,
<pre>
  // Mettre l'ESP32 en veille profonde pour un certain délai
  esp_deep_sleep_start();
</pre>
</pre>

Notez bien que toutes les contributions à Wiki de Mémoire Vive peuvent être modifiées, transformées ou supprimées par d’autres utilisateurs. Si vous ne désirez pas que vos écrits soient modifiés contre votre gré, merci de ne pas les soumettre ici.
Vous nous promettez aussi que vous avez écrit ceci vous-même ou que vous l’avez copié d’une source placée dans le domaine public ou d’une ressource libre similaire (voir Wiki de Mémoire Vive:Copyrights pour plus de détails). N’utilisez aucun travail sous droits d’auteur sans autorisation expresse !

Annuler Aide pour la modification (s’ouvre dans une nouvelle fenêtre)