FeedMyPet

As the video shows, this project encompassed a complete IoT solution, from hardware design and manufacturing to firmware and software development.

Using a mobile app, the client could set up an account, set up its pets, and configure the amount of food and the feeding schedule.

It was possible to monitor the food and water levels in the bowls.

If there were multiple modules in the house, they could be controlled through the same app.

Overview

Physical

  • This picture is the project in its final form. It was made in MDF and you can check the food and water containers on top of it.
  • The water is served with a DC motor, where it will fill the cup full. This is done by measuring if current value is within minimum and maximum limits.
  • For the food, it was used a stepper motor so the amount of food dispensed was the exact amount the client needed it to be.
  • The recipient was projected using Autocad and it was made so the food and water bowls were kept 5cm above the floor for good ergonomics and the animal still had space so it wouldn't hit his head.
  • It could be injected in ABS plastic to reduce price at large scale.
  • Electrical

  • This shows the electrical scheme with all the components and trails to connect each one of them.
  • They were made using the EasyEAD software, which is a tool to develop and print PCB's.
  • The module was tested utilizing the burn-in method, which puts the PCB under extreme operating conditions, to guarantee it would not leave the pet unnatended.
  • The Raspberry Pi Zero W could be replaced by ESP32 to reduce costs.
  • Technologies Used:

    • React Native: Developed the native mobile app using React Native, allowing cross-platform compatibility for both Android and iOS devices.
    • Node.js Express: Implemented the server-side using Node.js Express framework, handling API requests, and managing data flow between the mobile app and the Raspberry Pi.
    • MongoDB: Created and hosted a non-relational database using MongoDB Atlas, storing and retrieving data related to user accounts, pet feeding schedules, and device configurations.
    • Raspberry Pi Zero W: Utilized the Raspberry Pi Zero W as the hardware platform to control the pet feeder, executing the Python program to interact with actuators and sensors.
    • Linux: Utilized the Linux operating system on the Raspberry Pi, executing the Python program at scheduled intervals for the automation of pet feeding tasks.
    • Websocket: Implemented websocket communication to establish real-time interaction between the mobile app and the Raspberry Pi, enabling instant updates and notifications.
    • Heroku: Deployed the server-side application on Heroku, providing a scalable and reliable hosting solution for the backend services.
    • Expo: Leveraged Expo as a development tool to simulate and export the React Native app, simplifying the testing and deployment process.
    • EasyEDA: Software used to make the electric scheme, where you select the components and connect them in the board.