Différents types d'ESP32?

Bonjour à tous,

J’en suis à créer une station de mesure de la qualité de l’air de ma maison et je me suis inspiré d’un tuto Youtube de Abrège.

Par contre j’ai pris un capteur type SM300D2 plus complet que celui utilisé qui sort 7 informations.

image

Bon température et humidité ne servent à rien car il semble que le capteurs correspondants soient chauffés par le reste de l’électronique et sortent des valeurs incohérentes.

Mais bon ces infos sont déjà disponible de manière fiables par d’autres sensors dans la pièce.

Mais ce n’est pas le sujet de mon poste.

Voila pour mon application j’ai décidé de mettre 5 rubans de 10 leds type WS2812b qui représenteront les jauges des différents capteurs et changeront de couleur en fonction des seuils atteints.

J’ai fait mon implantation en 3D et en m’inspirant de Abrege, c’est rubans sont indépendants, c’est là que j’ai un problème, étant sur plateforme ESP32 le programme exemple ne fonctionne pas, car il utilise un ESP8266 et une plateforme Arduino plus ancienne.

esp8266:
  board: esp01_1m
  framework: 
    version: 2.7.4

Sur ESP32 la doc conseille d’utiliser : ESP32_rmt_led_strip

light:
  - platform: esp32_rmt_led_strip
    rgb_order: GRB
    pin: GPIO13
    num_leds: 30
    rmt_channel: 0
    chipset: ws2812
    name: "My Light"

Seulement voila pour mon application il faut 5 « rmt_channel » différents, et mon ESP32 n’en accepte que 2 d’aprés mes essais (0 et 1)

Toujours d’aprés la doc ce serait donc un ESP32-C3 ???

"

  • rmt_channel (Required, int): The RMT channel to use. If using multiple strips, you need to use different channels.

  • ESP32: 0 to 7

  • ESP32-S2: 0 to 3

  • ESP32-S3: 0 to 3

  • ESP32-C3: 0 or 1

"
Ma question donc :

Comment se procurer une carte embarquant un ESP32 (tout court, et surtout pas S2, S3 et encore moins C3).

Je ne me rappelle pas avoir jamais vu de spécification de ce type dans mes achats précédents.

Si quelqu’un a une idée d’un site qui peut certifier la version de l’ESP32 embarqué je suis preneur.

A+

Philippe

Pour le moment j’essaie de reprendre juste les rubans, avec une seconde plaquette D1mini pour avancer sur le programme mais ce n’est pas élégant, je l’avoue et ne pourra pas fonctionner sans le Wifi ce qui est dommage en cas de pollution.
Une autre solution serait de mettre les rubans en série sur le même pin, mais cela va me faire reprendre toute ma modélisation et mes impressions 3D pour passer les câbles …

quel est ton esp32 actuel ?
c’est noté 99.99% du temps normalement.

Salut

Normalement les ESP32 d’azdelivery sont bon pour ton utilisation

trouvable sur tamazon

Ok j’en commande un pour voir alors.

Merci.

A+ Philippe

Dans mon cas c’est gravé « ESP-wroom-32 ».

l’ESP wroom sauf erreur de ma part est l’ESP32 de base donc si tu en as deja un et que ca fonctionne pas celui d’azdelivery ne fonctionnera pas

Je suis d’accord… quand je regarde la nomenclature Espressif, c’est un vrai foutoir, mais si il s’agit d’un S, d’un C ou d’un H ça devrait apparaitre…

Mais là je suis coincé donc.

mets ton code esphome complet pour voir deja.
tu as que 2 bandes de led qui fonctionnent c’est ca ? pas plus ?
dans le log de esphome ca dit quoi?

tu peux tjrs demonter le shield de l esp32 pour etre certains

Bonjour,

Oui c’est ça, si je configure :

light:
  - platform: esp32_rmt_led_strip
    rgb_order: GRB
    pin: GPIO13
    num_leds: 10
    rmt_channel: 0
    chipset: ws2812
    name: "Strip_CO2"

Je peux voir s’allumer le bandeau seulement si je met rmt_channel à 0 ou 1, il en prend pas pas les autres options.(à partir de 2)

D’où mon problème.

Je reconfigure pour voir les log.

A bientôt.

Philippe

j’ai des « wroom » a la maison je testerais ce soir

tu peux mettre ton code complet
et tu peux pas faire ca sur 3 gpio ?
1er 2 channel
2me 2channel
3eme 1 channel

Salut,

quand je veux etre sur des boards que je prends:

* DFRobot

* Adafruit

Puis je les commandes sur :
RS-Particulier (petite astuce chercher sur RS-Pro et coller le code produit dans la version particulier car le moteur de recherche est null) (et deuxième astuce Kdo le weekend Fdp offert sur Rs-Particulier)
ou sur
Mouser

Salut en fait 5 channels, comme j’ai 5 capteurs.

Donc j’ai refait un bout de programme et là ça marche … en fait j’utilise cette fois le on-value et j’ai changer le nombre de led pour chaque Pin pour déverminer. J’ai bien une mise à jour toute les 30 secondes quand le SM300 envoie ses infos.

