Página 1 de 1

Esp32 e SIM800L

Enviado: 16/Out/2018, 17:20
por oidanieldantas
Pessoal,

Estou tentando conectar um sim800l em um módulo mcu do esp32

Testei o código abaixo em um arduino uno e funcionou, mas quando coloco no esp ele não funciona. não consigo nem enviar um código at para testar a conexção.

/*
//Comandos AT...
#include <SoftwareSerial.h>

String Arsp, Grsp;
SoftwareSerial gsm(10, 11); // RX, TX

void setup() {
// put your setup code here, to run once:

Serial.begin(9600);
Serial.println("Testando o módulo GSM SIM800L");
gsm.begin(4800);

}

void loop() {
// put your main code here, to run repeatedly:

if(gsm.available())
{
Grsp = gsm.readString();
Serial.println(Grsp);
}

if(Serial.available())
{
Arsp = Serial.readString();
gsm.println(Arsp);
}

}
*/
// Enviando SMS...
#include <SoftwareSerial.h>
SoftwareSerial sim(10, 11);
int _timeout;
String _buffer;
String number = "+telefone";

void setup() {
delay(7000); //delay de 7 para pegar sinal...
Serial.begin(9600);
_buffer.reserve(50);
Serial.println("Iniciando o módulo GSM...");
sim.begin(9600);
delay(1000);
}

void loop() {
SendMessage();
delay(10000);
}

void SendMessage()
{
//Serial.println ("Enviando a mensagem");
sim.println("AT+CMGF=1"); //Colocar o modulo em modo texto...
delay(1000);
//Serial.println ("Telefone para enviar SMS");
sim.println("AT+CMGS=\"" + number + "\"\r"); //Numero telefone para enviar SMS...
delay(1000);
String SMS = "Testando";
sim.println(SMS);
delay(100);
sim.println((char)26);// ASCII code of CTRL+Z
delay(1000);
_buffer = _readSerial();
}

String _readSerial() {
_timeout = 0;
while (!sim.available() && _timeout < 12000 )
{
delay(13);
_timeout++;
}
if (sim.available()) {
return sim.readString();
}
}

Re: Esp32 e SIM800L

Enviado: 17/Out/2018, 12:03
por GabrielMajaron
Tente usar o HardwareSerial ao invés do SoftwareSerial, segue exemplo para o ESP32 LoRA:

#include <HardwareSerial.h>

HardwareSerial mySerial(1);

const int RX_PIN = 0;
const int TX_PIN = 22;

const int BAUD_RATE = 9600;

void setup()
{
mySerial.begin(BAUD_RATE, SERIAL_8N1, RX_PIN, TX_PIN);
}

void loop() {}

Pra mim (com ESP32 LoRa) não funcionou usar os pinos RX TX, então sugiro testar com outros pinos seriais disponíveis se não funcionar com esses 10 e 11 que está no seu código. Existe uma lib "TinyGsmClient" com funções prontas de GPS e que permite a gente obter os dados sem precisar enviar comandos AT na mão.

Re: Esp32 e SIM800L  [RESOLVIDO]

Enviado: 26/Out/2018, 06:44
por oidanieldantas
Obrigado, Gabriel

Vou ver aqui... quando implementar dou um retorno