Hands-on with the IoT
Daryl Wilding-McBride (DiUS)
Andy Gelme (geekscape.org, m9design.co)
The point(s) of this talk
1. Physical integration through open standards
is the next big thing
2. We should turn our minds...
“It’s only the Internet of Things while it
doesn’t work.
As soon as it works, it’s a thermostat.”
Chris Anderson, 3DRoboti...
“Q: What is the Internet Of Things, Mr
Salesman ?
A: Whatever matches my product range.”
Dick Selwood, EE Journal
So what ...
Why now ?
What has changed?
Software
● Open source
● Ease of use
e.g. Arduino IDE
● Big Data platforms,
tools, technologies
Hardware
● Open source
● I...
“The best minds of my generation are
thinking about how to make people
click ads.
That sucks.”
Jeff Hammerbacher, Facebook...
From a technology perspective, good web
software delivery is a solved problem
From a technology perspective, good web
software delivery is a solved problem
IoT has lots of unsolved, worthwhile problem...
From a technology perspective, good web
software delivery is a solved problem
IoT has lots of unsolved, worthwhile problem...
Granularity of IoT building blocks
Generic building blocks …
● Arduino, sensors, actuators
Function specific building bloc...
Generic building block: MeshThing
Sensors, actuators and controllers
Turning a collection of transducers into a single unit
Designed by John Spencer for the...
Turning multiple units into a subsystem
Designed by John Spencer for the Caravan Of Terror
Having reached this point the question becomes …
“How do we connect all the subsystems together ?”
and / or
“How do we con...
Connecting devices
Whenever you can … use cables
○ More bandwidth
○ Less latency
○ More reliable
○ More secure (assume no ...
Connecting devices
However, cables not possible in many situations
○ Devices are far apart
○ Devices that move around
○ Un...
Wireless networking choices
We are now spoilt with choice
○ 4G modems
○ WiFi, e.g SparkCore
○ Bluetooth Classic / Low Ener...
Network design decisions
Driven by requirements
○ Development environment
○ Bandwidth and latency
○ Power consumption
○ Re...
Likely outcome
Solution includes variety of different hardware
devices, networking and software stacks
There is no one mag...
Why IPv6 / 6LoWPAN mesh networks ?
WiFi and Bluetooth LE are often good solutions
What if we require ?
● IP packets end-to...
Some personal criteria
● Open-source hardware and software
● Low cost < $40
● Prototype: Off-the-shelf
● Production: Custo...
Network diagram
MeshThing #1
RPL Border Gateway
fd00:0:0:10::1
MeshThing #2
fd00:0:0:10::2
MeshThing #3
fd00:0:0:10::3
Mes...
Mesh network stack
● Message: MQTT or CoAP
● Service discovery: DNS-SD
● Name resolution: mDNS
● Transport: IETF ICMP / UD...
MeshThing hardware
● MeshThing
○ ATmega2564RFR2: SoC +
radio
○ XBee header layout
○ 16 I/O pins
○ Contiki OS
● MeshUSB
○ U...
MeshThing Input / Output
● For highly constrained devices …
○ 8-bit MPU, 8 MHz, 40 kB Flash, 8 Kb RAM
● Cisco contributed the uIPv6 stack
● 6LoWPAN...
● Compile using avr-gcc (C programming)
● Build Contiki on Linux, MacOS or Windows
○ Raspberry Pi for development and gate...
● One host acting as mesh network router
● Enable IPv6 forwarding
● Acquire IPv6 Unique Local Address (ULA)
○ Address pref...
● Get mDNS and DNS-SD working
● Port MQTT C client
○ Integration with NodeRed
● Port Firmata for NodeBots
○ Improvements f...
Solution : Search & Rescue UAV
About the
UAV Outback Challenge
4.5 kms
2.3 kms
1.2 kms
About the
H20-to-Joe Team
PX4 Demo
What we’ve learned so far
Sophistication of open-source hardware & software
What we’ve learned so far
Sophistication of open-source hardware & software
Prototyping with a 3D printer
What we’ve learned so far
Sophistication of open-source hardware & software
Prototyping with a 3D printer
Embedded computing is a lot of fun
What we...
Getting started
Choose a goal / project
Build your own sensor network (home / office)
Connect to Xively, ThingSpeak, SkyNet.IM … or D.I.Y
...
Typical process
● Understand the “problem” … multiple iterations
● Get a microcontroller, e.g Arduino
○ Connect sensors / ...
Gadgets #1
https://www.temboo.
com/arduino
● Atheros AR9331, 400 MHz
○ 16 Mb Flash, 64 Mb RAM
○ Running OpenWRT (Linino)
○...
Gadgets #2
● Open-source hardware and software
● 168 MHz Cortex M4F CPU
● 2 MB Flash, 256 KB RAM
● 3-axis accelerometer / ...
Hang-out with like-minded people
● Meetup.com: IoT groups
○ http://www.meetup.com/Internet-of-Human-Things-Melbourne
○ htt...
Hang-out with like-minded people
● Meetup.com: IoT groups
○ http://www.meetup.com/Internet-of-Things-Sydney
● HackerSpaces...
Hang-out with like-minded people
● Meetup.com: IoT groups
○ http://www.meetup.com/Hack-the-Evening
● HackerSpaces.org …
○ ...
Space and tools with people who share skills / collaborate
HackerSpaces
Electronics prototyping, diagnosis, manufacturing
HackerSpaces
3D printers, laser-cutter, lathe, CNC mill, ...
HackerSpaces
Making a broad variety of things
HackerSpaces
Hopefully, we’ve convinced you ...
1. Physical integration through open standards
is the next big thing
2. We should turn ...
Yow! Connect conference
● September 2014
● Internet of Things stream
● Mobile: Android and iOS streams
● Keynotes: Local a...
Staying in touch
Daryl Wilding-McBride
dwm@dius.com.au @DarylWMcB
http://dius.com.au
Andy Gelme
andyg@geekscape.org @geeks...
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Upcoming SlideShare
Loading in...5
×

Internet Of Things: Hands on: YOW! night

1,021

Published on

Introduction to the Internet Of Things ... using the MeshThing hardware running Contiki mesh-networking software for IPv6 / 6LoWPAN. Also, Daryl Wilding McBride (@darylwmcb) covers building a quadcopter for the Outback Joe competition.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,021
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
70
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Internet Of Things: Hands on: YOW! night

  1. 1. Hands-on with the IoT Daryl Wilding-McBride (DiUS) Andy Gelme (geekscape.org, m9design.co)
  2. 2. The point(s) of this talk 1. Physical integration through open standards is the next big thing 2. We should turn our minds to this new class of application 3. It’s really easy to get started now
  3. 3. “It’s only the Internet of Things while it doesn’t work. As soon as it works, it’s a thermostat.” Chris Anderson, 3DRobotics
  4. 4. “Q: What is the Internet Of Things, Mr Salesman ? A: Whatever matches my product range.” Dick Selwood, EE Journal So what is the Internet of Things... really?
  5. 5. Why now ? What has changed?
  6. 6. Software ● Open source ● Ease of use e.g. Arduino IDE ● Big Data platforms, tools, technologies Hardware ● Open source ● Innovation in cost / power usage / sophistication ● Maker movement ● 3D printing ● Fabrication services (e.g. Shapeways) ● Easy-to-use building blocks (e.g. Arduino) Culture ● Drive for greater efficiency / knowledge / safety ● Making decisions on evidence The confluence enables new classes of applications to be built
  7. 7. “The best minds of my generation are thinking about how to make people click ads. That sucks.” Jeff Hammerbacher, Facebook’s first data scientist
  8. 8. From a technology perspective, good web software delivery is a solved problem
  9. 9. From a technology perspective, good web software delivery is a solved problem IoT has lots of unsolved, worthwhile problems that are very challenging
  10. 10. From a technology perspective, good web software delivery is a solved problem IoT has lots of unsolved, worthwhile problems that are very challenging We need to get good at solving them
  11. 11. Granularity of IoT building blocks Generic building blocks … ● Arduino, sensors, actuators Function specific building blocks ● Quadcopter with autopilot Complete solutions ● Search & rescue UAVs
  12. 12. Generic building block: MeshThing
  13. 13. Sensors, actuators and controllers Turning a collection of transducers into a single unit Designed by John Spencer for the Caravan Of Terror ● ATtiny84 MCU < $1.50 ● Linear potentiometer ○ Motorized slider ○ Capacitive touch ● LED display ● RGB LED string ● Multiple units controlled by I2CATtiny84 8-bit MCU
  14. 14. Turning multiple units into a subsystem Designed by John Spencer for the Caravan Of Terror
  15. 15. Having reached this point the question becomes … “How do we connect all the subsystems together ?” and / or “How do we connect these things to the Internet ?”
  16. 16. Connecting devices Whenever you can … use cables ○ More bandwidth ○ Less latency ○ More reliable ○ More secure (assume no physical access) ○ Cheaper (for given bandwidth requirement) ○ Ethernet, e.g Freetronics EtherTen
  17. 17. Connecting devices However, cables not possible in many situations ○ Devices are far apart ○ Devices that move around ○ Uneconomic, e.g retrofit building automation
  18. 18. Wireless networking choices We are now spoilt with choice ○ 4G modems ○ WiFi, e.g SparkCore ○ Bluetooth Classic / Low Energy ○ Near Field Communication ○ nRF24 (Nordic Semiconductor) ○ 433 MHz e.g garage door opener ○ Mesh network: 802.15.4 + 6LoWPAN
  19. 19. Network design decisions Driven by requirements ○ Development environment ○ Bandwidth and latency ○ Power consumption ○ Reliability ○ Security ○ Range ○ Cost
  20. 20. Likely outcome Solution includes variety of different hardware devices, networking and software stacks There is no one magic silver bullet Certainly not mesh networks … so, always read the fine print !
  21. 21. Why IPv6 / 6LoWPAN mesh networks ? WiFi and Bluetooth LE are often good solutions What if we require ? ● IP packets end-to-end (no protocol gateways) ● Peer-to-peer transmission (no access points) ● Very low energy consumption (milliWatts) ○ Minimal resources, deep sleep ● Simple discovery, routing, name resolution, services ○ IETF open standards (RFC)
  22. 22. Some personal criteria ● Open-source hardware and software ● Low cost < $40 ● Prototype: Off-the-shelf ● Production: Custom hardware ● Replace existing options, e.g Zigbee ○ Isn’t really open ○ Wasn’t IP based ○ Compatibility over time / between vendors
  23. 23. Network diagram MeshThing #1 RPL Border Gateway fd00:0:0:10::1 MeshThing #2 fd00:0:0:10::2 MeshThing #3 fd00:0:0:10::3 MeshThing #4 fd00:0:0:10::4 Raspberry Pi or OpenWRT IPv6 Router fd00:0:0:1::1/64 eth0 fd00:0:0:2::1/64 wlan0 fd00:0:0:10::1/64 tun0 SLIPDesktop / Laptop IPv6 Node fd00:0:0:1::2/64 eth0 LAN Mobile device IPv6 Node fd00:0:0:2::2/64 WiFi Everything is an IPv6 connected device TCP, UDP and ICMP (ping) messages all work between any devices
  24. 24. Mesh network stack ● Message: MQTT or CoAP ● Service discovery: DNS-SD ● Name resolution: mDNS ● Transport: IETF ICMP / UDP / TCP ● Network: IETF IPv6 with 6LoWPAN, RPL (routing) ● Data link: IEEE 802.15.4 MAC (sicslowmac) ● Physical: IEEE 802.15.4 PHY (radio)
  25. 25. MeshThing hardware ● MeshThing ○ ATmega2564RFR2: SoC + radio ○ XBee header layout ○ 16 I/O pins ○ Contiki OS ● MeshUSB ○ USB serial ○ LiPo battery / charging ○ Micro-SD card slot ○ Solar panel input ● MeshProto (stackable board)
  26. 26. MeshThing Input / Output
  27. 27. ● For highly constrained devices … ○ 8-bit MPU, 8 MHz, 40 kB Flash, 8 Kb RAM ● Cisco contributed the uIPv6 stack ● 6LoWPAN header compression, adaption layer ● RPL routing protocol ● Non-premptive tasks ● Cross platform support ● Many contributed examples ● Cooja network simulator Contiki Operating System
  28. 28. ● Compile using avr-gcc (C programming) ● Build Contiki on Linux, MacOS or Windows ○ Raspberry Pi for development and gateway ● MeshThing runs STK500 bootloader (Arduino) ○ Use “avrdude” to download firmware MeshThing programming
  29. 29. ● One host acting as mesh network router ● Enable IPv6 forwarding ● Acquire IPv6 Unique Local Address (ULA) ○ Address prefix fdxx:xxxx:xxxx/48 ● IPv6 route advertisement for each interface ○ Run “radv” daemon (Linux) ○ Run “rtadv” daemon (Mac OS X) ● Clients run IPv6 route solicitation damon Network configuration StateLess Address Auto Configuration (SLAAC)
  30. 30. ● Get mDNS and DNS-SD working ● Port MQTT C client ○ Integration with NodeRed ● Port Firmata for NodeBots ○ Improvements for multiple nodes ● Support Arduino IDE ○ Arduino sketch as a loadable module Work in progress
  31. 31. Solution : Search & Rescue UAV
  32. 32. About the UAV Outback Challenge
  33. 33. 4.5 kms
  34. 34. 2.3 kms
  35. 35. 1.2 kms
  36. 36. About the H20-to-Joe Team
  37. 37. PX4 Demo
  38. 38. What we’ve learned so far
  39. 39. Sophistication of open-source hardware & software What we’ve learned so far
  40. 40. Sophistication of open-source hardware & software Prototyping with a 3D printer What we’ve learned so far
  41. 41. Sophistication of open-source hardware & software Prototyping with a 3D printer Embedded computing is a lot of fun What we’ve learned so far
  42. 42. Getting started
  43. 43. Choose a goal / project Build your own sensor network (home / office) Connect to Xively, ThingSpeak, SkyNet.IM … or D.I.Y Build your own robot NodeBots Days: http://nodebots.io Build your own quadcopter http://copter.ardupilot.com/wiki/build-your-own-multicopter
  44. 44. Typical process ● Understand the “problem” … multiple iterations ● Get a microcontroller, e.g Arduino ○ Connect sensors / actuators ○ Connect to LAN / WAN ● Get a Single Board Computer, e.g Raspberry Pi ○ Install MQTT (publish / subscribe message server) ○ Real-time monitor and control ○ Background data aggregation and presentation ● Think about power, networking, packaging ○ Prototyping => Fit For Purpose => Production ● Perfect the “user experience” … multiple iterations
  45. 45. Gadgets #1 https://www.temboo. com/arduino ● Atheros AR9331, 400 MHz ○ 16 Mb Flash, 64 Mb RAM ○ Running OpenWRT (Linino) ○ Ethernet, WiFi, USB A ○ Micro-SD ● ATmega32u4 ○ Arduino Leonardo ○ Serial connection to AR9331
  46. 46. Gadgets #2 ● Open-source hardware and software ● 168 MHz Cortex M4F CPU ● 2 MB Flash, 256 KB RAM ● 3-axis accelerometer / gyroscope / magnetometer ● Barometer ● Backup, override, failsafe processor ● Running NuttX RTOS (Posix)
  47. 47. Hang-out with like-minded people ● Meetup.com: IoT groups ○ http://www.meetup.com/Internet-of-Human-Things-Melbourne ○ http://www.meetup.com/IoT-Melbourne ● HackerSpaces.org … ○ http://hackerspaces.org/wiki/Australia ○ CCHS Hawthorn: http://hackmelbourne.org ○ OpenLab: http://www.medialabmelbourne.com.au/openlab ○ Make-Create Brunswick: http://www.meetup.com/Make-Create ○ Ballarat HackerSpace, Mill Park Library MakerSpace ○ Geelong HackerSpace, East Gippsland HackerSpace ○ Footscray MakerLab ? Northern Suburbs ?
  48. 48. Hang-out with like-minded people ● Meetup.com: IoT groups ○ http://www.meetup.com/Internet-of-Things-Sydney ● HackerSpaces.org … ○ http://hackerspaces.org/wiki/Australia ○ Robots and Dinosaurs: http://robodino.org ○ RoboDojo: https://groups.google.com/forum/#!forum/robodojo ○ OzBerryPi: http://www.ozberrypi.org (nomadic) ○ NewCastle MakerSpace: http://newcastlemakerspace.org/wiki ○ Visit CCHS Melbourne: http://hackmelbourne.org
  49. 49. Hang-out with like-minded people ● Meetup.com: IoT groups ○ http://www.meetup.com/Hack-the-Evening ● HackerSpaces.org … ○ http://hackerspaces.org/wiki/Australia ○ Brisbane HackerSpace: HSBNE ○ Gold Coast TechSpace: http://gctechspace.org ○ Caboolture HackerSpace, Townsville HackerSpace ○ Hack This Coop (Toowoomba) ○ Visit CCHS Melbourne: http://hackmelbourne.org
  50. 50. Space and tools with people who share skills / collaborate HackerSpaces
  51. 51. Electronics prototyping, diagnosis, manufacturing HackerSpaces
  52. 52. 3D printers, laser-cutter, lathe, CNC mill, ... HackerSpaces
  53. 53. Making a broad variety of things HackerSpaces
  54. 54. Hopefully, we’ve convinced you ... 1. Physical integration through open standards is the next big thing 2. We should turn our minds to this new class of applications 3. It’s really easy and fun to get started now
  55. 55. Yow! Connect conference ● September 2014 ● Internet of Things stream ● Mobile: Android and iOS streams ● Keynotes: Local and international luminaries ● Tentative dates … ○ Call For Papers ○ Open: 31st March, Closes: 30th May ○ Submitters notified: 23rd June
  56. 56. Staying in touch Daryl Wilding-McBride dwm@dius.com.au @DarylWMcB http://dius.com.au Andy Gelme andyg@geekscape.org @geekscape http://geekscape.org http://m9design.co
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×