Интеграция Arduino IoT Cloud с Amazon Alexa: пошаговое руководство
Компоненты
- Arduino MKR WiFi 1010 — 1 шт.
- Arduino MKR ENV Shield — 1 шт.
- Макетная плата, перемычки
- Светодиод белый высокой яркости — 1 шт.
- RGB LED (общий катод) — 1 шт.
- Резистор 220 Ом — 1 шт.
Сервисы
- Arduino Web Editor
- Arduino IoT Cloud
- Amazon Alexa (официальный навык Arduino)
О проекте
Урок показывает, как управлять умным домом голосом через Alexa, используя Arduino IoT Cloud. Пример: два «светильника» (один диммируемый белый, второй RGB) и датчик температуры с MKR ENV Shield.
Часть 1: Arduino IoT Cloud
- Создайте новый Thing, выберите плату MKR WiFi 1010.
- Добавьте 3 свойства (Properties) в разделе Smart Home:
- Meeting Room — тип DimmedLight (Read/Write) — белый LED.
- Lounge Area — тип ColoredLight (Read/Write) — RGB LED.
- Temperature — тип Temperature Sensor (Celsius) (ReadOnly).
- Откройте Dashboard — проверьте виджеты.
- Нажмите Edit Sketch — откроется Web Editor.
Часть 2: Arduino Web Editor — код
#include
#define PIN_MEETING_ROOM 5
#define PIN_LOUNGE_AREA_R 2
#define PIN_LOUNGE_AREA_B 3
#define PIN_LOUNGE_AREA_G 4
void setup() {
if (!ENV.begin()) {
Serial.println("Failed to initialize MKR ENV shield!");
while (1);
}
// pinMode не нужен — используем analogWrite()
}
void loop() {
temperature = ENV.readTemperature();
delay(1000);
ArduinoCloud.update(); // обрабатывает колбэки
}
// Колбэк для белого света (Meeting Room)
void onMeetingRoomChange() {
uint8_t brightness = map(meetingRoom.getBrightness(), 0, 100, 0, 255);
if (meetingRoom.getSwitch()) {
analogWrite(PIN_MEETING_ROOM, brightness);
} else {
analogWrite(PIN_MEETING_ROOM, LOW);
}
}
// Колбэк для RGB (Lounge Area)
void onLoungeAreaChange() {
uint8_t r, g, b;
loungeArea.getValue().getRGB(r, g, b);
if (loungeArea.getSwitch()) {
analogWrite(PIN_LOUNGE_AREA_R, r);
analogWrite(PIN_LOUNGE_AREA_B, b);
analogWrite(PIN_LOUNGE_AREA_G, g);
} else {
analogWrite(PIN_LOUNGE_AREA_R, 0);
analogWrite(PIN_LOUNGE_AREA_B, 0);
analogWrite(PIN_LOUNGE_AREA_G, 0);
}
}
Яркость (0–100) маппится в 0–255 для PWM. Цвет RGB берётся через getRGB(). Alexa позволяет задавать цвета по названиям («warm white», «blue» и т.д.).
Часть 3: Настройка навыка Alexa
- Установите приложение Amazon Alexa (iOS/Android), войдите в аккаунт.
- В приложении: More → Skills & Games → Поиск "Arduino" → Arduino Official Skill → Enable.
- Авторизуйтесь в Arduino IoT Cloud.
- Alexa обнаружит устройства (имена = имена свойств в Cloud).
Часть 4: Настройка устройств в Alexa
- Выберите устройство → Set Up Device → опционально добавьте в группу (например, «Office»).
- Повторите для всех устройств.
Теперь работают фразы:
- «Алекса, какая температура в офисе?»
- «Алекса, включи свет в переговорной.»
- «Алекса, поставь синий цвет в зоне отдыха.»
Схема
MKR WiFi 1010 + ENV Shield сверху. Белый LED — пин 5 через 220 Ом. RGB: R→2, G→4, B→3 (общий катод → GND).
Производственный процесс
- Fog vs Cloud: оптимизация IoT‑развертываний для скорости и масштаба
- Infineon назван Advanced Technology Partner Amazon Web Services
- Управление Chromecast через Amazon Alexa с помощью Raspberry Pi и Python
- Управление потолочным вентилятором через Alexa: пошаговое руководство
- IoT-монитор пульса в реальном времени на Arduino и MAX30100
- Удаленное IoT-управление самодельной манипулятором
- Управление светодиодами через Alexa с помощью Raspberry Pi – простое пошаговое руководство
- Сенсорная башня на Arduino Cloud: Мониторинг температуры, движения и газа
- Система управления бассейном на Azure IoT: умные датчики и удаленный мониторинг
- Использование облачной мощи для IoT: раскрытие бесшовной связности и инсайтов данных