IEEE Spectrum June, 2013 - 20

RESOURCES_hanDS On

added if the Victoria line is not
came to me in April 2011 at a
running in good service or if
Rewired State "National Hack
Brixton station is shut. Once all
the Government Day" event,
the additions and subtractions
when I started playing with a
are done, my Flask application
Nanode microcontroller. The
outputs a number between
US $50 Nanode is an Arduino0 and 100, which the Nanode
like microcontroller designed
reads as plain text.
by a group at the London
I wanted to make the final
Hackspace, with Internet
product look nice as well as be
connectivity built in. I'd had
useful, something I could hang
various Arduinos sitting about
on a wall. I removed the workings
for a while, with the intention
from an old clock I bought
of learning how they work and
for $15 to accommodate the
building something network
Nanode and a cheap 5-volt
enabled. But this never quite
servo I bought from Amazon.
happened: Getting an Arduino
com for $8. I printed the Tube
connected to the Internet
logo and the cycle icon used
requires a separate Ethernet
on British street signs onto a
"shield" component, which
piece of card and mounted it
were hard to get hold of at the
in the clock, staining the card
time. So a Nanode was just
with a cold tea bag to age it. I
what I needed.
mounted the servo behind the
However, connecting the
clock face and screwed one of
Nanode was still a little tricky.
the clock hands to the front of it.
First I had to figure out some
UpcycLed: The Barometer is built into an old clock case [top]; instead
Then
it was straightforward to
things at the local-areaof the original clockwork, a servo moves the needle [bottom left].
The plastic case contains a Nanode controller [bottom right] which
make the Nanode convert the
network level, such as divining
connects to the Internet via an Ethernet cable [not shown].
0 to 100 value from the Flask
the hardware media access
application to 0 to 180 degrees
control (MAC) address used
and rotate the servo to move the
to identify the board on the
hand to the appropriate point on
physical Ethernet network.
the dial. I set it to check the Flask application every
Learning how to read a value from a server on
Next I had to decide what data to gather
the Internet also took some time.
and how to boil it down to a single value. The 10 minutes for changes.
Having lived with the Barometer for a few
C o m i n g f ro m a We b p ro g r a m m i n g U.K. government's Met Office provides an
months, and with a little tweaking of the
background, I had difficulty getting my head API that gives 3-hour forecasts for 5000
weightings, I've found it surprisingly accurate,
around creating microcontroller code to locations across the United Kingdom, detailing
handle connections and process the results, 30 weather types (mist, drizzle, sleet, thunder, although the weather's been pretty bad, so it's
so I decided to keep the Nanode software and so forth) along with the wind speed, mostly been pointing at the Tube sign! There's
still room for improvement, though-I'd like
fairly dumb. I programmed my Nanode to read temperature, and pollution level. For public
to add information about daylight hours and
just a single value from the Internet and move transport information I used the Live Tube API
maybe real-time pollution data.
the barometer's needle to a position based from Transport for London, which tells you if a
The Barometer has also triggered ideas
on that value. The hard work of determining station is open (I wanted to know about Brixton
that value would be done on a Web server, station) and the status of each line (in my case, for future projects that take small chunks of
information from the Web and display it on a
where I set up a Flask application on the I was just interested in the Victoria line).
physical thing: I've just finished a whiteboard
Heroku cloud application platform. Flask is a
To turn the weather and transportation data
with six dials that uses a projector to display
lightweight framework for creating websites sources into something meaningful, I started
arbitrary values from a Google spreadsheet
that use the Python language. It's great with the number 100, which means "You really
based on the dials' settings. I'm also thinking
for simple applications that don't require a should cycle!" The Python code deducts points
database. Heroku is a good fit for hosting Web for bad weather: 10 points off if it's under 15 °C, about building something for my brother that
tells him about conditions at his local golf course.
applications made with Flask, and it's free for 30 points off if it's going to drizzle, 75 points
low usage.
if it's going to thunder, and so on. Points get -richard J. pope
20

|

JUn 2013

|

nORTh aMERICan

|

SPECTRUM.IEEE.ORG

photographs by

Jonathan Ford


http://SPECTRUM.IEEE.ORG

Table of Contents for the Digital Edition of IEEE Spectrum June, 2013

