133

Click here to load reader

IoT Hackathon

Embed Size (px)

Citation preview

Page 1: IoT Hackathon

IoT Hackathon / Teplotni senzor@RDPanek

Page 2: IoT Hackathon

bit.ly/rdpanekiot

Tuto prezentaci najdete na SlideShare

Page 3: IoT Hackathon

Ruzni vyrobci / ruzne technologieDrahe / nekomunikuji spolu / ruzne UX ovladani

Page 4: IoT Hackathon

Pro nektere zde IoT konciPrototyp musime pretvorit v pouzitelne reseni

Page 5: IoT Hackathon

Lze postavit i to, co nelze koupitplatformy / moduly / open-hardware

Page 6: IoT Hackathon

Shieldy rozsiruji schopnostiNekonecne moznosti vlastni vyroby

Page 7: IoT Hackathon

Univerzalni PCB / Nepajive polePrototypovani

Page 8: IoT Hackathon

Univerzalni PCBRychle zhotoveni a prototypovani

Page 9: IoT Hackathon

PCB

Page 10: IoT Hackathon

Dratovanihmmmm

Page 11: IoT Hackathon

Raspberry Pi

Page 12: IoT Hackathon

ESP8266 / ATMEGA 328P / ATtiny / ...Software

Page 13: IoT Hackathon

ESP8266Software• NodeMCU eLua • NodeLua (+ NodeLua Web IDE) • ESP8266 BASIC • MicroPython • Espruino (JavaScript) • Arduino esp8266 (GitHub)

Espressif Systems • AT prikazy • OTA update • 802.11 (b +20dBm) /g/n, TCP/

IP stack, 2.4GHz, support WPA/WPA2

• STA/AP/STA+AP • 32-bit MCU • Deep sleep power < 10uA • Wake up and transmit packets

in < 2ms • PWM, GPIO, UART, I2C, ... • EEPROM !!!

Page 14: IoT Hackathon

ESP8266 familyGPIO / Memory / Software / Connectivity

Page 15: IoT Hackathon

ESP8266 blizsi pohledPCB kompaktibilita

Page 16: IoT Hackathon

Development boards

Page 17: IoT Hackathon

ESP8266 redukceLze zasadit do nepajiveho pole, ci PCB a lze zvolit typ ESP

Page 18: IoT Hackathon

WEMOS D1

Page 19: IoT Hackathon

WEMOS D1 minipinout

Page 20: IoT Hackathon

WEMOS D1 minishields

Page 21: IoT Hackathon

WEMOS D1 minishields

Page 22: IoT Hackathon

WEMOS D1 mini shieldsVyhody / nevyhody koupeneho / vlastniho shieldu

Page 23: IoT Hackathon

SchemataRuzna interpretace zapojeni

Page 24: IoT Hackathon

Teplotni senzorWemos D1 mini, OLED, DualBase, Protoboard, LDR, LED,

DS18B20, rezistors

Page 25: IoT Hackathon

Use caseESP8266 PCB + 3D print, DHT22 shield, OLED shield - LDR - DS18B20 - dualbase, smokeTester, PIR senzor - buzzer, rellay

Page 26: IoT Hackathon

Use case - Turris OmniaOpen-source, 1.6Ghz 2core, 2GB RAM, 8GB flash, 5 x Gbit LAN, 1 x Gbit WAN, 2 x USB 3.0, Mini PCI Express, mSATA, Wi-Fi 802.11 a/c/b/g/n, GPIO, OpenVrt, AutoUpdater, HoneyPot, programmable RGB, Cryptochip

Page 27: IoT Hackathon

LXC container - ElasticsearchTurris Omnia hosti LXC konteiner s Elasticsearch a jako persistentni uloziste se pouziva dodatecne pridany 120GB mSata disk

Page 28: IoT Hackathon

Interpretace loguSenzory odesilaji namerene hodnoty do Elasticsearch

a pomoci Kibany se provadi agregace a vizualizace dat

Page 29: IoT Hackathon

BlynkPomoci widgetu lze sledovat hodnoty na mobilnim telefonu, ktere jsou aktualne namereny - ci zadavat prikazy ( rozsvit svetlo )

Page 30: IoT Hackathon

REST API

Page 31: IoT Hackathon

