/ tech

Capteur DIY

sur le principe du Youtubeur BRUH Automation, j'ai décidé de me fair emes devices multisensor.

La plateforme

Selon ce que l'on desire faire plusieurs options s'offre à nous.

Le choix le plus raisonné semble être les cartes NodeMCU à base d'ESP8266 12e.

Pour se faire des caméras on preferera les ESP32 CAM qui feront l'objet d'un prochain article.

Le concept

le but est de récupérer un maximum de valeurs à partir d'un seul et même objet.
J'ai choisi d'intégrer les composants suivants :

  • capteur de temperature et d'humidité
  • capteur de luminosité
  • capteur de mouvement
  • LED de notification

On flash la carte de developpement

Pour ceux qui comme moi n'aurons pas un accès aisé à son instance Home Assistant, il faudra procéder comme suit.

Installer sur son pc windows le logiciel NodeMCU PyFlasher
et installer également ESPHome.

Pour ma part je fais tourner ESPHome dans un container docker sur mon pc.

docker run --rm -p 6052:6052 -v C:\Users\hokag\Documents\esphome\config:/config --privileged -it esphome/esphome

On se connecte sur son instance ESPHome

menu

on ajoute un node, son type NodeMCU et rentre le SSID Wifi ainsi que le mot de passe wifi.

Une fois créé on peut faire validate pour vérifier si le code ne contient pas d'erreur.

Puis pour créer son firmware on clique sur les trois petit points de son capteur et on fait compile.

Le firmware se compilera et on obtiendra un .bin que l'on peut telecharger à partir de l'interface.

On ouvre alors le logiciel NodeMCU PyFlasher.

menu2

rien de sorcier on choisit son port USB ou est branché l'ESP et on choisit le firmware récupérer de ESPHome.

On flash (45 secondes) puis à la fin on peut debrancher et rebrancher l'ESB de l'usb.

Ajout dans Home Assistant

On va dans Integration on choisit ESPHome.
On met l'ip de l'ESP et on sauvegarde.

L'ESP est desormais récupéré par HA.

Ajout des sensors

On debranche l'ESP et on branche le capteur de temperature et d'humidité.

le cable DATA sur la pin D7
le plus sur le 3V
le moins sur le Ground

puis on retourne sous ESPHome pour modifier le firmware :

esphome:
  name: salon_gano
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: "monwifi"
  password: "MotDePasse"

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

captive_portal:

# Enable logging
logger:

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

ota:
  password: "password"

sensor:
  - platform: dht
    pin: D7
    model: dht22
    temperature:
      name: "Salon Temperature"
    humidity:
      name: "Salon Humidity"
    update_interval: 30s

output:
  - platform: esp8266_pwm
    pin: D3
    id: redgpio
  - platform: esp8266_pwm
    pin: D4
    id: greengpio
  - platform: esp8266_pwm
    pin: D6
    id: bluegpio

light:
  - platform: rgb
    name: "Salon status alarme"
    red: redgpio
    green: greengpio
    blue: bluegpio
    

on fait validate, puis compile et on reinjecte notre firmware à l'aide de NodeMCU pyflasher.

On debranche et rebranche et sous Home Assistant on peut voir apparaitre les nouvelles sondes sur le node précedemment ajouté.

Etat des lieux

Il me reste la partie capteur de luminosité et capteur de mouvement à intégrer que j'attend toujours de recevoir.

Je recois bien les temperatures et humidité toutes les 30 secondes, la LED quant à elle me sert à indiquer l'etat de l'alarme :

  • éteinte si l'alarme est désenclenchée.
  • rouge si l'alarme est enclenchée.

Photo et rendu

IMG_20200229_190618

IMG_20200229_190627

Apres mise à jour du firmware en declarant les composants necessaires on obtient ceci :

HA02

Yaml du firmware :

esphome:
  name: salon_gano
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: "wifi maison"
  password: "monmotdepasse"

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

captive_portal:

# Enable logging
logger:

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

ota:
  password: "password"

sensor:
  - platform: dht
    pin: D7
    model: dht22
    temperature:
      name: "Salon Temperature"
    humidity:
      name: "Salon Humidity"
    update_interval: 30s
  - platform: wifi_signal
    name: "Salon WiFi Signal Sensor"
    update_interval: 60s
  - platform: uptime
    name: Salon Uptime Sensor

text_sensor:    
  - platform: version
    name: "ESPHome Version"
  - platform: wifi_info
    ip_address:
      name: Salon IP Address    

output:
  - platform: esp8266_pwm
    pin: D3
    id: redgpio
  - platform: esp8266_pwm
    pin: D4
    id: greengpio
  - platform: esp8266_pwm
    pin: D6
    id: bluegpio

light:
  - platform: rgb
    name: "Salon status alarme"
    red: redgpio
    green: greengpio
    blue: bluegpio

Capteur DIY
Share this