Centrale domotique (alarme + simulation de présence)

image principale Centrale domotique (alarme + simulation de présence)

Difficulté:

Comment commander à distance une centrale d’alarme.



Cette centrale permet de surveiller une zone d’une habitation grâce à un capteur PIR (capteur infrarouge passif) et de simuler la présence des propriétaires grâce à une lampe commandée par un relais. La mise en service de cette centrale se fait à l’aide d’un SMS et la centrale renvoie un accusé de réception.


Nous pouvons aussi surveiller tout ce que l’on veut car cette centrale peut fonctionner sur batterie. On peut ainsi surveiller si les enfants accèdent à un endroit qui leur est interdit (armoire à pharmacie par exemple).


Avec ce tutoriel, vous apprendrez à utiliser une carte LinkIt One.

Matériel :

Budget : Non défini

  • J’ai utilisé:– 1 carte LinkIt One (69.50€)
  • – 1 module Grove base shield (9.70€)
  • – 1 module relais Grove (3.30€)
  • – 1 détecteur de mouvement Grove (10.25€)
  • – 1 module buzzer Grove (2.20€)
  • – 1 rallonge électrique (3.50€)

Etape 1 : La carte LinkIt One


Pour le concours Objets connectés, la LinkIt One est la carte qu’il faut utiliser. En effet, cette carte développée par la société Mediatek intègre les fonctions :
•Récepteur GPS / GNSS
•Modem GSM / GPRS (850/900/1800/1900MHz)
•Interface Wi-Fi (802.11 b/g/n, WEP, WPA/WPA2)
•Interface Bluetooth 2.1 and 4.0
•Lecteur de µSDCard (32Go max.)
•Mémoire Flash interne de 10Mo
•MP3/AAC Audio
Il n’existe aucune carte actuellement sur le marché possédant toutes ces interfaces de communication. Autre atout non négligeable, la LinkIt One accepte les modules Arduino sous 3.3V uniquement et se programme à l’aide de l’IDE Arduino.
Enfin, le prix de la LinkIt one est très intéressant (70€ environ). En comparaison, une carte Arduino Uno et tous les shields de communication (Wifi, Bluetooth, GSM, GPS, etc) revient à plus de 300€.
Pour la mise en œuvre et l’installation de drivers, je vous laisse le soin de consulter la page http://www.seeedstudio.com/wiki/LinkIt_ONE

Etape 2 : Le montage

J’ai voulu simplifier au maximum le câblage de ce projet ; c’est pour cette raison que j’ai utilisé un shield Grove et des modules compatibles (Capteur de mouvement, relais et buzzer). Sur le shield Grove, il faut connecter :
•Le module buzzer sur le connecteur D2
•Le module relais sur le connecteur D3
•Le module PIR sur le connecteur A0
Bien que possédant une sortie numérique, le détecteur de mouvement doit être branché sur une entrée analogique car lors de l’envoi ou la réception des SMS, la carte LinkIt One consomme beaucoup de courant, ce qui altère les niveaux du signal de sortie du capteur. A l’état bas, le signal est à 2V au lieu de 0V. Pour remédier à ce problème, le programme assure une conversion analogique numérique et on considère que le niveau est à l’état bas si la tension est inférieure à 2,5V. Pour le niveau haut, il n’y a pas de problème.
Pour le moment, ne pas insérer le shield Grove sur la LinkIt One.

Lors de cette étape, il faut également insérer la carte SIM sous la LinkIt One. Le code PIN de la carte SIM doit être au préalable désactivé.

Etape 3 : Le programme


Dans le programme, j’ai laissé les instructions telles que Serial.println, très utiles pour déboguer le fonctionnement.
Dans un premier temps, le programme attend un SMS. Lorsqu’il en reçoit un, il mémorise le numéro de l’appelant et le message.
•Si le message est ON_L, la sortie D3 passe à l’état haut pour commander le relais (la lampe s’allume).
•Si le message est OFF_L, la sortie D3 passe à l’état bas pour commander le relais (la lampe s’éteind).
•Si le message est ON_A, l’alarme surveille la zone et si une intrusion est détectée, la sortie D2 passe à l’état haut pendant 10 secondes (le buzzer sonne) et le message « Intrusion » est envoyé.
•Si le message est OFF_A, l’alarme est mise en veille.
Le programme Centrale.ino doit être téléversé dans la LinkIt One, puis insérer le shield Grove avec tous ses modules sur la LinkIt One.

http://ouiaremakers.com/wp-includes/images/media/default.png

Le programme :


#include <LTask.h>
#include <LGSM.h>
#include <TH02_dev.h>
#include "Arduino.h"
#include <Wire.h>


#define Relais1 2
#define Relais2 3
#define Relais3 4
#define Relais4 5
#define Relais_Eau 6

//Declaration des variables
int mode;
int consigne;
int temperature;
int etat=0;
int eau;
char numero[20];
int i = 0;
char message[500];
           
void setup()
{
  Serial.begin(9600);  // Initialisation Moniteur serie
  Wire.begin();        // Initialisation I2C
  TH02.begin();        // Initialisation capteur Temp
 
  pinMode(Relais1,OUTPUT);
  pinMode(Relais2,OUTPUT);
  pinMode(Relais3,OUTPUT);
  pinMode(Relais4,OUTPUT);
  pinMode(Relais_Eau,OUTPUT);
  digitalWrite(Relais1,HIGH);
  digitalWrite(Relais2,HIGH);
  digitalWrite(Relais3,HIGH);
  digitalWrite(Relais_Eau,LOW);
   

// Attente GSM
while(!LSMS.ready())
    {
        delay(1000);
    }
   
    Serial.println("GSM OK");
 
}


