eMan Dev Meetup: Postavte si chytrou domácnost (2.8.2016, Hradec Králové)

Post on 21-Jan-2018

278 views 0 download

transcript

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

E-mail

info@eman.cz

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