Webova aplikaceHTML, CSS, Javascript

Page 32: IoT Hackathon

Proces vyvojeOd prototypovani po finalni produkt

Page 33: IoT Hackathon

Od prototypu po finalni vyrobek ( bastleni )Nepajive pole / 3D tisk / ATtiny85 - Atmel

Page 34: IoT Hackathon

O krok dale ( bastleni )Bezdratove ovladani zasuvky 433MHz

Page 35: IoT Hackathon

O krok dale ( bastleni )Znovupouzitelnost / replikace

Page 36: IoT Hackathon

Pomucky ( bastleni )

Page 37: IoT Hackathon

Pristroje ( bastleni )Pajeni

Tutorial: https://youtu.be/fYz5nIHH0iY?t=8m24s

Page 38: IoT Hackathon

Pristroje ( bastleni )Horkovzdusne pajeni

Page 39: IoT Hackathon

Pristroje ( bastleni )Laboratorni zdroj

Page 40: IoT Hackathon

Soucastky ( bastleni )Pouzdra, schemata, orientace, baleni

Page 41: IoT Hackathon

Soucastky ( bastleni )Schemata, datasheets

Page 42: IoT Hackathon

Pristroje ( bastleni )Metody mereni, Multimetr

Page 43: IoT Hackathon

Pristroje ( bastleni )Metody mereni, Osciloskop

Page 44: IoT Hackathon

Kontrukce ( bastleni )Stejneho vysledku lze dosahnout pomoci, MCU a vhodneho modulu, nebo skladbou dalsich soucastek

Page 45: IoT Hackathon

Pinout ( bastleni )Funkce a moznosti jednotlivych vyvodu

Page 46: IoT Hackathon

Sbernice ( bastleni )

Page 47: IoT Hackathon

Programovani ( bastleni )

https://www.arduino.cc/en/Reference/HomePage

Page 48: IoT Hackathon

http://www.pridopia.co.uk/pi-doc/ESP8266ATCommandsSet.pdfhttp://cristiansteib.github.io/Sim800l/info/SIM800+Series_AT+Command+Manual_V1.09.pdf

AT Commands

Page 49: IoT Hackathon

Prototyp ( bastleni )Prevedeni myslenky k funkcni prototyp / software

Page 50: IoT Hackathon

Eagle / schema

Page 51: IoT Hackathon

Eagle / priprava PCB

Page 52: IoT Hackathon

Eagle / priprava PCB

Page 53: IoT Hackathon

Prototyp ( bastleni )Vytisteni na papir a zkouska rozmisteni soucastek

Page 54: IoT Hackathon

Postup vyvojeNaskladneni soucastek /

E-shopy / pouzdra soucastek

Page 55: IoT Hackathon

Prototyp ( bastleni )Tvorba PCB

Page 56: IoT Hackathon

Prototyp ( bastleni )Osazovani PCB

Page 57: IoT Hackathon

Prototyp ( bastleni )Prusa MK2 / 3D tisk

Page 58: IoT Hackathon

Prototyp ( bastleni )3D tisk

Page 59: IoT Hackathon

Prototyp ( bastleni )Finalizace

Page 60: IoT Hackathon

Teplotni senzorZadani - postavte teplotni senzor z dostupnych soucastek, ktery• se pripoji k Wi-Fi a nastaveni si ulozi • nastavi limit mereni na 30000ms a nastaveni ulozi • zmeri teplotu • blika LED diodou po 200ms

• 1x start zarizeni • 2x uspesne pripojeno k Wi-Fi • 3x neuspesne pripojeno k Wi-Fi • 4x nepodarilo se zjistit cas ze site

• blika LED diodou po 50ms • 1x namerena hodnota byla odeslana do Elasticsearch • 2x namerenou hodnotu se nezdarilo odeslat

• Zmeri hodnotu osvetleni • Na OLED displeji vypise

• IP adresu pro pripojeni • Notifikaci o startu zarizeni • Notifikaci o (ne) uspesnem nahrani konfigurace • Namerenou teplotu • Informaci o neuspesnem odeslani namerenych

hodnot do Elasticserach • Informaci o neuspesnem zjisteni casu z NTP

• Zjisti dostupnost Elasticsearch • Odesle namerenou hodnotu do Elasticsearch a

