Config esp32 commande moteur pas à pas et CC

Bonjour,
Ma boîte aux lettre se remplie actuellement d’ESP32, de différents type de moteurs et de modules de pilotage, L298N, L9110S, tout va très bien actuellement au soleil mais à mon retour ça va coder ESPhome, alors si vous avez des codes, câblages pour piloter des moteurs avec ces modules je suis très preneur.
Le but ? Piloter des rideaux, des stores, apprendre encore.
Je vais profiter des îles et attendre patiemment vos suggestions, c’est top d’avoir un système domotique fiable pilotable de si loin, merci HACF.
Bob

Bonsoir,
Retour et tout est arrivé, je déballe, donc si quelqu’un à sous la main des branchements d’ESP32 avec un L298N et du code ESPHome je prends, sinon je partagerai ce que je ferai dans les jours à venir.
Bonne soirée
Bob

Bonsoir

Une recherche rapide sur Google et je suis tombé sur ça :

Ça peut te donner une base de départ

Bonne soirée

Bonjour @Nardo,

Merci, là c’est de la programmation Arduino mais j’ai prit le câblage de l’article en remplaçant les piles par une alimentation sur secteur, j’ai aussi ajouté un module deux relais.
Dans ESPHome ça donne ça (pas encore fait la dernière mise à jour ESPHome):

esphome:
  name: esp32-moteur-rideau-est
  friendly_name: ESP32 Moteur Rideau Est

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "E2xSHvO3Uc4+DksiUE+m9AMc/Ue/zz7ttZ9TQGa/YcQ="

ota:
  - platform: esphome
    password: "c52c5236ca0abdc30b29caf625695468"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.1.44
    gateway: 192.168.1.254
    subnet: 255.255.255.0  

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32-Moteur-Rideau-Est"
    password: "kAbQL087F5eV"

captive_portal:

output:
  - platform: ledc
    pin: GPIO27
    id: motor_forward_pin
  - platform: ledc
    pin: GPIO26
    id: motor_reverse_pin
  - platform: ledc
    pin: GPIO14
    id: motor_enable
    
# Example configuration entry
fan:
  - platform: hbridge
    id: my_fan_est
    name: "Rideau Est"
    pin_a: motor_forward_pin
    pin_b: motor_reverse_pin
    enable_pin: motor_enable
    decay_mode: slow   # slow decay mode (coasting) or fast decay (braking).
    
switch:
  - platform: gpio
    name: "LedBleu2Moteur1"
    id: ledbleu2moteur1
    pin: 2
  - platform: gpio
    name: "Relais1"
    pin: 32
    id: relais1
  - platform: gpio
    name: "Relais2"
    pin: 33
    id: relais2

web_server:
  port: 80


Le câblage : https://app.cirkitdesigner.com

Parfait pour un premier test de pilotage de moteur à CC via ESP32.
J’ajouterai un post quand j’aurai testé les moteurs pas à pas.

Bob

Salut, cet article parlait justement de la mise en pratique d’un ESP32 avec un moteur à courant continu et carte de contrôle moteur.
Tu peux sûrement piquer des idées.

Bonsoir @LeorFinacre et merci,
Oui je l’avais vu et je m’en suis un peu inspiré, il me manquait quelques infos et je n’utilise pas d’ESP8266.

Voici pour un moteur pas à pas Nema 17, ESP32 et driver A4988 :

Câblage:

Yaml ESPHome:

esphome:
  name: esp32-moteur-nema17-eau
  friendly_name: ESP32 Moteur Nema17 Eau

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "V/TzjaxfwQvWW9MjKMa08kupmq4DszA1bInXXFqOh90="

ota:
  - platform: esphome
    password: "eac31ee11b1d66a4c75d0j452dd65eb1"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.1.13
    gateway: 192.168.1.254
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32-Moteur-Nema17-Eau"
    password: "kmyltMEv416s"

captive_portal:

stepper:
  - platform: a4988
    id: my_stepper_eau
    step_pin: GPIO13
    dir_pin: GPIO12
    max_speed: 25 steps/s  # Ajuste selon tes besoins

    # Optional:
    #sleep_pin: GPIO14
    #acceleration: 200 steps/s²
    #deceleration: 200 steps/s² 


switch:
  - platform: template
    name: "Moteur ON/OFF"
    turn_on_action:
      - stepper.report_position:
          id: my_stepper_eau
          position: 0
    turn_off_action:
      - stepper.set_target:
          id: my_stepper_eau
          target: 0

  - platform: gpio
    name: "LedBleu2MoteurEau"
    id: ledbleu2moteur1
    pin: 2 

number:
  - platform: template
    name: "Déplacement en pas"
    min_value: -200
    max_value: 200
    step: 5
    set_action:
      then:
        - stepper.set_target:
            id: my_stepper_eau
            target: !lambda 'return x;'

  - platform: template
    name: "Vitesse du moteur"
    id: speed_slider_eau
    min_value: 5
    max_value: 500
    step: 5
    optimistic: true
    initial_value: 200

button:
  - platform: template
    name: "Arrêter moteur"
    on_press:
      - stepper.set_target:
          id: my_stepper_eau
          target: !lambda 'return id(my_stepper_eau).current_position;'  # Stop immédiat

  - platform: template
    name: "Démarrer moteur"
    on_press:
      - stepper.report_position:
          id: my_stepper_eau
          position: 0
      - stepper.set_target:
          id: my_stepper_eau
          target: 100  # Nombre de pas
      - stepper.set_speed:
          id: my_stepper_eau
          #speed: 250 steps/s
          speed: !lambda 'return id(speed_slider_eau).state;'  # Prend la vitesse du slider

web_server:
  port: 80
    

Aperçu HA:

En automatisation:

C’est un premier test fonctionnel et toutes idées d’amélioration seront les bienvenues.
Là le but c’est de remplacer ma commande de vanne 1/4 de tour sur l’arrivée d’eau, les deux que j’ai acheté n’ont pas tenu donc je vais tenter en DIY.

Bob

Je pense que pour que tout se passe bien avec des vannes 1/4 de tour il faut les manipuler régulièrement sinon elles se grippent et du coup les moteurs n’arrivent plus à les actionner.

J’en ai changer un paquet dans le jardin. On met une vanne en se disant au moins je peut couper un secteur et intervenir dessus et quand au bout de 3 ans on veut intervenir et que l’on ne l’a jamais manipulée il faut forcer comme pas possible pour arriver à la fermer.

alors, il faudrait envisager une automatisation d’un test régulier:

avoir en amont (de l’arosage) une vanne générale et un capteur de débit

à une date précise, on coupe la vanne générale, on vérifie que le débit est à zero
on ouvre une vanne d’arosage, on ouvre la vanne générale arosage, on verifie que ca débite et ensuite on coupe tout.
on recommence avec la vanne d’arrosage suivante.
ca permet de tester toute la chaine d’arrosage., le capteur de débit n’a pas besoin d’etre top top et peut etre facilement inserré apres la vanne générale d’arrosage.

pour les autamatisations d’arosage ‹ normales ›, il pourrait etre astucieux de fermer la vanne générale d’arosage dès qu’une vanne d’arosage se referme et de l’ouvrir dès qu’une vanne s’ouvre.
ca consomme x fois plus de pile sur la vanne générale si on a x vannes dans le jardin, mais elles bossent toutes.
dans le cas d’une vanne d’arrivée au compteur général, il serait peut etre judicieux de la fermer et de l’ouvrir une fois par mois, à une heure où il n’y a pas de conso d’eau, genre 4h du matin…