Passion Wheels

Made by Hannah Moon

Found in DioT 2019: Connected Communities

The Passion Wheel is designed to help baby Boomers and retirees in the Pittsburgh community to improve their social engagement while supporting local non-profit organizations with knowledgable volunteers to enhance their services.



Passion Wheel is a transportation service ecosystem for senior citizens in Pittsburgh. It helps retirees to move around the city freely to contribute themselves to volunteer work. As retirees move around the city more as they want, non-profit agencies in the city of Pittsburgh receive the benefit of having reliable, knowledgeable, and caring volunteers for their services.  



The city of Pittsburgh’s combination of affordability and amenities make it a good place to retire, but yet offer affordable and convenient public transportations for retirees. Senior citizens still want to be active volunteers and share their wisdom with people who need them. However, they may not have family members, caregivers, friends, or neighbors who can transport them although they still want to be a part of the community and want to contribute themselves in a meaningful way. Passion Wheel allows senior citizens to travel from their home to the place they want to go for volunteering. Pittsburgh local non-profit agencies would befit from having experienced and caring volunteers. 



Pittsburgh is ranked the top 10 best cities to retire every year. The city does not look like offering a lot seemingly, but if you take a deeper look reveals a city that has more than enough to offer retirees. The city is culturally rich, with many public works donated by 19th-century industrialists. It also happens to be a foodie destination, with a vast range of restaurants, from greasy spoon to white tablecloth. Pittsburgh is located within a tax-friendly state, and the cost of living comes in at around the national average. And if that wasn't enough, the city was ranked by as one of the 50 best golf cities in the nation. Pittsburgh is divided up into a variety of unique neighborhoods, ranging from the young hipster crowd to established retirees. Highland Park, for example, is popular with younger couples, who enjoy friendly neighbors, and a 380-acre park which is close by. The Strip District is popular with middle-aged individuals, as the area has seen a resurgence in unique restaurants and markets. For retirees, the Squirrel Hill North section of the city boasts a stellar dining and shopping scene on Forbes and Murray avenues, and quaint entertainment venues such as the Manor Theatre. 


Inspiration and Context

The first precedent is “Uber” giving back. I have long envisioned a transportation service offer free or a very minimal charge or similar to the bus service by volunteers or Uber and Lyft drivers. Uber or Lyft driver offer service for affordable prices with subsidized by regular customers or volunteer drivers provide the service for free to retirees. The service is app-based just like the current ride services. I can design the ecosystem with the current assets instead of building the entire ecosystem from scratch. I have learned from working with volunteers for many years, that people are extremely generous and especially like to give their time on their own terms, for a limited amount of time, when it is convenient for them – and most of all when it is made easy for them.

The second precedent is Match Box Car Race Track. This project checked the speed of the drive. This student IoT project to simulate a drag-strip type track that records times and uploads them to show who the winner was and what their race time was. Instead of tracking the speed, I would collect the number of volunteers who supported “Passion Wheels” and wanted to use the data to display for public awareness.  

The third precedent is a medical panic button for senior citizens. Medical alert help buttons can be used in conjunction with or in place of traditional medical alarm personal devices. Use for inside and outside the house. As technology is another obstacle for senior citizens, I wanted to make a simplified call button that would connect to the call center to arrange transportation for senior citizens. 



I tried to recall all the training that I learned in the 1st semester to define the concept of the project. I wanted to amalgamate Human-centered design, human-computer detraction, visual process, IoT, industrial design practice, and my personal experience into the project. After a couple of discussions with professor Daragh and TA Andrew, I was able to narrow down the scope of the project considering the limited time frame. Later, I designed the logic flow of the system, wrote basic coding, wired breadboards, and order materials that I need to build the Passion Wheel Ecosystem. My biggest challenge was to execute coding based on the design concept and intention. Thanks to Andrew and Arthur’s coding skills, I was able to finish the project at the final presentation.  





Prototype the clicking button triggers the blower to generate air blow based on the number of clicks accumulated in the activity. I wanted to make a simple but beautiful data display system. The data display was flying butterflies in the air. The more volunteer involves in the Passion Wheel’s ecosystem, the higher and longer butterfly stays in the air. I wanted to convey the message of the “Butterfly effect” as a metaphor for data display. It supposed to be beautiful and draw the attention of the public immediately, so people subconsciously understand the kind gesture of the community and influenced to be a part of the ecosystem.


How it does work? 

First, retirees click a smart button at home to call for a ride. 

Second, a call center receives a signal from retirees' and arrange the transportation. 

Third, the call center arranges rides for retirees and sends a signal back to the retirees' house.  

Fourth, the retiree receives a signal from a call center and get ready. 

Fifth, a rider take the retiree to the place where a person wants to volunteer.

Sixth, the call center collects the number of services they provide to the retiree communities and evoke more volunteer with data display.  


Dry Run Proto FeedBack

On one hand, my initial prototype was not fully developed at the review session. I was able to build the separate codes and completed wirings on each breadboard that would later interact with each other. After the feedback, I collected more tools and materials that I needed to literate the hardware part.

On the other hand, I continued my user interview with senior citizens and rationalized my idea of usability. After the interview, I confirmed that my idea was feasible to move forward.   



I functioned as mechanical, software, hardware engineers while working as an industrial designer to create an entire ecosystem. Combining hardware and software were still challenging because both parts should begin delineating which functionalities will fall to which disciplines. Especially figuring out software component was the biggest challenge, but thanks to Arthur Cen, both argons became interact each other. Once the software part got solved, I began to develop the hardware parts.  


