ESP8266 : détecteur d’ouverture

Avec le développement de mon RaspiDomo, le branchement de détecteurs d’ouverture est rapidement arrivé à l’ordre du jour. Comme je n’ai pas envie de tirer des fils de partout, la solution totalement connectée semble la plus intéressante : tout passe via le réseau ethernet ou WiFi, un réseau sauvegardé et protégé, et donc impossible à interrompre par le cambrioleur de base.

nodemcu

C’est ici que va intervenir le petit ESP8266, associé à un bout de code Lua que nous allons injecter dans init.lua pour qu’il se lance dès la mise sous tension :

-- connexion au reseau wifi
wifi.sta.config("nom_du_reseau","password")
wifi.sta.connect()
tmr.delay(1000000)
print(wifi.sta.status())
print(wifi.sta.getip())
-- contact porte ferme par defaut
ouvert = 0
function contact(level)  -- on lit le contact du gpio3
  etat = gpio.read(3)
  if etat == 1 then
    ouvert = 1
    print('PORTE OUVERTE')
    cu=net.createConnection(net.UDP)
    cu:on("receive",function(cu,c) print(c) end)
    cu:connect(5665,"192.168.1.124") -- envoi port 5665 udp a l ip 192.168.1.124
    -- code ouvertA et retour ligne
    cu:send("ouvertA\n")
  else ouvert = 0
  end
  end
-- configuration port gpio 3 en entree
gpio.mode(3, gpio.INT, gpio.PULLUP)
gpio.trig(3, 'down', contact)  -- si changement etat on lance la fonction contact

Sur la platine d’expérimentation Nodemcu, voici le branchement du contact de fermeture :

esp8266_ouverture

En bas à gauche, la masse (GND), en haut à droite, 4ème broche en partant de la droite, GPiO3. Lorsque le port est lu, à l’intérieur de la fonction contact, la valeur 1 est retournée si le contact est ouvert, 0 s’il est fermé.

En cas d’ouverture, nous indiquons PORTE OUVERTE et émettons une trame ouvertA sur le port UDP 5665, à destination de l’IP de notre Raspberry Pi, 192.168.1.124 (à adapter selon VOTRE configuration donc).

Coté Raspberry Pi, il va nous falloir recevoir cette trame avec un bout de code python, à placer dans udp.py par exemple :

import socket
sock = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
sock.bind( ('',5000) )

while True:
    data, addr = sock.recvfrom(1024)
    data = str(data, encoding='utf8')
    if "ouvertA" in data:
      print ("PORTE OUVERTE")

que vous allez lancer avec un sudo python udp.py.

A vous désormais de tester avec un ou plusieurs capteurs d’ouverture connectés au WiFi de votre box internet, et de programmer des actions sur le Raspberry Pi : alerter par email, alerter par SMS, etc.

 

Publications similaires

  • Vos visites

    Un rapide bilan de vos visites sur ce blog : 5532 sur une durée d’un mois, du 13 Avril au 13 Mai, c’est une ascension inattendue. Merci donc pour votre fidélité, vos réactions directes ou indirectes, que ce soit sur ces colonnes, sur différents forums ou via téléphone lors de vos demandes de renseignements. Un clin d’oeil maintenant : un mot clé revient TRES FORT en ce moment, « contourner hadopi »… on se demande bien pourquoi, j’ai du mal à comprendre:-)…

  • |

    Volet roulant électrique : ajoutez un servo-moteur !

    Vous avez des volets roulants électriques avec des commandes intégrées au bloc fenêtre ? C’est souvent le cas sur des fenêtres posées en rénovation : le poseur ne va pas s’embêter à poser la fenêtre puis tirer des câbles, non, tout est directement dans le bâti. Et là, sortir des fils, venir se brancher sur le moteur, c’est mission impossible sans tout casser ou tout dégrader. Certes, mon installateur me propose de venir ajouter un module radio Somfy, moyennant une…

  • Détecteur d’ouverture 433 MHz : changement de code

    Comment changer de code sur le petit détecteur d’ouverture 433 MHz proposé sur Amazon ? Commencez par l’ouvrir (la fente sur le bas), et ôtez la pile. Sortez la platine de son boîtier plastique :   Repérez le petit circuit intégré cms sur l’une des faces : il s’agit de l’encodeur V1527 (datasheet PDF), fréquemment utilisé sur les émetteurs 433 MHz. Tournons maintenant la platine : La série de plots en bas, juste au dessus du contacteur magnétique, va nous…

  • iPhone 6 : puissance et stupidité du marketing

    Avez-vous suivi les différents comptes Twitter traitant de l’iPhone 6 ce matin ? C’EST LA FOLIE MADAME MICHU, LA FRANCE VA MAL, LA FRANCE S’AFFOLE !! Les fanboys sont de sortie, certains installés depuis hier soir tard dans la nuit devant la Saint Chapelle : l’Apple Store !! Non, sérieusement, imaginez une seule seconde que des fanboys puissent braver le froid, ne pas dormir, faire des heures de file d’attente pour… un téléphone !! Oui Madame Michu, un téléphone, ce…

  • 500 000 hotspots WiFi chez Telenet

    L’opérateur belge Telenet annonce le déploiement de 500 000 nouveaux hotspots WiFi d’ici la fin de l’été, des hotspots accessibles gratuitement à ses clients internet. Un email sera envoyé aux clients au fur et à mesure de l’ouverture dans les provinces du plat pays, leur laissant le choix de désactiver cette fonctionnalité s’ils le souhaitent. Belgacom, l’opérateur historique local n’a pas tardé à réagir, mettant en avant ses 500 000 homespots activés depuis Juin 2011, avec la possibilité de disposer…

  • Raspberry Pi Zero : nouveau, miniature, mais….

      Nos ingénieux concepteurs britanniques annoncent un nouveau venu sur le marché des mini-machines : le Raspberry Pi Zero ! Les caractéristiques techniques, avant de détailler plus avant : CPU Broadcom BCM2835, 1GHz ARM11 core (40% plus rapide que le premier Raspberry Pi 1) Ram 512MB LPDDR2 slot micro-SD connecteur mini-HDMI, 1080p60 Micro-USB pour alimentation et data Port GPIO 40 broches identique aux Raspberry Pi A+/B+/2B un port vidéo (non connecté) Dimensions de seulement 65mm x 30mm x 5mm Bon, génial, un module…

2 commentaires

  1. Bonjour,
    Comment faire pour envoyer l’état du capteur vers un autre esp8266 (récepteur) en wifi et monter un gpio en sortie sur le esp8266 récepteur
    Merci

Les commentaires sont fermés.