Vidéo
Le Schéma

Le Code
J’utilise ESPHome, qui est une extension de HomeAssistant. Le code est en YAML, il fonctionne que dans ESPHOME.
Pour avoir un exemple, regardez cette video
//------------------------------------------------------
// https://gammatroniques.fr/
// Code pHMetre Piscine
// 08/2021 - by GammaTroniques
//------------------------------------------------------
esphome:
name: esp_piscine
platform: ESP8266
board: d1_mini
wifi:
ssid: "VotreWifi"
password: "VotrePassword"
ap:
ssid: "Wifi-Piscine"
password: "Wifi-PiscinePh"
captive_portal:
logger:
api:
ota:
i2c:
sda: D2
scl: D1
scan: True
ads1115:
- address: 0x48
dallas:
- pin: D7
update_interval: 10s
sensor:
- platform: ads1115 #pH en volt
multiplexer: 'A0_GND'
gain: 6.144
id: "phvolt"
unit_of_measurement: ""
icon: "mdi:water"
update_interval: 2s
accuracy_decimals: 3
- platform: ads1115 #pH converti en pH
multiplexer: 'A0_GND'
gain: 6.144
name: "Ph Piscine"
id: "ph"
filters:
- calibrate_linear:
- 3.027 -> 4.01
- 2.542 -> 6.86
- 2.179 -> 9.18
unit_of_measurement: ""
icon: "mdi:water"
update_interval: 2s
accuracy_decimals: 3
- platform: ads1115 #tension de la batterie
multiplexer: 'A3_GND'
gain: 6.144
name: "Tension Batterie Piscine"
unit_of_measurement: "V"
update_interval: 60s
accuracy_decimals: 3
- platform: dallas #sonde de Température
address: 0x5B021460A924FF28
id: "temp"
name: "Température Piscine"
accuracy_decimals: 3
binary_sensor:
- platform: gpio #le Bouton
pin: D6
id: button
on_press:
then:
- globals.set:
id: screenOn
value: 'true'
globals:
- id: screenOn
type: bool
restore_value: no
initial_value: 'true'
time:
- platform: sntp
on_time:
# Every 5 minutes
- seconds: 0
minutes: /5
then:
- globals.set:
id: screenOn
value: 'false'
font:
- file: "fonts/Product-Sans.ttf"
id: product_sans_20
size: 20
display:
- platform: ssd1306_i2c
model: "SSD1306 128x64"
address: 0x3C
lambda: |-
if(id(screenOn)){
it.printf(0, 0, id(product_sans_20), "%.1f°C", id(temp).state); //affichage de la Température
it.printf(0, 20, id(product_sans_20), "pH: %.1f V", id(phvolt).state); //affichage du ph en volt
it.printf(0, 20, id(product_sans_20), "pH: %.1f", id(ph).state); //affichage du ph
}else{
}