zvaliduje odpoved • U zarizeni by melo jit zmenit URI Elasticsearch a

interval mereni

Page 61: IoT Hackathon

Pripravene stavebnice

Page 62: IoT Hackathon

V baleniWemosD1 mini, Oled display, prototype board, dualbase, rezistory, LDR, LED, Dallas DS18B20

Page 63: IoT Hackathon

Prakticke cviceni - WemosD1 mini

• step1: Serial link example

• step2: OLED example

• step3: LED example

• step4: LDR example

• step5: LDR and LED example

• step6: LDR & OLED & LED (bug)

• step7: dallas example

• step8: dallas and led example

• step9: dallas & led & oled

• step10: wifi-manager example

https://github.com/rdpanek/arduino/commits/hackathon

• step11: wifi-manager & LED status example

• step12: wifi-manager & LED status & OLED RSSI

& IP example

• step13: wifi-manager & OLED & Dallas & IF

Statement (bug)

• step14: Dallas & OLED and custom font

• step15: SPIFFS & ArduinoJSON example

• step16: wifi-manager & NTP example

• step17: wifi-manager & web-server example

• step18: wifi-manager ang GET request example

Page 64: IoT Hackathon

Priprava a pajeniVyzkousime si sestaveni celeho zarizeni a napajime hrebeny na dualbase shield

Page 65: IoT Hackathon

PajeniVyzkousime si sestaveni celeho zarizeni a napajime hrebeny na dualbase shield

Page 66: IoT Hackathon

PajeniPripajime prvni a posledni pin pro ukotveni, pote zbyle piny

Page 67: IoT Hackathon

PajeniPripraveny dualbase shield s pripajenymi hrebeny

Page 68: IoT Hackathon

PajeniVyzkousime si sestaveni celeho zarizeni a napajime WemosD1mini a protoboard shield

Page 69: IoT Hackathon

PajeniVyzkousime si sestaveni celeho zarizeni a napajime WemosD1mini - opet prvne prvni a posledni pin

Page 70: IoT Hackathon

PajeniVyzkousime si sestaveni celeho zarizeni a napajime protoboard shield - opet prvne prvni a posledni pin

Page 71: IoT Hackathon

PajeniVyzkousime si sestaveni celeho zarizeni a napajime OLED display

Zarizeni je pripraveno na oziveni. Muzeme nahrat prvni kod z Arduino IDE

Page 72: IoT Hackathon

Arduino IDEhttps://www.arduino.cc/download_handler.php

Nastaveni Arduino IDE

Vyber desky

Pridani podpory pro desky s ESP8266Soubor > Vlastnosti > Spravce dalsich desek URLhttp://arduino.esp8266.com/stable/package_esp8266com_index.json Nastroje > Vyvojovych desek > Manazer Desek > ESP > Instalace

Page 73: IoT Hackathon

Pripojeni zarizeni

Po pripojeni zarizeni k pocitaci bude zarizeni reprezentovano dalsim portem- po pripojeni zarizeni blikne modrou diodou- Upload Speed: 115200- po odpojeni zarizeni a znovu zapojeni - zkontrolovat nastaveny PORT a zvolenou Vyvojovou desku

Page 74: IoT Hackathon

Zaklady se sketch_jan24a.ino

Page 75: IoT Hackathon

Prakticke cviceni - step1: Serial link example

Nastroje > Seriovy monitor > 115200- pri uploadu sketche do zarizeni blika modra

led dioda

Page 76: IoT Hackathon

Prakticke cviceni - step2: OLED examplePocitadlo

Page 77: IoT Hackathon

Prakticke cviceni - step2: OLED exampleProhledneme si pozorne spodni stranu shieldu

Page 78: IoT Hackathon

Prakticke cviceni - step2: OLED example

squix78/esp8266-oled-ssd1306

Tento PC > Dokumenty > Arduino > libraries

Page 79: IoT Hackathon

Prakticke cviceni - step3: LED example

Page 80: IoT Hackathon

Prakticke cviceni - step3: LED example

Page 81: IoT Hackathon

Prakticke cviceni - step3: LED examplePodle barevneho oznaceni rezisotru vybereme ten spravny a podle pinu v kodu jej napajime na dany pin do protoboardu

