internet of things: возможности intel galileo gen 2 и intel edison
TRANSCRIPT
Internet Of Things: возможности
Intel Galileo Gen 2 и Intel Edison.
Роман
Хатько
Senior Software
EngineerIntel
О себе
Роман ХатькоSenior Software Engineer, Intel
2008 – 2011: Telecom (НСС)
2011 – 2012: HPC (Intel)
2012 - now: Mobile, IoT (Intel)
Что такое Internet of Things?
Embedded Internet+ = IoT
Будильник,
Холодильник,
Микроволновка, ...
Embedded
4
SensorsBoard with
MCUActuators
КнопкаДатчик температурыДатчик влажности
СветодиодРелеСерво-привод
Стандартные интерфейсы ввода-вывода
- GPIO
- UART
- I2C
- SPI
- ...
Для подключения датчиков и исполнительныхустройств.
GPIO – General Purpose Input / Output
Логический уровень- 0 – 0V- 1 – например, 5V
Устройства:
- Светодиод- Реле- Кнопка- И т.д.
UART - Universal Asynchronous Receiver/Transmitter
Последовательный порт дляподключения модулей:
- GPS
- GSM/GPRS
- Bluetooth- Других контроллеров
Шины I2C & SPI
I2C:- LCD-дисплеи- Акселерометры- Датчики
SPI:- SD-карта
Embedded Hello World #1
Помигать светодиодом?
GPIO
Embedded Hello World #2
...или вывести текст?
I2C
Активно развивающиеся направления IoT
- Smart House
- Wearables
- Часы, браслеты, одежда...
- Квадрокоптеры, беспилотники
- Привычные устройства: action-камеры,
фотоаппараты
Активно развивающиеся направления IoT
- Smart City
- Smart Factory
- Автоматическая доставка
- Беспилотные автомобили
Модель Internet Of Things
13
Sensors Board Actuators
Internet
Примеры:
- Умный дом- Носимые устройства (часы, браслеты, ...)
Модель IoT без исполнительных устройств
Sensors Board Internet
Модель IoT без исполнительных устройств
Sensors Board Internet
Пример:
- Мониторинг температуры в Дата-центре.
Модель IoT без сенсоров
ActuatorsBoardInternet
Модель IoT без сенсоров
ActuatorsBoardInternet
Пример:
- Управление гаражными воротами со смартфона.
Что дает IoT?
- Вещи могут взаимодействовать между
собой, с людьми, и с другими
устройствами в сети интернет.
- Устройства могут обновлять ПО через
интернет.
SoC – System on a Chip
CPU
SoC
CPU
Процессор: Система на чипе:
Возможные требования к SoC для IoT
- Возможность запустить операционную систему с сетевым стеком(микроконтроллер микропроцессор).
Возможные требования к SoC для IoT
- Возможность запустить операционную систему с сетевым стеком(микроконтроллер микропроцессор).
- Аппаратная поддержка сетевых интерфейсов.
Возможные требования к SoC для IoT
- Возможность запустить операционную систему с сетевым стеком(микроконтроллер микропроцессор).
- Аппаратная поддержка сетевых интерфейсов.
- Расширенные возможности ввода-вывода.
- Расширенный температурный диапазон.
- Надежность, защита от сбоев и помех.
- Защита от подмены прошивки.
Пример: Intel Quark SoC
Одноядерный однопоточный процессор,
поддерживающий инструкции Pentium i586.
Поддержка интерфейсов:
- 2x Ethernet, PCI Express, USB 2.0
Расширенные возможности ввода-вывода:
- GPIO, I2C, SPI, UART
Доступны версии:
- С расширенным температурным диапазономот -40 до +85 C.
- С поддержкой ECC памяти и Secure Boot.15mm x 15mm
IoT Hello World
Управлять светодиодом со смартфона через интернет?
Smartphone
LED ON
LED OFF
IoT
Internet
LED
Internet of Things x Resources = Unprecedented Opportunity
x =
THINGS CREATIVITY
Empower
Inspire
Teach
RESOURCES
Sources: AMS Research, Gartner, IDC, McKinsey Global Institute, and various outher industry analysts and commentarors
Creative Developers Amazing Solutions50 Billion ?
Программирование для Internet Of Things
- Arduino
- C/C++ и библиотеки для I/O
- Python
- JavaScript
- Средства визуального программирования
- И т.д.
Arduino – минимальная программа
void setup() {// код для конфигурирования платы
}
void loop() {// нет функции main, есть функция loop
// функция вызывается в бесконечном цикле
}
Arduino IDE – Hello World #1
28
Особенности совместимости Linux с Arduino
- Arduino программа запускается как user space
приложение в Linux. Linux не обеспечиваетгарантированного real-time отклика.
- Сеть настраивается на Linux уровне.
- При включении платы происходит процесс загрузки.
- Запуск Linux команд из Arduino программы функциейsystem(…)
Запуск Linux команд из Arduino программы
Функция system(“command”) позволяет из Arduino программывызывать команды Linux.
Упрощает интеграцию IoT устройства, например, в системымониторинга.
Для этого нужно скомпилировать и установить Linux-версию клиентасистемы мониторинга на IoT устройство:
SensorsArduino
program
Monitoring
clientLinux
Monitoring
serverInternetsystem(…)
Программирование Intel Galileo & Edison
Intel Galileo Gen 2Board
Intel EdisonArduino
Development Board
Yocto based Linux OS image
API Bindings C/C++, Node JS, Python
UPM (Sensor/Actuator library repository)MRAA
NodeJSSupport
C/C++ Tool Chain
WyliodrinAgent
IoT Cloud Agent
Ha
rd W
are
S/W
Im
ag
e o
n I
oT
pla
tfo
rmIntel XDK
IoT Edition
Eclipse IDE +
ISS
Wyliodrin(Visual
Programming)
Cloud Analytics / Mashery
IDE
/ T
oo
ls
(Win
, Ma
c, L
inu
x)
Sensors / Actuators
Arduino IDE
Среда разработки C/C++ на основе Eclipse IDE
• SSH подключение к плате длязапуска удаленной отладки
• Поддерживает 3 платы (Galileo
Gen 1 и 2, Edison)
• Примеры программ
Библиотека MRAA
Низкоуровневая библиотека дляупрощения работы с I/O.
Документация по API и поддерживаемыеплатформы:http://iotdk.intel.com/docs/master/mraa/
Исходный код на GitHub:
https://github.com/intel-iot-devkit/mraa
Обеспечивает соответствие номеров разъемовна плате и в коде.
MRAA - пример
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);
PIN
Библиотека UPM
UPM – высокоуровневая библиотека, обеспечивающая удобныйинтерфейс для работы с сенсорами и использующая MRAA.
Исходный код на GitHub:
https://github.com/intel-iot-devkit/upm
Список поддерживаемых устройств в C++:
http://iotdk.intel.com/docs/master/upm/modules.html
Документация по API:
http://iotdk.intel.com/docs/master/upm/
UPM - пример
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);
}
PIN
Intel® Galileo Gen 2
CPU 400 MHz, 256 MB RAM
Internet Of Things:
- Yocto Linux
- Ethernet порт
- Mini PCI-Express 1x
Embedded:
- Физически совместима с платами расширениядля Arduino Uno
- USB 2.0 Host, USB 2.0 Client
- 20 – GPIO (UART, SPI, I2C)
- 6 – ADC
Intel® Edison Compute Module
- Встроенная беспроводнаяфункциональность: Wi-Fi и Bluetooth.
- Основан на SoC с двухъядерным Intel®
Atom (500 мгц) и Quark (100 мгц).
- 1 Gb RAM + 4 Gb Flash.
- Расширенные возможности I/O: 40 GPIO
(GPIO, UART, I2C, SPI, USB).
- 70-пин разъем для подключения к платамрасширения.
35.5 x 25 мм
Intel® Edison - Arduino Development Board
- Плата расширения, физически
совместимая с Arduino Uno.
- Питание от USB-кабеля или от
блока питания 7-15V.
- 20 разъемов GPIO (4 PWM, 1 UART,
I2C)
- 6 разъемов ADC
- USB Client, USB Host
Полезные и практичные применения?
- Автоматический полив цветка.
- Мониторинг температуры, влажности, SMS-оповещения сдатчиков утечки воды и газа. Освещение вьезда, когдасмартфон подъезжает к дому.
- Сбор данных с датчиков у спортсменов. Умный мяч?
- GPS-мониторинг транспорта.
«What will you make?»
Приглашаю наВоркшоп по Intel Edison
в 12:10
Спасибо за внимание!