If you have ever had an aquarium, you know how troublesome it is when the water just keeps evaporating. Especially in small tanks, without a lid that water level drops daily. The project, Tank Refillerator, would serve to end this problem. The Refillerator would be able to detect when the water level is below a certain point in the tank and would then begin refilling the tank to the desired water level. After the water level is reached, the flow will automatically stop. The Refillerator would also have the capability to read the current temperature of the water so that you know that it will be safe for the fish. There is an OLED screen that displays the water temperature and the water level of the reservoir.
Overview:When the device is turned on, the program initializes the screen and then detects whether the button (limit switch) is being pressed. If the button is pressed, that means that the water level is fine, but if the button is not pressed, that means that the motor then has to turn on to refill the aquarium. On the screen the temperature will be display of the water in the reservoir, or the aquarium depending on where you place the temperature sensor. As the water is used up from the reservoir, the ultrasonic sensor will be detecting the water level and display the level on the OLED screen. Once the water level falls too low, then the screen will notify low water level and will disable the motor from future use until the water is replenished. This is so that the motor does not keep trying to fill the aquarium even though it is out of water.
In the project, the temperature sensor was used to detect the temperature. The motor for the project is submersible and so would be used to direct the water into the aquarium. The ultrasonic sensor is used to detect the water level in the reservoir. Both the temperature and the water level will be displayed on the OLED screen. Additionally the button (limit switch) is used to determine whether the pump needs to be activated and refill the aquarium.
Fritzing Diagram:
Pin Connections:
Button GPIO IN: P1_29
Transistor GPIO OUT: P1_36
Temperature Sensor: P2_33
Device:The setup seen in the picture of the finished project consists of the demo aquarium that I made as well as the enclosure for the Pocket Beagle. The demo aquarium was made using a laser cutter and the attached file. The materiel thickness for the acrylic was .125". As for the pocket beagle enclosure, it was cut out of .192" plywood also with the use of a laser cutter. A laser cutter is not needed to make either as they were just made for demonstration purposes.
There are a few installs needed to allow the project to work. First these various libraries need to be installed
pip install Adafruit_BBIO
sudo apt-get install fbi
After installing the libraries, then there are a few steps needed to make the temperature sensor usable. The temperature sensor used works with a one wire communication so there are steps needed to make this work with the Pocket Beagle.
1. First clone bb.org overlays
2. Put dtbo file included in src arm directory
3. make
make
4. Then copy dtbo to /lib/firmware
5.
Sudo nano /boot/uEnv.txt
6. Add .dtbo file to the boot
This will allow the .dtbo file to be accessed on boot and allow for the one wire communication with the temperature sensor.
Additionally, the OLED Click screen must also be initalized upon startup in a similar way. For these steps visit the hackster project HERE and follow the steps to set up the OLED Click board. After this is done, you will now be able to use the OLED screen.
With that, all aspects to be able to run are complete. In order to run the files/software visit my GitHub page under the README to obtain the directions to be able to run from the command line.
Future Plans:Unfortunately the Grove ultrasonic sensor that was initially used for the project did not work. Realizing that it may be because it may have been non-compatible, I decided to try to use the Adafruit ultrasonic sensor seen in the component list above. This sensor would be usable with the Adafruit_BBIO library and may produce better results. Additionally, the screen is currently only set to display a constant image using fbi. My intention is to get the screen working will PILLOW to be able to display the current temperature as well as the water level in real time.
Useful Links:Using the Adafruit BBIO Library: https://learn.adafruit.com/setting-up-io-python-library-on-beaglebone-black/using-the-bbio-library
Pocket Beagle reference manual: https://github.com/beagleboard/pocketbeagle/wiki/System-Reference-Manual



_Y37Uh2VTVs.jpg?auto=compress%2Cformat&w=900&h=675&fit=min)







_1x_bGT19vVAby.png?auto=compress%2Cformat&w=40&h=40&fit=fillmax&bg=fff&dpr=2)
Comments