Here I share hardware and software about my water-level project, whose purpose is to measure the water level in a water reservoir, located under the ground.
This project actually has a predecessor. Enjoy reading about it in this bit of history.
The first piece of hardware is a transmitter. It measures the water level with a waterproof ultrasonic sensor and sends the measurement result as a JSON object via RS232 to a possibly connected receiver.
The positioning of this sensor in my project is described in the physical setup.
Here are some pictures showing the transmitter in practice.
In the folder hardware/transmitter you'll find the hardware design as a KiCad project. Without Kicad installed, you can view
- the schematic diagram as .pdf;
- the copper layout of the printed circuit board;
- the component placement on the printed circuit board.
The folder software/WaterLevelTransmitter is an Arduino sketch, containing the software of the transmitter part of the project.
Read more about this piece of software here.
The second piece of hardware is the receiver. It requests output from the transmitter and publishes is to whatever destination.
Here are some pictures showing the receiver in practice.
In the folder hardware/receiver you'll find the hardware design as a KiCad project. Without Kicad installed, you can view
- the schematic diagram as .pdf;
- the copper layout of the printed circuit board;
- the component placement on the printed circuit board.
About the receiver hardware:
- the RS232 level converter is the same as used for the transmitter, this time it is powered from 3V3;
- the character-based LCD screen to connect is a 2 rows of 16 columns type, using an HD44780 driver, connected via I2C @ 3V3, but powered @ 5V;
- the processor board (chosen because of its WiFi connectivity) is a ESP32 DevKitC (with ESP32-WROOM-32D module).
The folder software/WaterLevelReceivers is contains a set of Arduino sketches, each containing a different software solution for the receiver part of the project.
Read more about this piece of software here.
Transmitter | Receiver |
---|---|
GND (J1.2) | GND (J1.3) |
TXD (J1.4) | RXD (J1.2) |
RXD (J1.5) | TXD (J1.1) |