Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/matheuscavini/meaw-petfeeder-firmware

Firmware for a programable pet food dispenser device. Check also: https://github.com/MatheusCavini/Meaw-PetFeeder-App
https://github.com/matheuscavini/meaw-petfeeder-firmware

app cpp esp32 freertos iot pet-project pets smarthome state-machine time-schedule

Last synced: 8 days ago
JSON representation

Firmware for a programable pet food dispenser device. Check also: https://github.com/MatheusCavini/Meaw-PetFeeder-App

Awesome Lists containing this project

README

        

# Meaw Pet Feeder: Firmware

## Introduction

This project implements the firmware for an ESP32-based pet feeding device, where the user can schedule the times at which food portions need to be served.

The device works together with a Mobile App, through which it can also be controlled.

**Make sure to also visit the App respository:** [Meaw-PetFeeder-App](https://github.com/MatheusCavini/Meaw-PetFeeder-App)

The project was created as part of the discipline "Embedded Systems" (PMR3402) for my Mechatronics Engineering course at Escola Politécnica da Universidade de São Paulo (USP).

## Demonstration

Click the image below to check the video of the project on YouTube (automatic English subtitles available).

[![IMAGE ALT TEXT HERE](https://img.youtube.com/vi/Ps0keci-ifc/0.jpg)](https://www.youtube.com/watch?v=Ps0keci-ifc)

## Features
• Connect to mobile app using a device ID code;

• Program up to 30 daytimes at which food is to be served;

• Erase existing times;

• Serve food at anytime by selecting "serve now";

• Get an alert when the food level in the reservoir is low.

## Technical Aspects
- The firmware of the device runs a state machine, processing external (user inputs, app connection) and internal (reaching a saved time, low level) events to switch between different states.

- FreeRTOS is used to run simultaneous tasks such as the state machine, checking food level and checking current time.

- Current time is obtained via internet. Further improvements may include a physical Real Time Clock module.

- The physical device serves an API, to which the app connects and makes requests.