Ce simple interrupteur vous permettra de notifier les autres utilisateurs que votre FabLab est ouvert ou fermé.
Matériel :
* Un ESP8266 (NodeMCU ou Wemos Mini D1)
* Un interrupteur (ou un poussoir mais le code est à adapter)
* Un anneau de Leds de type NéoPixel
Étapes du projet
-
Étape 1
Préparer l'ESP à Micropython
Pour cela je vous propose de commencer par consulter la page :
https://fablab66.fr/#!/projects/python-sur-des-micro-controleurs-esp8266Vous flasherez alors votre ESP avec la dernière version de micropython avec µpycraft.
Vous aurez besoin de la librairie urequests. (présente dans Ntfy_python.zip )
-
Étape 2
Schéma de câblage
Attention, les LEDs adressables sont sensées fonctionner en 5V mais le signal de commande des ESP est en 3,3V donc si vous connectez la sortie 5V à VCC des LEDs alors celles-ci ne fonctionneront pas.
La Pin DO (ou DOUT) des Leds Néopixel ne nous intéressera pas ici.
MiniD1 3V3 VCC LEDs MiniD1 G G LEDs MiniD1 D2 (GPIO4) D In LEDs MiniD1 G G Interrupteur MiniD1 D1 (GPIO5) 1 Interrupteur -
Étape 3
Code Python
Situé dans le fichier Ntfy_python.zip, il contient la librairie urequest qui permet de faire les requêtes POST vers le site ntfy.sh
Le code main.py qui est lancé automatiquement après le fichier boot.py sur l'ESP.
import network, machine, time
import urequests as requests
import neopixel
url='http://ntfy.sh/mon-fil-de-notification'
#Nbre de led Neopixels
nbr_leds=16
#Broche de l'interrupteur
pin = machine.Pin(5, machine.Pin.IN, machine.Pin.PULL_UP)
#OnBoard led pour vérifier si l'esp se connecte
led = machine.Pin(2, machine.Pin.OUT)
#NeoPixel:
ring = neopixel.NeoPixel(machine.Pin(4), nbr_leds)
sta_if=network.WLAN(network.STA_IF)
if not sta_if.isconnected():
sta_if.active(True)
sta_if.connect('Reseau Wifi','MotDePasseDuReseau')
while not sta_if.isconnected():
pass
print(sta_if.ifconfig())
couleurs=[(255, 102, 0), # Orange
(255, 0, 102), # Rose bonbon
(153, 51, 255), # Violet
(0, 0, 255), # bleu pastel
(63, 255, 63), # vert pastel
(255,0,0)]
#Petite animation de lancement
for c in couleurs:
for k in range(nbr_leds):
ring[k] = c
ring.write()
time.sleep(0.1)
#Etat de l'interrupteur
state=0
#On fait une boucle infinie
while True:
#Si on observe un changement d'état
if pin.value() != state:
if state==0:
post_data="🟢 Le FabLab vient d'ouvrir".encode('utf-8')
state=1
couleur=(0,255,0) #Vert
else:
post_data='🔴 Le FabLab vient de fermer'.encode('utf-8')
state=0
couleur=(255,0,0) #Rouge
res = requests.post(url, data = post_data) #On notifie via le site internet
#On passe toutes les leds a la couleur souhaitee l'une apres l'autre
for i in range(2):
for k in range(nbr_leds):
ring[k] = couleur
ring.write()
time.sleep(0.1)
time.sleep(1) -
Étape 4
Conception boitier
Le fond du boitier présente deux trous pour la fixation au mur et une encoche pour le passage du câble USB.
L'avant du cache est percé à la dimension de l'interrupteur et la profondeur permet de mettre tout le matériel tout en laissant apparaitre le port USB du microcontrôleur. Il est également percé de deux petits trous latéraux pour placer deux petites vis pour permettre de rendre solidaires le fond et l'avant.
-
Étape 5
Préparer l'application mobile
Vous avez deux possibilités : l'application mobile ou l'application internet.
L'application mobile :
Rendez-vous sur le store de votre téléphone et installé l'application ntsy.sh.
Au lancement vous trouverez un signe "+" permettant de rajouter un fil à suivre, rentrez celui que vous avez déclaré dans votre programme Python.
N'oubliez pas d'activer les notifications en haut.
La web app (ou application internet):
Vous pouvez directement vous rendre sur la page https://ntfy.sh/app choisir "S'abonner à un sujet" en bas à gauche de la page et saisir le fil que vous avez intégré dans votre script Python.
-
Étape 6
Vous voila fin prêt
Votre premier objet connecté est prêt, vous devez attendre au lancement que votre microcontroleur se soit connecté à votre réseau wifi. Cette étape est réalisée quand la diode bleue présente sur l'ESP s'allume et que la séquence "Petite animation du lancement" commence.
-
Étape 7
Evolutions envisagées
La prochaine étape sera d'y inclure un lecteur NFC avec un code propre à chaque utilisateur de façon à savoir qui est présent au FabLab, qui a ouvert et fermé le lab.
Commentaires (0)
Aucun commentaire pour le moment.