Library Occupancy Project Follow Up

The occupancy project is now deployed at Sorrells Library. After running for more than a week, it’s time to see how it performs… So I dumped the database, feed the dump into a python script for processing, and plotted occupancy for each day. And the results are surprisingly good! Let’s take a look. Here is…… Continue reading Library Occupancy Project Follow Up

The Making of the Library Occupancy Estimation System, Part 5 – the Enclosure

It’s almost time to deploy the ESP8266s. I switched from the previous board to wemos mini lite, a smaller board with a variant of ESP8266 (ESP8285). The ESP8285 includes a on-chip 1M EEPROM, reducing the cost. The most important difference is that the newer boards don’t have pre-soldered pin headers. Desoldering pins from the previous…… Continue reading The Making of the Library Occupancy Estimation System, Part 5 – the Enclosure

The Making of the Library Occupancy Estimation System, Part 4 – the Frontend

The only part missing was a front-end. It is 2017, and splitting up front-end and back-end is now a must. This is even more true in this project: serving html and other resources from my free Heroku server does not sound like a good plan – with only 1 web instance, the server can be…… Continue reading The Making of the Library Occupancy Estimation System, Part 4 – the Frontend

The Making of the Library Occupancy Estimation System, Part 3 – the Server

So the sniffer part was complete. The server was the missing piece of the puzzle. The server needs to do several things Receive data from the sniffer and decryptSave sniffed data (probe requests) to a databaseAnalyze probe requests and deduce occupancyProvide public APIs for retrieval of occupancy information I’m using python3 for the server since…… Continue reading The Making of the Library Occupancy Estimation System, Part 3 – the Server

The Making of the Library Occupancy Estimation System, Part 2 – the Sniffer

So I proved that this idea is somewhat feasible. There were two major problems that need to be addressed: 1. there were too many probe requests, 2. there needed to be some way to send found devices back to a server. The “too many probe requests” problem was easy to fix. I implemented a bloom…… Continue reading The Making of the Library Occupancy Estimation System, Part 2 – the Sniffer

The Making of the Library Occupancy Estimation System, Part 1 – the Idea

So… Here’s a problem that most CMU students encounter on a daily basis: finding someplace to study. This process is surprisingly labor intensive: Here’s an example: You decided to find some place to study.You walk to Sorrells Library in Wean, and it was full: after the recent renovation the library has become one of the…… Continue reading The Making of the Library Occupancy Estimation System, Part 1 – the Idea

Hacking 100% orange juice to run multiple instances

I recently got the game 100% Orange Juice, and as a board game it doesn’t support local multiplayer. It does have an online multiplayer though. So the idea is to run multiple instances of the game, and use the online multiplayer mode to “simulate” local multiplayer. However, it doesn’t event want to you to run…… Continue reading Hacking 100% orange juice to run multiple instances