Bonjour,;
j'essaye de faire un système genre alarme avec un accéléromètre et une télécommande via gsm.
Sans télécommande ,j'arrive à mettre en marche l'alarme dés qu'il y a une accélération >1.2
des que j'essaye d'intégrer le code du hc05 , en mettant 2 conditions pour mise en route. Rien ne fonctionne!
Pourriez vous m'aider ?
voici le code et attend vos remarques et suggestions
merci

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
 
 
//definition des entrees sorties
 
 const int sirene = 7; //numero de pin de la sortie sirene
  int  PowerValue = 0;
 
//definition des variables
 
  unsigned long code;
  long timer = 0;
  float acceleration = 0;
 
//bibliotheque utilisée
#include <SoftwareSerial.h>  // librairie pour creer une nouvelle connexion serie max 9600 baud
#include <MPU6050_tockn.h> // librairie carte accelerometre mpu6050
#include <Wire.h>
MPU6050 mpu6050(Wire);
 SoftwareSerial BTSerial(10, 11); // RX | TX  = > BT-TX=10 BT-RX=11
 
//boucle de demarrage
void setup() {
  Serial.begin(9600);
 Serial.println("Enter a command:");
  BTSerial.begin(9600);  // HC-05 9600 baud 
 
 // pinMode(PIN_SIRENE, OUTPUT);
 
//sorties
 pinMode(sirene, OUTPUT);    // definit le pin "sirene" pin 7 comme sortie
 digitalWrite(sirene, LOW);  // l'initialise a 0
 Wire.begin();
 
 while (millis() < 8000) // tempo de 8 sec
 
// calibration accelerometre   
  mpu6050.begin();
  mpu6050.calcGyroOffsets(true);
 
  // un petit bip pour indiquer que l'accéléromètre est prèt
  digitalWrite(sirene, HIGH);
  delay(800);
  digitalWrite(sirene, LOW);
 
}
 
void loop() {
 
  String message;
    // Boucle de lecture sur le BT
    // Reading BT
    while (BTSerial.available()){
      // Lecture du message envoyé par le BT
      // Read message send by BT
      message = BTSerial.readString();
      // Ecriture du message dans le serial usb
      // write in serial usb
      Serial.println(message);
    }
    // Boucle de lecture sur le serial usb
    // Reading serial usb
    while (Serial.available()){
      // Lecture du message envoyé par le serial usb
      // Read message send by serial usb
      message = Serial.readString();
      // Ecriture du message dans le BT
      // write in BT 
      BTSerial.println(message);
      PowerValue = Serial.println(message);
 
  mpu6050.update();
 
  acceleration = max(acceleration, abs(mpu6050.getAccX()));
  acceleration = max(acceleration, abs(mpu6050.getAccY()));
  acceleration = max(acceleration, abs(mpu6050.getAccZ()));
 
 
 // si mon message est egal a "on"  
  // if message equal to "on"
    if(message == "on"){
     PowerValue = 1; // power on 
    }// else if message off
    else if(message == "off"){
       PowerValue = 0; // power off
 
 if (acceleration > 1.2 && PowerValue == 1) {digitalWrite(sirene, HIGH);
   delay(1200);
   digitalWrite(sirene, LOW);
  }
 else if(PowerValue = 0){
      digitalWrite(sirene ,LOW);  // led off
 // if (acceleration < 0.5) {digitalWrite(sirene, HIGH);
  //  delay(1200);
  //  digitalWrite(sirene, LOW);
  //}
 
  acceleration = 0;
   } 
  }
 } 
}
 
 
//fin de boucle principale