Conectar placa SIM GSM900 con Arduino

El módulo «GPRS Shield Arduino Uno» cuenta con un microcontrolador SIM900 en una placa de desarrollo, Al igual que el Arduino que es otra placa de desarrollo.

Tener un dispositivo con una tarjeta SIM puede ser muy útil, por ejemplo, para una estación meteorológica IoT

Preparación módulo SIM900 para controlar con placa tipo ARDUINO UNO

Habrá que seleccionar por qué pines llegará al microcontrolador la comunicación por SERIAL AT (Comandos AT enviados por SERIAL)

En el ejemplo a continuación, estarán usados los pines 7 y 8,

 

#include <SoftwareSerial.h> //Pines por defecto (o según la huella del módulo GPRS
SoftwareSerial mySerial(7, 8);

Encendido por software

Debajo de «C4» hay unas gotas de estaño que si se unen conectarán el circuito para encender el módem con el pin de la placa que cae en el Digital 9.

Para utilizar esta funcionalidad, habrá que cerrar este circuito.

 

/**************************************************************
*
* HUE CAT ESPAÑA 2023
* Este ejemplo utiliza la librería SoftwareSerial y TinyGSM para comunicarse con el módem SIM900

**************************************************************/

// Selecciona tu modem:
#define TINY_GSM_MODEM_SIM900
// #define TINY_GSM_MODEM_SIM800

// Establecer serial para la consola de depuración (al Monitor Serial, velocidad 115200)
#define SerialMon Serial

// Establecer Serial para comandos AT (al módulo)
// Usar serie de hardware en Mega, Leonardo, Micro
//#define SerialAT Serial1

// or Software Serial on Uno, Nano
#include <SoftwareSerial.h>
SoftwareSerial SerialAT(7, 8); // RX, TX

#define TINY_GSM_DEBUG SerialMon

#include <TinyGsmClient.h>

// Module baud rate
uint32_t rate = 0; // Set to 0 for Auto-Detect

void setup() {
// Set console baud rate
SerialMon.begin(115200);
delay(6000);
}

void loop() {

if (!rate) {
rate = TinyGsmAutoBaud(SerialAT);
}

if (!rate) {
SerialMon.println(F("***********************************************************"));
SerialMon.println(F(" Module does not respond!"));
SerialMon.println(F(" Check your Serial wiring"));
SerialMon.println(F(" Check the module is correctly powered and turned on"));
SerialMon.println(F("***********************************************************"));
delay(30000L);
return;
}

SerialAT.begin(rate);

// Access AT commands from Serial Monitor
SerialMon.println(F("***********************************************************"));
SerialMon.println(F(" You can now send AT commands"));
SerialMon.println(F(" Enter \"AT\" (without quotes), and you should see \"OK\""));
SerialMon.println(F(" If it doesn't work, select \"Both NL & CR\" in Serial Monitor"));
SerialMon.println(F("***********************************************************"));

while(true) {
if (SerialAT.available()) {
SerialMon.write(SerialAT.read());
}
if (SerialMon.available()) {
SerialAT.write(SerialMon.read());
}
delay(0);
}
}

Comprobar la conexión por comandos AT

Una vez conectado el módulo, este debe encenderse con el botón que tiene a su lado. 

Es necesario agregar una fuente adicional de 5V pues por la energía que llega por el puerto USB no será suficiente para la inicialización.

 

GITHUB: Comprobar a qué velocidad funciona el módulo SIM800-SIM900-LEER-BAUDIOS-COMANDOS-AT

Otros Proyectos realizados en España:

3 Respuestas
    1. Hue

      hola Miguel, Esta experiencia es sobre la SIM900 con sus configuraciones por defecto. Habría que ver el error que tienes y luego es probable que debas configurar la SIM800 con comandos AT para poder obtener conexión a GPRS

Dejar comentario

HUE CAT

PROGRAMACIÓN Y DISEÑO

GDPR