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

  • | |

    RouterOS : gestion du ping et alerte

    Comment surveiller une IP sur votre routeur RouterOS 7.xx ? Un simple script, ping, se chargera de vous prévenir par email (à condition d’avoir configuré votre envoi d’email dans /tools/e-mail, cf plus bas dans ce billet. Voici déjà le script qui va tester 3 fois l’adresse 192.168.1.21, et en cas de non-réponse envoyer un email aux deux destinataires, recipient et recipient1 mentionnés dans le script : Pour ce qui est de la configuration de l’email dans /tools/e-mail : Ici, nous…

  • Raspberry Pi : alarme !!

    Détecter une ou plusieurs ouvertures de porte, détecter des codes 433 MHz, capturer l’image d’une ou plusieurs caméras IP (via leurs flux RTSP), alerter par SMS ou email, voici autant de fonctionnalités que nous pourrions demander à un Raspberry Pi utilisé en alarme. C’est avec toutes ces fonctionnalités que j’ai débuté la programmation en Python 3, cherché comment articuler tout ce petit monde sans bugs. J’ai réutilisé mon précédent travail sur la réception 433 MHz, en la faisant fonctionner en…

  • Domotique : une télécommande radio à moindre coût

    Souvenez-vous, en 2011 je vous présentais dans ce billet une interface IP avec commande de relais. Depuis, de l’eau a coulé sous les ponts, le matériel est installé et sert à contrôler pas mal de choses ici, dont une simulation de présence. Mais tout est relié par fil et ce n’est pas toujours super pratique de devoir se greffer sur de l’existant. Par contre, venir tout gérer sans fil, sans pour autant devoir utiliser le protocole XY-RF24TZK ou la norme…

  • Au vol : nouveau rebondissement (MAJ 17/01/11)

    Souvenez-vous de cette escroquerie par carte bancaire, cf ce billet, et l’incompétence du Crédit Agricole pour donner une suite judiciaire à cette affaire en s’associant à ma plainte. Je viens de relancer le service de gendarmerie compétent, voici la réponse : « Je vous donne quleques nouvelles de ce type d’affaire : notre service s’est particulièrement investit dans ce type d’escroquerie depuis plusieurs mois et les investigations ont permis de cibler plusieurs commanditaires agissant depuis l’afrique francophone principalement . Les personnes…

  • 4G Bouygues : satisfait ou remboursé !

    Bouygues propose une offre simple : un premier mois de forfait 4G offert et, au cours de ce mois, la possibilité de résilier sans frais et de se faire rembourser l’achat du téléphone si le client n’est pas satisfait de l’offre.   Olivier Roussat, Président Directeur Général de Bouygues Telecom, déclarait : « Avec cette initiative, Bouygues Telecom lève le dernier frein à la démocratisation de la 4G : désormais, tous les Français peuvent venir essayer la 4G sur le plus…

  • Bouygues 4G : premier bilan

    Bonne surprise, une nouvelle carte SIM prêtée et voici la 4G de Bouygues qui prend enfin vie à Pontchateau (44) : 53 Mbps, un signal moyen, donc plutôt pas mal, sachant que d’autres essais ont pu atteindre 60 MBps en s’approchant du relai 4G, avec le signal maximum : Voici un record en connexion mobile pour ce qui me concerne, sur une Nexus 7 LTE. Nous sommes bien entendu assez éloignés des 100 Mbps promis par l’opérateur qui ferait bien…