Clavier DIY pour alarmo

Bonjour à tous,

Sans aucune prétention je vous présente un clavier (+lecteur de badge) DIY pour activer et désactiver alarmo.
Le matériel: un clavier wiegand (19€), un esp32(3€), 4 led individuelles WS2812b (15 € les 100 leds).
Pourquoi ce clavier, j’ai regardé ce qu’il existait et je voulais des leds qui se voient pour connaitre l’état de l’alarme et surtout aussi reprendre le code couleur de Alarmo. Il ne me semble pas avoir vu sur le clavier Frient que l’on pouvait piloter des leds et un plus d’un pris assez élevé je trouve.

Alarme désactivée : C’est blanc la photo rend bleu…

Alarme en activation, délai pour sortir :

Alarme activée :

Si alarme déclenchée allumé en rouge

Pour activer ou déactiver, soit par un code (suivant utilisateur) ou un badge (par utilisateur) j’ai aussi une télécommande.

J’ai oublié de préciser que le boitier n’est pas livré avec je l’ai fait en impression 3d transparent que j’ai peint en noir en laissant une bande transparent pour les leds.

Après j’ai pas peaufiné car j’aurai pu rajouter des sécurité si tentative de plusieurs code avec notification et déclenchement de l’alarme.

Voila je pense avoir fait le tour, dites moi si vous pensez que c’est gadget et autre, les critiques peuvent être constructive.

Merci à vous.

6 « J'aime »

Hello,

Avec un schéma et le bloc code (si tu veux le partager), voir de quoi imprimer le boitier, ça serait parfait :wink: n’hésite pas à compléter ton premier message en l’éditant si besoin :slight_smile:

cdt

2 « J'aime »

Salut,

C’est vraiment pas mal comme projet ! Bravo

Je me demande si pour ajouter du défi ce serait possible de le mettre en lieu et place d’un interrupteur dans une boîte d’encastrement au lieu de l’avoir en saillie :thinking:

Bonjour,

Ce clavier wiegand est fait de base pour être installé dans un boitier d’encastrement électrique donc en lieu et place d’un interrupteur. Tu n’auras que la led de devant. Le reste c’est moi qui est fait le boitier en saillie avec la transparence pour placé les leds au code couleur de alarmo.
Petite précision, Wiegand est une norme de câblage après tu peux mettre n’importe quel clavier qui respecte cette norme. Clavier ou lecteur RFID ou même empreinte digital.

Bonjour

Ça m’intéresse grandement. Pourrais-tu compléter avec la ref de tes composants , ton cablage et ton code esp?

Merci

Super réalisation !

Et je suis justement en phase de réflexion pour mettre en place la mienne.

Donc si tu pouvais mettre la réf et / ou l’URL de ton clavier et le code ESP, ça serait top !!

Voici les matériels utilisés, mais comme dit précédemment ce n’est pas obligatoire de prendre ce modele tant que ça respecte la norme wiegand. Et autre chose a vérifier la fréquence du lecteur de badge si vous en avez déjà des badges.

Claviere Wiegand

https://fr.aliexpress.com/item/1005001453021419.html?spm=a2g0o.detail.pcDetailTopMoreOtherSeller.2.3a18vfBWvfBWsb&gps-id=pcDetailTopMoreOtherSeller&scm=1007.40196.439370.0&scm_id=1007.40196.439370.0&scm-url=1007.40196.439370.0&pvid=351bfcc5-2b2d-4847-9b7e-feef1c915683&_t=gps-id:pcDetailTopMoreOtherSeller,scm-url:1007.40196.439370.0,pvid:351bfcc5-2b2d-4847-9b7e-feef1c915683,tpp_buckets:668%232846%238111%231996&pdp_ext_f=%7B%22order%22%3A%2218%22%2C%22eval%22%3A%221%22%2C%22sceneId%22%3A%2230050%22%2C%22fromPage%22%3A%22recommend%22%7D&pdp_npi=6%40dis%21EUR%2118.48%2111.69%21%21%2120.95%2113.25%21%40211b619a17645860771294771ee688%2112000016168075489%21rec%21FR%21%21ABXZ%211%210%21n_tag%3A-29910%3Bd%3A627cba5%3Bm03_new_user%3A-29895%3BpisId%3A5000000187633564&utparam-url=scene%3ApcDetailTopMoreOtherSeller%7Cquery_from%3A%7Cx_object_id%3A1005001453021419%7C_p_origin_prod%3A

