Raspberry Pi 2 domotique : ESP8266 capteur d’ouverture (12)

Transformons un petit ESP8266 (version ESP12) en capteur d’ouverture de porte. Je passe sur le script init.lua destiné à initialiser la connexion Wifi par exemple, vous en trouverez un exemple sur ce billet.

esp12_3
ESP12

Voici le script que j’ai appelé contactESP2.lua, on se retrouve après pour détailler son fonctionnement :

 

-- on active le GPIO4 en entree
gpio.write(2, gpio.LOW)
gpio.mode(2, gpio.INT, gpio.PULLUP)

-- contact porte ferme par defaut
ouvert = 0
cu = nil
-- 
-- nom = nom du capteur
-- porttcp = port TCP d'émission de trame si détection d'ouverture
-- portudp = port UDP d'écoute des trames de status
-- ip = adresse IP du serveur TCP Raspi Domo en écoute
--
nom = "sonde1"
porttcp = 5665
portudp = 5665
ip = "192.168.1.60"

print(nom .. "/n")
function contact(level) -- on lit le contact du gpio4
 etat = gpio.read(2)
 if etat == 1 then
 ouvert = 1
 print('PORTE OUVERTE')
 cu=net.createConnection(net.TCP)
 cu:on("receive",function(cu,c) print(c) end)
 cu:connect(porttcp,ip) -- connexion du port tcp sur l'ip choisie
 cu:send(nom .. "\n") -- envoi du code du capteur suivi d'un retour ligne
 
 tmr.delay(1000000)
 else ouvert = 0
 end
 end

-- configuration port gpio 4 en entree

gpio.trig(2, "both", contact) -- si changement etat on lance la fonction contact

-- si on emet une trame udp "sat"+nom du capteur sur le port udp sélectionné
-- la sonde repond par "ok" suivi du nom du capteur

s=net.createServer(net.UDP) 
s:on("receive",function(s,c)
 print(c)
 if c == "stat" .. nom then
 print('status sonde ok')
 cu=net.createConnection(net.TCP)
 cu:connect(porttcp,ip)
 cu:send("ok".. nom .. "\n")
 end 
 end) 
s:listen(portudp)

 

Et voilà, de retour, c’est long, oui je sais 😉

Branchez un contacteur de porte sur le port GPIO4 de votre ESP 12 (j’ai utilisé cette version pour éviter certains bugs logiciels au boot) d’un coté, sur GND (la masse) de l’autre.

esp8266_porte
ESP12 + capteur d’ouverture

Dans notre exemple, lorsque le contact s’ouvre (= port ouverte), une trame « sonde1 » est envoyée sur l’ip 192.168.1.60 port TCP 5665. Si j’envois une trame « statsonde1 » sur le port UDP 5665, la sonde va me répondre « oksonde1 » sur son port TCP 5665.

Bien entendu, tout se configure :

[checklist]

  • le port TCP
  • le port UDP
  • l’IP du serveur qui va recevoir les trames (j’ai programmé un Raspberry Pi en Python3 pour cela)

[/checklist]

On peut faire différent, et imaginer par exemple recevoir l’impulsion de détection d’un capteur de mouvement, lui aussi alimenté en 3.3v si je ne m’abuse, un peu ce genre de platine :

ir_sensor_motion
Capteur de mouvement

La fonction d’interrogation de la sonde est un gadget, mais cela peut être utile si vous souhaitez demander à votre domotique de surveiller régulièrement le fonctionnement des différents capteurs : c’est mieux qu’un ping, et on peut au besoin envoyer d’autres informations, comme avec cette sonde de température domotique que Blogwifi vous avait présentée par le passé.

L’ESP12 disposant de multiples GPIO, vous devriez pouvoir rajouter d’autres possibilités de détection en parallèle avec le GPIO4. A vous de jouer, n’hésitez pas à faire part de vos expériences dans les commentaires.

 

Publications similaires

  • MONWIFI.FR : nouvelle boutique

    La boutique en ligne d’Infracom évolue pour désormais s’installer sur MonWiFi.fr, un nom simple à retenir et totalement dans la lignée de notre activité : le WiFi ! Prudents, nous allons toutefois conserver quelques mois boutique.infracom-france.com en secours, en sachant toutefois que les nouveaux produits et les fonctionnalités avancées ne seront eux en ligne que sur monwifi.fr. Bien entendu, les commandes en cours sur boutique.infracom-france.com seront maintenues, traitées. Vous ne les trouverez pas sur monwifi.fr. Pour vos nouvelles commandes, nous…

  • AirVision : gestion à distance

    Quel meilleur moment pour tester du matériel en situation que lors de vos congés ? C’est ce que nous avons fait avec les caméras de surveillance IP AirCam. Trois caméras ont ainsi été rendues accessibles depuis internet, soit directement, soit via leur logiciel de contrôle, AirVision. Premier constat, force est de constater que, en mobilité complète, avec le Galaxy Note, les résultats sont étonnants. Par exemple, voici les enregistrements réalisés sur une détection de mouvement d’Airvision : L’interface s’adapte parfaitement…

  • Google I/O ou Apple Keynote : j’ai choisi :)

    Fan des nouveautés, je suis le premier à suivre les conférences des principaux acteurs technologiques du marché, dont Apple et Google. Chez Apple, tout est cadré, verrouillé, prévu, anticipé. Les intervenants sont dopés à l’enthousiasme américain : tout est amaaaaaaaazing, great et tout est forcément nouveau. « Ceci est une révolution », cette petite phrase régulièrement moquée n’en prend que tout son sens tellement rien n’est désormais plus révolutionnaire, juste évolutif. Chez Google, lors de la fameuse I/O, THE conférence qui réunit les développeurs du…

  • Caméra Unifi Micro : le rtsp bien caché !

    Comment utiliser cette petite caméra IP UVC Micro par Ubiquiti, sans devoir installer toute la suite logicielle du constructeur ? L’idée est avant toute chose de pouvoir disposer d’un flux rtsp, un flux qui va permettre d’afficher simplement ce que voit la caméra via n’importe quelle application Android (ou IOS au pire). Seul hic, au jour de l’écriture de ce billet, seule la version 3.2 Beta 3 permet d’avoir un flux rtsp, les firmwares précédents ont tout simplement fait l’impasse sur une…

  • ASSIA : le bridage selon SFR

    Client SFR, peut-être avez-vous été vous aussi soumis au programme de surveillance ASSIA. Vous payez donc une ligne ADSL plein pot, mais votre débit a été limité volontairement par votre opérateur, sans que vous ne soyez consulté au préalable. Assia, kesako ? Il s’agit d’un système qui détecte de multiples déconnexions/reconnexions et active manu-militari une limitation des débits atteignables. Dans notre cas, lors d’essais pour verrouiller notre NB6 à des débits supérieurs, la ligne le permettant, nous avons occasionné des…

  • |

    LTE : la preuve par l’image (Nortel)

    Continuons un peu sur le futur des réseaux, en vous présentant une démonstration vidéo du LTE, effectuée au Canada. Le véhicule se déplacera au milieu de la vidéo à 108 km/h, à une distance d’environ 2 km de la cellule LTE, tout en continuant à offrir des débits de 20 Mbps up et 50 MBps down !! La 3G aurait-elle du soucis à se faire avec ce futur réseau LTE, également appelé 4G ?… Wait & see… 🙂