Inspiration

Nowadays, people have less time on taking care of their pets due to their fast life speed. And sometimes, they may go for a vacation, leaving their fish home. Many fish died because of starvation or low water temperature(for some tropical fish). We aim to find a way that allows people to enjoy keeping fish at home, without taking the trouble to care for their fish in person. With this new aquarium add-on, users could keep track of their precious fish anywhere and anytime they want. They could remotely feed the fish, control the light of the fish tank and get the temperature from the sensor.

What it does

With this IoT device, one can use the cloud to monitor the temperature data. The temperature is collected by a water temperature sensor and is sent to the device with a flexible frequency of about 8 seconds. Moreover, this fish tank IoT device allows a user to control the light as well as the stepper motor. One could decide to turn on or turn off the light, and press the button to feed the fish a small amount of fish food by activating the motor. Now we can control two stepper motors separately, they are working via mechanical structures to give fish food.

How we built it

a. Design the project and select proper parts.

b. Use Altium Designer to draw all the schematics and layouts.

c. Design the PCB, including the BOM file.

d. Coding on Atmel Studio starting with the command line.

e. Write codes to download a file and connect to MQTT.

f. Connect the device to Node-Red and design the interface on the Node-Red.

g. Put all together, use a dashboard to control the board from the cloud.

Challenges we ran into

Pin allocation and modules selection is the first challenge. It took us time to figure out which pin is good for a certain protocol like SPI or UART. Second is the debug part. There is something wrong with our board and we figured out a solution to make an adjustment, by soldering two wires on the board. LCD part is the third challenge we ran into. There was no library file of this LCD with respect to samd21, so we had to try to write SPI ourselves, but we still need more time on that. The last one is the camera module, which requires a bunch of time on how to make the data transferred.

Accomplishments that we're proud of

The most exciting thing is that we can actually make the motor spin. Apart from the normal functionalities such as controlling the light, or reporting the temperature data, the motor is an interesting one because of its mechanical meaning. There are timed fish-feeder in the market, but few of them can be controlled in an IoT way. So this is a new product and will provide better performance if manufactured.

What we learned

a. Use Altium Designer to draw schematics and layouts.

b. Draw PCB on AD and correct many kinds of errors.

c. Coding on Atmel Studio in embedded C.

d. Deploy MQTT server on IBM cloud.

What's next for IOT FISH TANK

For the next step, there would be an LCD to display the temperature according to the sensor locally. Also, this product also could allow the user to monitor the fish, take the picture of the fish from above in case they want to see them. It could be a live video in the future. Also, the other motor could be used for a pump, like if the user wants to change the water for an aquarium, just press the button from the dashboard, and the pump would draw half of the water and then fill it with fresh water. There could also be a timer in the microchip to automatically do all the jobs above with simple time setting. For better performance version, there can be a heater to self-control the water temperature for some temperature-sensitive fish, we will consider changing the battery to wall plug because of a higher power requirement in this version.

Built With

  • altium
  • atmel
  • c
  • mqtt
  • samw25
Share this project:

Updates