Skip to content

DaviDubeux/Semea

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Semea

SEMEA (Software Embarcado de Manutenção do Equilíbrio Aquapônico) is an embedded systems project that maintains and monitors aquaponic stations in the arid region of Pernambuco.
Made under the supervision of Edna Barros by the students Davi Dubeux, Lígia Ferro and Jessyca Ferreira for the Embedded Systems Competition 2025 and validated with the NGO Afetos, the project made it to the national finals, winning the prize of Best Feminine Team.

Firmware setup at aquaponic station with afetos Participants Lígia Ferro, Davi Dubeux and Jessyca Ferreira with the competiton prizes Other view of firmware setup at aquaponic station with afetos

Features

  • Sensor selection with a joystick and button interface
  • OLED feedback for the active sensor and its reading
  • Periodic temperature, humidity, pH, and turbidity acquisition
  • Wi-Fi connection and HTTP data upload
  • Servo actuation for scheduled or manual feeding

Hardware

The project is configured for these main components:

  • Raspberry Pi Pico W
  • OLED display over I2C
  • Joystick and button input
  • pH sensor
  • Humidity sensor
  • Turbidity sensor
  • DS18B20 temperature sensor
  • Water level sensor
  • Servo motor

Pin assignments are defined in lib/utils/ports.h, and project constants and connection settings are defined in lib/utils/defines.h.

Project Structure

Requirements

  • PlatformIO
  • Arduino framework support for Raspberry Pi Pico W
  • The libraries listed in platformio.ini

Build And Upload

  1. Open the project in VS Code with the PlatformIO extension installed.
  2. Adjust the Wi-Fi credentials and server URL in lib/utils/defines.h if needed.
  3. Build the firmware with PlatformIO.
  4. Upload it to the board using the semea environment from platformio.ini.

Runtime Overview

At startup, the firmware initializes the board, display, Wi-Fi, temperature sensor, and servo. In the main loop it:

  1. Reads the water level sensor.
  2. Checks the button and feed interval to trigger the servo.
  3. Every few seconds, reads the selected sensor.
  4. Prints the value on the display and sends it to the configured server.

Notes

  • The Wi-Fi credentials are currently stored in the source tree under lib/utils/defines.h.
  • Some sensor-specific calibration values are defined in lib/utils/defines.h and may need adjustment for your hardware.

About

Repository for the Embedded Systems Competition 2025

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors