Rita is in her room on a Wednesday night working on a problem set due tomorrow. Her roommate is blasting music, getting ready to go out with friends because she doesn’t have class on Thursday. Rita lives on the infamous Beeler street, past the bend, and decides it’ll be worth the walk to head to Hunt Library for the rest of the night because she really needs to focus so she can get the typical 4 hours of sleep a CMU students needs to function.

It’s early February and Rita steps outside into the blistering cold. It’s 12 degrees outside (with windchill more like minus 12). She makes the 15 minute walk in the ice and finally gets to the heavy doors in front of Hunt Library. She pushes open the doors, soaked from the icy snow. Red face and teeth chattering she walks towards the Cafe to grab a seat and get started on what will be a long night.

Low and behold, the library is packed. She walks up and down the tables trying to find a comfortable place to sit. Nothing. She takes a deep breath and continues on throughout the library. She heads to the basement and hopes that her favorite hidden table in the way back will at least be open. As she walks by the bookcases, she hopes that she’ll finally be able to get started on her work. No luck. She turns around frustrated not knowing what to do.

Her phone rings and she answers it, “Hi Rita, Just wanted to let you know I’m heading out for the night. Sorry I was being loud earlier” - her roommate says. They finish the conversation quickly, as Rita is in the library. She then decides to head back home, another 15 minute walk, hoping that she only wasted 45 minutes on trying to find somewhere to study.

As she walks back home, she dreams of a website that would let her know if the library was busy before she left to go study. She dreams of accelerometers on every chair, so there could be an exact count of how many chairs were taken and how many chairs were available at all times. She dreams of a day with no pointless library walks. Rita is a dreamer.

Today, we bring you Rita.

What is Rita?

Know when the library is quiet or crowded in real-time.

A website with real time information of how many people are in the library in real time. The system will utilize accelerometers attached to chairs in the library connected by a network of Bluetooth and Wifi enabled devices.

What else is out there?

There are a couple other systems currently in the market or in development which attempt to create a similar experience to our goal with Rita, however Rita is a unique product and has a very common use case which other systems fail to serve.


Recora brings a device to market called the 'Recora Chair Occupancy Sensor (COS)' which detects presence within a chair for the elderly or handicapped, sending signals to a monitoring center in case of a likely emergency. The sensor is very large and only works when it can be placed under a cushion. Our device will utilize an accelerometer which can be placed underneath or on the back of any chair.

Purdue Prototype Sensing Chair

Engineers at Purdue University of developed a chair with an 'array of pressure sensors in the backrest and seat'. The chair is designed to sense posture among different individuals and create a memory, or footprint so to speak, and be able to identify which individuals are sitting in the chair. It's an impressive and robust system but varies quite a bit from Rita. Rita uses a single accelerometer and is wireless, allowing us to scale to have hundereds of chairs serving a single purpose.


A team at Carnegie Mellon is developing technology to serve the same purpose as Rita, however they are using FLIR technology, harnessing infrared and thermal imaging to use heat signatures as a method of detecting the level of occupancy in a room. Rita will need significantly less software changes when moving from one space to another or when the space Rita is monitoring changes in some way.

What do we need to do?

There are several requirements we need to satisfy as we bring Rita to life.

  • Price
    A low price is important because we will need to attach this sensor to hundreds of chairs.
  • Size and Shape
    A non intrusive size and shape is important. In addition, the accelerometer needs to be able to attach to different shapes of chairs.
  • Accuracy
    The number of people displayed on the website should be accurate with how many people are in the library.
  • Battery Life
    A battery life of at least one year will be necessary to make this project sustainable. This can be accomplished by having a low duty cycle (running the accelerometer for 30 ms every 30 minutes will help save battery).
  • Usability
    The website that displays the information of how many seats are taken and how many people are in the library needs to have a clean user interface that people enjoy using.
  • Connectivity
    The sensors spread out around the library should have a way to connect back to the server so the website can be updated appropriately.


We can split up the architecture into 3 major blocks of abstraction. The lowest level would be the sensors connected to a BLE chip and small power source. On the mid-tier, we would have aggregator modules that would aggregate the chirping from the BLE-enabled sensors and push them onto a server via Wifi. Lastly the server would amass the information from the various aggregators, process the information over time and display it to a user interface such as a website or a phone application.

For the bottom tier, we would be using a variety of sensors to collect data from multiple sources and for different purposes. We have the following areas in mind:

1- Monitor ingress and egress points with KINECT sensors to get an accurate account of how many people are in a specific room or facility. This can be used to verify and check against how full the subsections are in that areas and as an indicator of overall capacity load.

