Posts

Showing posts from March, 2025

Blog 5 - "A Bigger Heart"

 A Bigger Heart Introduction This week we talked and planned with Jason about what project we’re going to do that puts the skills we’ve learned so far this semester to good use. We all agreed to continue working on HRV monitoring with two-week sprints. During our discussion, we talked about a bunch of different areas where we can apply what we’ve learned—like Analog In, Analog Out, HRV, FFT on the micro:bit, ethics, and maybe even setting up a spreadsheet to track FFT and BPM data. HRV HRV stands for Heart Rate Variability. It’s the variation in time between your heartbeats, measured in milliseconds. HRV is important because it can help us understand how healthy someone is just by looking at their heart rate. It can show if a person has a good nervous system balance or if they’re resilient. It can also point to stress, fatigue, or other health issues. We’ve already done some work on heart monitoring—check out Blog 2 for that. Analog In & Out We can use the microbit and heart ra...

Blog 5 - IoT Health Monitoring Project - Sprint Planning

  IoT Health Monitoring Project In our last IoT class,  we met to plan out what we should do as our group project for the IoT apps module. The general consensus was to continuously develop the HRV monitoring micro:bit project. We decided between ourselves that we would break up the work into a 2 week sprint. Sprint 1 The first sprint will focus on establishing our core monitoring capabilities with heart rate data collection and analysis: Heart Rate Monitoring Fundamentals We will use our microbit along with our HRV Sensor from my second blog. Key Metrics: Our system will track: BPMs (Beats Per Minute) HRV (Heart Rate Variability) FFT (Fast Fourier Transform) - analysis of heart rhythms One of our technical challenges will be implementing FFT on the micro:bit platform. We're planning to explore if this is feasible using Python mode, as there may be limitations to using makecode. Cloud Integration The data recoded from our :  Data will be collected and sent to a spreadsheet...

Blog 5 - Project Research "A Bigger Heart"

 IoT Project Introduction Heart Rate Variability (HRV) in recent years has emerged as a powerful method for assessing overall health and stress levels. As part of our IoT class project, we're exploring how to create an accessible HRV monitoring system using the Micro:bit platform. This project combines hardware sensing, signal processing algorithms, and data analytics to create a complete IoT solution. What is Heart Rate Variability? Unlike heart rate, which measures beats per minute, Heart Rate Variability (HRV) measures the variation in time between successive heartbeats. This subtle variation contains valuable information about our autonomic nervous system: Higher HRV generally indicates better cardiovascular fitness, stronger stress resilience, and better recovery Lower HRV often correlates with increased stress, poor sleep, or potential health issues Project Overview Our lecturer has challenged us to create a system that can: Detect and capture heart signals using a Micro:b...

Blog 4 - Analog Out

  Iteration 4 - Analog In/Analog Out (Jay Langford) March 14, 2025 IoT Apps Iteration 4 - Micro:bit Spotify Integration (Analog In/Analog Out) For this iteration, our task was to develop a complete application demonstrating both analog input and output using a transport layer to send data between the cloud and a micro:bit. Working as a team with Daniel Lawton, we created a Spotify integration that allows users to control music playback (analog in) and view track information on the micro:bit's LED display (analog out). Project Overview During the Monday class on February 24, 2025, our lecturer Jason tasked us with creating a full AI/AO application using cloud messaging protocols. After brainstorming together, I proposed the idea of creating a micro:bit MP3 player that would allow users to skip tracks and display current song information. We divided the work based on our strengths - I took responsibility for the Analog Input component while Daniel focused on the Analog Output aspects...

Blog 4 - Analog Out / IFTTT

Image
 Blog 4 - Analog Out / IFTTT Introduction Following on from the previous lab, we took on the task of configuring an analog out applet, where we could send a http request to our microbits from an applet. I partnered up with Dean Sinnott where we configured an applet that once an event would be added to my google calendar, it would display on the microbit. Week 1 Initial Implementation For the initial implementation, We decided to try and reverse the configuration I created the week before. We immediately ran into troubles as IFTTT does not provide a webhook for the "then that" part of the applet. With the help of ChatGPT, We found a resource called AdafruitIO, which allowed me to create my own webhook to attach to the applet. We were running into issues using this implementation on IFTTT's side as it would never trigger the webhook, yet the webhook could be triggered manually using a curl post request. Serial Implementation We decided to go down the route of using a serial...

Iteration 4 - Analog Out (Daniel Lawton)

Image
IoT Apps Iteration 4 - Micro:bit Spotify Integration (Analog Output ) For this iteration, the goal was to come up with a use case that involves the use of a transport layer, sending data from the cloud to a micro:bit.  Working with Jay Langford, we created a use case that integrates with Spotify to send an artist's track information to a micro:bit when a button is pressed, allowing users to see what song is currently playing on the micro:bit's LED display. Focusing on the Analog output I found difficulties integrating IFTTT with the micro:bit to receive values, this was not an issue when triggering the IFTTT applet with a webhook through the makecode micro:bit (AI) but when trying to receive a value from my IFTTT applet, GET instead of POST, this caused issues leading to the pivot from using IFTTT to using a local server that could be used to send HTTP requests (GET, POST, PUT .etc).  Project Features - Skip Track: Press Button A on the micro:bit to skip to the next track on...

Analog Out

Image
Overview In this lab, I focused on sending values from IFTTT to the Micro:Bit. To do this, I created an Applet on IFTTT that will receiving my tweet from X (formally twitter) and send it to my Adafruit Webhook. Using a flask server running on my laptop, I then used a HTML scraping tool called selenium to get the newest data from my Adafruit dashboard and displaying this on a flask servers webpage. What is AdaFruit " Adafruit was founded in 2005 by MIT engineer, Limor "Ladyada" Fried.  Her goal was to create the best place online for learning electronics and making the best designed products for makers of all ages and skill levels.  "  -  https://www.adafruit.com/about  Adafruit IO  is a platform designed by Adafruit  to  display ,  respond , and  interact  with your project's data. What is HTML Scraping (Selenium)  " The modern web is becoming increasingly complex and reliant on JavaScript, which makes traditional web scraping ...

Iteration 4 - Analog Out | Sending Rotation Angle Between Micro:Bits with Google Sheets and a Flask Server

Image
The Goal After experimenting with IFTTT, I discovered its webhook integration with Google Sheets. This gave me the idea of using Google Sheets as a cloud-based database, allowing the Micro:Bit to store values remotely and retrieve them via HTTP GET requests. This was the goal for our next iteration. However, after Arthur and I got this working (more details in his blog), we realized that IFTTT doesn’t handle requests in real time. Instead, requests often stacked up, causing significant delays when sending values to another Micro:Bit. As well as this, we could not configure a HTTP address for the Google Sheets API, therefore GET requests from a Micro:Bit directly to the API were not possible. Around this time, several classmates mentioned Flask, a lightweight Python web framework that acts as a local server, and were using it for similar projects. Initially, I had no plans to incorporate Flask into my iteration, but curiosity led me to try it out and see what it could do Setting Up Flas...