Boa noite a todos,
Estou desenvolvendo um projeto para mensuração do nivel de agua de um reservatorio de agua usando um ARDUINO NANO + SIM800L + ULTRASONICO HC-SR04.
Esta tudo funcionando bem, mensuração ok,SIM800L enviando SMS, mas a SMS esta chegando no celular com erro na mensagem, como faço para corrigir esse erro.
Segue o código que estou usando e o erro que esta surgindo.
Código:
#include "gps.h"
#include "sms.h"
#include <SoftwareSerial.h>
//SIM800 TX is connected to Arduino D8
#define SIM800_TX_PIN 8
//SIM800 RX is connected to Arduino D7
#define SIM800_RX_PIN 7
//Pino A0 recebe o pulso do echo
#define echoPin A0
//Pino 10 envia o pulso para gerar o echo
#define trigPin 10
float sensorValue;
float Distance;
//Create software serial object to communicate with SIM800
SoftwareSerial serialSIM800(SIM800_TX_PIN,SIM800_RX_PIN);
void setup() {
//Begin serial comunication with Arduino and Arduino IDE (Serial Monitor)
Serial.begin(9600);
while(!Serial);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
//Being serial communication witj Arduino and SIM800
serialSIM800.begin(9600);
delay(1000);
}
void loop() {
sensorValue = analogRead(A0);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
unsigned long duracao = pulseIn(echoPin, HIGH);
Distance = duracao / 29.4 / 2;
delay(1000);
Serial.print(Distance);
Serial.println("CM");// imprime o centímetro no final
SendTextMessage();
}
void SendTextMessage(){
Serial.println("Setup Complete!");
Serial.println("Sending SMS...");
//Set SMS format to ASCII
serialSIM800.write("AT+CMGF=1\r");
delay(100);
//Send new SMS command and message number
serialSIM800.write("AT+CMGS=\"3599191****\"\r");
delay(200);
//Send SMS content
serialSIM800.write("Nivel do Reservatorio: ");
serialSIM800.write(Distance);
serialSIM800.write(" CM");
serialSIM800.write("\r");
delay(500);
//Send Ctrl+Z / ESC to denote SMS message is complete
serialSIM800.write((char)26);
delay(1000);
Serial.println("SMS Sent!");
delay(5000);
//Set SMS format to ASCII
serialSIM800.write("AT+CMGF=1\r");
delay(100);
//Send new SMS command and message number
serialSIM800.write("AT+CMGS=\"3598856****\"\r");
delay(200);
//Send SMS content
serialSIM800.write("Nivel do Reservatorio: ");
serialSIM800.write(Distance);
serialSIM800.write(" CM");
serialSIM800.write("\r");
delay(500);
//Send Ctrl+Z / ESC to denote SMS message is complete
serialSIM800.write((char)26);
delay(1000);
Serial.println("SMS Sent!");
delay(60000);
Distance = 0;
}
E é assim que esta chegando a mensagem:
Nivel do Reservatorio: @ CM
Nivel do Reservatorio: # CM
Tags:
Minhas sugestões :
Imprima na console da IDE , o valor de Distance. Acho que terá que formatar a saída.
https://www.arduino.cc/en/Serial/Print
Depois que o valor estiver adequado, faça o teste enviando a mensagem SMS.
Se ainda tiver problema, transforme o valor de Distance em string.
Boa noite grande José Gustavo Abreu Murta,
A
E é assim que esta chegando a mensagem no celular:
Nivel do Reservatorio: @ CM
Nivel do Reservatorio: # CM
Não na IDE, não estou avançando e nada, me ajuda.
Agradeço a atenção.
Logo abaixo de //Send SMS content inclua o envio dos valores para a Console IDE :
Serial.print("Nivel do Reservatorio: ");
Serial.print(Distance);
Serial.print(" CM");
Serial.println(" ");
delay(500);
Referência:
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por