2- Monitor individual assets such as chairs in the quiet study areas or in an area where chairs can be shifted around using BLE-enabled accelerometers. This allows us to monitor areas which can change dynamically over time without having to be incredibly specific to the details of the setup. The main goal with these sensors is to properly duty cycle them such that we can ration the power efficiently, having the sensors either wake up on activation or wake up periodically.

For the middle tier, we place aggregator modules in sections around the BLE-enabled sensors, so as to gather the information from the area into a single node. This module will also have an Wifi chip, through which it will relay the information to the server. The main rationale for this design decision was to allow the sensors to be aggressively duty cycled to reduce power consumption, and instead have these aggregator modules listen in on the bluetooth signals. Hence the power consumption for these modules will be higher, but that will be offset by the lower number of these modules. Additionally, these can also be powered from an outlet if necessary. This will reduce the long term maintenance of replacing the power supply for the numerous sensors.

Lastly, for the final tier, we aim to have a server running the software side of this project, which will sift through the data loggings and update the frontend website as required. We aim to have this update periodically, at a time interval of about 15 minutes.



Vendor: Digi-Key
Price: $1.31/unit
Link: http://www.digikey.com/product-detail/en/MMA8453QT/MMA8453QT-ND/2444757

Wifi Chip

Name: WiFi Module - ESP8266
Vendor: sparkfun
Memory: 1MB Flash
Price: $6.95/unit
Link: https://www.sparkfun.com/products/13678

BLE Chip

Name: CC2541F128RHAT
SimpleLink Bluetooth Smart and Proprietary Wireless MCU
Vendor: Texas Instruments
Price: $4.64/unit
Link: https://store.ti.com/CC2541F128RHAT.aspx

Mid-tier Processor

Name: Raspberry Pi 2 Model B
Vendor: element14
Memory: 1GB
Price: $35.00/unit
Link: https://www.element14.com/community/community/raspberry-pi

Power Cell

Vendor: Digi-Key
Voltage: 3V
Size: 12.5 mm
Price: $0.88/unit
Link: http://www.digikey.com/product-detail/en/CR1220/P033-ND/269740

Coin Cell Holder

Vendor: Digi-Key
Price: $1.26/unit
Link: http://www.digikey.com/product-search/en?mpart=500&v=36

Current Progress

Schematic for CC2541

Schematic of our peripheral

Working Versions of Code

For mio to update txt file for the server to read (using SCAIFE node for testing currently):

from subprocess import Popen, PIPE, STDOUT
import os
import time
NODE_SUBSCRIPTION = './mio_subscribe_listener -u team17@sensor.andrew.cmu.edu -p 18549 -event FORK_AGG_SCAIFE_125'
NODE_QUERY = './mio_item_query -u team17@sensor.andrew.cmu.edu -p 18549 -event FORK_AGG_SCAIFE_125'

os.system("touch output.txt")

while True:

p = Popen([NODE_QUERY], stdout=PIPE, stdin=PIPE, stderr=PIPE, shell=True)
for line in p.stdout.readlines():
if "Value" in line:
actual_value = line.split(': ')[1]
print actual_value
f1 = open('output.txt', 'r+')

For the Raspberry Pi to connect to the FTP server and push accelerometer data

import ftplib
ftp = ftplib.FTP("waws-prod-sn1-023.ftp.azurewebsites.windows.net")

Presentations Made in Class (Progress)

FEB 29
-Talked to dean of library & set up appointment for 03/21
-Requested MIO access & set up meeting with Craig
-Researched on how to get accelerometer to communicate to rPI

MAR 14
-Set up and configured MIO library
-Got approval for installation in library
-Set up server for the rPI
-Set up the rPI to communicate to server

MAR 28
-Showed Proof of Concept of CC2541 Keyfob sending information to bTool on the computer. This is the demo from using the development kit
- Researched possible avenues through which to develop on the CC2541 MCU, finalized on using the IAR 8051 Workbench to develop code, and Smart RF Flash Programmer to flash code over
- Basic implementation of server side code implemented and working

Team Members

Ram Verna

Ram is an ECE major planning to pursue his IMB next year and graduate with both an undergraduate and masters degree in 4 years. He also does not go to sleep until 5 or 6 am most nights. For this reason, all of our meetings are in the afternoon. Ram also loves balloons.

Ian Glasner

Ian is an aspiring chef.

Theodore Warhoe

Ted enjoys playing Madden.

Arulnithi Sundaramoorthy

Arul likes bad puns.

Contact us

This form does not work but if you are frustrated with Rita, you are welcome to input your frustration and if we get it working we might respond. Have a great day!