Building an IoT App for the Zombie Apocalypse

Ever thought what kind of app you would need to survive the Zombie Apocalypse? No, well neither had I until this semester’s session began and we needed a fun project for the final year students to work through in 8 hrs of lab time. This is what I came up with along with the support of the team at Aber Comp Sci.

SETTING SUMMARY – Infection is underway. We’re a few days into the epidemic. The cities are a mix of zombies and humans held-up in their homes with supplies steadily running lower. The power and telecommunication infrastructure is still operational (.. that makes sense right? How mindless zombies take down automated infrastructure in the movies is beyond me). The Ministry of Defence had the foresight to invest in a specialised monitoring infrastructure for this very eventuality to let the civilians protect themselves by avoiding areas with a high population of zombies. The system works to provide decentralised information to other civilians and the MoD.

SOLUTION SUMMARY – The prototype boards operate as a dart based observation system to monitor when a corpse transitions from Human to Zombie. The MoD would provide tools for civilians to propel the painless dart into targets and an App to connect to darts in the local vicinity. Upon establishing the connection to a dart, the state data is uploaded (via the App) to an online centralised server. 

GETTING INTO THE DETAILS

The project app idea consisted of a prototype board, that would provide sensor input, location data and communication connectivity, and a web server application to provide an overview of all the data in real-time.

RaspberryPi 3 board with 5000mAh LiPo battery, LCD display, 125Khz RFID scanner, UBlox GPS, Arduino Nano with other sensors. Customised board design,  component and circuit design, and Arduino Nano sensor interface code by Richard Shipman
Construction of 22 boards,  fittings and electrical testing by Dr. Pete Todd. Practical task design for higher level Ubiquitous Computing learning topics, board rebuild scripts, C code samples and Web Application interface design and implementation by myself,  with reviews by Dr. Mark J. Neal
My good friend No, volunteering to be photographed while analysing the accelerometer and gyroscope sensor data for pattern differences between human and zombie test data samples in LibreOffice Calc.

Once the Zombie detection mechanism had been implemented and tested thoroughly enough to minimise false-positives and false-negatives, the remaining task was to integrate it into the web application. First was to enable continuous monitoring of the board/dart. Next collect location data from the logged GPS fix data. Then finally the students’ code would need to upload identifier, state, location and decision data to the server. Each stage posed a series of added challenges required of a real system. 

By the end of the final week, zombies had spread from ground-zero (Aberystwyth Comp Sci) to as far as the Shetland Islands, beyond the north coast of Scotland. Humans beware!

Example of transmitted, validated and reported data from the boards. GPS north an west coordinates had been mapped by the Google Maps API with human/zombie caricatures. Note the contextual sensor data remained uncollected, defaulting to zero. 
A final view of the GPS coordinate mappings over the university campus.

Overall, this had been a fun and entertaining exercise that let us address a variety of the IoT and Ubiquitous Computing challenges. Implementation and testing in the real outdoor environment raised extra complications and required optimisations that would have been missed without the practice. 

One example was the 12 minute wait for the GPS fix from cold boot which we determined could be improved by logging location data from multiple sources and reloading that data on boot to reduce time taken to find location information. There were many other lessons learned,  such as this,  of similar interest and merit. 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.