Hi I'm using arduino for a month now, with the arduino uno card.
I'm facing a quite contradictory problem.
When I run my program, it's saying "init sim error" but the D3 LED on my SIM808 is bipping every 3seconds(which means it has established the connection). Kinda weird.. Because I checked on a phone and my SIM is definitely unblocked, this problem pop up but it use to work before with the same SIM and same connections.
Does somebody have a possible answer to this ?
In case, here is my program ( the goal is to give the humidity percentage and temperature when it's asked by sms communication):
#include <SimpleDHT.h>
#include <DFRobot_sim808.h>
#include <SoftwareSerial.h>
#include<String.h>
#define PHONE_NUMBER "+33*********"
//variable analysant temperature espace
#define DHT11_PIN 8
byte temperature = 0;
byte humidity = 0;
char tempHum[5];
SimpleDHT11 dht11(DHT11_PIN);
#define MESSAGE_LENGTH 160
char message[MESSAGE_LENGTH];
int messageIndex = 0; //initialisation de l'index des messages Ă 0 (entier)
char phone[16];
char datetime[24];
String msg; //introduction de la variable msg en tant que chaîne
#define PIN_TX 10 //les branchements nécessaires sur la UNO
#define PIN_RX 11
SoftwareSerial mySerial(PIN_TX,PIN_RX);
DFRobot_SIM808 sim808(&mySerial); //pareillement pour la SIM808
//DFRobot_SIM808 sim808(&Serial);
void setup() {
//pinMode(8,INPUT);
mySerial.begin(9600);
Serial.begin(9600);
while(!sim808.init()) { //tant que la sim n'est pas initialisee renvoi de "error"
Serial.print("Sim808 init error\r\n");
delay(1000); //laps de temps pour ne pas que le programme s'emballe trop vite
}
Serial.println("Init Success, please send me an SMS"); //si initialisation effective renvoie de l'info
sim808.sendSMS(PHONE_NUMBER,"initialisation reussie");
}
void loop() {
int x;
//detecting unread sms command
messageIndex = sim808.isSMSunread(); //affiche le nbr de messages s'il y en a un non lu, sinon affiche 0
Serial.println("En attente de SMS");
//Serial.println(messageIndex);
//si commande reçue
if (messageIndex > 0) { //si index != 0 (index forcement positif)
sim808.readSMS(messageIndex, message, MESSAGE_LENGTH, phone, datetime); //envoi des infos du SMS sur le moniteur série
Serial.println(datetime);
Serial.println("Sim808 read success");
Serial.println("Start to send message ...");
msg = message;
//check si Température demandée "T?"
x = msg.indexOf("T ?");
Serial.println("Temperature demandée");
if (x>=0) {
dht11.read(&temperature, &humidity, NULL);
Serial.print("la temp est de : ");
Serial.print(int(temperature));
Serial.println(" - Envoi");
String(temperature).toCharArray(tempHum,5);
sim808.sendSMS(PHONE_NUMBER, tempHum);
}
else {
//Check si Humidité demandée
x = msg.indexOf("Hr ?");
if (x >=0 ) {
dht11.read(&temperature, &humidity, NULL);
Serial.print("l'humidité est de : ");
Serial.print(int(humidity));
Serial.println("% - Envoi");
String(humidity).toCharArray(tempHum,5);
sim808.sendSMS(PHONE_NUMBER, tempHum);
}
else {
Serial.println("Code non trouvé dans le sms");
}
}
}
sim808.deleteSMS(messageIndex);
/*
dht11.read(&temperature, &humidity, NULL);
Serial.print("la temp est de : ");
Serial.print(int(temperature));
Serial.println(" - Envoi");
*/
}