Baxevanis (@futureshape) Senior UX Consultant, Webcredible Internet of Things Meetup #7 - London,UK Hello everyone, and thanks a lot for coming tonight. This is my ﬁrst time here, and I’ve jumped right in and volunteered to talk. My name is Alex, I have a day job as a user experience designer, but I started long time ago as an engineer and I haven’t quite put that hat down. In short, I like to grasp any available opportunity for building stuff. So let’s start with a story about how I got to build one of my recent project. In our office, we’ve got this silly old printer ...
I guess because it prints in B&W, and it was the ﬁrst B&W printer that got to be installed, although the 2nd one doesn’t exist any more. I say it’s a silly old printer, but it’s actually quite useful. We load it with scrap paper that’s already printed on one side, and get it to print on the other side, and save some trees, or whatever paper is made out of nowadays. The only problem with this printer is that, partly because it’s old and partly because we feed all sorts of scrap paper into it, is that it tends to jam a lot.
for that matter, there’s one thing that always happens. You send a printout, forget about it for a while, then you need to pick it up quickly, on a way to a client meeting for example, and you realise the printer isn’t working. You spend a couple of minutes sorting it out, and then you hope your printout will come out. But no, what comes out ﬁrst is 100 pages of other stuff that your colleagues have sent to print, and was patiently waiting for the printer to become available. Clearly, something had to be done, and it obviously had to involve an Arduino
a rather ancient, by today’s standards, protocol called SNMP. SNMP stands for Simple Network Management Protocol. One can argue whether it’s actually simple or not, but the rest describes its purpose rather accurately.
connected SNMP Manager SNMP Agent GetRequest GetResponse UDP 12 MIB There’s more use cases, including reading lots of data in bulk from the remote device, and even updating data on the device if the device allows it, but the simple thing of asking one value at a time will do for now. So ... what sort of things can you ask?
using a slightly complex encoding called ASN.1 • Space & power-efﬁcient - packets are small • Stateless - replies contain all necessary data • Can easily create a template packet for simple requests • No need to fully parse replies So simple, in fact, that even I managed to implement it, admittedly just a small subject, and with the help of other open source code I discovered online.
around, and I thought I’d give it a try. It’s currently sitting on my desk, pinging our office internet router every couple of seconds, and showing how much data we download every day. So, how do you go about doing something like that?
protocol of the future” • But it works well enough for interfacing with lots of interesting things out there • And can easily ﬁt in an Arduino • So we can bring more Things inside our Internet of Things - anyone up for an SNMP to Pachube gateway? :)
to all the people who did the really hard work, and created the Nanode and the associated networking libraries. Any questions, ask me now or on Twitter or via email, and I’ll get the slides posted online somehow.