Firewatch in a cloud-first world

IBM Bluemix as a cloud platform to prototype a fire prevention system for national parks

What is this article about?

In January Campo Santo released a videogame called Firewatch. I am a Scout Lead, so I was very impressed and the gameplay totally astonished me: the game, a single player mistery game, is set in a lookout, a tower part of a system to watch for fires in national parks, sorrounded by the wonders of a forest in Wyoming. It was a so beautiful experience, an experience which inspired me so much that I started, during an Intel hackathon, thinking about how an engineer could really prevent fire risk for National Parks Service using the power of cloud computing. Then I met the IBM Bluemix Italia community.

Lookouts: an hardware overview

The very first step is to imagine the lookout as a piece of hardware. And it is insanely simple: for a good approximation of the Fire Danger Index you have to use wind speed, air humidity percentage, temperature indicators and grass conditions. The last one can be checked by the rangers once a week or so and set up into the hardware, which can be a very simple Arduino / Genuino-like board to which we could attach the other (very cheap) sensors and a GSM module to access the internet. 
If you think that a real lookout is a tower-shaped structure with all the necessary to make a human being survive for months during summer, this hardware is several orders cheaper! Furthermore, it can be deployed in the most difficult and endangered zones with no necessity to raise a building. And it is connected to the cloud, so it can be remotely configured and accessed in seconds all around the globe.

Bluemix console — IoT section (Please note that it was the free-trial, you can extend the time limits adding your credit card for free. And of course you can read my email address, please email me if you want to talk about this project!)

IBM Bluemix: the right cloud in the right place

I have already told you that this idea was born playing Firewatch, so what was I waiting for? A cloud which would provide me a direct solution, no needed complex cloud settings to have my back-end ready: I really wanted to concentrate on the hardware platform instead of the cloud one. 
In the last Codemotion event in Rome I could talk to the IBM Bluemix Italia Community about Node-RED, a very simple way to visual coding to wire together hardware devices, APIs and online services in new and creative ways. And I was amazed on how it was so easy and fun to follow the creative process of the back-end design of an IoT application: previously I was overwhelmed by the VMs setups, the API interactions and so on, so I continually procrastinated my time to be part of Firewatch legend. 
When I started the tutorial of Node-RED it was just question of minutes to have my virtual device running and my very simple implementation of the fire danger index tossing out alerts all along. And I was thrilled: Bluemix was finally the right cloud solution.

Cathedral Creek (Yosemite National Park), our fictionary lookout position for our fictionary fire risk problem with the nearest Tuolomne Meadows Visitor Center.

A fictionary real world scenario

Imagine now that we have a very serious problem in Yosemite National Park: our boss at National Park Service is running out of lookouters this summer and wants to improve security protocols around the visitor center at Tuolomne Meadows. After a consultation with our fire experts and after a big-data analysis of the history of the region, the most dangerous area is the one near Cathedral Creek. So our cheap watcher made of an Arduino, its modules, its batteries, and a very pretty wooden case with solar panels, is deployed by rangers. Our software, hardcoded into the ATMega, send every 5 seconds to our service, built with Node-RED upon IBM IoT Platform, data about is position and (we have very few bucks in the budget this year) only humidity and temperature data. 
All of this, in a Node-RED flow, can be tested by a very simple diagram which is given by the tutorial demo as well as the other blocks which implements the routines we are going to see.

Flows: the Node-RED approach

Inside this very powerful tool (which documentation can be found here) I am using blocks to determine the behaviour of my back-end: in particular every time the device triggers an event -a new reading- the data will be processed by a block implementating a function in Javascript.

Very simple modifications to the tutorial, with a very simple implementation of a Fire Danger Index.

The sensor will push to the IBM IoT Platform service, deployed in a custom app by my flow, the data to let them be processed and to retrieve the FDI. Then a threshold block will the determine the data to send to the final user, a debug prompt in this case or a push notification to alert the visitor center for upcoming evacuation procedures.

The complete diagram and debug output. The threshold block is alerting the dangerous risk level to notify the visitor center.

It is very important to see that there is a complete toolbox of nodes, each of one implementing a function in the flow and some of them an interface to Bluemix services (included Watson APIs!). So you can re-arrange the demo in the most complex way you needed: my maker instinct can be satisfied as long as my creativity is going on. And this is the killer feature for an IoT developer.

As an IoT enthusiast I have intentionally left you with just two poor screenshots: the maker experience in this bold cloud flavor must be pure. I suggest you to try to follow the tutorial as I did and let the inspiration be converted in scrupulous analysis for the future of your technology.

Conclusions and future implementations

As a consequence for this quick tutorial / demo experience in Bluemix, let me explore with you where the future implementations can lead.

Imagine now that instead of the last debug block we use a web socket to continously send information to National Park Service HQ monitors, or implementing our open-source version of the MQTT protocol to send data from specific sensors, or increasing the prediction of fire risk by interpolation with other measures introducing very specific signals generated in no more then few clicks and few lines of Javascript via Node-RED flow editor. And more over, using Watson Weather API to add accurate forecasts, or managing distress calls from the endangered area with Watson Conversation, or sending storms of notification to let the users escape from the blaze front or alerting the rangers corps to handle the fire risk.
All of this will be a future implementation of my project and it all started from a very basic tutorial, with very quick steps from my Bluemix dashboard.

This is the future of cloud providers services: the development experience must be developer-oriented and IBM has good chances to be a major leader in IoT spreading innovation.

Like what you read? Give Alessio Moretti a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.