Web Applications That
Can Control The World
SETH ENGEN
‣Computer Know How
‣Two decades developing
‣Electronics!
Me…
IoT…By The Numbers
2020 = 26 billion connected devices5 billion connected things this year2008 more OBJECTS than PEOPLE
‣Company, project, and community
‣Open-source software / hardware
‣Microcontroller-based kits
Arduino
Building Blocks
Arduino Software (IDE)
Serial Monitor
‣WiFi
‣Microcontroller
‣Firmware
ESP8266
‣WiFi
‣Microcontroller
‣Firmware
‣USB-to-Serial
ESP8266 Thing Dev
‣Temperature
‣Humidity
‣2 second readings
DHT22
‣Up to 120VAC / 15A
‣Simple
‣Safe
PowerSwitch Tail II
‣RESTful framework for Arduino
‣Marco Schwartz
‣arest.io and openhomeautomation.net
aRest
aRest: Interaction
//command

192.168.1.101/digital/6/0

//response

{

"message": "Pin D6 set to 1",

"id": "1",

"name": "esp8266",

"connected": true

}
‣digitalWrite(), digitalRead()
‣analogWrite(), analogRead()
‣pinMode()
‣getVariable(), callFunction()
aRest Functions
Demo


CommandBox:

coldbox create app --installcoldbox

server start
‣Static IP / Dynamic IP
‣Dynamic DNS Services
‣Port Forwarding
Router Setup
Port Forwarding
Network Communication
Internet
Router
Incoming: 11.12.13.14:9999
Outgoing: 192.168.1.7
arduino.local
or
something.com
http://11.12.13.14:9999/digital/7/1
‣REST Security
‣Home Automation Hub
Security Considerations
‣REST versus MQTT/PubSub
What’s Next
‣Garage Door
‣Chest Freezer
‣Thermostat Integration
‣Power Monitoring
Project Ideas
‣github.com/marcoschwartz/aREST
‣arest.io
‣github.com/marcoschwartz/aREST.js
‣openhomeautomation.net
‣github.com/engens
Resources
varĀ speaker = {Ā Ā 
Ā  name =Ā 'Seth Engen',
Ā  companyĀ =Ā 'Computer Know How',
Ā  email =Ā 'engens@compknowhow.com',
twitter = '@engens',
Ā  skype = 'seth.engen',
github = 'engens',
facebook = 'sethengen',
website = 'compknowhow.com',
blog = 'compknowhow.com/blog'
}
Thank you!

ITB2016 Web Applications can control the world