Upload
eman-sro
View
278
Download
0
Embed Size (px)
Citation preview
EMAN DEV MEETUP: POSTAVTE SI CHYTROU DOMÁCNOST
2.8.2016, Hradec Králové
Od roku 2016 jsme členem JABLOTRON GROUP
Vybraní zákazníci
Naše práce
Pojišťovna
O2TV
Moje O2
Horská služba
Pilsner Stories
Bohemia Energy
E-Pay by Edenred
Hlášení nehody
Co je chytrá domácnost?
Aneb IOT je jen buzzword nebopro mě může něco fakt udělat!
Zkratky
IoT (Internet of Things)
Bezdrátové propojení vestavěných zařízení se sítí
M2M (Machine to Machine)
Komunikace strojů se stroji, bez interakce uživatele
HMI (Human / Machine Interface)
Rozhraní mezi člověkem a strojem (hodinky, telefon, web...)
MQTT (Message Queueing Telemetry Transport)
Protokol pro mikroskopické objemy dat v nespolehlivých sítích
Co jsou to ty věci
• Moderní zabezpečovací technologie
• Zařízení pro včasnou (lékařskou) asistenci/pomoc
• Řízení prostředí domů, kanceláří, výrobních prostor, měst...
• Zemědělské technologie pro kontrolu stád a úrody...
• Řízení potrubí (plyn, ropa, voda) a zásob (nádrže, sila)
• Chytré měřiče/ovladače spotřeby domácností a firem
• Kontrola a ovládání bazénů...
Moderní zabezpečovací technologie
Zdravotní monitory a alarmy
Řízení prostředí
Amazon Dash
Hlavně to na začátku nepřepálit
Prototype first!
Arduino Mega 2560
Arduino Mega 2560
• velká deska (70 I/O portů, prakticky nikdy nevyužijete všechny)
• tuny softwaru, hotových odladěných programových modulů
• gaziliony rozšiřujícího hardware (shieldy)
• všechny limity 8 bitového stroje na 16 MHz
• obrovská komunita lidí, kteří publikují stohy článků (i česky)
• asi nejrychlejší start, když chcete zkusit něco fyzického
• nemá samo o sobě spojení s Internetem, lze dokoupit
• nemá úplně nepatrnou spotřebu, ale pořád to ještě jde
• koupíte dnes pomalu už i v trafice
Arduino UNO rev3
Arduino UNO rev3
• menší deska (20 I/O portů, což je tak akorát)
• cena < 700 Kč
• ostatní vlastnosti jako Mega 2560
• zásadní rozdíl je pouze rozměr a počet I/O portů
ESP8266
ESP8266
• pididestička (běžně 2 I/O porty, v NodeMCU 16 I/O portů)
• nepatrná spotřeba (dokud nepoužijete WiFi)
• má vlastní WiFi s velmi slušným dosahem
• všechny výhody 32 bitového stroje na 80 MHz
• 4 MB storage paměti, ale jen 20 KB na kód
• cenově supervýhodná (nic levnějšího s WiFi už není)
• různé modifikace (třeba NodeMCU, která stojí kolem 200 Kč)
• vývoj je o něco složitější (nemá vlastní IDE)
• potřebuje kvalitní stabilní zdroj 3.3 V a > 0.5 A
• nekoupíte úplně běžně
Raspberry Pi 3
Raspberry Pi 3
• plnotučný počítač za cca 1300 Kč (bez zdroje a SD karty)
• v základu WiFi, Bluetooth, Micro SD, HDMI, USB, 40 I/O portů
• řada rozšiřujících modulů (kamery, RFID, OLED displeje)
• quad core 64 bitů na 1.2 GHz
• 1 GB rychlé operační paměti
• storage paměť limitovaná SD kartou (desítky GB)
• běží na tom řada linuxových distribucí
• o něco větší spotřeba a docela dost to hřeje
• běžně koupíte v kdejakém krámku
http://makezine.com/comparison/boards/
The Maker’s Guide to Boards
Co pro IoT používá zbytek světa?
https://community.thinger.io/t/iot-devices-adoption-by-makers/127
Jaký byl problém a jak jsme ho řešili
Problém
• Chceme rozsvěcovat světla mobilem?
• Chceme otevírat garáž mobilem?
• Chceme mít ráno hotové kafe, když vstaneme z postele?
OMG! Přijede tchyně => chceme zatopit v pokoji pro
hosty!
Co budeme potřebovat za technologie?
1. Měříme teplotu
V naší simulaci vidíme stav diod, každá zvlášť reportuje svůj stav, stejně
jako kdyby teploměry reportovaly teplotu v jednotlivých místnostech.
2. Ovládáme teplotu
V naší simulaci rozsvěcíme/zhasínáme jednotlivé LED, stejně jako kdybych
ovládali termostat v jednotlivých místnostech.
Co budeme potřebovat za technologie?
HW na měření a ovládání, který umí posílat MQTT zprávy
=> Arduino s WiFi modulem
Infrastrukturu, která by MQTT zprávy předávala HMI a naopak
=> RabbitMQ s MQTT pluginem
HMI, který by uměl předávat MQTT zprávy
=> iPhone aplikace
=> Apple Watch
=> malá webovka
Jak propojovat věci v Internetu věcí?
RabbitMQ + MQTT plugin
Architektura broker/client
Architektura broker/client
RabbitMQ + MQTT plugin
+ Univerzální broker (podpora AMQP, MQTT, STOMP, HTTP, …)
+ Podporuje clustering, limiting, není nenažraný
+ Jednoduše se spravuje přes web
+ Podporuje LDAP (pro správu uživatelů) a SSL (TLS 1.1, TLS 1.2)
+ Je stále v aktivním vývoji, ale dostatečně stabilní do produkce
+ Volně dostupný, součást standardních linux distribucí
+ Běží na všech moderních platformách (Linux, Mac, Win)
+ Dokumentace je přehledná, jsou jí tuny, široká komunita
- Neimplementuje QoS 2
Message Queueing Telemetry Transport
• Velmi jednoduchý protokol bez zbytečných fancy features
• Navázání spojení: Connect / Disconnect
• Čtení zpráv a publikování: Subscribe / UnSubscribe, Publish
• Podpora přenosu stavu zařízení: Last Will and Testament
• Podpora perzistence poslední zprávy (Retain) a QoS ve třech úrovních
• QoS 0: Negarantované doručení (odešlu a zapomenu)
• QoS 1: Garantované doručení alespoň jednou
• QoS 2: Garantované doručení právě jednou
• Neřeší obsah (payload agnostic), běží na TCP/IP (+TLS)
Message Queueing Telemetry Transport: QoS 1
Message Queueing Telemetry Transport: QoS 2
Arduino + WiFi shield
Jak prototypovat věc
z Internetu věcí
Apple Watch + iPhone
Jak programovat HMI k Internetu věcí
Broker/client s použitím Retain flagu
Web socket > MQTT
Demo + odkazy
Pojďte si to zkusit!
Odkazy
https://github.com/eManPrague/arduino-hacking-ios
https://github.com/eManPrague/arduino-hacking-arduino
https://github.com/eManPrague/arduino-hacking-web
https://twitter.com/emandevel
+420 222 202 222
Fax
+420 222 202 200
V Olšinách 16/82
100 00 Praha 10
Sídlo a hlavní kancelář
Teslova 1266/7 (budova E1)
301 00 Plzeň
Pobočka Plzeň
Šimkova 1224/2B
500 03 Hradec Králové
Pobočka Hradec Králové
Telefon
www.eman.cz