Tutorial del Internet de las Cosas y Bluetooth con el ESP32
Juan Antonio Villalpando
Volver al índice del tutorial
____________________________
248.- ESP32 - TTGO T-call V1.3 tarjeta SIM, SIM800L. Teléfono móvil 2G. App Inventor.
- Vamos a enviar información desde el ESP32 a un teléfono móvil. Necesitamos una tarjeta SIM de telefonía móvil activa.
- Utilizaremos este módulo ESP32 - TTGO con SIM800L
- Observamos que tiene un ESP32 y un SIM800L, éste será el que gestione la tarjeta SIM.

- IMPORTANTE:
- El SIM800L solo funciona en redes 2G, debes asegurarte que en tu servidor móvil tenga esta tecnología. Las redes 2G se apagarán aproximadamente hacia el año 2025.
- Consulta esta web sobre el fin de la tecnología 2G: https://www.agps.es/el-fin-de-la-tecnologia-2g/
- Otra cosa importante en este módulo en la antena, en vez de utilizar la que trae, es mejor esta otra:
- También necesitaremos un cable USB-C para conectar el módulo al ordenador para cargar el programa.
- También necesitaremos una tarjeta SIM de teléfono móvil:
- La librería utilizada será: TinyGSM
github.com/vshymanskyy/TinyGSM
- Podemos agregarla desde el Gestor de Librerías.

- También instaleremos la librería OneWire:

- Seguiremos este tutorial:
https://randomnerdtutorials.com/esp32-sim800l-send-text-messages-sms/
- Cada vez que pulsemos el botoncito RESET del módulo ESP32, se ejecutará el código y enviará por telefonía móvil el texto "Hello from ESP32! " al número que pongamos en el código.
|
/*
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[] = "";
// 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 "+34XXXXXXXXX"
// 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);
}
|
_______________________________________________________
- Redes 4G, 5G. SIM7000
- Hay otros módulos que pueden funcionar con 4G, pero son más caros.

_______________________________
|