Building a sample for the final presentation

I placed an order for all missing parts of materials to build the virtual ecosystem. Building a deliverable sample was the key to this process, so I began to make miniature houses, buildings, cars, and other elements to build a city of Pittsburgh. Once I finish building the city, I build the cylinder to blow air to blow the butterfly in the air. Sending air to one direction was challenging in this process, so I built a flower shape of funnel to drive air to the center. Once each part works at a satisfactory level, I edited the code to add the variable of wind; 10 = low, 20 = medium, and 30 = strong.



1. LED & Button (with Particle.publis)

2. Motor 

//     This code is for Whitecat with button/LED Lights(Red and white)      //

// @see

const int LEDwhite = D5;
const int BUTTON = D6;
const int LEDred = D2;

// This value will store the last time we published an event
long lastPublishedAt = 0;
// this is the time delay before we should publish a new event
// from this device
int publishAfter = 10000;

int presses = 0;

unsigned long redLedExpire = 10000; //red led will turn of in 10 second
unsigned long lastTimeRedOn = 0;

// whether or not the button was depressed on the previous tick
bool wasPressed = false;

//setup a counter for clicks
bool reach10 = false;
bool reach20 = false;
bool reach30 = false;

// //button intervals
// unsigned long buttonInterval = 500;
// unsigned long lastBtnPress = 0;
void setup()
    pinMode(LEDwhite, OUTPUT);
    pinMode(LEDred, OUTPUT);
    Particle.variable("presses", presses);

void loop()
    if (lastTimeRedOn > 0 && lastTimeRedOn + redLedExpire < millis()) {
        digitalWrite(LEDred, LOW);
        lastTimeRedOn = 0;
// the below is the button and white LED reaction...
  int buttonState = digitalRead(BUTTON);

  if (buttonState == LOW) {
    digitalWrite(LEDwhite, HIGH);
    if (lastTimeRedOn == 0) {
        lastTimeRedOn = millis();
        digitalWrite(LEDred, HIGH);
    if (!wasPressed) {

    wasPressed = true;
  } else {
    digitalWrite(LEDwhite, LOW);
    wasPressed = false;
  if (presses >= 10 && presses < 20 && !reach10) {
      //publish a event
      reach10 = true;
  } else if (presses >= 20 && presses < 30 && !reach20) {
      //publish the second event
      reach20 = true;
  } else if (presses >= 30 && presses < 40 && !reach30) {
      //publish the third event
      reach30 = true;
  if (reach10 && reach20 && reach30 && presses > 30) {
      presses = 0;
      reach10 = false;
      reach20 = false;
      reach30 = false;

void handleButtonPress() {
    Serial.println("increment press");
    presses = presses + 1;
Click to Expand
//     This code is for Blackcat with Motor_Fan      //
// Define a pin that we'll place the photo cell on
// Remember to add a 10K Ohm pull-down resistor too.
int motorPin = D3;

bool shouldActivate = false;
String WHITE_CAT = "e00fce68451e0478b4367278";
void setup() {
    Particle.function( "activateMotor", activateMotor );
    Particle.subscribe("diot/2019/hannah/reach10/" + WHITE_CAT, setLevelLow);
    Particle.subscribe("diot/2019/hannah/reach20/" + WHITE_CAT, setLevelMid);
    Particle.subscribe("diot/2019/hannah/reach30/" + WHITE_CAT, setLevelHigh);
    Particle.subscribe("diot/2019/hannah/resetMotor/" + WHITE_CAT, resetMotor);
    pinMode(motorPin, OUTPUT);
    analogWrite(motorPin, 0);

void loop() {


void setMotorLevel(int level){
    analogWrite(motorPin, level);

void setLevelLow(const char *event, const char *data) {
void setLevelMid(const char *event, const char *data) {
void setLevelHigh(const char *event, const char *data) {
void resetMotor(const char *event, const char *data) {

int activateMotor( String command ){
    if (command == "high") {
    } else if (command == "mid") {
    } else if (command == "low") {
    } else {
  return 1;
Click to Expand


1. LED & Button

2. Motor 


    Bill of Materials

  1. One red led
  2. One clear led
  3. Two argons
  4. Battery 
  5. One Mosfet P-Channel Transistor
  6. Registers 
  7. One push button
  8. One rectifier diode 
  9. Two breadboards
  10. Wires 


Next Step

Based on the feedback from the judge, I decided to develop a web/app based rewarding system to entice more participants to help the retiree community.  

Also to execute this idea into a real, I have to consider checking the background of volunteer or build credits with the retiree community.  To do that I would like to build a partnership with "Go Go Grandparents" who is in the market field for a while and has built a great reputation in the industry.  

Professor Kristine also mentioned the "Uber" Forward, the service that helps cancer patients to visit doctor's appointment 

After more research about all valuable feedback, I would iterate this project to the next level. 



I have to admit that it was not easy to work on the final project by myself.  However, I am glad that I was able to execute my initial idea into a deliverable product.  Thanks to Daragh, Andrew, Arthur, and my friend Arleigh, I was able to learn a lot.  

Share this Project


49713 Designing for the Internet of Things

· 16 members

A hands-on introductory course exploring the Internet of Things and connected product experiences.

Focused on

The Passion Wheel is designed to help baby Boomers and retirees in the Pittsburgh community to improve their social engagement while supporting local non-profit organizations with knowledgable volunteers to enhance their services.


December 14th, 2019