Introduction
Au cours de la semaine de bureau d'etude en programmation orientee objet, notre equipe a developpe une Gamelle Connectee. Ce projet visait a creer un systeme permettant de controler la distribution de nourriture pour animaux via une interface web, tout en integrant des capteurs et des indicateurs pour ameliorer l'experience utilisateur.
Introduction
During the week of object-oriented programming design office, our team developed a Connected Bowl. This project aimed to create a system to control the distribution of animal food using a web interface, while integrating sensors and indicators to improve the user experience.
Objectifs du projet
Le systeme de Gamelle Connectee permet :
De controler deux servomoteurs via une interface web pour choisir la nourriture a distribuer.
D'ajouter un capteur de pression pour surveiller la quantite de nourriture dans les reservoirs.
D'integrer des LEDs et un buzzer pour signaler a l'utilisateur le bon fonctionnement ou l'absence de nourriture.
Description du systeme : Le projet combine la programmation C++ sur un microcontroleur ESP8266, l'utilisation de capteurs et la creation d'une interface web. Voici les principales fonctionnalites :
Interface web
L'interface web permet de controler la distribution de nourriture en selectionnant deux compartiments differents. Deux boutons sont disponibles : un pour la Nourriture 1 et un pour la Nourriture 2.
Distribution de nourriture
Choix 1 : En selectionnant "Nourriture 1", le servomoteur correspondant est active pour ouvrir la trappe du compartiment 1.
Choix 2 : En selectionnant "Nourriture 2", le servomoteur associe ouvre la trappe du compartiment 2.
Detection de nourriture
Si de la nourriture est presente dans le compartiment, la trappe s'ouvre normalement.
Si le capteur de pression detecte une absence de nourriture :
Un buzzer emet une alerte sonore.
Une LED rouge s'allume pour indiquer l'absence de nourriture.
Diagramme de classes
L'architecture orientee objet de la Gamelle Connectee a ete concue pour moduler les interactions entre les composants (capteurs, servomoteurs, interface web) via des classes bien definies. Voici une representation visuelle du diagramme de classes utilise dans ce projet :
Project objectives
The Connected Bowl system allows:
To control two servomotors via a web interface to choose the food to distribute.
To add a pressure sensor to monitor the amount of food in the tanks.
To integrate LEDs and a buzzer to signal to the user the proper functioning or absence of food.
System description: The project combines C++ programming on an ESP8266 microcontroller, the use of sensors and the creation of a web interface. Here are the main features:
Web interface
The web interface allows to control the distribution of food by selecting two different compartments. Two buttons are available: one for Food 1 and one for Food 2.
Food distribution
Choice 1: By selecting "Food 1", the corresponding servomotor is activated to open the hatch of compartment 1.
Choice 2: By selecting "Food 2", the associated servomotor opens the hatch of compartment 2.
Food detection
If food is present in the compartment, the hatch opens normally.
If the pressure sensor detects an absence of food:
A buzzer emits an audible alert.
A red LED lights up to indicate the absence of food.
Class diagram
The object-oriented architecture of the Connected Bowl has been designed to modulate the interactions between the components (sensors, servomotors, web interface) via well-defined classes. Here is a visual representation of the class diagram used in this project:

Connexion au serveur
Avant d'acceder a l'interface web, il est necessaire de s'assurer que l'ESP8266 est connecte au reseau WiFi. Vous pouvez obtenir l'adresse IP du microcontroleur via le moniteur serie ou un outil de scan reseau. Ensuite, l'interface web devient accessible via cette adresse IP dans un navigateur.
Connecting to the server
Before accessing the web interface, it is necessary to ensure that the ESP8266 is connected to the WiFi network. You can obtain the IP address of the microcontroller via the serial monitor or a network scanning tool. Then, the web interface becomes accessible via this IP address in a browser.

Conclusion
Le projet Gamelle Connectee nous a permis de pratiquer plusieurs competences :
Programmation embarquee avec l'ESP8266 en C++.
Developpement d'une interface web interactive pour le controle a distance.
Integration de capteurs et d'actuateurs pour automatiser la distribution de nourriture et fournir un retour visuel et sonore.
Ce projet nous a confrontes a divers defis techniques, notamment la gestion des connexions WiFi, la manipulation de servomoteurs et la communication entre l'ESP8266 et l'interface web. Il illustre la combinaison de competences en IoT, electronique et developpement web, aboutissant a une solution innovante et pratique pour la gestion des repas des animaux.
Conclusion
The Connected Bowl project allowed us to practice several skills:
Embedded programming with the ESP8266 in C++.
Development of an interactive web interface for remote control.
Integration of sensors and actuators to automate food distribution and provide visual and audio feedback.
This project confronted us with various technical challenges, including managing WiFi connections, manipulating servomotors, and communicating between the ESP8266 and the web interface. It illustrates the combination of skills in IoT, electronics and web development, resulting in an innovative and practical solution for managing animal meals.