Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

MKR1000 + DHT22: мониторинг температуры и влажности в Azure в реальном времени

Компоненты и материалы

Arduino MKR1000 ×1
Датчик температуры и влажности DHT22 ×1

Приложения и сервисы

О проекте

Пол ДеКарло описал отправку погодных данных с Particle Photon в Azure через вебхук. MKR1000 поддерживает HTTPS напрямую — данные можно слать в Azure без посредников. Руководство основано на проекте Microsoft Connect the Dots.

Железо

DHT22 измеряет температуру и влажность. Подключение на макетке:

Подробнее: Adafruit DHT Tutorial.

Arduino IDE

HTTPS и сертификаты

MKR1000 поддерживает HTTPS, но сертификаты нужно загрузить вручную (память ограничена). Два шага:

  1. Загрузить в Arduino скетч WiFi101 Firmware Updater (из примеров WiFi101).
  2. Скачать WiFi101 Firmware Updater Tool (winc1500-uploader-gui.exe), запустить, ввести ctd-ns.servicebus.windows.net (хост Azure Event Hubs), выбрать COM-порт, нажать «Upload Certificates».

Скетч Arduino

Скачайте с GitHub. В файле ssid укажите свои ssid[] и password[]. Загрузите в MKR1000.

Откройте Serial Monitor — должны появиться сообщения об отправке в Azure. Данные попадают в публичный Event Hub проекта Connect the Dots. Откройте в браузере: connectthedotsdx.azurewebsites.net — увидите данные (смешанные с другими устройствами). Можно поменять displayname или guid в функции createJSON.

Создание собственного Event Hub

Для изолированных данных нужен свой Event Hub. Требуются Visual Studio и Azure-подписка (есть бесплатный пробный период).

  1. Клонируйте репозиторий: git clone https://github.com/Azure/connectthedots.git
  2. Откройте в Visual Studio решение AzurePrep (connectthedots\Azure\AzurePrep), запустите в Release Mode.
  3. Авторизуйтесь в Azure, ответьте на вопросы в консоли. Имя ресурсов: рекомендуют ctd + инициалы (например, ctddc).
  4. Запустите таргет CreateWebConfig в проекте AzurePrep — создастся web.config на рабочем столе.
  5. Скопируйте web.config в проект сайта (connectthedots\Azure\WebSite\ConnectTheDotsWebSite), добавьте в решение (Add → Existing Item).
  6. Откройте решение ConnectTheDotsWebsite, запустите в Edge — сайт заработает (данные появятся после настройки девайса).

SAS-ключ для Arduino:

  1. Скачайте Event Hubs Signature Generator (RedDog.ServiceBus.EventHubs.SignatureGenerator).
  2. В Azure Portal (старый портал) найдите свой Event Hub namespace → Event Hubs → ehdevices → Configure → скопируйте Primary Key для политики D1.
  3. В Signature Generator: Namespace = ваш_namespace (например, ctddc-ns), Hub = ehdevices, Publisher = D1, Sender Key Name = D1, TTL = 525600 минут (1 год). Вставьте ключ, нажмите Generate.
  4. Скопируйте сгенерированную подпись (SAS-токен).

В скетче Arduino замените:

char hostname[] = "ваш_namespace.servicebus.windows.net";
char authSAS[] = "сгенерированный_SAS_токен";

Сохраните, загрузите в MKR1000. Проверьте Serial Monitor и сайт Connect the Dots.

IoT Hub (альтернатива)

Azure IoT Hub новее, поддерживает device-to-cloud и cloud-to-device.

  1. Создайте IoT Hub на портале Azure.
  2. Скачайте Device Explorer (SetupDeviceExplorer.msi).
  3. В портале: IoT Hub → ключи → iothubowner → connection string (primary key).
  4. В Device Explorer: вставьте connection string → Update → Management tab → Create device ID D1 → SAS Token → Generate.
  5. В скетче Arduino:
char hostname[] = "ваш_iot_hub.azure-devices.net";
char authSAS[] = "SAS_токен_после_SharedAccessSignature=";
String deviceName = "D1";
String uri = "/devices/" + deviceName + "/messages/events?api-version=2016-02-03";

В функции sendEvent измените проверку ответа: Event Hub возвращает HTTP 201, IoT Hub — HTTP 204:

if (response.startsWith("HTTP/1.1 204")) { ... }

Загрузите скетч. В Device Explorer вкладка Data → Monitor — увидите входящие данные.

Для приема команд из облака лучше использовать официальные Azure IoT SDK (хотя они не очень Arduino-friendly). См. блог Мохана Паланисами про отправку из IoT Hub в MKR1000.

Важно: После экспериментов удалите ненужные Azure-ресурсы (проект AzurePrep имеет ClearResources), чтобы не платить лишнее.

Полезные ссылки

Производственный процесс

  1. Arduino-датчики: типы, применения и реальные проекты
  2. Датчики влажности: принцип работы и ключевые применения
  3. Датчик DHT11: принцип работы и ключевые применения
  4. Создайте автоматизированную аэропоническую систему с Raspberry Pi и датчиком влажности
  5. Проверка и калибровка датчика влажности для точных измерений
  6. Проект с датчиком DHT11: индикация температуры светодиодами и пьезо-динамиком на Arduino
  7. Логгер температуры и влажности на Arduino с DHT11 и Ethernet Shield
  8. Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2"
  9. Сенсорная башня на Arduino Cloud: Мониторинг температуры, движения и газа
  10. Вывод данных BME280 (температура, влажность, давление) на сенсорный экран Nextion