Page 82: IoT Hackathon

Prakticke cviceni - step3: LED examplePripajime rezistor, stejne tak LED diodu

Page 83: IoT Hackathon

Prakticke cviceni - step3: LED examplePripajeny rezistor a LED dioda

Page 84: IoT Hackathon

Prakticke cviceni - step3: LED examplePropojime rezistor a diodu cinem, nakonec katodu s GND

Page 85: IoT Hackathon

Prakticke cviceni - step3: LED examplePo uploadu software bude LED dioda blikat

Page 86: IoT Hackathon

Prakticke cviceni - step4: LDR example

Page 87: IoT Hackathon

Prakticke cviceni - step4: LDR examplePripajime rezistor a LDR podle predchoziho schematu

Page 88: IoT Hackathon

Prakticke cviceni - step4: LDR examplePripajime rezistor a LDR podle predchoziho schematu

Page 89: IoT Hackathon

Prakticke cviceni - step4: LDR examplePripajime rezistor a LDR podle predchoziho schematu

Page 90: IoT Hackathon

Prakticke cviceni - step4: LDR example

Page 91: IoT Hackathon

Prakticke cviceni - step5: LDR and LED example

Page 92: IoT Hackathon

Prakticke cviceni - step6: LDR & OLED & LEDHodnota LDR se vypisuje na displej a dioda se rozsviti, pokud hodnota LDR klesne pod uvedenou mez

Page 93: IoT Hackathon

Prakticke cviceni - step6: LDR & OLED & LED (bug)

Page 94: IoT Hackathon

Prakticke cviceni - step7: dallas example

Page 95: IoT Hackathon

Prakticke cviceni - step7: dallas example

Page 96: IoT Hackathon

Prakticke cviceni - step7: dallas examplePripajime rezistor a teplotni cidlo

Page 97: IoT Hackathon

Kompletne osazeny prototype shieldKonec pajeni - kazdy osazeny prototype shield muze vypadat jinak

Page 98: IoT Hackathon

Kompletne osazeny prototype shieldKonec pajeni - kazdy osazeny prototype shield muze vypadat jinak

Page 99: IoT Hackathon

Kompletne osazeny prototype shieldKonec pajeni - kazdy osazeny prototype shield muze vypadat jinakKompletne osazeny prototype shieldKonec pajeni - kazdy osazeny prototype shield muze vypadat jinak

Page 100: IoT Hackathon

Konec pajeni - kazdy osazeny prototype shield muze vypadat jinak

Kompletne osazeny prototype shieldKonec pajeni - kazdy osazeny prototype shield muze vypadat jinak

Page 101: IoT Hackathon

Prakticke cviceni - step8: dallas and led example

Page 102: IoT Hackathon

Prakticke cviceni - step8: dallas and led examplePokud teplota dosahne 30 C, rozsviti se LED dioda, pokud teplota klesne pod 30 C, LED dioda zhasne

Page 103: IoT Hackathon

Prakticke cviceni - step9: dallas & led & oled

Page 104: IoT Hackathon

Prakticke cviceni - step9: dallas & led & oledTeplota se vypise na displej

Page 105: IoT Hackathon

Prakticke cviceni - step10: wifi-manager example

Page 106: IoT Hackathon

Prakticke cviceni - step10: wifi-manager example

Page 107: IoT Hackathon

Prakticke cviceni - step10: wifi-manager example

Page 108: IoT Hackathon

Prakticke cviceni - step10: wifi-manager example

Page 109: IoT Hackathon

Prakticke cviceni - step10: wifi-manager example

Page 110: IoT Hackathon

Prakticke cviceni - step11: wifi-manager & LED status example

Page 111: IoT Hackathon

Prakticke cviceni - step11: wifi-manager & LED status example

Page 112: IoT Hackathon

Prakticke cviceni - step12: wifi-manager & LED status & OLED RSSI & IP example

Page 113: IoT Hackathon

Prakticke cviceni - step12: wifi-manager & LED status & OLED RSSI & IP example

Page 114: IoT Hackathon

Prakticke cviceni - step13: wifi-manager & OLED & Dallas & IF Statement (bug)

Page 115: IoT Hackathon