Espe32 S2 mini

led WS2812b

https://www.amazon.fr/BTF-LIGHTING-adressables-individuels-dissipateur-thermique/dp/B088K6C7TJ/ref=sr_1_11?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=396JXZ6RXOES1&dib=eyJ2IjoiMSJ9.ER-ZLWCBG7aUvYR8llp8a1YVtatOy4y8cpXzygCibChc1oL3mdP3wmtXpXZ5bYwgB17K9IjV1DvPY00Ep5dAk3hShYXO3ZwPQ7PtI7BDoJ-3z-M3D9qadjWkzItGG8zCp1_z5o_j7bF1TJ_b8R-jEgbtImewpZ8pncz0alIOEMiIAtsIp76w_JXA4Gjf2itvr3XIfFGPn00J-hfsrTvBHqnxpjVj6LqWiCQ0LzOErSaGSQivfypGSpRU3A27sZzsOL5IQo-HhX9QVURzynWLFtxSenn8NnKpVtP6kgp0CEc.PoQ8lfrx0D8–DxqM2FlDDhpIOm3WHExWmqfrBgHSV4&dib_tag=se&keywords=WS2812b&qid=1764586190&sprefix=ws2812b%2Caps%2C142&sr=8-11&th=1

Le code ESPHome

captive_portal:
wiegand:
  - id: clavier
    d0: GPIO4
    d1: GPIO5
    on_key:
      - lambda: ESP_LOGI("KEY", "received key %d", x);
    on_tag:
      - lambda: ESP_LOGI("TAG", "received tag %s", x.c_str());
      - text_sensor.template.publish:
          id: tag_lu
          state: !lambda "return x.c_str();"
      # Enregistre également dans le log
      - logger.log:
          format: "Tag lu: '%s'"
          args: [ 'x.c_str()' ]
      # Attendre 5 secondes, puis réinitialiser l'entité tag_lu à une valeur neutre
      - delay: 5s
      - text_sensor.template.publish:
          id: tag_lu
          state: "Aucun tag"          
    on_raw:
      - lambda: ESP_LOGI("RAW", "received raw %d bits, value %llx", bits, value);

# Déclaration d'un text sensor
text_sensor:
  - platform: template
    name: "Code clavier saisi"  
    id: code_clavier
  - platform: template
    name: "Tag lu"
    id: tag_lu

# Définition du key collector
key_collector:
  - id: pincode_reader
    source_id: clavier
    min_length: 1
    max_length: 8
    end_keys: "#"
    end_key_required: true
   # back_keys: "*"
    clear_keys: "*"
    allowed_keys: "0123456789"
    timeout: 5s
    on_result:
      # Met à jour le text_sensor avec le code saisi
      - text_sensor.template.publish:
          id: code_clavier
          state: !lambda "return x.c_str();"
      # Enregistre également dans le log
      - logger.log:
          format: "input result: '%s'"
          args: [ 'x.c_str()' ]
      # Attendre 5 secondes, puis réinitialiser l'entité code_clavier à une valeur neutre
      - delay: 5s
      - text_sensor.template.publish:
          id: code_clavier
          state: "Aucun code"          
    on_timeout:
      - logger.log:
          format: "input timeout: '%s', started by '%c'"
          args: [ 'x.c_str()', "(start == 0 ? '~' : start)" ]

switch:
  - platform: gpio
    pin: GPIO8
    inverted: True
    id: led
    name: "Allumer la LED du Clavier en vert"
    #on_turn_on:
    #- delay: 3s
    #- switch.turn_off: led
  - platform: gpio
    pin: GPIO9
    inverted: True
    id: beeper
    name: "Faire sonner le beeper du clavier"
    #on_turn_on:
    #- delay: 500ms
    #- switch.turn_off: beeper

# Configuration led WS2812B
light:
  - platform: fastled_clockless
    id: led_alarm
    chipset: WS2812
    pin: GPIO39
    num_leds: 4
    rgb_order: GRB

  - platform: partition
    name: "Led 1"
    segments:
      - id: led_alarm
        from: 0
        to: 0

  - platform: partition
    name: "Led 2"
    segments:
      - id: led_alarm
        from: 1
        to: 1
  
  - platform: partition
    name: "Led 3"
    segments:
      - id: led_alarm
        from: 2
        to: 2

  - platform: partition
    name: "Led 4"
    segments:
      - id: led_alarm
        from: 3
        to: 3
1 « J'aime »