Commander un relais avec un esp32

Salut à tous,

J’ai un ESP32-WROOM-32D et un module relais avec un SRD-5VDC-SL-C

Je voudrais pouvoir faire un contact momentané pour un courant assez faible (à l’intérieur d’un clavier USB, pour simuler la pression d’une touche).

J’ai cherché un peu, mais j’ai peur de faire une bêtise au niveau du voltage, du câblage, de l’alimentation du module.

Si vous aviez des informations ou un tutoriel, …

D’avance , merci.

Salut

Pour le câblage en partant du principe que ton esp sera alimenté par usb

Pour l’alimentation et la commande du relais

  • Vin de l’esp (pin en bas a gauche sur la photo) vers Vcc relais
  • Une des pins gnd de l’esp vers gnd relais
  • une des pins gpio de l’esp (par ex D25) vers In1 du relais

Pour la sortie du relais

  • Un coté de ta touche du clavier sur la borne du milieu du relais
  • L’autre coté de ta touche clavier sur la borne de gauche (quand tu regardes le relais vis face a toi)

Merci beaucoup!

Et pour programmer le esp32, par home assistant direct, esphome, peut être?

J’ai vu que plusieurs solutions étaient possibles.

Oui je fais ça direct dans esphome

Désolé de poser encore des questions, mais, jusqu’ici, je n’ai su programmer qu’un « Bluetooth proxy », avec une configuration pré-construite…

Je prend quelle option dans esphome ?

Si c’est correct et que ca peut intéresser quelqu’un, un petit schéma :

Je ne saurais pas te dire j’ai jamais utilisé ni l’un ni l’autre.

Je passe par la doc ici ESPHome — ESPHome

et je cherche dans les composants la syntaxe selon ce que je veux faire.

Pour commander un relais il te faut un switch gpio par exemple comme décrit ici

Ps: mon esphome est installer dans HA en tant que module complémentaire et je fais tout depuis cet interface.

Si tu veux initialiser ta carte par ready made project, il te faudra utiliser la dernière option Empty ESPHome device mais ça ne fera que la partie initialisation normalement, après il faudra coder toi même.

Ok c’est parti, les mains dans le cambouis.

Avec tes explications, ca devrait le faire.

Merci encore, je reviendrai ici pour rendre compte.

Alors…

Je ne pense vraiment pas être loin, mais ca ne fonctionne pas…

Donc, j’ai fait l’installation de python et esphome :
https://esphome.io/guides/installing_esphome

j’ai créé un nouveau dossier pour le projet et lancer un terminal a cet emplacement.

j’ai lancé le wizard d’esphome avec la commande :

esphome wizard config.yaml

j’ai choisi le modèle d’esp32 qui semblait correspondre a mon materiel, a priori un « Denky32 » (WROOM32)

https://docs.platformio.org/en/latest/boards/espressif32/denky32.html#board-espressif32-denky32

puis ajouter le GPIO switch au fichier yaml :

en définissant le GPIO25 pour mon switch, mon yaml:

esphome:
  name: clavier

esp32:
  board: denky32
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  password: "unpasspourlaconnexion"

ota:
  password: "unpasspourlaconnexion"

wifi:
  ssid: "monwifi"
  password: "monpasswifi"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Clavier Fallback Hotspot"
    password: "unpasspourlaconnexion"

captive_portal:
    
    
switch:
  - platform: gpio
    name: "Clavier"
    pin: GPIO25

La partie definition de la carte a été remplie automatiquement par le wizard :

esp32:
  board: denky32
  framework:
    type: arduino

Mais ce n’est pas la meme que ce qui est indiqué sur la page de la carte, mais comme je n y connais rien, c’est peut être le bon:
(Denky32 (WROOM32) — PlatformIO latest documentation):

[env:denky32]
platform = espressif32
board = denky32

Et donc quand j’active le bouton dans mon home assistant, le relais a l’air de réagir mais très faiblement, la led rouge perd un tout petit peu d’intensité, et se rallume très vite, mais le contact ne change pas.

Par contre quand je débranche n’importe quel fil connecté au module relais, vcc, gnt ou int, le contact s’inverse correctement.

L’alimentation de tout le circuit se fait par un chargeur usb a priori de qualité, (huawey d’origine fast charge 65W) mais peut être que le courant n’est pas suffisant… 5V - 2A - 10W ou 10V - 6.5A - 65W

2024-06-02 21.06.29-1

J’ai essayé avec d’autre chargeurs meme résultat, peut être faut il une alimentation « externe » supplémentaire.

Si quelqu’un a une idée…

je pencherai soit pour le type de board dans la config, soit pour l’alim, mais la vérité est peut être ailleurs…

La tu as créé le switch pour qu’il apparaisse dans HA et te permette de piloter le relais.
Mais tu n’a pas fait le lien entre le switch et le relais:

Essaye ce code :

switch:
  - platform: output
    output: relais
    name: "switch relais"
    id: switch_relais

output:
  - id: relais
    platform: gpio
    pin: 
      number: GPIO25

Par contre je ne comprends pas pourquoi tu n’as pas juste installé l’addon esphome dans HA au lieu de passer par python etc…

un petit truc quand on commence, c’est de mettre une led à la place de ce qu’on veut commander en respectant le + et le -

la diode s’allume, c’est que la pin est alimentée.
une diode rouge tiens sans résistance pour peu qu’elle ne soit pas alimentée trop longtemps.