Notificateur connecté

par Fabien ·16/01/2023 · 4 vues
Notificateur connecté
Communautés : 🏭 FabLab Maillol

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

  1. É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-esp8266


    Vous 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 )

  2. É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.

    MiniD13V3VCCLEDs
    MiniD1GGLEDs
    MiniD1D2 (GPIO4)D InLEDs
    MiniD1GGInterrupteur
    MiniD1D1 (GPIO5)1Interrupteur


  3. É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)

  4. É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.

  5. É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.


  6. É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.

  7. É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.

Connectez-vous pour laisser un commentaire.

Collaborateurs

F
Fabien chef