Tutoriel Domotique
Ce tutoriel représente une simple domotique permettant de détecter différentes grandeurs à temps réel. Composée de quartes parties; 1-Détection de température. 2-détection du fumée et gaz. 3-Serrure codée (système de verrouillage d'une porte) . 4-Allumer / Éteindre une ou plusieurs LEDs en utilisant une reconnaissance vocale. Pour cela, on aura besoin d'une carte Arduino ou Raspberry, des capteurs, Shiled Bluetooth ou Wifi, des résistances, des LEDs, une application MIT inventer et un code d’exécution Arduino pour le fonctionnement de notre domotique.
Liste Des Composants
-Carte Arduino Mega
https://www.amazon.fr/Elegoo-Carte-ATmega2560-ATME...
-Capteur de température de type "DS18B20"
https://www.amazon.com/SUNKEE-DS18B20-Temperature-...
-Détecteur du fumée & gaz "MQ135"
https://www.amazon.com/Waveshare-MQ-135-Gas-Sensor...
-Shield bluetooth "HC-05"
https://www.amazon.com/Bluetooth-Master-Slave-Conf...
-Résistances, Diodes de type "LED" , fils
-App MIT inventor (pour créer une application android"
http://ai2.appinventor.mit.edu/#6019177031270400
-Code Arduino (Lien de téléchargement)
https://www.arduino.cc/en/Main/Software
N.B: Vous pouvez utiliser une carte Raspberry et d'autres références pour les composants, il faut juste vérifier le montage selon chaque type de composant et le code Arduino aussi.
Les Différentes Parties Du Projet
- Partie 1 : Détection de température:
Une résistance est connectée en parallèle avec le Vcc et le Data du thermocouple. Le Data vers la pin 2 de la carte Arduino, et une résistance en série avec une diode L4 sont utilisées comme détection alarme.
- Partie 2 : Détection du fumée et gaz
Le Data de détecteur "MQ135" est connecté à la pin A0 de la carte Arduino, et une résistance en série avec la diode L5 qui sont utilisée comme détection alarme.
- Partie 3 :Serrure codée :
Les pins TX et RX du Bluetooth vont être branchées sur l'Arduino en inverse (TX de Bluetooth à RX d'Arduino et RX de Bluetooth à TX d'Arduino) afin de transmettre et recevoir correctement les données par le Bluetooth.
Et pour cela, on aura besoin d'une application Inventer pour envoyer un code en essayant d'ouvrir la porte. Dans notre cas, le déverrouillage de la porte sera l'allumage de la diode L6.
- Partie4 : Allume/Éteindre les LEDs via une reconnaissance vocale :
La connexion du Bluetooth reste la même que la partie serrure codée, 3 diodes (L1 L2 et L3) sont utilisées pour allumer ou éteindre selon notre besoin, et pour cela on fait appel à notre app Inventor.
Pour le branchement des résistances sur la carte Arduino, est comme suivant:
Des résistances sont connectées en série avec les diodes afin de limiter le courant traversant ces dernières.
Les résistances sont connectées à la carte arduino comme suivant
Résistance 1 - Pin 43
Résistance 2 - Pin 45
Résistance 3 - Pin 47
Résistance 4 - Pin 49
Résistance 5 - Pin 33
.
Code Arduino
Avant de commencer à faire les le noyau du code il faut tout d'abord chercher les bonnes bibliothèques pour chaque composants dans le circuit, ça vous évitera d'écrire d’éviter les erreurs et de gagner de temps.
Le programme montré ci dessus, est un multiplexage des différents codes de chaque partie.
//Déclaration de la partie de détection de temperature
#include // Bibliothèque de thermocouple #include // Bibliothheque de thermocouple
#define ONE_WIRE_BUS 2 // Connection de Data au pin digital 2
OneWire oneWire(ONE_WIRE_BUS); //Décclaration de variable utlisable dans la bibliotheqe Onewire DallasTemperature sensors(&oneWire);// Declaration de variable utlisable dans la bibliotheque DallasTemperature
//Decclaration des LEDs int L1= 43; // pin 43 int L2= 45; int L3= 47; int L4= 49; int L6= 33;
//Déclaration de la partie gaz & fumée int sensorValue; // Delaration de variable utlisable dans le prinipe programme de gaz et fumee int temp; const int L5=51; // Variable pour la reconnaissance vocale int state = 0; void setup() {
//Initialisation et configuration des LEDs pinMode(L1, OUTPUT); pinMode(L2, OUTPUT); pinMode(L3, OUTPUT); pinMode(L4, OUTPUT); pinMode(L5, OUTPUT);
// Configuration de la partie temperature sensors.begin(); // Activer une partie de sa bibliotheque¨que dans le programme Serial.begin(9600); //Monitor serie } void loop() {
// Programme d'execution de la partie reconnaissance vocale if(Serial.available() > 0){ // Est ce qu'on reit des infos donnes par le Bluetooth state = Serial.read(); // Lire les données envoyees par le bluetooth et les implimenter dans la variable state } if (state == '1') { digitalWrite(L1, HIGH); // LED 1 s'allume } else if (state == '2') { digitalWrite(L1, LOW); // LED1 s'eteint } else if (state == '3') { digitalWrite(L2, HIGH); } else if (state == '4') { digitalWrite(L2, LOW); } else if (state == '5') { digitalWrite(L3, HIGH); } else if (state == '6') { digitalWrite(L3, LOW); } else if (state == '7') { digitalWrite(L1, HIGH); // Allume toutes les LEDs digitalWrite(L2, HIGH); digitalWrite(L3, HIGH); } else if (state == '8') { digitalWrite(L1, LOW); // Eteintre toutes les LEDs digitalWrite(L2, LOW); digitalWrite(L3, LOW); } //Programme d'execution de la partie Serrure codee else if (state == '9') { digitalWrite(L6, HIGH); //Déverouiller la porte } else if (state == '0') { digitalWrite(L6, LOW); // Verrouiller la porte } //Programme d'execution de la partie temperarature sensors.requestTemperatures();// Lire la temp temp = sensors.getTempCByIndex(0);
if (temp>=28){ digitalWrite(L4, HIGH); } if (temp<28){ digitalWrite(L4, LOW); } // Programme d'execution de la partie gaz & fumee sensorValue = analogRead(0); // Lire les donnees envoyees par le MQ135
if (sensorValue>=100){ digitalWrite(L5, HIGH); } if (sensorValue<100){ digitalWrite(L5, LOW); } Serial.println(temp); Serial.println(sensorValue); delay(1000); }