Internet of Things
The World of Possibilities
Mathew Ockerse – IoT Application Engineer
Nürnberg, June 2015 The idea of the internet of things is …
… that instead of having a small number of powerful computing devices in your life, you have a large number of low energy, ubiquitous computing devices
2 Intel® Quark
Intel® Quark SoC X1000 The first product from the Intel® Quark technology family of low-power, small- core products. Intel® Quark technology will extend Intel architecture into rapidly growing areas – from the Internet of Things to wearable computing in the future.
3 Past, present, future
Portfolio of products . Quark : . IDF 2013 . Basis of Galileo Gen1 and Gen2 . Edison : . CES 2014 . Curie : . CES 2015 . More about it in 2H 15
4 From sensor to cloud
Intel Confidential — Do Not Forward 5 Intel IoT hardware Edison & Expansion Boards
6 Intel® Edison module
. 22 nm Intel® SoC that includes a dual- core, dual-threaded Intel® Atom™ CPU at 500 MHz . 32-bit Intel® Quark™ microcontroller at 100 MHz . 1 GB LPDDR3 POP memory . Flash storage 4 GB eMMC . WiFi and Bluetooth® Low Energy . 35.5 × 25.0 × 3.9 mm (1.4 × 1.0 × 0.15 inches) . 40 GPIOs: UART, I2C, SPI, I2S, GPIO(PWM), USB, SD card
7 Intel Partner Built to Order Expansion Boards Expansion Boards Expansion Boards
8 Extension Boards
Intel® Edison • 70 pin connector • Hirose DF40 Series • Easy to build your own board
Intel currently offers 2 boards • Breakout Board • Arduino* expansion board
* Other names and brands may be claimed as the property of others. Intel® Edison Breakout Board
• I/O: array of through-hole solder points • USB OTG with USB Micro (AB) • Battery charger • USB micro (B) [UART] • DC power supply jack (7 to 15 VDC) Intel® Edison - Arduino Expansion Board Board features
. Compatible with Arduino Uno (except only 4 PWM instead of 6 PWM)
. 20 digital input/output pins including 4 pins as PWM outputs
. Micro USB device connector OR (via mechanical switch) dedicated standard size USB host Type-A connector
. Micro USB device (connected to UART)
. 6 analog inputs
. 1 UART (RX/TX)
. 1 I2C
. 1 ICSP 6-pin header (SPI)
. SD Card connector
. DC power jack (7V – 15V DC input)
11 Partner Expansion Boards E.g.: Sparkfun*
* Other names and brands may be claimed as the property of others. Intel IoT software Overview of software layers & IDE’s
13 General Software Overview
• Onboard Edison • Developer Environments • Cloud Connectivity
14 IoT Development kit components
15 Developer Environments
16 libmraa
• c/c++ library (abstraction layer) with bindings to javascript & python • Interfaces with IO on Galileo, Edison and other platforms • With board detection at runtime can be used on multiple platforms
17 mraa - https://github.com/intel-iot-devkit/mraa
MRAA – random letters, doesn’t mean anything
API documentation available – http://iotdk.intel.com/docs/master/mraa/
Examples directory
Minimum code sample: mraa_gpio_context gpio;
gpio = mraa_gpio_init(6);
mraa_gpio_dir(gpio, MRAA_GPIO_IN);
for (;;) {
fprintf(stdout, "Gpio is %d\n", mraa_gpio_read(gpio));
sleep(1);
}
mraa_gpio_close(gpio);
18 libupm
• High level sensor repository • Links to mraa • Sensors represented as classes
19 upm – Example of libupm for Grove Temp Sensor
List of supported sensors in C++
API documentation - http://iotdk.intel.com/docs/master/upm/
Examples directory
Minimum code example: upm::GroveTemp* s = new upm::GroveTemp(0); std::cout << s->name() << std::endl; for (int i=0; i < 10; i++) {
std::cout << s->value() << std::endl;
sleep(1);
}
20 Developer Environments
• Eclipse (C/C++) - native • Intel XDK (node.js) - native • Arduino* (Emulated Environment) • Wyliodrin* (Browser based coding, uses Javascript & Python) • Python - native
* Other names and brands may be claimed as the property of others. 21 What to choose
Arduino* Visual Node.JS C / C++ Programming Target Maker Beginner Intermediate Advanced Audience
IDE Arduino* IDE Wyliodrin* Intel® XDK Eclipse* IDE
platform Win/ Mac/ Linux Browser Win/ Mac/ Linux Win/ Mac / Linux Download your IDE of choice • https://software.intel.com/iot/downloads Arduino IDE Gain command line access Prerequisite for Windows* development systems
• Install USB & FTDI serial drivers • https://software.intel.com/en-us/installing-drivers-for-intel-edison-board-with-windows • Options • Drivers installation is part of an automatic full installation ( incl. image & IDE ) • Standalone drivers downloads Setting up Arduino IDE
• Download .zip from arduino.cc
• Extract Arduino file (.zip .tgz .7z)
• Move Arduino folder to desired location
(e.g. Root directory)
• Open and run arduino.exe to get to IDE (or other OS executable)
Intel Getting Started Guide https://software.intel.com/en-us/iot/getting-started Setting up Arduino IDE
• Choose Tools>Board>Boards Manager
Intel Getting Started Guide https://software.intel.com/en-us/iot/getting-started Setting up Arduino IDE
• Click on „Intel i686 Boards by Intel“ and install
Intel Getting Started Guide https://software.intel.com/en-us/iot/getting-started Running a Sketch - Blink
• In IDE • Click on “File > Examples > Basics > Blink” and this window will open. Running a sketch – Uploading to Edison
Click “Tools > Board” and select Select “Tools > Serial Port” (Arduino “Intel® Edison” IDE uses the Virtual Com Port!) Full Bleed Image Example
software.intel.com/iot Intel Confidential — Do Not Forward 31 Intel IoT on Instructables.
32