All work

Spring 2025 · Software Engineer

Embedded System to Firestore

A general-purpose sensor interface for the M5Stack Core2 that reads eight kinds of data and syncs readings and per-user preferences to Google Firestore over Wi-Fi.

Role
Software Engineer
When
Spring 2025
Discipline
Embedded & IoT, Data & Backend

Built with

  • Python
  • M5Stack Core2
  • Google Firestore
  • Wi-Fi
An M5Stack Core2 in a dark room showing an "Uploaded Data" screen with temperature, humidity, light and acceleration readings.

Overview

A general interface that reads from many different sensors and stores the data in the cloud. The device can switch between users, and each user’s readings and display preferences follow them.

Video · Watch on YouTube (opens in a new tab)

Sensors

The M5Stack Core2 is wired to sensors for the current time, temperature, humidity, proximity, ambient light, white light, and acceleration on the x, y and z axes.

The M5Stack Core2 with its attached sensors

The device and its sensors.

Users and preferences

Current data and preferences upload to the cloud under the active user’s name. A settings screen changes the user and what’s displayed; switching users downloads that user’s earlier data and preferences.

Settings screen for choosing a user

Choosing a user.

Settings screen with display options

Display settings.

Downloading a user’s saved data from the cloud

Restoring a user’s data from Firestore.

Cloud storage

The device connects to Wi-Fi to upload and download data with Google Firestore.

Firestore console showing stored sensor readings

Readings in Firestore.

Firestore console showing stored user preferences

Preferences in Firestore.

Python source code for the device

Written in Python for the M5Stack Core2.