iot with esquilo and javascript · iot with esquilo and javascript + what is esquilo? iot...

18
IoT with Esquilo and JavaScript +

Upload: vanxuyen

Post on 13-May-2018

222 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: IoT with Esquilo and JavaScript · IoT with Esquilo and JavaScript + What is Esquilo? IoT connectivity + Arduino usability + KISS philosophy NOT a Linux & Arduino mashup

IoT with Esquilo and JavaScript

+

Page 2: IoT with Esquilo and JavaScript · IoT with Esquilo and JavaScript + What is Esquilo? IoT connectivity + Arduino usability + KISS philosophy NOT a Linux & Arduino mashup

What is Esquilo?

● IoT connectivity + Arduino usability + KISS philosophy● NOT a Linux & Arduino mashup● NOT a cloud-controlled widget● Complete IoT solution (hardware + software + cloud)

Page 3: IoT with Esquilo and JavaScript · IoT with Esquilo and JavaScript + What is Esquilo? IoT connectivity + Arduino usability + KISS philosophy NOT a Linux & Arduino mashup

Everything is Built In

Page 4: IoT with Esquilo and JavaScript · IoT with Esquilo and JavaScript + What is Esquilo? IoT connectivity + Arduino usability + KISS philosophy NOT a Linux & Arduino mashup

Web IDEStored in flashMulti-file source editorSyntax highlightingSource level debugger

BreakpointsSteppingWatchesBacktrace

File managerLive console

Page 5: IoT with Esquilo and JavaScript · IoT with Esquilo and JavaScript + What is Esquilo? IoT connectivity + Arduino usability + KISS philosophy NOT a Linux & Arduino mashup

Squirrel LanguageEmbedded application is programmed in SquirrelVery similar syntax to JavaScript or C++Includes hardware libraries plus Arduino emulationYour functions are callable as web services (from JavaScript, Python,

Java, C, etc.)Runs in isolated VM

Page 6: IoT with Esquilo and JavaScript · IoT with Esquilo and JavaScript + What is Esquilo? IoT connectivity + Arduino usability + KISS philosophy NOT a Linux & Arduino mashup

Esquilo RPCEmbedded functions are automatically brought out as web service

endpointsData transferred in both directions with JSONEasy with any language that has an HTTP client (JavaScript, Python,

Java, C, Ruby, etc.)

Page 7: IoT with Esquilo and JavaScript · IoT with Esquilo and JavaScript + What is Esquilo? IoT connectivity + Arduino usability + KISS philosophy NOT a Linux & Arduino mashup

Weather Station Demo

Page 8: IoT with Esquilo and JavaScript · IoT with Esquilo and JavaScript + What is Esquilo? IoT connectivity + Arduino usability + KISS philosophy NOT a Linux & Arduino mashup

Weather Station Squirrel Code

Import sensor drivers

Create I2C instance on bus 0

Create sensor instances

Read sensors, populate return object

getWeather() callable with POSTand GET automatically

Page 9: IoT with Esquilo and JavaScript · IoT with Esquilo and JavaScript + What is Esquilo? IoT connectivity + Arduino usability + KISS philosophy NOT a Linux & Arduino mashup

Weather Station HTML

Esquilo RPC

Page 10: IoT with Esquilo and JavaScript · IoT with Esquilo and JavaScript + What is Esquilo? IoT connectivity + Arduino usability + KISS philosophy NOT a Linux & Arduino mashup

Weather Station JavaScript1) ERPC POST to call getWeather() embedded code

4) Populate view

3) Readings returned as JSON object

2) Embedded Squirrel code runs on device{

Page 11: IoT with Esquilo and JavaScript · IoT with Esquilo and JavaScript + What is Esquilo? IoT connectivity + Arduino usability + KISS philosophy NOT a Linux & Arduino mashup

Grove Demo

Page 12: IoT with Esquilo and JavaScript · IoT with Esquilo and JavaScript + What is Esquilo? IoT connectivity + Arduino usability + KISS philosophy NOT a Linux & Arduino mashup

Async Events & WebSockets (Squirrel)

Send async update to web app

Register pin change callback

Control LED based on physical and web app button

Accept websocket connections

Page 13: IoT with Esquilo and JavaScript · IoT with Esquilo and JavaScript + What is Esquilo? IoT connectivity + Arduino usability + KISS philosophy NOT a Linux & Arduino mashup

Async Events & WebSockets (JavaScript)

Send web app button change to board

Get button press change events over websocket

Match screen background to LED

Page 14: IoT with Esquilo and JavaScript · IoT with Esquilo and JavaScript + What is Esquilo? IoT connectivity + Arduino usability + KISS philosophy NOT a Linux & Arduino mashup

Secure Cloud Access

Esquilo connects to the Nest via a TLS tunnelMutual X.509 certificate authenticationHardware-accelerated AES-128/256Tunnel ANY protocol (HTTP, CoAP, MQTT, etc.)HTTP secure proxy via device URL

Page 15: IoT with Esquilo and JavaScript · IoT with Esquilo and JavaScript + What is Esquilo? IoT connectivity + Arduino usability + KISS philosophy NOT a Linux & Arduino mashup

Esquilo Nest

Esquilo cloud site

Manage Esquilos

Find my Esquilo

Page 16: IoT with Esquilo and JavaScript · IoT with Esquilo and JavaScript + What is Esquilo? IoT connectivity + Arduino usability + KISS philosophy NOT a Linux & Arduino mashup

Esquilo Hardware

120 MHz ARM Cortex-M4F – Freescale Kinetis K64F1MB flash, 256KB SRAM, 8KB EEPROM802.11b/g/n Wi-FiArduino UNO R3 shieldsHardware cryptography engineHardware floating point6-17V DC power input (or 5V via USB)Micro-USB (OTG device or host)MicroSD (up to 32 GB)

46 digital I/OsSerial buses: 2 x SPI, 2 x I2C, 5 x UART, 1 x CAN18 PWM outputsQuadrature digital input16 x 16-bit analog inputs (4 differential)Analog output with 12-bit resolutionPrecision voltage referenceAnalog comparator

Page 17: IoT with Esquilo and JavaScript · IoT with Esquilo and JavaScript + What is Esquilo? IoT connectivity + Arduino usability + KISS philosophy NOT a Linux & Arduino mashup

Thank youhttp://esquilo.io

Page 18: IoT with Esquilo and JavaScript · IoT with Esquilo and JavaScript + What is Esquilo? IoT connectivity + Arduino usability + KISS philosophy NOT a Linux & Arduino mashup

RGB LED Demo