Upload
vanxuyen
View
222
Download
3
Embed Size (px)
Citation preview
IoT with Esquilo and JavaScript
+
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)
Everything is Built In
Web IDEStored in flashMulti-file source editorSyntax highlightingSource level debugger
BreakpointsSteppingWatchesBacktrace
File managerLive console
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
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.)
Weather Station Demo
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
Weather Station HTML
Esquilo RPC
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{
Grove Demo
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
Async Events & WebSockets (JavaScript)
Send web app button change to board
Get button press change events over websocket
Match screen background to LED
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
Esquilo Nest
Esquilo cloud site
Manage Esquilos
Find my Esquilo
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
Thank youhttp://esquilo.io
RGB LED Demo