6. GPIO – General Purpose Input / Output
Логический уровень
- 0 – 0V
- 1 – например, 5V
Устройства:
- Светодиод
- Реле
- Кнопка
- И т.д.
7. UART - Universal Asynchronous Receiver/Transmitter
Последовательный порт для
подключения модулей:
- GPS
- GSM/GPRS
- Bluetooth
- Других контроллеров
17. Модель IoT без сенсоров
ActuatorsBoardInternet
Пример:
- Управление гаражными воротами со смартфона.
18. Что дает IoT?
- Вещи могут взаимодействовать между
собой, с людьми, и с другими
устройствами в сети интернет.
- Устройства могут обновлять ПО через
интернет.
19. SoC – System on a Chip
CPU
SoC
CPU
Процессор: Система на чипе:
20. Возможные требования к SoC для IoT
- Возможность запустить операционную систему с сетевым стеком
(микроконтроллер микропроцессор).
21. Возможные требования к SoC для IoT
- Возможность запустить операционную систему с сетевым стеком
(микроконтроллер микропроцессор).
- Аппаратная поддержка сетевых интерфейсов.
22. Возможные требования к SoC для IoT
- Возможность запустить операционную систему с сетевым стеком
(микроконтроллер микропроцессор).
- Аппаратная поддержка сетевых интерфейсов.
- Расширенные возможности ввода-вывода.
- Расширенный температурный диапазон.
- Надежность, защита от сбоев и помех.
- Защита от подмены прошивки.
23. Пример: 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
24. IoT Hello World
Управлять светодиодом со смартфона через интернет?
Smartphone
LED ON
LED OFF
IoT
Internet
LED
25. 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 ?
26. Программирование для Internet Of Things
- Arduino
- C/C++ и библиотеки для I/O
- Python
- JavaScript
- Средства визуального программирования
- И т.д.
27. Arduino – минимальная программа
void setup() {
// код для конфигурирования платы
}
void loop() {
// нет функции main, есть функция loop
// функция вызывается в бесконечном цикле
}
29. Особенности совместимости Linux с Arduino
- Arduino программа запускается как user space
приложение в Linux. Linux не обеспечивает
гарантированного real-time отклика.
- Сеть настраивается на Linux уровне.
- При включении платы происходит процесс загрузки.
- Запуск Linux команд из Arduino программы функцией
system(…)
30. Запуск Linux команд из Arduino программы
Функция system(“command”) позволяет из Arduino программы
вызывать команды Linux.
Упрощает интеграцию IoT устройства, например, в системы
мониторинга.
Для этого нужно скомпилировать и установить Linux-версию клиента
системы мониторинга на IoT устройство:
Sensors
Arduino
program
Monitoring
client
Linux
Monitoring
server
Internetsystem(…)
31. Программирование Intel Galileo & Edison
Intel Galileo
Gen 2
Board
Intel Edison
Arduino
Development
Board
Yocto based Linux OS image
API Bindings C/C++, Node JS, Python
UPM (Sensor/Actuator library repository)MRAA
NodeJS
Support
C/C++
Tool Chain
Wyliodrin
Agent
IoT Cloud
Agent
HardWare
S/WImageonIoTplatform
Intel XDK
IoT Edition
Eclipse IDE
+
ISS
Wyliodrin
(Visual
Programming)
Cloud
Analytics /
Mashery
IDE/Tools
(Win,Mac,Linux)
Sensors / Actuators
Arduino IDE
32. Среда разработки C/C++ на основе Eclipse IDE
• SSH подключение к плате для
запуска удаленной отладки
• Поддерживает 3 платы (Galileo
Gen 1 и 2, Edison)
• Примеры программ
33. Библиотека MRAA
Низкоуровневая библиотека для
упрощения работы с I/O.
Документация по API и поддерживаемые
платформы:
http://iotdk.intel.com/docs/master/mraa/
Исходный код на GitHub:
https://github.com/intel-iot-devkit/mraa
Обеспечивает соответствие номеров разъемов
на плате и в коде.
34. MRAA - пример
mraa_gpio_context gpio;
gpio = mraa_gpio_init(6);
mraa_gpio_dir(gpio, MRAA_GPIO_IN);
for (;;) {
fprintf(stdout, "Gpio is %dn",
mraa_gpio_read(gpio));
sleep(1);
}
mraa_gpio_close(gpio);
PIN
35. Библиотека 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/
36. 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
37. 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
38. 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 мм
39. Intel® Edison - Arduino Development Board
- Плата расширения, физически
совместимая с Arduino Uno.
- Питание от USB-кабеля или от
блока питания 7-15V.
- 20 разъемов GPIO (4 PWM, 1 UART,
I2C)
- 6 разъемов ADC
- USB Client, USB Host
41. Полезные и практичные применения?
- Автоматический полив цветка.
- Мониторинг температуры, влажности, SMS-оповещения с
датчиков утечки воды и газа. Освещение вьезда, когда
смартфон подъезжает к дому.
- Сбор данных с датчиков у спортсменов. Умный мяч?
- GPS-мониторинг транспорта.
«What will you make?»