Bonjour,
Voici pour le contexte quelques éléments, je suis tout à fait novice dans le monde de l'Arduino et de la programmation, j'ai décidé de me lancer dans cette aventure pour répondre à un besoin d'une association dont je suis trésorier et qui réunie des pratiquant de vol libre (parapente). Le matériel présent sur nos site de vol vieillis est les couts de maintenance sont élevés.
J ai donc envisagé de mettre en place un matériel similaire monté avec du matériel courant et moins onéreux et in-finé faire l'entretien par des bénévoles du club (moi;)).
J ai déjà lu de nombreux post similaire:
https://forum.arduino.cc/?topic=375522#msg3630338
Aujourd'hui le matériel dont je dispose est le suivant:
- un arduino uno R3 (Az-Delivery)
- un arduino Mega 2560 (Elegoo)
- un module Sim808 EVB-3.2.4 => gsm - Shield SIM808 EVB V3.2 charge a Lithium battery? - Arduino Stack Exchange
- un capteur BM180 (Pression atmosphérique et températur)
- une boussole GY-271
- un anémomètre à coupelle (sortie 0-5V)
-une girouette (sortie 0.4V-2V)
Aujourd'hui je rencontre un problème .....
Pour un programme "simple": l'Arduino reçoit un message (SMS), il réponds avec les valeurs instantanées, j arrive a tout faire fonctionné sur l'Arduino UNO bien que limite en capacité de temps en temps il envois le message bien longtemps aprés ..
Tout ce complique quand je passe sur l'Arduino Mega principalement pour la communication avec la SIM808.
Sur le UNO j'utilise la bibliothéque DFRobot_Sim808 et SoftSeiral sans soucis, Sur le MEGA j ai l'impression que cette bibliothéque ne fonctionne pas.
J ai déjà bien lu à plusieurs reprise que sur le MEGA pas besoin de Softsérial car il a 3 ports série d'origine j'utilise donc le Sérial1. Mais si je supprime cette bibliothèque l'affichage du moniteur série ne me renvois que des petits carrés.
Seulement dans mon code, inspiré de mes recherches sur le net pour arriver à communiquer j ai des commandes AT. ce qui n'était pas nécessaire avec le UNO ....
Pourriez vous m'aider, j aimerais simplement comprendre comment récupérer les infos qui viennent de la SIM808 par le port série N ° 1 pour les stocker et les réutiliser, dans un premier temps le numéro de téléphone afin de pouvoir répondre.
Voici le code actuel juste pour envoyer et recevoir un SMS:
#include <DFRobot_sim808.h>
#include <SoftwareSerial.h>
//Mobile phone number,need to change
#define PHONE_NUMBER "0677777774"
//The content of messages sent
#define MESSAGE "Pret"
DFRobot_SIM808 sim808(&Serial1);
#define MESSAGE_LENGTH 160
int messageIndex = 0;
char message[MESSAGE_LENGTH];
char phone[16];
char datetime[24];
void setup() {
//mySerial.begin(9600);
Serial.begin(9600);
Serial1.begin(9600);
Serial.println("Initializing...");
delay(1000);
//******** Initialize sim808 module *************
while(!sim808.init()) {
delay(1000);
Serial.print("Sim808 init error\r\n");
}
Serial1.println("AT"); //Handshaking with SIM900
updateSerial();
Serial1.println("AT+CMGF=1"); // Configuring TEXT mode
updateSerial();
Serial1.println("AT+CNMI=1,2,0,0,0"); // Decides how newly arrived SMS messages should be handled
updateSerial();
Serial.println("Sim808 init success");
Serial.println("Start to send message ...");
//******** define phone number and text **********
sim808.sendSMS(PHONE_NUMBER,MESSAGE);
Serial.println(" message envoyé...");
}
void loop() {
if (Serial1.available() > 0) {
DFRobot_SIM808 sim808(&Serial1);
messageIndex = (sim808.isSMSunread()&Serial1);
( sim808.readSMS(messageIndex, message, MESSAGE_LENGTH, phone, datetime)&Serial1);
//***********In order not to full SIM Memory, is better to delete it**********
sim808.deleteSMS(messageIndex);
Serial.print("From number: ");
Serial.println(phone);
Serial.print("Datetime: ");
Serial.println(datetime);
Serial.print("Recieved Message: ");
Serial.println(message);
}
}
void updateSerial()
{
delay(500);
while (Serial.available())
{
Serial1.write(Serial.read());//Forward what Serial received to Software Serial Port
}
while(Serial1.available())
{
Serial.write(Serial1.read());//Forward what Software Serial received to Serial Port
}
}
Merci d'avance pour votre aide.