Prakticke cviceni - step13: wifi-manager & OLED & Dallas & IF Statement (bug)Teplota se vypise na displej

Page 116: IoT Hackathon

Prakticke cviceni - step13: wifi-manager & OLED & Dallas & IF Statement (bug)IP adresa se vypise na displej

Page 117: IoT Hackathon

Prakticke cviceni - step13: wifi-manager & OLED & Dallas & IF Statement (bug)IP adresa se vypise na displej

Page 118: IoT Hackathon

Prakticke cviceni - step13: wifi-manager & OLED & Dallas & IF Statement (bug)Volna pamet se vypise na displej

Page 119: IoT Hackathon

Prakticke cviceni - step13: wifi-manager & OLED & Dallas & IF Statement (bug)RSSI se vypise na displej

Page 120: IoT Hackathon

Prakticke cviceni - step14: Dallas & OLED and custom font http://oleddisplay.squix.ch/#/home

Page 121: IoT Hackathon

Prakticke cviceni - step14: Dallas & OLED and custom font

Page 122: IoT Hackathon

Prakticke cviceni - step14: Dallas & OLED and custom fontPro zobrazeni teploty vyberte velky a dobre citelny font

Page 123: IoT Hackathon

Prakticke cviceni - step15: SPIFFS & ArduinoJSON example https://github.com/esp8266/Arduino/blob/master/doc/filesystem.md

Page 124: IoT Hackathon

Prakticke cviceni - step15: SPIFFS & ArduinoJSON example

{ "nazevZarizeni": "Teplomer", "pocetTeplomeru": 1, "namerenaTeplota": 24 }

Promenne

JSON

Promenne

String nazevZarizeni = "Teplomer"; int pocetTeplomeru = 1; float namerenaTeplota = 25.00;

nazevZarizeni = json["nazevZarizeni"].as<String>(); pocetTeplomeru = json["pocetTeplomeru"]; namerenaTeplota = json["namerenaTeplota"];

Restart zarizeniUlozeni konfigurace

Nacteni konfigurace

String konfiguracniSoubor = "/konfigurace.json";

String konfiguracniSoubor = "/konfigurace.json";

Page 125: IoT Hackathon

Prakticke cviceni - step15: SPIFFS & ArduinoJSON example

Page 126: IoT Hackathon

Prakticke cviceni - step15: SPIFFS & ArduinoJSON example Bug: nazevZarizeni = json["nazevZarizeni"]

reseni v /examples

Page 127: IoT Hackathon

Prakticke cviceni - step15: SPIFFS & ArduinoJSON example

Prvni spusteni

Ulozeni bylo uspesne. nazevZarizeni: Teplomer pocetTeplomeru: 1 namerenaTeplota: 25.00 Nacteni konfigurace bylo uspesne. -- start --

Druhe spusteni

FS File: /konfigurace.json, size: 71B

nazevZarizeni: Teplomer pocetTeplomeru: 1 namerenaTeplota: 25.00 Nacteni konfigurace bylo uspesne. -- start --

Page 128: IoT Hackathon

Prakticke cviceni - step16: wifi-manager & NTP example

Page 129: IoT Hackathon

Prakticke cviceni - step16: wifi-manager & NTP example

Page 130: IoT Hackathon

Prakticke cviceni - step17: wifi-manager & web-server example

Page 131: IoT Hackathon

Prakticke cviceni - step18: wifi-manager and GET request example ( REST-API )

Page 132: IoT Hackathon

Arduino libraries

Page 133: IoT Hackathon

Odeslani namerenych hodnot do Elasticsearch

{  "location": "most",  "heap": 26800,  "rssi": -70,  "senzor": "temperature",  "val": 28.94,  "ntpDateTime": "2017-01-26T12:15:03.000Z"}

{  "_index": "iot-2017.01.26",  "_type": "iot",  "_id": "AVnas4ukhWsDiAH10Jux",  "_version": 1,  "result": "created",  "_shards": {  "total": 2,  "successful": 1,  "failed": 0  },  "created": true}

POST {{protocol}}://{{server}}:{{port}}/iot-YYYY-MM-DD/iotURI

Request Response

Sestavte request a validujte response, ze ulozeni bylo uspene. Vyreste strategii odeslani namerenych hodnot, pokud se odeslani nezdari.