I Get It

Raising your hand is a thing of the past


The Inspiration

We began with a simple idea: What if students could easily let teachers know if they are completely lost on a topic or if they already understand it and want to move on? In classrooms they could rate their understanding of material in real time. A professor could see exactly when they were losing the class, and students could get better explanations of difficult topics without the intimidation of raising their hand. What if there was a way to be sure to give consideration to every student?

The Plan Forms

With this idea in mind, we started thinking of an implementation. A potentiometer could give a scale could be useful feedback. We saw that Spark Cores (microcontrollers with built in WiFi) were available and decided to pick up a few. Then we started to think about how to get our data. This is where the magic really began.

I Get It

Most systems for this role, such as ResponseWare "clickers", operate on discrete events. The teacher asks a question and answers are submitted. What we wanted to do was continuous feedback. We wanted to be able to see and respond to trends in data for every moment, both live and in retrospect. We couldn't find any existing system to do this, so we decided to build one.

"I Get It" is a set of firmware images for Spark Core, with servers written in Python, and web interface that makes it easy to set up a wireless sensor network over an ad-hoc WiFi network, with applications in education and beyond.

Teachers can use I Get It with sliders to rate audience understanding. Building managers and maintenance can gather any kind of data from anywhere within range of a WiFi network, like humidity, light levels, floor cleanliness, or applications that haven't even been thought of yet.

How it Works

Firmware

"I Get It" is a system in 3 parts. The first part, the firmware, is what runs on the sensors themselves. It sends a request to join the sensor net, then waits to be polled for data. When it gets an HTTP Get request, it responds by sending out its sensor values.

Server

The second part, the server, is also a system in three parts. The server is entirely programmed in Python, and takes the form of three scripts running on a host system. The first script, the Database Engine, manages an SQLite database for long term storage, and maintains live data. It also manages the interprocess communication between the server processes. The second portion is the web server.

The web server manages presenting the frontend to browsers and servicing AJAX requests for live data (with the help of the database server). It is also what new devices contact to join the sensing network.

The polling server is what gets the live data. It goes through all of the devices that have requested to join the sensing network and makes an HTTP GET request for their sensor data. It packs this data together with information about the sensor that gathered it and the time it was gathered and sends it off to the database

Frontend

The web interface presents a live histogram of student understanding. Users can see the percentage swing in real time on any screen that can connect to the network. It's made with HTML, JavaScript, and AJAX. Plans are to make analysis of aggregate long term data available, but for now, we just have raw long term data. There's only so much time at a hackathon, am I right?

Get It?

Enhance your class with real time data. Make unnoticed hand raising a thing of the past. Build a wireless sensor network in minutes for anything, anywhere.

Try it out