Hola a todos tengo un modulo SIM800L en donde recibo SMS y tengo que enviar los mensajes que ingresan por el modulo y que lo muestre por el monitor serie para que un script de python conectado al puerto serie tome lo que ingresa y lo impacte en una base de datos PostgreSQL a futuro, el inconveniente se crea que cuando el que envia un sms con letra ñ o vocales con tilde me lo muestre creo en hexadecimal un ejemplo el la palabra Ñandú tiene ñ y tilde me lo muestra asi "00D10061006E006400FA0020". A continuación coloco el código de arduino.
#include <SoftwareSerial.h>
SoftwareSerial sim800lSerial(8, 9); // RX, TX
void setup() {
Serial.begin(9600);
sim800lSerial.begin(9600);
// Configurar el módulo SIM800L
sim800lSerial.println("AT+CSCS=\"8859-1\"");
delay(1000);
sim800lSerial.println("AT+CMGF=1"); // Modo SMS
delay(100);
sim800lSerial.println("AT+CNMI=2,2,0,0,0");
}
void loop() {
if (sim800lSerial.available()) {
String sms = sim800lSerial.readString();
// Procesar el SMS y extraer datos
// Aquí podrías usar técnicas de parsing para obtener los datos
// Enviar datos a través de comunicación serial al servidor Python
Serial.println(sms);
}
}
Y el código python es:
import serial
# Configura el puerto serial
ser = serial.Serial('/dev/ttyUSB0', 9600)
while True:
data = ser.readline().decode('iso-8859-1').strip()
if data:
print(data)
Si me pueden dar una mano se los voy a agradecer. Saludos