Detection de mouvement et envoi de SMS

Bonjour

j’ai branché sur ma carte arduino Uno un capteur de mouvement HC-SR04, un module UART A6 GSM & GPRS Module SKU: TEL0113 ainsi qu’un buzzer. L’idéea est que lorsque le capteur ultrason détecte quelque chose, un SMS est envoyé à un numéro de téléphone et le buzzer retentit.

Lorsque le capteur ne détecte rien le buzzer est inactif

Je ne parviens pas a envoyer un SMS lorsque le capteur est actif et je ne n’arrive pas faire fonctionner le “else” a la fin du programme lorsqu’il n’y a rien devant le capteur ultrason

voici le code

Merci d’avance
cordialement

#define trigPin 5      //Trig 
#define echoPin 4      //Echo 

#define buzzer 3 //Buzzer sonore 
int mindist = 30; //On indique la distance en dessous de laquelle nous souhaitons voir la led s'allumer
#include <SoftwareSerial.h>
SoftwareSerial mySerial(11, 10);  // TX-Pin11, RX-Pin10
void updateSerial()
{
  delay(2000);
  while (Serial.available()) {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }

}
void setup() {
  Serial.begin (9600);  
  pinMode(trigPin, OUTPUT);  //On défini Trig comme une sortie
  pinMode(echoPin, INPUT);   //On défini Echo comme une entrée
  pinMode(LED_BUILTIN, OUTPUT); //On défini la led comme une sortie
  pinMode(buzzer,OUTPUT);//On défini le buzzer comme une sortie
  Serial.begin(9600);
  mySerial.begin(9600);
}

void loop() {
  long duree, distance;
  digitalWrite(trigPin, LOW);  
  delayMicroseconds(2); 
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10); //Trig envois pendant 10ms 
  digitalWrite(trigPin, LOW);
  
  // On calcul le temps pour l'aller retour du signal
  duree = pulseIn(echoPin, HIGH);
  distance = duree*340/(2*10000);  
   
  if (distance < mindist) {  // On allume la led si on est moins loin que "mindist", mindist étant défini en début de programme
         digitalWrite(LED_BUILTIN,HIGH);
         digitalWrite(buzzer, LOW);

  delay(100);
     mySerial.println("AT");          //Once the handshake test is successful, it will back to OK
  updateSerial();

  mySerial.println("AT+CSQ");      //Signal quality test, value range is 0-31, 31 is the best
  updateSerial();

  mySerial.println("AT+CCID");    //Read SIM information to confirm whether the SIM is plugged
  updateSerial();

  mySerial.println("AT+CREG?");    //Check whether it has registered in the network
  updateSerial();

  mySerial.println("AT+SNFS=0");  //Adjust to earphone mode(AT+SNFS=1 is microphone mode)
  updateSerial();

  mySerial.println("AT+CRSL=2");  //Adjust volume, volume range is 0-15, maximum:15
  updateSerial();
  

  while(1)
  {
    if(mySerial.available())
    {
      Serial.write(mySerial.read());   //Forward what Software Serial received to Serial Port
    if(Serial.available())
    {
      mySerial.write(Serial.read());  //Forward what Serial received to Software Serial Port
    }
  }
}
 mySerial.println("AT");          // Once the handshake test is successful, it will back to OK

  updateSerial();
  mySerial.println("AT+CMGF=1");   // Configuring mode is TEST, only English texts are available
  updateSerial();
  mySerial.println("AT+CMGS=\"000000000\"");//xxxxxxxxxxx is the phone number
  updateSerial();
  mySerial.print("HELLO "); //text content
  updateSerial();
  mySerial.write(26);
  while(1)
  {
    if(mySerial.available())
    {
      Serial.write(mySerial.read());//Data received by mySerial will be outputted by Serial 
    if(Serial.available())
    {
      mySerial.write(Serial.read());//Data received by Serial will be outputted by mySerial 
      }
    
  }
}
}
else {   //sinon on éteind la led
    digitalWrite(buzzer,LOW);
    digitalWrite(LED_BUILTIN,LOW);

  }
  delay(100);
  }

Essaye d’abord un sketch simple qui détecte une présence et déclenche le buzzer et allume la led.

Ensuite, un second sketch qui envoie un SMS. Fais le aussi simple que possible, il doit y avoir des exemples partout sur internet ou même des bibliothèques qui font ça pour toi.

Lorsque ça marchera, tu pourras integer les deux