void loop()
{

temperature = TH02.ReadTemperature();
Serial.println("Temperature: ");  
Serial.print(temperature);
Serial.println(" ");
delay(1000);
 
// Si SMS recu
  
if(LSMS.available()) // Check if there is new SMS
    {
   
        LSMS.remoteNumber(numero, 20); // display Number part
        Serial.println("Un nouveau message est arrive");
       
        Serial.print("Numero:");
        Serial.println(numero);
        Serial.print("Message:"); // display Content part    

        while(true)
        {
            int v = LSMS.read();
            if(v < 0)
            break;

            message[i++] = (char)v;
            Serial.print((char)v);
        }

        Serial.println();
        LSMS.flush(); // delete message

        LSMS.beginSMS(numero);                                           //Il envoi le SMS au numéro1
        LSMS.print("Message recu");
        LSMS.print(temperature);
        LSMS.endSMS();
       
        if(message[0] == 'O' && message[1] == 'N' && message[2] == '_' && message[3] == 'L')
        {
            digitalWrite(relais, HIGH);        // lamp on
            Serial.println("Lampe ON");
            LSMS.beginSMS(numero);                                           //Il envoi le SMS au numéro1
            LSMS.print("Lampe allumee");
            LSMS.endSMS();  
        }

        else if(message[0] == 'O' && message[1] == 'F' && message[2] == 'F' && message[3] == '_' && message[4] == 'L')
        {
            digitalWrite(relais, LOW);         // lamp off
            Serial.println("Lampe OFF");
            LSMS.beginSMS(numero);                                           //Il envoi le SMS au numéro1
            LSMS.print("Lampe eteinte");
            LSMS.endSMS();
        }
        else if(message[0] == 'O' && message[1] == 'N' && message[2] == '_' && message[3] == 'A')
        {
            validation_alarme=1;         // lamp off
            Serial.println("Alarme ON");
            LSMS.beginSMS(numero);                                           //Il envoi le SMS au numéro1
            LSMS.print("Alarme active");
            LSMS.endSMS();
            delay(5000);
        }
        else if(message[0] == 'O' && message[1] == 'F' && message[2] == 'F' && message[3] == '_' && message[4] == 'A')
        {
            validation_alarme=0;         // lamp off
            Serial.println("Alarme OFF");
            LSMS.beginSMS(numero);                                           //Il envoi le SMS au numéro1
            LSMS.print("Alarme inactive");
            LSMS.endSMS(); 
        }
       
    }
   
   
}

Etape 4 : L’installation

La maquette doit être alimentée grâce à un cordon USB branché sur un chargeur de téléphone ou grâce à la batterie fournie avec la LinkIt One. Dans le dernier cas, il faut recharger la batterie de temps en temps et positionner l’interrupteur sur la position BAT (voir photo).

Pour être la plus discrète possible, j’ai installé la centrale dans une boite de cassette VHS (je sais, on n’a plus de magnétoscope mais on a tous des boitiers qui traînent). J’ai donc percé ce boitier à trois endroits (voir photo) pour faire passer l’antenne, le câble électrique de la lampe et le capteur de mouvement. Ensuite, j’ai agencé tous les modules que j’ai fixé à la patafix (voir photo). Il faut découper la rallonge en deux et câbler comme sur la photo et le schéma.
On referme le tout et on peut poser la boîte sur une étagère. On peut même mettre cette boite au milieu des autres cassettes et personne n’y prêtera attention.

Etape 5 : Evolution


Ce tutoriel permet de surveiller une zone de l’habitation mais vous pouvez ajouter un ou deux détecteurs de mouvement sur les entrées A1 et A2 de la LinkIt One. Il faut à ce moment là ajouter une ligne pour chaque capteur alarme1=analogRead(PIR1), alarme2=analogRead(PIR2), alarme3=analogRead(PIR3) puis changer la ligne if (alarme>250) en if ((alarme1>250)|| (alarme2>250)|| (alarme3>250).

Si vous avez des difficultés pour modifier le programme, n’hésitez pas à m’envoyer un message et je me ferai un plaisir de le faire pour vous.


Bonjour et Merci bien pour la nature et la clarté de vos tutoriels mon Grand, s'il vous plaît je n'arrive pas à afficher le programme de commande; pouvez vous me l'envoyer s'il vous plaît?

Si possible, mon adresses mail c'est thierry.tein@gmail.com ; je serai également très heureux de bénéficier de certains de vos enseignements.


Cordialement,

Thierry

Bonsoir La mise à jour du site présente des bugs. Les fichiers n'ont pas toujours été transférs. J'ai déposé le programme au format texte dans le tuto.

Merci bien pour votre instantanéité Monsieur Titchoi, je suis très content

 de l'exemple que vous montrez.

L'aimerais travailler sur un projet de trackeur solaire pour panneaux photovoltaïques,

s'il vous plaît si vous avez réalisé une recherche dans ce sens je serai davantage content 

d'en apprendre davantage. 


Merci bien encore,

Thierry

le lien ne fonctionne pas http://ouiaremakers.com/wp-includes/images/media/default.png

Malheureusement, je n'y suis pour rien. C'est OAM qui gère leur site et il y a parfois des bugs.

Bien oui pourriez vous placer vos superbes réalisations sur un site comme instructable qui est mieux suivi point de vue bugs?

Impossible, cela prend trop de temps. Je vais peut être transféré une partie de mes projets sur le site http://pecquery.wixsite.com/arduino-passion La aussi, il faut du temps.

Ces tutoriels devraient vous plaire

vignette Tracker solaire
Tracker solaire
vignette Arduino et Porte automatique de poulailler
Arduino et Porte automatique de poulailler
vignette Fabriquer une lampe à lave
Fabriquer une lampe à lave

Découvrez tous les tutoriels partagés sur Oui Are Makers

Powered by Oui Are Makers