![Page 1: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/1.jpg)
Web Applications That Can Control The WorldSETH ENGEN
![Page 2: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/2.jpg)
‣Computer Know How
‣Two decades developing
‣Electronics!
Me…
![Page 3: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/3.jpg)
![Page 4: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/5.jpg)
‣Company, project, and community
‣Open-source software / hardware
‣Microcontroller-based kits
Arduino
![Page 6: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/6.jpg)
Building Blocks
![Page 7: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/7.jpg)
Arduino Software (IDE)
![Page 8: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/8.jpg)
Serial Monitor
![Page 9: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/9.jpg)
‣WiFi
‣Microcontroller
‣Firmware
ESP8266
![Page 10: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/10.jpg)
‣WiFi
‣Microcontroller
‣Firmware
‣USB-to-Serial
ESP8266 Thing Dev
![Page 11: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/11.jpg)
‣Temperature
‣Humidity
‣2 second readings
DHT22
![Page 12: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/12.jpg)
‣Up to 120VAC / 15A
‣Simple
‣Safe
PowerSwitch Tail II
![Page 13: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/13.jpg)
‣RESTful framework for Arduino
‣Marco Schwartz
‣arest.io and openhomeautomation.net
aRest
![Page 14: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/15.jpg)
‣digitalWrite(), digitalRead()
‣analogWrite(), analogRead()
‣pinMode()
‣getVariable(), callFunction()
aRest Functions
![Page 16: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/16.jpg)
![Page 17: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/17.jpg)
![Page 18: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/18.jpg)
![Page 19: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/19.jpg)
Demo
CommandBox:coldbox create app --installcoldbox
server start
![Page 20: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/20.jpg)
‣Static IP / Dynamic IP
‣Dynamic DNS Services
‣Port Forwarding
Router Setup
![Page 21: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/21.jpg)
Port Forwarding
![Page 22: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/23.jpg)
‣REST Security
‣Home Automation Hub
Security Considerations
![Page 24: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/24.jpg)
‣REST versus MQTT/PubSub
What’s Next
![Page 25: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/25.jpg)
‣Garage Door
‣Chest Freezer
‣Thermostat Integration
‣Power Monitoring
Project Ideas
![Page 26: ITB2016 Web Applications can control the world](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/26.jpg)
‣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](https://reader035.vdocuments.site/reader035/viewer/2022070606/587756cc1a28ab84388b778f/html5/thumbnails/27.jpg)
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!