Upload
simen-sommerfeldt
View
218
Download
1
Embed Size (px)
DESCRIPTION
Intro to MQTT & Node-RED and how I assembled the Hardware and Software to make my Halloween prank.
Citation preview
Mitt oppsett – med RasPi, Arduino, servoer, MQTT, Node-RED og Minecraft Simen Sommerfeldt, Oslo Internet of things meetup 18.11
Rådgiver og CTO, Bouvet Oslo Dataforeningen, HIOA, Lær Kidsa Koding! Oslo IoT meetup
@sisomm
• Skandinavisk konsulentselskap
• Leverer tjenester innenfor IT, digital kommunikasjon og rådgivning
• 1000 ansatte • 14 kontorer i Norge
og Sverige • Notert på Oslo
Børs
Marit behersker programmeringsspråk som
Java og .net
Men først og fremst behersker hun kav
trøndersk
Intro Demo 1: Skallen snur seg og ler når du passerer en sonar http://www.youtube.com/watch?v=2eRPg_KQunU
Demo 2: Skallen følger deg med blikket i minecraft, og du kan skru av lysene http://www.youtube.com/watch?v=yu6P1Bz6P0c
Skremme barn på Halloween
http://nspt4kids.com/wp-content/uploads/2011/10/scared-boy-on-halloween.jpg
how to do reliable messaging over
unreliable networks?
”
“
- Dr. Andy Stanford-Clark
Background
“MQTT was actually first designed for Real Time, Mission Critical,
Command & Control, SCADA systems”
- Arlen Nipper, Cirrus Link Solutions
Pub/Sub with topic paths
http://m.eet.com/media/1171446/0912embmqtt01.png
/container/address/devicetype/unique/status <payload> /minecraft/world/skull/250,72,211/status IS_ALONE Wildcards: # entire subtree, + a single level
Multiple brokers
http://usuaris.tinet.cat/sag/mq_pubsub.htm
Standard siden Oktober 2014
“Tricks” for tingenes internett
• Last will & testament • Binary payload • 3 QoS levels • Retained messages • 2 byte overhead • Small footprint • Low bandwidth
Mobilkommunikajson: MQTT vs HTTPS
http://mobilebit.wordpress.com/2013/05/03/rest-is-for-sleeping-mqtt-is-for-mobile/ ”
“
Du har antagelig MQTT i lomma
“MQTT is used both inside as inter- process communication and in the cloud
for diagnosis”
- Stefano Costa, Bluewind
http://highscalability.com/blog/2014/1/13/nytimes-architecture-no-head-no-master-no-single-point-of-fa.html
http://www.slideshare.net/kellogh/mqtt-kafka-33100776
MQTT er så enkelt at ungene mine kunne følge
meldingene og foreslå endringer
Kan kombineres med REST for å gi beskjed om endringer
Node.red Et verktøy for rask prototyping av tingenes internett
20-Nov-14 28
DEMO ( )
“Kode”
http://www.infoq.com/resource/news/2014/05/ibm-node-red-qconlondon/en/resources/Node-RED-WS-Tweet-Demo-QCon-London-2014.png
“Wiring together hardware devices, APIs and online services in new and interesting ways [...] focus on the task at hand and not worry about the plumbing”
- Nick O’Leary, IBM
"Just as a spreadsheet lets you to play around with numbers, Node-RED is a tool that's good
for playing around with events”
- Dave Convay-Jones, IBM
Inputs
Functions & Social
Storage, Analysis, “Advanced”
Make your own
Users manual
In your browser:
1. Add or select a node
2. Configure it
3. Combine it with others to form a flow
4. Deploy
5. Test
Kan bruke node.js pakker & bygges inn i andre systemer
Copy and paste med JSON
Bruksområder • Rask mockup av REST Services • Rask uttesting av integrasjonsscenarier • Internet of things protyping
http://www.kongsbjergskolen.kolding.dk/Infoweb/Forsideavis/visnyhed.asp?AvisID=5&ID=12
Skal ikke brukes i produksjon - eller gjør på egen risk!
Min Python Broker: ~20 timer
Node Red:
1 time
My wants: Mutex and aggregator pattern
My wants: Mutex
& Aggregator pattern
http://huisdierencentrumhaarlem.nl/wp-content/uploads/2013/01/animals-cat-kitten-cute-begging-kitten-wallpaper.jpg
Hardware og oppsett
20-Nov-14 45
Avstandsmåler
Fuktmåler
Reléer Vibrasjons-måler
Servoer
Lysmåler
Termometer
Støymåler
Video-kamera
Arduino sketch
Arduino sketch Python script Node.Red Mosquitto MQTT server
Minecraft client Bukkit Server Scriptcraft med MQTT plugin Javascript
Servo Shield Arduberry Raspberry Pi
Keith Richards
Kjeve-Servo
Pan/Tilt Servo
Servo Shield
Arduberry
Raspberry Pi
Servo Shield ArduBerry, Raspi
Motstander for diodene i skallen
Breadboard power supply
Ardiuino 2 koblet til en sonar
“Devices”
Hodeskalle som merker om sjeler er i nærheten
Sonar som varsler avstand til spilleren
Brytere som slås av og på
Varsel om når blokker blir ødelagt
Facetracker som angir vektoren til til spilleren
/arduino/1/incoming
/arduino/2/sonar
/raspberry/1/soundplayer
/minecraft/world/lever/<pos> /minecraft/world/block/<pos> /minecraft/world/skull/<posi> /minecraft/world/facetracker<pos>
20-Nov-14
! /arduino/2/sonar/Ping: 29 ! /minecraft/world/sonar/250,72,211 Ping: 9 ! /minecraft/world/skull/250,72,211/status HAS_COMPANY " /arduino/1/incoming LEDS_ON ! /minecraft/world/facetracker/250,72,211/status 0.038844700742, -0.100218465107 " /arduino/1/incoming SERVOS_MOVE,54,69 ! /minecraft/world/lever/-251,71,210/status 0 " /arduino/1/incoming LED,1,0 ! /minecraft/world/lever/-249,71,210/status 1 " /arduino/1/incoming LED,1,1 ! /minecraft/world/skull/250,72,211/status IS_ALONE " /arduino/1/incoming LEDS_OFF ! /minecraft/world/sonar/250,72,211 Ping: 20 ! /minecraft/world/block/-251,70,183/status BROKEN
“Gjør leksene, gutt!”
http://blogg.bouvet.no/2014/03/10/an-internet-of-things-demo-using-raspberry-pi-arduino-minecraft-and-mqtt/
http://blogg.bouvet.no/2014/08/04/node-red-how-it-simplifed-my-iot-project-and-how-you-can-rapidly-prototype-for-the-internet-of-things/
github.com/sisomm/iot-concepts
20-Nov-14 60
Other nice combos
• Tessel: Javascript “arduino” with sensors • OpenHAB: Rule-driven IoT “motor” that combines
several standarder og devicer • Resources om IoT+node.red+mqtt++:
http://iot-datamodels.blogspot.no.
Takk til...
• Andy Piper @ Twitter (Former IBM) • Michael Laing @ NY Times • Ian Skerret @ Eclipse Foundation • Benjamin Cabé @ Eclipse working group • Stefano Costa @ Bluewind • Nils Perret @ Bouvet
Spørsmål?
Fortsett dialogen!
@bouvet
64
Facebook.com/bouvet Utbrudd.bouvet.no
Takk!
Noen linker
Andy S-C on IoT @TED: http://www.youtube.com/watch?v=s9nrm8q5eGg
http://mobilebit.wordpress.com/2013/05/03/rest-is-for-sleeping-mqtt-is-for-mobile
http://www.slideshare.net/nivertech/zvi-mqtts-foreuc2013
http://jpmens.net/2013/02/25/lots-of-messages-mqtt-pub-sub-and-the-mosquitto-broker/
http://embeddedtek.blogspot.no/2013/02/internet-of-things-sous-vide-cooker.html
http://nrkbeta.no/2013/09/18/uendelige-muligheter-med-internett-i-alt/
http://mqtt.org/wiki/doku.php/history
http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html#appendix-
https://www.eclipsecon.org/na2014/session/securing-internet-things-and-mqtt
http://server.dzone.com/articles/controlling-house-50-miles
MQTT servere
• IBM MQ Series • Mosquitto • Eclipse Paho • Eurotech Everywhere
Device Cloud • Xively • eMQTT • m2m.io
• RabbitMQ • Apache ActiveMQ • Apache Apollo • Moquette • HiveMQ • Mosca • Litmus Automation
Loop
• Mule • Fuse ESB • WSO2 • IBM Websphere ESB • Talend
ESB’er
MQTT sikkerhet
• Username/Password • SSL connections • ACL for topics • Client authentication (Certificates) • Encrypt messages