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();
}
}
Esp32 e SIM800L [RESOLVIDO]
-
- Membro
- Mensagens: 4
- Registrado em: 13/Out/2018, 07:14
Esp32 e SIM800L
Editado pela última vez por oidanieldantas em 28/Out/2018, 00:48, em um total de 1 vez.
-
- Experiente
- Mensagens: 41
- Registrado em: 05/Jun/2018, 15:52
Re: Esp32 e SIM800L
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.
#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.
-
- Membro
- Mensagens: 4
- Registrado em: 13/Out/2018, 07:14
Re: Esp32 e SIM800L [RESOLVIDO]
Obrigado, Gabriel
Vou ver aqui... quando implementar dou um retorno
Vou ver aqui... quando implementar dou um retorno