Skip to main content
Version: FILS English

Mood Tracker

An emotional journal based on button inputs for daily mood tracking

info

Author: Miriam Constantinescu
GitHub Project Link: https://github.com/UPB-PMRust-Students/project-miriamct20

Description

A simple mood tracking device that allows users to record their daily emotional state by pressing buttons. The device saves these states and displays a graph of the last 7 days on a small LCD screen, providing a visual representation of emotional patterns.After the 7 inputs a mood analysis will be done via ChatGPT with its API

Motivation

I chose this project because keeping track of one's emotional state can be beneficial for mental health awareness. A physical device with simple button inputs makes the process of mood tracking more tangible and accessible than smartphone apps, potentially encouraging more consistent usage. I'm also interested in creating a device that combines hardware interaction with data visualization.

Architecture

The main components of the system are:

  • Input Module: Buttons for mood selection (happy/sad/neutral)
  • Storage Module: EEPROM for persistent mood data storage
  • Processing Unit: Raspberry Pi Pico W as the central controller
  • Display Module: LCD screen for visualization of mood data
  • Audio Feedback Module: Sound output for interaction confirmation

These components interact as follows:

  • User inputs mood via button presses
  • The Processing Unit registers the input and stores it in the EEPROM
  • The Processing Unit retrieves historical data from EEPROM
  • The Processing Unit processes data and generates visualization
  • The Display Module shows the mood history graph
  • The Audio Module provides feedback sounds for interactions

Log

Week 5 - 11 May

  • Set up development environment
  • Created initial project structure
  • Researched EEPROM interfacing with Raspberry Pi Pico

Week 12 - 18 May

-Initialized the Rust project and strated working with the software -Finished the hardware for the milestone -Research in data visualization with matplotlab

Week 19 - 25 May

Hardware

Hardware

The project uses a Raspberry Pi Pico W as the main controller, with a 2.4" LCD screen for display, a TPA3118 mono audio amplifier for sound feedback, and an AT24C256 EEPROM module for data storage. Buttons for input and basic resistors are used for the interface.

Schematics

HardwareSchematics

Bill of Materials

DeviceUsagePrice
Raspberry Pi Pico WMain microcontroller40 RON
2.4" LCD DisplayDisplays mood history graph40 RON
TPA3118 Mono Audio AmplifierProvides audio feedback20 RON
AT24C256 EEPROM ModuleStores mood history data9 RON
HQ830 Breadboard KitFor prototyping22 RON
Push Buttons and ResistorsUser input interface5 RON

Software

LibraryDescriptionUsage
LittleFSFile system for microcontrollersStorage of mood data on the Pico
ST7789Display driver for LCDInterfacing with the 2.4" LCD display
embedded-graphics2D graphics libraryCreating the mood history graph
I2C-EEPROMEEPROM interface libraryCommunication with the AT24C256 module
pico-sdkRaspberry Pi Pico SDKCore functionality for the Pico W
embedded-halHardware abstraction layerConsistent interface for hardware components
  1. Mood Tracking for Mental Health
  2. Rust on Raspberry Pi Pico
  3. Working with EEPROM in Embedded Systems
  4. ST7789 Display Controller Guide
  5. Data Visualization on Embedded Devices