UN ANALYSEUR d’eau de PISCINE CONNECTÉ

Vidéo

Liste des Composants

Wemos D1 Mini- Amazon

Sonde de pH – Aliexpress

OLED SSD1306 – Amazon

ADS1115 – Amazon

03962a – Amazon

Dallas BS18B20 – Amazon

Le Schéma

Les Fichiers 3D

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{
        
      }