# Configuration du SM300
uart:
  rx_pin:
    number: 3
    mode: INPUT_PULLDOWN
  tx_pin: 1
  baud_rate: 9600

# Déclaration des capteurs

sensor:

  - platform: homeassistant
    entity_id: sensor.temperature_salon_temperature_2
    id: temp_interieur
    internal: true

  
  - platform: homeassistant
    entity_id: sensor.temperature_salon_humidity_2
    id: hum_interieur


  - platform: homeassistant
    entity_id: sensor.wupws_temp
    id: temp_exterieur
    internal: true

  - platform: homeassistant
    entity_id: sensor.wupws_humidity
    id: humid_outdoor

  - platform: wifi_signal
    name: "WiFi Signal Sensor"
    id: wifisignal
    update_interval: 60s

  - platform: sm300d2
    co2:
      name: "SM300D2 CO2"
      id: sm300d2_co2
      on_value:
        then:
          - light.addressable_set:                # Effacement du ruban led
              id: Strip_CO2
              range_from: 0
              range_to: 9
              red: 0%
              green: 0%
              blue: 0%
          - delay : 100ms
          - light.addressable_set:
              id: Strip_CO2
              range_to: 2                                     # Allumage de 3 à 7 Leds suivant ruban pour test
              red:   100%
              green:  100%
              blue: 0
    pm_10_0:
      name: "SM300D2 PM10"
      id: sm300d2_pm10

      on_value:
        then:
          - light.addressable_set:
              id: Strip_PM10
              range_from: 0
              range_to: 9
              red: 0%
              green: 0%
              blue: 0%
          - delay : 100ms
          - light.addressable_set:
              id: Strip_PM10
              range_to: 3
              red:   100%
              green:  100%
              blue: 0         
      
    pm_2_5:
      name: "SM300D2 PM2.5"
      id: sm300d2_pm25

      on_value:
        then:
          - light.addressable_set:
              id: Strip_PM25
              range_from: 0
              range_to: 9
              red: 0%
              green: 0%
              blue: 0%
          - delay : 100ms
          - light.addressable_set:
              id: Strip_PM25
              range_to: 4
              red:   100%
              green:  100%
              blue: 0

    formaldehyde:
      name: "SM300D2 Formaldehyde"
      id: sm300d2_formal

      on_value:
        then:
          - light.addressable_set:
              id: Strip_Form
              range_from: 0
              range_to: 9
              red: 0%
              green: 0%
              blue: 0%
          - delay : 100ms
          - light.addressable_set:
              id: Strip_Form
              range_to: 5
              red:   100%
              green:  100%
              blue: 0
    tvoc:
      name: "SM300D2 TVOC"
      id: sm300d2_tvoc
      
      on_value:
        then:
          - light.addressable_set:
              id: Strip_TVOC
              range_from: 0
              range_to: 9
              red: 0%
              green: 0%
              blue: 0%
          - delay : 100ms
          - light.addressable_set:
              id: Strip_TVOC
              range_to: 6
              red:   100%
              green:  100%
              blue: 0

    temperature:
      name: "SM300D2 Temperature"
      id: sm300d2_temp
    humidity:
      name: "SM300D2 Humidity"
      id: sm300d2_hum

    update_interval: 60s


# Déclaration des rubans LEDS

light:

  - platform: esp32_rmt_led_strip
    chipset: WS2812
    id: Strip_CO2
    pin: 4
    num_leds: 10
    rgb_order: GRB
    name: "Strip_CO2"
    rmt_channel: 0

  - platform: esp32_rmt_led_strip
    chipset: WS2812
    id: Strip_PM10
    pin: 5
    num_leds: 10
    rgb_order: GRB
    name: "Strip_PM10"
    rmt_channel: 1

  - platform: esp32_rmt_led_strip
    chipset: WS2812
    id: Strip_PM25
    pin: 18
    num_leds: 10
    rgb_order: GRB
    name: "Strip_PM25"
    rmt_channel: 2

  - platform: esp32_rmt_led_strip
    chipset: WS2812
    id: Strip_Form
    pin: 19
    num_leds: 10
    rgb_order: GRB
    name: "Strip_Formal"
    rmt_channel: 3

  - platform: esp32_rmt_led_strip
    chipset: WS2812
    id: Strip_TVOC
    pin: 21
    num_leds: 10
    rgb_order: GRB
    name: "Strip_TVOC"
    rmt_channel: 4            

Donc oui les Vroom sont des esp32 tout court …

Merci pour votre aide.

Ok merci du retour donc pas de tests ce soir

je connais pas les led strip
mais c’est pas n channels par gpio ?
ou c’est n channel au global 1/gpio

Ben dans ce cas et d’aprés ma compréhension il faut un rmt_channel par GPIO et donc par ruban. Même si je pense que l’on peut mettre deux rubans sur le même GPIO mais ils seront clones.

Merci de ton aide quand même.

A+ Philippe

Je vais continuer mon programme pour avoir ces jauges variable en fonction des valeurs.

A+

est ce que tous les gpio sont compatibles avec cette fonction ?

Tous je ne sais pas mais là ça marche sur les pins 4,5 ,18,19 et 21. Ceux qui servent à tout quoi.