The goal is to be able to measure the level of water left in my IBC tank with ESPHome
This allow to connect electronic components to Home Assistant.
I will use ESPHome tool which has a very large community. ESPHome is an open source project created by Nabu Casa (https://www.nabucasa.com/).
The component I will use to measure the water level is HC-SR04:
This is an ultra sound sensor which will evaluate the distance to a target device or surface sending and getting back ultra sound (like bats) and then the reflected sound is converted in an electrical signal.
The wiring is fairly simple :
2. Using ESPHome in Home Assistant
There are several possibilities to generate code to upload it on a ESP(wemos). I chose to use ESPHome in Home Assistant which is simple :
Go to the ESPHome add-on in Home Assistant and create your Secrets if it has not been done yet
3. Secret Creation
Now it's time to define the secrets in ESPHome by clickinbg on secrets in the upper right corner
Fill with you personnal wifi information :
Now the code to send the this new device needs to be written to be able to measure the level of water left in the IBC water tank
Let's click on the bottom right corner on + New Device :
Give it a name
Chose the device type
Then click on Install
As I plugged this ESP on my Home Assistant I chose the following
Chose the correct port to intiate the communication
and when it's done, we can proceed to the upload of the code by clicking on Edit of this new ESP device
You can paste the following code as it is :
esphome: name: water_tank_level_sensor platform: ESP8266 board: d1_mini # WiFi connection, replace these with values for your WiFi. wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable logging logger: # Enable Home Assistant API api: # Enable over-the-air updates. ota: # Enable Web server. web_server: port: 80 # Sync time with Home Assistant. time: - platform: homeassistant id: homeassistant_time # Text sensors with general information. text_sensor: # Expose ESPHome version as sensor. - platform: version name: water_level_sensor ESPHome Version # Expose WiFi information as sensors. - platform: wifi_info ip_address: name: water_level_sensor IP ssid: name: water_level_sensor SSID bssid: name: water_level_sensor BSSID # Exposed switches. # Switch to restart the water_level_sensor. switch: - platform: restart name: "water_level_sensor Restart" sensor: # Uptime sensor. - platform: uptime name: water_level_sensor Uptime # WiFi Signal sensor. - platform: wifi_signal name: water_level_sensor WiFi Signal update_interval: 60s - platform: ultrasonic trigger_pin: D1 echo_pin: D2 name: "Water level en litre" update_interval: 3s filters: - lambda: return (100-(x*100))*10 ; unit_of_measurement: "L"
Then click on Install the I chose to do the install wirelessly since it's not plug to Home Assistant anymore
Waiting a bit and when it's done, distance begin to be measured (last lines)
5. Home Assistant integration
Once the ESP flashed we can add stuff in Home Assistant
Here are some pics for ideas