Skip to main content
Version: FILS English

Mood Tracker

An emotional journal based on button inputs for daily mood tracking and sentiment analysis.

info

Author: Constantinescu Patricia Miriam
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 representing their mood state. 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 so that the user can see his ups and downs.After the 7 inputs a mood analysis will be done based on the mix of emotions.

Future ideas : Implement the analysis via ChatGPT implementing it via its API and the wireless capability of Pico 2W.

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(can be implemented for future storage capability for removing the need to be plugged nonstop)

  • Processing Unit: Raspberry Pi Pico 2W as the central controller

  • Display Module: LCD screen for visualization of mood data and analysis

These components interact as follows:

  • User inputs mood via button presses
  • The Processing Unit registers the input and stores it memory
  • The Processing Unit processes data and generates visualization
  • The Display Module shows the mood history graph
  • The inputs determine a weekly analysis that will be shown below the graph

Log

Week 18 - 24 August

  • Set up development environment
  • Created initial project structure
  • Polished the documentation
  • Ordered the broken hardware

Week 25-31

  • Finished software with some optimization (DRY) and created a static component for faster render after inputs
  • Added a restart the process function
  • Assembled hardware in final form
  • Thought of some other features that can be implemented

Hardware

Hardware

The project uses a Raspberry Pi Pico 2W as the main controller, with a 2.4" LCD screen for display and (optionally) an AT24C256 EEPROM module for data storage. Buttons for input and basic resistors are used for the interface.

Schematics

HardwareSchematics

Bill of Materials

DeviceUsagePrice
2X Raspberry Pi Pico 2WMain microcontroller80 RON
2.4" LCD DisplayDisplays mood history graph40 RON
AT24C256 EEPROM ModuleStores mood history data9 RON
4 HQ830 Breadboard KitFor prototyping88 RON
Push Buttons and ResistorsUser input interface5 RON

Software

LibraryDescriptionUsage
experimental 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