HA- Mesure UV Avec ESPHome

Intro

Dans cet article, je vous propose la réalisation d’un système de mesure d’Ultra Violet à base d’ESP. Il s’agit d’une réalisation personnelle, elle peut être largement optimisée surtout dans sa réalisation: Alimentation 5V extérieure, cablage en fil volant, etc..

Initialement développé pour compléter les données transmises par ma station météorologique Davis Instrument Vantage Pro2, j’ai exploité quelques temps les relevés UV transmis par l’ESP avant de mettre en oeuvre un capteur UV directement raccordé à la VP2, voir mon article sur le sujet.

En quoi cela est utile de mesurer les UV, et bien c’est avant tout pour être alerté des effets néfastes de ces rayons sur la peau.

Un article Wikipédia décrit très bien ce sujet, mais Google est votre ami.

Partie Matérielle

Liste de course:

La liste de course est plutot réduite:

  • Un Esp D1 mini,
  • Un capteur UV ML8511, acheté chez Gotronic plus fiable et performant que les clones chinois.
  • Une alimentation 220VCA-5VCC courant continu. Peut être remplacée par une alimentation exterieur,
  • Une led et sa résistance (Facultatifs)
  • Divers composants et accessoires

Caractéristiques techniques du ML8511

Extrait issu de la documentation disponible sur Gotronic.

Schéma Electronique:

Schéma développé sous Eagle.

Le capteur UV délivre 2.8 VCC max donc compatible avec l’entrée analogique de l’ESP limitée à 3.3V.

On y retrouve, outre la liste de course, un connecteur pour un reset extérieur mais en fin compte je ne l’utilise jamais donc pas vraiment utile.

Circuit Imprimé:

Le CI est facultatif, vous pouvez vous en passer, personnellement, je préfère un CI, c’est plus fiable dans le temps (avis perso).

Routage du circuit réalisé avec Eagle, là encore il peut être largement optimisé en dimension.

Mise en oeuvre

J’ai intégré l’ensemble dans une boite étanche. Il est important de laisser la cellule de mesure du capteur à l’air libre, si on la mets derrière un couvercle transparent, les mesures peuvent être faussées. Pour éviter les oxydations de contact, j’ai soudé les fils du capteur directement sur le CI et pulvérisé du vernis pour circuit imprimé (attention de ne pas en mettre sur la cellule de mesure). A l’extérieur, le matériel est soumis à rude épreuve, le miens est resté 6 mois dehors.

Pour info, j’avais au début raccordé également un capteur BME280 (bus I2c) qui devait mesurer l’humidité et la température, il n’a pas résisté longtemps aux fortes chaleurs, plus de 70° dans le boitier. L’ESP et l’alimentation ont tenus le choc.

Partie Logicielle

Diagramme du ML8511:

Ci dessous vous trouverez la courbe du ML8511. C’est une droite avec un décalage en Y, rien de bien sorcier d’autant plus que EspHome gère parfaitement cette mise à l’échelle.

Programme de l’ESP:

Le capteur est connecté à l’entrée analogique de l’ESP. Après la mise à l’échelle, je moyenne sur 5 mn pour lisser la mesure.

substitutions:
  device_name: esp134-mesure-uv
  adress_ip: "192.168.0.134"
  friendly_name: esp124
  time_timezone: "Europe/Paris"
  
esphome:
  name: ${device_name}
esp8266:
  board: d1_mini
  framework:
    version: recommended
    
wifi:
  networks:
    - ssid: !secret wifi_esp
      password: !secret mdpwifi_esp
      priority: 1
    - ssid: !secret wifi
      password: !secret mdpwifi
      priority: 0
  reboot_timeout: 5min

  manual_ip:
    static_ip: ${adress_ip}
    gateway: 192.168.0.254
    subnet: 255.255.255.0
    dns1: 192.168.0.254

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  platform: esphome

web_server:
  port: 80

sensor:
#ML8511 Mesure UV en mW/Cm²
  - platform: adc
    pin: A0
    name: "${friendly_name}_uv"
    unit_of_measurement: "UV"
    update_interval: 60s
    accuracy_decimals: 1
    filters:
      - calibrate_linear:
        - 0.31 -> 0.0
        - 0.88 -> 15.0
# moyenne sur 5 mn
      - sliding_window_moving_average:
          window_size: 5
          send_every: 5  

#Etat de la connection
binary_sensor:
  - platform: status
    name: "${friendly_name} Status"

Étalonnage? Et bien n’ayant pas de générateur d’UV pour l’etalonner, j’ai fait confiance aux données constructeur. j’ai quand même pu régler le Zéro, et pour les valeurs en haut d’échelle, j’ai vérifié par rapport aux relevés disponibles sur les Web, cela restait cohérent.

Une copie d’écran du serveur Web embarqué dans l’ESP.

Conclusion

Un capteur UV pour pas cher, il fait le taf et donne un ordre d’idée des rayonnements UV.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *