Перетворіть свій смартфон в IoT-пристрій
- Що вам буде потрібно для розробки додатків
- Створення IoT-додатки в Bluemix
- Додавання пристрою, який буде відправляти MQTT-повідомлення на сервер IoT
- Встановлювати чи налаштовувати додатки для Android
- Перевірка відправки повідомлень зі смартфона на сервер IoT
- Обробка повідомлень в потоці Node-RED
- Створення програми Bluemix для візуалізації показань датчика
- висновок
- Ресурси для скачування
Створення додатків Bluemix для обробки, візуалізації і зберігання показників датчиків, відправлених і отриманих смартфоном
У керівництві розповідається про те, як можна відправляти показники датчиків, згенеровані вашим смартфоном, в хмарну службу IBM Watson IoT Platform, а також як створювати додатки Bluemix ™, які обробляють, візуалізують і зберігають ці дані. Крім того, демонструється створення додатка для смартфона на базі Android.
можна відкрити відеоролик в окремому вікні браузера, щоб дивитися відео і слідувати інструкціям в керівництві.
У керівництво внесені зміни, що відображають нові назви і версії служб. Наступний відеоролик демонструє виконання дій, наведених в цьому керівництві, проте в ньому використовуються старі версії служб з застарілими іменами (служба IBM Watson IoT Platform колись називалася IBM Internet of Things Foundation).
Загальна архітектура:
Що вам буде потрібно для розробки додатків
Створення IoT-додатки в Bluemix
До складу шаблону Internet of Things Platform Starter входить механізм Node-RED, який ви будете використовувати згодом для обробки IoT-повідомлень. Зараз ми створимо службу Internet of Things для відправки MQTT-повідомлень на сервер IBM IoT в хмарі і отримання повідомлень електронної пошти.
- Увійдіть в Bluemix під вашим обліковим записом (або зареєструйтеся для безкоштовного пробного використання ).
- Виберіть Catalog.
- Клацніть по Internet of Things Platform Starter.
- Вкажіть ім'я свого застосування. Це ім'я буде також використовуватися як ім'я хоста, тому воно повинно бути унікальним в Bluemix, наприклад, iot <ваше_ім'я>. В даному прикладі використовується ім'я iotdemodaniel4.
- Натисніть кнопку Create.
- На панелі інструментів виберіть Dashboard і клацніть по створеному з додатком (Cloud Foundry або CF APP).
- Клацніть по кнопці Add a Service or API.
- У навігаційній області виберіть Internet of Things для фільтрації списку доступних служб. Виберіть службу Internet of Things Platform.
- Залиште значення за замовчуванням і натисніть кнопку CREATE.
- У повідомленні, що з'явилося натисніть на кнопку Restage. Ваша програма буде оновлено.
Додавання пристрою, який буде відправляти MQTT-повідомлення на сервер IoT
- На панелі Bluemix Dashboard виберіть свій додаток і клацніть по новій службі.
- На сторінці служби натисніть на кнопку Launch Dashboard.
З'явиться панель сервера IBM Internet of Things - служби, незалежної від Bluemix. Вашому додатку присвоюється ідентифікатор організації Organization ID, який вам буде потрібно пізніше при розробці мобільного додатку. На наступному малюнку ідентифікатор організації має значення 1xuhbp і відображається під вашим логіном в правому верхньому куті панелі.
- У лівому меню, яке спливає при наведенні на нього покажчика миші, виберіть Devices. Потім клацніть по Add a device і натисніть кнопку Create device type. У вашій організації може бути багато типів пристроїв, в кожному з яких може бути багато пристроїв. Тип пристрою - це група пристроїв із загальними характеристиками; наприклад, у них можуть бути однакові датчики. У нашому випадку тип пристрою повинен мати ім'я Android (цей тип пристроїв необхідний додатком, яке ви будете використовувати пізніше).
- Натисніть кнопку Next. З'явиться сторінка, на якій ви зможете вказати такі відомості про свій виріб, як серійний номер або модель. У цій демонстрації вводити таку інформацію не потрібно, просто натисніть кнопку Next. Також немає необхідності вказувати будь-яку метаінформацію. Натискайте кнопку Next, поки не повернетеся в діалогове вікно Add Device.
- Натисніть кнопку Next. Вкажіть ідентифікатор пристрою. Ідентифікатором пристрою може бути, наприклад, MAC-адресу вашого смартфона. Але він повинен бути унікальним для вашої організації. Тому можна вказати, як в цьому прикладі, що-небудь типу "112233445566".
- Залиште поле Meta Data порожнім і натисніть кнопку Next. Залиште поле Authentication token порожнім і натисніть кнопку Next.
- Вкажіть значення токена аутентифікації. Запам'ятайте це значення, воно вам знадобиться пізніше. Натисніть Next.
- Натисніть Add.
На екрані з'явиться сгенерированное пристрій.
- Закрийте це діалогове вікно.
Тепер ви можете відправляти MQTT-повідомлення з пристрою на сервер IBM IoT.
Встановлювати чи налаштовувати додатки для Android
Якщо у вас iPhone або iPad, ви можете використовувати IoT Starter for iOS . Процес установки на iPhone в цій статті не описується, але якщо ви зробите це самостійно, ви зможете користуватися цією програмою для iOS у всій решти цього керівництва.
Ми будемо використовувати додаток IoT Starter for Android для читання і відправки показань датчика на вашому смартфоні. Вихідний код та документацію для цього додатка можна отримати в проекті IoT Starter for Android в GitHub .
Якщо у вас є досвід розробки під Android, ви можете завантажити код з GitHub, імпортувати в своє середовище розробки і потім створити apk-файл. В іншому випадку, щоб швидко встановити і запустити додаток, виконайте наступні дії.
отримати код
- Зайдіть в своєму телефоні в меню Settings> Security (Установки> Безпека). Від імені адміністратора пристрою дозвольте установку додатків з невідомих джерел - поставте позначку в полі Unknown sources (Невідомі джерела). Тепер ви можете встановлювати файли .apk не тільки з Google Play.
- Відкрийте браузер в своєму телефоні і введіть наступний URL-адресу:
https://ibm.box.com/v/iotstarterapp
Ви будете перенаправлені на сайт https://m.box.com і до файлу iot-starter_501.apk.
- Натисніть Download.
- За допомогою файлового менеджера (наприклад, додаток ES File Explorer, доступне для завантаження з Google Play ) Знайдіть файл в каталозі Downloads.
- У цьому каталозі клацніть по файлу iot-starter_501.apk. Натисніть Install (Встановити).
Тепер додаток IoT Starter встановлено на вашому пристрої на базі Android.
Примітка: цей файл .apk скомпільовано для Android версії 5.0.1.
Потім вам потрібно конфігурувати свій додаток для Android.
- Відкрийте програму IoT Starter.
- Вкажіть наступні параметри:
- Organization: Ідентифікатор організації, який виводився на сервері IBM IoT (він був зазначений на початку етапу "Додавання пристрою, який буде відправляти MQTT-повідомлення на сервер IoT"). У цьому посібнику цей ідентифікатор має значення y6spgy.
- Device ID: Ідентифікатор пристрою, який ви вказали в кінці етапу "Додавання пристрою, який буде відправляти MQTT-повідомлення на сервер IoT". У цьому посібнику цей параметр має значення 112233445566.
- Auth Token: Токен авторизації, який ви вказали на етапі "Додавання пристрою, який буде відправляти MQTT-повідомлення на сервер IoT."
- Натисніть кнопку Activate Sensor. Тепер додаток збирає свідчення датчика прискорення в вашому смартфоні і відправляє ці дані на сервер IBM IoT. Додаток відображає дані акселерометра і кількість переданих або отриманих повідомлень.
Перевірка відправки повідомлень зі смартфона на сервер IoT
- Відкрийте на комп'ютері сторінку сервера IBM IoT для вашої організації (див. Початок етапу "Додавання пристрою, який буде відправляти MQTT-повідомлення на сервер IoT").
- На вкладці Devices відображається ваш пристрій на базі Android.
- Клацніть за ідентифікатором пристрою. З'явиться спливаюче вікно з повідомленнями, що надходять з вашого пристрою. Клацніть по події, щоб побачити докладні відомості.
Повідомлення з вашого смартфона відправляються в форматі JSON. Вони містять дані про прискорення і позиції.
Тепер ви можете працювати з даними повідомлень в Bluemix.
Обробка повідомлень в потоці Node-RED
У цьому розділі ви поліпшите своє додаток Bluemix IoT з використанням потоку Node-RED для обробки повідомлень з вашого смартфона і відправки повідомлень назад на смартфон. Телефон буде реагувати на ці повідомлення, змінюючи колір фону в додатку.
Node-RED - це візуальний інструмент, який спрощує передачу і обробку повідомлень в Інтернеті речей.
запустити програму
- Відкрийте Bluemix, виберіть Dashboard і на панелі Bluemix Dashboard переконайтеся в тому, що ваш додаток Bluemix IoT (створене на етапі 1) виконується.
- Відкрийте в браузері сторінку <імя_вашего_пріложенія> .mybluemix.net, де <yourappname> - це ім'я вашого застосування Bluemix IoT, створеного на кроці 1. У редакторі Node-RED для вашого застосування Bluemix натисніть на кнопку Go to your Node-RED flow editor.
- Відкриється редактор з прикладом потоку.
У відеоролику демонструється застосування методу drag-and-drop в редакторі потоків Node-RED. Даний посібник містить рядок коду, який створює для вас потік автоматично.
Використовуючи в редакторі метод drag-and-drop, ви можете конструювати потік повідомлень. Хоча ви можете створити свій власний потік самостійно, ми імпортуємо наведений нижче код. Але спочатку виберіть всі існуючі вузли і видаліть їх, натиснувши клавішу Delete.
- Скопіюйте наступний код (як одну довгу рядок) і вставте його в текстовий редактор. Щоб отримати цей код в форматованому вигляді, можна завантажити його як текстовий файл зі сторінки https://ibm.box.com/v/iotstarterNodeRedCode . [{ "Id": "215c6601.12d32a", "type": "ibmiot in", "authentication": "boundService", "apiKey": "", "inputType": "evt", "deviceId": "" , "applicationId": "", "deviceType": "", "eventType": "accel", "commandType": "", "format": "json", "name": "IBM IoT App In", " service ":" registered "," allDevices ": true," allApplications ":" "," allDeviceTypes ": true," allEvents ":" "," allCommands ":" "," allFormats ":" "," x " : 264.1999969482422, "y": 434.1999969482422, "z": "dc6a0ca6.7993b", "wires": [[ "ce21edbb.320628", "fdfdaaa2.a45678"]]}, { "id": "ce21edbb.320628" , "type": "function", "name": "calc color", "func": "var accelZ = msg.payload.d.acceleration_z; \ nvar r = 0,0; \ nvar b = 0,0; \ nvar g = 0.0; \ nif (accelZ> 0) {\ n \ tg = Math.round (accelZ * 25); \ n} else if (accelZ <0) {\ n \ tr = 255.0; \ n} else {\ n \ tr = 104; \ n \ tg = 109; \ n \ tb = 115; \ n} \ na = 1.0; \ n \ nmsg.eventOrCommandType = \ "color \"; \ nmsg.payload = JSON.stringify ({\ "d \": {\ "r \": r, \ "b \": b, \ "g \": g, \ "alpha \": a}}); \ n \ nreturn msg; "," outputs ": 1," noerr ": 0," x ": 437.1999969482422," y ": 430.1999969482422," z ":" dc6a0ca6.7993 b "," wires ": [[" 9df37edb.5d4588 "]]}, {" id ":" 9df37edb.5d4588 "," type ":" ibmiot out "," authentication ":" boundService "," apiKey ": "", "outputType": "cmd", "deviceId": "112233445566", "deviceType": "Android", "eventCommandType": "text", "format": "json", "data": "{\ "d \": {\ "value \": \ "text \"}} "," name ":" IBM IoT App Out "," service ":" registered "," x ": 629.1999969482422," y ": 443.1999969482422, "z": "dc6a0ca6.7993b", "wires": []}, { "id": "fdfdaaa2.a45678", "type": "debug", "name": "", "active": false, "console": "false", "complete": "false", "x": 442.1999969482422, "y": 364.1999969482422, "z": "dc6a0ca6.7993b", "wires": []}]
- В текстовому редакторі переконайтеся в тому, що весь код знаходиться в одному рядку. Видаліть всі розриви рядків. Скопіюйте цей рядок коду в буфер обміну.
- У редакторі Node-RED натисніть Ctrl-I, щоб відкрити діалогове вікно Import Nodes. Вставте код і натисніть OK.
- Тепер вам потрібно адаптувати потік до ваших конкретних параметрів. Єдиним значущим параметром є Device ID. Двічі клацніть по вузлу IBM IoT App out. У спливаючому вікні введіть ідентифікатор пристрою, який ви використовували раніше (наприклад, +112233445566), і натисніть OK.
- У редакторі потоку натисніть на кнопку Deploy. Потік буде розгорнуто і повинен негайно стати активним.
- Переміщайте смартфон, перевертаючи і нахиляючи його. Фон додатки в вашому телефоні повинен міняти свій колір залежно від орієнтації осі Z.
- У редакторі Node-RED клацніть по прямокутнику поряд з вузлом msg.payload, потім клацніть по вкладці debug для виконання налагодження. Ви повинні побачити повідомлення, які відправляються з вашого телефону. Дані передаються в форматі JSON.
- Досліджуйте потік, двічі клацнувши по вузлу calc color. Цей вузол обчислює значення red, green та blue на базі вхідних значень z-прискорення і відправляє результати обчислень як дані JSON.
Тепер у вас є двосторонній обмін даними між вашим смартфоном і вашим першим додатком Bluemix.
Створення програми Bluemix для візуалізації показань датчика
Примітка: це додаток задокументовано на сторінці Bluemix IoT Samples .
На цьому етапі ви створите в Bluemix додатковий додаток, яка отримує повідомлення від вашого смартфона (який тепер став IoT-пристроєм) і візуалізує ці дані.
отримати код
- завантажте файл iot-visualization-0.2.0.zip з проекту iot-visualization в Github. Розпакуйте цей архів.
- Відкрийте Bluemix і виберіть Dashboard.
- Натисніть кнопку Create App.
- Виберіть WEB як тип програми.
- Виберіть SDK for Node.js.
- Клацніть по кнопці Continue і вкажіть назву програми. Як і раніше, ім'я має бути унікальним в Bluemix, оскільки використовується як ім'я хоста. Введіть що-небудь типу iotvisualizer <ваше_ім'я> і натисніть Finish.
- Через кілька секунд ви повинні отримати повідомлення Your app is running.
- У каталозі, куди ви розпакували архів iot-visualization-0.1.0.zip, знайдіть файл manifest.yml і відкрийте його в текстовому редакторі. Змініть параметри host і name на вибране вами ім'я програми. Збережіть файл.
- Відкрийте вікно командного рядка і перейдіть в каталог, куди ви розпакували архів iot-visualization-0.1.0.zip.
- Виконайте наступні команди Cloud Foundry:
cf api https://api.ng.bluemix.net
cf login -u <your_bluemix_login_id>
Команда cf login необхідна тільки при першому використанні інструменту командного рядка cloud foundry. Вам також може знадобитися ввести свій пароль в Bluemix. Якщо у вас більше однієї організації Bluemix (на відміну від установок за замовчуванням), то вам потрібно буде вибрати одну з них. - Розгорніть додаток в Bluemix, виконавши наступну команду:
cf push <your_application_name>
Ця команда бере параметри з файлу manifest.yml і потім завантажує код в Bluemix. Через деякий час ви повинні побачити приблизно таке повідомлення:
OK
App <your app name> was started using this command 'node app.js'.
- На панелі Bluemix Dashboard відкрийте сторінку Overview для вашого застосування. Клацніть по кнопці Bind a service or API.
- Виберіть службу Internet of Things, яку ви визначили на етапі "Створення IoT-додатки в Bluemix". Натисніть Restage для оновлення програми. Тепер додаток може отримувати повідомлення з сервера IBM IoT.
- Для перевірки додатку візуалізації відкрийте в браузері сторінку http: // <your app name> .mybluemix.net
- У спадному меню Device виберіть ідентифікатор вашого пристрою.
висновок
У цьому керівництві описано, як можна легко перетворити смартфон в датчик, підключити його до сервера IBM Internet of Things, а потім відправляти і отримувати дані. Ви також дізналися, як обробляти і візуалізувати одержувані з пристрою дані в Bluemix. Ці два додатки демонструють ефективність Bluemix в додатках Інтернету речей. Єдине, що вам потрібно, - ваш смартфон.
Ресурси для скачування
Схожі теми
Підпишіть мене на повідомлення до коментарів