27
Web Applications That Can Control The World SETH ENGEN

ITB2016 Web Applications can control the world

Embed Size (px)

Citation preview

Page 1: ITB2016 Web Applications can control the world

Web Applications That Can Control The WorldSETH ENGEN

Page 2: ITB2016 Web Applications can control the world

‣Computer Know How

‣Two decades developing

‣Electronics!

Me…

Page 3: ITB2016 Web Applications can control the world
Page 4: ITB2016 Web Applications can control the world

IoT…By The Numbers

2020 = 26 billion connected devices5 billion connected things this year2008 more OBJECTS than PEOPLE

Page 5: ITB2016 Web Applications can control the world

‣Company, project, and community

‣Open-source software / hardware

‣Microcontroller-based kits

Arduino

Page 6: ITB2016 Web Applications can control the world

Building Blocks

Page 7: ITB2016 Web Applications can control the world

Arduino Software (IDE)

Page 8: ITB2016 Web Applications can control the world

Serial Monitor

Page 9: ITB2016 Web Applications can control the world

‣WiFi

‣Microcontroller

‣Firmware

ESP8266

Page 10: ITB2016 Web Applications can control the world

‣WiFi

‣Microcontroller

‣Firmware

‣USB-to-Serial

ESP8266 Thing Dev

Page 11: ITB2016 Web Applications can control the world

‣Temperature

‣Humidity

‣2 second readings

DHT22

Page 12: ITB2016 Web Applications can control the world

‣Up to 120VAC / 15A

‣Simple

‣Safe

PowerSwitch Tail II

Page 13: ITB2016 Web Applications can control the world

‣RESTful framework for Arduino

‣Marco Schwartz

‣arest.io and openhomeautomation.net

aRest

Page 14: ITB2016 Web Applications can control the world

aRest: Interaction//command192.168.1.101/digital/6/0

//response{ "message": "Pin D6 set to 1", "id": "1", "name": "esp8266", "connected": true}

Page 15: ITB2016 Web Applications can control the world

‣digitalWrite(), digitalRead()

‣analogWrite(), analogRead()

‣pinMode()

‣getVariable(), callFunction()

aRest Functions

Page 16: ITB2016 Web Applications can control the world
Page 17: ITB2016 Web Applications can control the world
Page 18: ITB2016 Web Applications can control the world
Page 19: ITB2016 Web Applications can control the world

Demo

CommandBox:coldbox create app --installcoldbox

server start

Page 20: ITB2016 Web Applications can control the world

‣Static IP / Dynamic IP

‣Dynamic DNS Services

‣Port Forwarding

Router Setup

Page 21: ITB2016 Web Applications can control the world

Port Forwarding

Page 22: ITB2016 Web Applications can control the world

Network CommunicationInternet

Router

Incoming: 11.12.13.14:9999

Outgoing: 192.168.1.7arduino.local

or

something.com

http://11.12.13.14:9999/digital/7/1

Page 23: ITB2016 Web Applications can control the world

‣REST Security

‣Home Automation Hub

Security Considerations

Page 24: ITB2016 Web Applications can control the world

‣REST versus MQTT/PubSub

What’s Next

Page 25: ITB2016 Web Applications can control the world

‣Garage Door

‣Chest Freezer

‣Thermostat Integration

‣Power Monitoring

Project Ideas

Page 26: ITB2016 Web Applications can control the world

‣github.com/marcoschwartz/aREST

‣arest.io

‣github.com/marcoschwartz/aREST.js

‣openhomeautomation.net

‣github.com/engens

Resources

Page 27: ITB2016 Web Applications can control the world

var speaker = {     name = 'Seth Engen',   company = 'Computer Know How',   email = '[email protected]', twitter = '@engens',   skype = 'seth.engen', github = 'engens', facebook = 'sethengen', website = 'compknowhow.com', blog = 'compknowhow.com/blog' }

Thank you!