smart home arduino project and mitapp inventor
Aujourd’hui, la tendance d’utilisation des objets commandés et surveillés par des réseaux sans fil à distance, afin de faciliter et de simplifier notre vie quotidienne, a connu une forte révolution dans le monde, notamment dans les domaines de l’industrie, de la santé, de la sécurité et de la domotique.
Le but de ce projet est de réaliser une maison connectée en utilisant une carte Bluetooth hc-05, une carte Arduino uno et commandée par une application MITapp inventor.
Matériels utilisés
- Une carte arduino uno
- Une carte Bluetooth hc-05
- Une résistance de 4.7 Kohms
- Ventilateur
- Deux relais
- Un servomoteur
- Un capteur de gaz MQ-2
- Un capteur de température et d’humidité DHT11
- Un servomoteur
- Plaque d’essai
- Des fils
Relais
Un relais est un commutateur électrique qui peut être activé ou désactivé pour laisser passer ou arrêter le courant.
Coté sortie du module relai
- NC – Normaly closed (Normalement fermé)
- COM
- NO – Normaly open (Normalement ouvert)
Un servomoteur
Un servomoteur est un moteur capable d’atteindre et de maintenir une position déterminée.
Carte Bluetooth hc-05
Le Bluetooth hc-05 est un module de communication sans fil qui peut être utilisé comme un maître, un esclave ou maître/esclave par contre le hc-06 qui peut fonctionner seulement comme un esclave.
Caractéristiques techniques HC-05
- Module Bluetooth série pour Arduino et autres microcontrôleurs
- Tension de fonctionnement : 4 V à 6V (généralement +5 V)
- Courant de fonctionnement : 30 mA
- Portée : <100m
- Fonctionne avec la communication série (USART) et compatible TTL
- Suit le protocole normalisé IEEE 802.15.1
- Débit en bauds pris en charge : 9600,19200,38400,57600,115200,230400,460800.
DHT11
DHT11 est un capteur de température très fiable et stable avec une sortie de signal numérique étalonnée.
Caractéristiques
- Plage de mesure : 20-90%RH 0-50 ℃
- Précision de l’humidité : ±5%RH
- Précision de température : ±2℃
- Résolution : 1
- Stabilité à long terme : +/- 1% par an
- L’alimentation électrique du DHT11 : 3-5,5 VCC
- Courant : 0.5Ma 2.5mA
Le MQ-2
Le MQ-2 est un capteur utilisé pour la détection des fuites de gaz dans les maisons, les environnements industriels, etc.
Détection de la concentration
- 200ppm-5000ppm LPG et propane
- 300ppm-5000ppm butane
- 5000ppm-20000ppm méthane
- 300ppm-5000ppm H2
- 100ppm-2000ppm Alcool
Carte Arduino uno
Carte arduino uno est la première version des cartes arduino, la plus populaire et facile à utiliser par les débutants en électronique. Elle est basée sur un microcontrôleur ATmega328.
Branchement
Relais 1
- VCC du relais est connecté a +5V de l’arduino.
- GND du relais est connecté à GND de l’arduino.
- IN (Signal) du relais est connecté à la broche 8 de l’arduino.
- GND est connecté à la borne GND de l’Arduino
- VCC est connecté à la borne 5V de l’Arduino
- RXD est connecté à la borne TXD de l’Arduino
- TXD est connecté à la borne RXD de l’Arduino
L’arduino uno échange les données avec le hc-05 a l’aide d’une communication série.
Servomoteur
- VCC du servomoteur est connecté a +5V de l’arduino
- GND du servomoteur est connecté à GND de l’arduino
- Pulse du servomoteur est connecté à la borne 11 de l’arduino
Capteur de gaz
- VCC du MQ-2 est connecté a +5V de l’arduino
- GND du MQ-2 est connecté à GND de l’arduino
- D0 du MQ-2 est connecté à la borne A2 de l’arduino
Capteur DHT11
- VCC du DHT11 est connecté a +5V de l’arduino
- GND du DHT11 est connecté à GND de l’arduino
- DATA du DHT11 est connecté à la borne 11 de l’arduino
Relais 2
- VCC du relais est connecté a +5V de l’arduino.
- GND du relais est connecté à GND de l’arduino.
- IN (Signal) du relais est connecté à la broche 13 de l’arduino.
Schéma de réalisation sur fritzing
Programme arduino
#include <Servo.h>
const int lamp = 8;
const int fan = 13;
const int captgaz = A2;
Servo myServo;
word w;//variable qui reçoit les trames émisses
int valeur = 0;
#include "DHT.h"
#define DHTPIN 10
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
float humidite = 0;
float temperature = 0;
void setup() {
Serial.begin(9600);//vitesse de transmission
dht.begin();
pinMode(lamp,OUTPUT);
pinMode(fan,OUTPUT);
myServo.attach(11);
myServo.write(0);
}
//programme pricipal
void loop() {
recevoir(); //fonction recevoir
/////////////////////////////lamp///////////////////////////
if(w==6)
{
digitalWrite(lamp,HIGH);
}
if(w==7)
{
digitalWrite(lamp,LOW);
}
/////////////////////////////fan///////////////////////////
if(w==4)
{
digitalWrite(fan,HIGH);
}
if(w==5)
{
digitalWrite(fan,LOW);
}
//////////////////////////////servo////////////////////////
if(w==2)
{
myServo.write(0);
}
if(w==3)
{
myServo.write(90);
}
///////////////////////////////gaz//////////////////////////
if(w==10)
{
valeur=analogRead(captgaz);// lire la valeur du gaz
Serial.print(valeur);// afficher la valeur
}
delay(500);
}
///////////////////////////////temperature and humidité//////////////////////////
if(w==9)
{
humidite = dht.readHumidity(); // lire la valeur de l'humidité
Serial.print(humidite); // afficher la valeur d'humidité
}
if(w==8)
{
temperature = dht.readTemperature(); // lire la valeur de la température
Serial.print(temperature);// afficher la valeur de la température
}
delay(2000);
}
//procedure qui lit les trames du smartphone
void recevoir(){
if(Serial.available()) {
w=Serial.read();
Serial.flush();
}
}