Choisir les GPIO ESP32

Bonsoir,

J’utilise des ESP32 30 pins :

Sur le dernier j’ai branché un écran ili9341 qui utilise les broches 3.3 v + GND:

En GPIO :
GPIO17, GPIO18, GPIO19, GPIO21, GPIO22, GPIO23 et GPIO32

Tout ça fonctionne bien.

Maintenant je souhaite ajouter sur ce même ESP32 un capteur ultrasonic HC-SR04 dont le branchement habituellement donné est celui-ci :
echo : GPIO18
trig : GPIO05

Le GPIO18 étant déjà pris ai-je une solution ?
J’ai tenté en remplaçant :
GPIO18 (V_SPI_CLK) par GPIO14 (HSPI_CLK)
GPIO05 (V_SPI_CSO) par GPIO15 (HSPI_CSO)

Mais ça ne fonctionne pas, après l’install j’ai un time out :

[20:34:45][D][ultrasonic.sensor:036]: 'Ultrasonic Sensor' - Distance measurement timed out!
[20:34:45][D][sensor:127]: 'Ultrasonic Sensor': Sending state nan m with 2 decimals of accuracy

Une idée qui me vient en plus…
Puis-je afficher sur cet afficheur des données de capteurs branchés sur HA ou un autre ESP32.

Pour l’écran j’ai défini le SPI:

spi:
  clk_pin: GPIO18
  mosi_pin: GPIO23
  miso_pin: GPIO19

Une idée de branchement ?
Peut-être faut-il définir aussi un I2C ?
Peut-être que j’en demande trop à l’ESP32 :wink:

Merci d’avance à vous.

Bob

Salut Bob

j’ai pas ce capteur a la maison
cependant je regarde la datasheet
https://www.electroschematics.com/wp-content/uploads/2013/07/HC-SR04-datasheet-version-2.pdf

je ne constate pas qu’il soit interfacé en SPI ou en I²C

a toi de choisir 2 pin de ton choix
et de les utiliser telle quelle

par exemple si tu prends
GPIO12 et GPIO13
le code d’apres ESPHOME
devrait etre quelque chose comme

sensor:
  - platform: ultrasonic
    trigger_pin: GPIO12
    echo_pin: GPIO13

    name: "Ultrasonic Sensor"

tiens nous au courant

Salut,
t’es loin des limites là :slight_smile:

Pour un HC-SR04 tu peux prendre n’importe quel pin libre normalement.

Avec ESPHome tu peux afficher ce que tu veux de HA, pas besoin que ça soit connecté à ce microcontrôleur, et ça n’a rien à voir avec le protocole utilisé par l’écran.
Faut voir dans la doc de ESPHome, la partie sensor HA.

Bonsoir @jrvrcd, @AlexHass

J’ai tenté avec le changement de branchement et de config :

sensor:
  - platform: ultrasonic
    trigger_pin: GPIO12
    echo_pin: GPIO13
    name: "Ultrasonic Sensor"

Mais il reste inconnu !

image

Je regarde le post d’@AlexHass sur l’affichage Sensor HA de valeurs de capteurs autres que ceux connectés à l’ESP32 qui pilote l’afficheur :wink:

Sur un autre écran j’affiche ainsi les valeurs de capteurs relié à l’ESP qui pilote l’écran.

    pages:
      - id: page1
        lambda: |-
          it.printf(1, 0, id(my_font), "Temp : %.1f °C ", id(psalon2_temperature).state);
          it.printf(1, 10, id(my_font), "Hum   : %.1f ", id(psalon2_humidite).state);

Si souci je reviens :crazy_face:
Je reviendrai :rofl:

Merci, belle soirée.

Bob

salut bob
as tu essayé d’inverser les deux fils qui vont au gpio12 et gpio13 ???

Bonjour @jrvrcd, @AlexHass

j’ai inversé les fils et les attributions GPIO12 et 13 ajouter aussi un update_interval et ça fonctionne.

sensor:
  - platform: ultrasonic
    trigger_pin: GPIO13
    echo_pin: GPIO12
    name: "Ultrasonic Sensor"
    update_interval: 1s
    id: sensor_ultrasonic

Je testerai ce soir l’affichage d’entité HA sur l’écran.

Merci
Bob

1 « J'aime »

Je n’ai pas pu attendre :wink:

J’ai ajouté au yaml de l’ESP32 qui pilote l’écran un sensor de HA :

sensor:
  - platform: ultrasonic
    trigger_pin: GPIO13
    echo_pin: GPIO12
    name: "Ultrasonic Sensor"
    update_interval: 1s
    id: sensor_ultrasonic

  - platform: homeassistant
    id: current_temperature
    entity_id: sensor.psalon_temperature

Dans le display: mes deux capteurs, nickel @AlexHass

      - id: page5
        lambda: |-
          it.rectangle(0,  0, it.get_width(), it.get_height());
          it.print(3, 36, id(my_font18), my_red, TextAlign::LEFT, "Is a good day ");
          it.printf(1, 120, id(my_font18), "Distance   : %.1f M", id(sensor_ultrasonic).state);
          it.printf(1, 140, id(my_font18), "Temp  : %.1f °C", id(current_temperature).state);

Affichage OK
Merci

Bob

1 « J'aime »