AWS IoT Core: як підключити пристрої до хмари?

Friday, Mar 21, 2025 | 3 | Friday, Mar 21, 2025

@

alt text

Що таке AWS IoT Core?

Як підключити ваш пристрій до хмари? Через HTTP? FTP? Телепатію? AWS має простіший спосіб — IoT Core.

AWS IoT Core — це сервіс для підключення пристроїв до хмари через MQTT, HTTP або WebSockets. Він дозволяє отримувати, обробляти та зберігати дані, а також відправляти команди на пристрої.

Наприклад, ви розробляєте розумну лампу. Коли ви натискаєте кнопку в додатку, AWS IoT Core відправляє команду лампі через MQTT, і вона вмикається. Просто? Так. Потужно? Дуже.

Основні компоненти AWS IoT Core

  • MQTT: основа AWS IoT Core

  • Теми (Topics) — канали MQTT.

  • Тіньовий пристрій (Device Shadow) — останній стан пристрою, навіть якщо він офлайн(ми записали і забули).

  • Правила (Rules Engine) — маршрутизація даних до інших сервісів AWS (Lambda, DynamoDB, S3 тощо).

  • Jobs — Віддалені команди та контроль виконання цих команд.

  • Policy — безпека та керування доступом.

MQTT — це легкий протокол для обміну повідомленнями між пристроями та сервером. Він працює за принципом «видавець-підписник» (publisher-subscriber).

alt text

Як це виглядає?

  • Лампа підписується на тему home/lamp/status.
  • Додаток публікує { “state”: “on” } у тему home/lamp/status.
  • Лампа отримує повідомлення та вмикається.

Як налаштувати IoT Core

  • Створити річ (Thing) в AWS IoT Core. alt text

  • Згенерувати код, сертифікат та завантажити їх на пристрій.

Код можна згенерувати для NodeJS, нам з того архіву треба буде тільки ключі дістати(які потом можна буде залити в ESP32 for example).

alt text alt text alt text alt text

  • Запускаємо там приклад start.sh (я взяв NODEJS тому не забудьте скачати npm, NodeJS) alt text

  • Після чого йдемо в тест вкладку і дивимось на повідомлення які йдуть з нашого комп’ютера на IoT Core. alt text

УРА, ми маємо повідомлення з нашого комп’ютера на нашій хмарі… А тепер уявіть що у вас тисячі комп’ютерів, АБО навіть мікроконтролерів ESP32/NRF7001+nrf5*/etc.)

AWS IoT Jobs: віддалені команди та оновлення

Ваш пристрій знаходиться в іншому місті, і вам потрібно оновити прошивку? AWS IoT Jobs допоможе.

Як це працює?

  • Ви створюєте Job у AWS IoT.
  • Пристрій отримує повідомлення та завантажує нову прошивку.
  • Прошивка застосовується, і пристрій повідомляє про успіх. Приклад JSON-завдання:
  "jobDocument": {
    "operation": "ota_update",
    "firmware_url": "https://s3.amazonaws.com/my-bucket/firmware.bin"
  }
}

Як підключити Lambda до IoT Core?

Щоб реагувати на повідомлення в темах MQTT, використовуйте Rules Engine:

  • Створіть правило (Rule) в AWS IoT Core.
  • Вкажіть SQL-запит: SELECT * FROM ‘sensors/temperature’.

Виберіть дію: Викликати Lambda.

  • Ваша Lambda-функція отримує дані та обробляє їх (наприклад, зберігає в DynamoDB).

Приклад коду для Lambda:

import json

def lambda_handler(event, context):
    temperature = event['temperature']
    print(f"Температура: {temperature}°C")
    return {
        'statusCode': 200,
        'body': json.dumps('OK')
    }

AWS IoT Core у реальному житті

Приклад використання:

Заміна MQTT mosquitto, EMQX, etc., в хмарі для великих Enterprice продуктів.

  • Це дозволяє платити тільки за данні і за N кількість пристроїв(не за всі сервера)
  • Відповідно зменшити кількість сапорта для серверів(в основному все зводиться до DevOps)
  • Швидка масштабованість

З мінусів:

  • Ну це не своє… Це не так гнучко(можливо) як наприклад взяти EMQX і контролювати все)

© 2025 microdiy.space

🌱 Powered by Hugo with theme Dream.