IEEE Spectrum June, 2013 - Cover1
IEEE Spectrum June, 2013 - Cover2
IEEE Spectrum June, 2013 - 1
IEEE Spectrum June, 2013 - 2
IEEE Spectrum June, 2013 - 3
IEEE Spectrum June, 2013 - 4
IEEE Spectrum June, 2013 - 5
IEEE Spectrum June, 2013 - 6
IEEE Spectrum June, 2013 - 7
IEEE Spectrum June, 2013 - 8
IEEE Spectrum June, 2013 - 9
IEEE Spectrum June, 2013 - 10
IEEE Spectrum June, 2013 - 11
IEEE Spectrum June, 2013 - 12
IEEE Spectrum June, 2013 - 13
IEEE Spectrum June, 2013 - 14
IEEE Spectrum June, 2013 - 15
IEEE Spectrum June, 2013 - 16
IEEE Spectrum June, 2013 - 17
IEEE Spectrum June, 2013 - 18
IEEE Spectrum June, 2013 - 19
IEEE Spectrum June, 2013 - 20
IEEE Spectrum June, 2013 - 21
IEEE Spectrum June, 2013 - 22
IEEE Spectrum June, 2013 - 23
IEEE Spectrum June, 2013 - 24
IEEE Spectrum June, 2013 - 25
IEEE Spectrum June, 2013 - 26
IEEE Spectrum June, 2013 - 27
IEEE Spectrum June, 2013 - 28
IEEE Spectrum June, 2013 - 29
IEEE Spectrum June, 2013 - 30
IEEE Spectrum June, 2013 - 31
IEEE Spectrum June, 2013 - 32
IEEE Spectrum June, 2013 - 33
IEEE Spectrum June, 2013 - 34
IEEE Spectrum June, 2013 - 35
IEEE Spectrum June, 2013 - 36
IEEE Spectrum June, 2013 - 37
IEEE Spectrum June, 2013 - 38
IEEE Spectrum June, 2013 - 39
IEEE Spectrum June, 2013 - 40
IEEE Spectrum June, 2013 - 41
IEEE Spectrum June, 2013 - 42
IEEE Spectrum June, 2013 - 43
IEEE Spectrum June, 2013 - 44
IEEE Spectrum June, 2013 - 45
IEEE Spectrum June, 2013 - 46
IEEE Spectrum June, 2013 - 47
IEEE Spectrum June, 2013 - 48
IEEE Spectrum June, 2013 - 49
IEEE Spectrum June, 2013 - 50
IEEE Spectrum June, 2013 - 51
IEEE Spectrum June, 2013 - 52
IEEE Spectrum June, 2013 - 53
IEEE Spectrum June, 2013 - 54
IEEE Spectrum June, 2013 - 55
IEEE Spectrum June, 2013 - 56
IEEE Spectrum June, 2013 - 57
IEEE Spectrum June, 2013 - 58
IEEE Spectrum June, 2013 - 59
IEEE Spectrum June, 2013 - 60
IEEE Spectrum June, 2013 - 61
IEEE Spectrum June, 2013 - 62
IEEE Spectrum June, 2013 - 63
IEEE Spectrum June, 2013 - 64
IEEE Spectrum June, 2013 - 65
IEEE Spectrum June, 2013 - 66
IEEE Spectrum June, 2013 - 67
IEEE Spectrum June, 2013 - 68
IEEE Spectrum June, 2013 - 69
IEEE Spectrum June, 2013 - 70
IEEE Spectrum June, 2013 - 71
IEEE Spectrum June, 2013 - 72
IEEE Spectrum June, 2013 - 73
IEEE Spectrum June, 2013 - 74
IEEE Spectrum June, 2013 - 75
IEEE Spectrum June, 2013 - 76
IEEE Spectrum June, 2013 - 77
IEEE Spectrum June, 2013 - 78
IEEE Spectrum June, 2013 - 79
IEEE Spectrum June, 2013 - 80
IEEE Spectrum June, 2013 - 81
IEEE Spectrum June, 2013 - 82
IEEE Spectrum June, 2013 - 83
IEEE Spectrum June, 2013 - 84
IEEE Spectrum June, 2013 - 85
IEEE Spectrum June, 2013 - 86
IEEE Spectrum June, 2013 - 87
IEEE Spectrum June, 2013 - 88
IEEE Spectrum June, 2013 - Cover3
IEEE Spectrum June, 2013 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1217
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1117
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1017
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0917
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0817
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0717
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0617
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0517
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0417
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0317
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0217
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0117
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1216
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1116
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1016
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0916
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0816
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0716
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0616
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0516
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0416
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0316
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0216
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0116
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1215
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1115
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1015
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0915
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0815
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0715
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0615
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0515
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0415
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0315
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0215
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0115
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1214
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1114
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1014
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0914
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0814
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0714
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0614
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0514
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0414
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0314
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0214
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0114
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1213
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1113
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1013
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0913
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0813
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0713
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0613
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0513
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0413
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0313
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0213
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0113
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1212
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1112
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1012
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0912
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0812
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0712
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0612
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0512
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0412
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0312
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0212
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0112
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1211
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1111
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1011
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0911
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0811
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0711
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0611
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0511
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0411
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0311
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0211
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0111
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1210
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1110
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1010
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0910
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0810
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0710
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0610
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0510
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0410
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0310
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0210
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0110
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1209
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1109
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1009
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0909
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0809
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0709
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0609
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0509
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0409
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0309
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0209
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0109
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1208
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1108
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1008
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0908
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0808
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0708
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0608
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0508
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0408
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0308
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0208
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0108
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1207
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1107
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1007
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0907
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0807
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0707
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0607
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0507
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0407
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0307
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0207
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0107
https://www.nxtbookmedia.com