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

Автоматизация розеток дома: Windows 10 IoT Core, Raspberry Pi и Arduino

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

Raspberry Pi 2 Model B1 шт.
XBee (ZigBee)2 шт.
Arduino UNO1 шт.
FTDI-адаптер (кабель)2 шт.
Релейный щит 4-канальный для Arduino1 шт.
XBee Shield для Arduino1 шт.

Инструменты и ПО

О проекте

Введение

Проект демонстрирует управление бытовыми розетками локально и через облако. Raspberry Pi на Windows 10 IoT Core выступает шлюзом: принимает команды (локально — через веб-интерфейс, из облака — через Azure) и передаёт их по радиоканалу XBee на Arduino, который переключает реле. Примеры: вентилятор и лампа.

Почему автоматизировать розетки?

Управляя питанием розетки, можно включать/выключать любые приборы без модификации самих приборов.

Работа с XBee (ZigBee)

Два модуля XBee: Coordinator (координатор) — подключён к Raspberry Pi через FTDI-USB; Router (маршрутизатор) — на стороне Arduino с реле. Координатор отправляет команды маршрутизатору.

Настройка XBee в AT-режиме

  1. Скачайте и установите XCTU.
  2. Для прошивки использовался FTDI-адаптер Adafruit.
  3. Смотрите видеоурок по настройке XBee в AT-режиме.

Убедитесь, что модули «видят» друг друга перед дальнейшей работой.

Настройка приёмника (Router + Arduino)

Необходимо: XBee Router, Arduino UNO, XBee Shield, релейный щит.

Скетч для Arduino

Получает команды по Serial от XBee: ON1 / OFF1 — реле 1, ON2 / OFF2 — реле 2.

#define RELAY1 7
#define RELAY2 5
String state = "OFF";

void setup() {
  Serial.begin(9600);
  pinMode(RELAY1, OUTPUT);
  pinMode(RELAY2, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    state = Serial.readString();
    Serial.println(state);
  }
  if (state == "ON1\r\n") digitalWrite(RELAY1, HIGH);
  else if (state == "ON2\r\n") digitalWrite(RELAY2, HIGH);
  else if (state == "OFF1\r\n") digitalWrite(RELAY1, LOW);
  else if (state == "OFF2\r\n") digitalWrite(RELAY2, LOW);
  else {
    digitalWrite(RELAY1, LOW);
    digitalWrite(RELAY2, LOW);
  }
}

Подключение реле к розетке (ВЫСОКОЕ НАПРЯЖЕНИЕ — ОСТОРОЖНО!)

Автоматизация розеток дома: Windows 10 IoT Core, Raspberry Pi и Arduino

Реле — электромеханический переключатель. Управляющий сигнал (5В от Arduino) замыкает/размыкает силовую цепь (110–240 В).

Техника безопасности: работа с сетью 220В опасна для жизни. Действуйте на свой страх и риск. Автор использовал удлинитель: один провод разрезан, концы подключены к контактам COM (общий) и NO (нормально открытый) реле.

Автоматизация розеток дома: Windows 10 IoT Core, Raspberry Pi и Arduino

Соберите сэндвич: Arduino → релейный щит → XBee Shield → XBee (Router). Питание Arduino — от внешнего источника.

Автоматизация розеток дома: Windows 10 IoT Core, Raspberry Pi и Arduino

Настройка сервера (Raspberry Pi + Coordinator)

Raspberry Pi 2 с Windows 10 IoT Core. Coordinator XBee подключён через FTDI-USB кабель.

На Pi развёртывается UWP-веб-сервер. Он ждёт пользовательский ввод, записывает команду в виртуальный COM-порт FTDI — Coordinator передаёт её по радиоканалу Router'у.

Для работы FTDI на Windows 10 IoT см. github.com/jark/ftdisample.

Автоматизация розеток дома: Windows 10 IoT Core, Raspberry Pi и Arduino

Интеграция с Microsoft Azure

Для управления из любой точки мира:

  1. Создайте веб-сайт в Azure (ASP.NET Core).
  2. Azure SQL Database — для авторизации пользователей.
  3. Azure Table Storage — для хранения команд от веба.
  4. Приложение на Raspberry Pi (Blinky App) опрашивает хранилище и отправляет команды на XBee.

Ссылки по созданию таблиц в Azure Storage и SQL DB даны в оригинале.

Демонстрация

Управление двумя способами:

  1. Локально — через веб-интерфейс Raspberry Pi в домашней сети.
  2. Извне — через веб-приложение в Azure.

Заключение: возможности расширения

  1. Добавьте датчики света/движения — автоотключение для экономии энергии.
  2. Пульт для пожилых (требуется RFID).
  3. Расписание включения/выключения.
  4. Включение всего света при обнаружении вторжения.
  5. Удалённое отключение всего дома в отпуске.
  6. Поддержание температуры только при необходимости.

Код

Скетч для реле (C/C++)

#define RELAY1 7
#define RELAY2 5
String state = "OFF";

void setup() {
  Serial.begin(9600);
  pinMode(RELAY1, OUTPUT);
  pinMode(RELAY2, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    state = Serial.readString();
    Serial.println(state);
  }
  if (state == "ON1\r\n") digitalWrite(RELAY1, HIGH);
  else if (state == "ON2\r\n") digitalWrite(RELAY2, HIGH);
  else if (state == "OFF1\r\n") digitalWrite(RELAY1, LOW);
  else if (state == "OFF2\r\n") digitalWrite(RELAY2, LOW);
  else {
    digitalWrite(RELAY1, LOW);
    digitalWrite(RELAY2, LOW);
  }
}

Примеры кода (GitHub)

https://github.com/syediddi/hacksterio

Схемы

Автоматизация розеток дома: Windows 10 IoT Core, Raspberry Pi и Arduino

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

  1. Построение доступной беспроводной сети датчиков для дома
  2. Создание безопасной двери с распознаванием лиц на Windows IoT и Raspberry Pi
  3. Точный мониторинг температуры и влажности с SHT15 на Windows 10 IoT Core
  4. Установка Windows 10 IoT Core на Raspberry Pi 3 Model B+: Пошаговое руководство
  5. Построение робота с голосовым управлением на Windows 10 IoT Core на Raspberry Pi 2
  6. Расширение GoPiGo v2 на Windows 10 IoT Core для Raspberry Pi 3
  7. Использование IoT: Ускорение цифровой трансформации сегодня
  8. IoT-монитор пульса в реальном времени на Arduino и MAX30100
  9. Система управления бассейном на Azure IoT: умные датчики и удаленный мониторинг
  10. Создание дашбордов Power BI из облачных данных PLCnext