Как сделать портативную розетку

Обновлено: 25.04.2024

Wi-Fi розетка с управлением через Интернет за 60 минут

В этом материале мы покажем, что Интернет вещей — это не так уж и сложно. Для этого за 60 минут соберем и оживим простейшую Wi-Fi розетку с управлением через Интернет.

5 минут: размышляем над задачей

Почему Wi-Fi? Потому что он у всех есть и не требует проводов, а значит, в пределах нашего помещения розетку можно будет перемещать в любой угол.

Раз розетка у нас смотрит в интернет, то помимо самой аппаратуры нам понадобится еще и нечто в этом самом Интернете. Причем разрабатывать что-то с нуля мы вот вообще не хотим, хотим максимально готовое.

Первое, что приходит в голову — для розетки берем микроконтроллер с ESP8266/ESP32, так как это очень известная и популярная платформа со встроенным Wi-Fi, а для бекэнда в Интернете готовый облачный сервис Azure IoT Central, для которого код писать вообще не надо.

Ну раз это первое пришло в голову — так и сделаем, у нас же всего 60 минут!

У автора была плата с обтекаемым названием ESP32 Dev Board, на которой установлен USB-UART конвертер CP2102 и модуль ESP-WROOM-3. Плату можно опознать по картинке ниже и по ключевику "ESP32" найти на известном китайском сайте.


  • собственно сами розетки. Так как мы хотим больше приключений, возьмем сразу две штуки, ведь тогда продукт получится более конкурентоспособный! Автор статьи использовал корпус удлинителя с двумя гнездами.
  • модуль реле на 220 В — возьмем готовый, двухканальный, с гальванической развязкой. Нам важно, чтобы реле переключались логическими сигналами с уровнем 3.3В. Выглядит так:
  • пара кнопок, мы ведь не только из Интернета хотим включать/выключать розетки, но и кнопками на них;
  • любой AC-DC преобразователь 220В — 5В для питания ESP32 Dev Board, например, такой:
  • провода, чтобы все это соединить.
Впрочем, необходимый минимум из этого всего — только сама плата ESP32: можно просто подключить ее по USB, от которого и питать, и посмотреть по отладочному выводу или мультиметром на выводах, как она работает совместно с облаком. Правда, в этом случае такая "розетка" не будет выполнять свою основную функцию собственно розетки.

Для ESP32 понадобится прошивка. Вариантов для ее разработки немного:

  • взять стандартный тулчейн от производителя. Установка несложная, но и не особо простая. Подчеркиваю также то неприятное обстоятельство, что IDE в этом случае в комплект средств разработки не входит, и собирать все нужно будет с командной строки.
  • прослойка для Arduino. Это очевидно проще и быстрее, все ставится и настраивается из самой IDE Arduino. В качестве минуса — не вдаваясь в подробности, нет полноценной готовой библиотеки для работы именно с IoT Central, но мы это обстоятельство обойдем.

20 минут: подготовим облачный сервис

Выбираем слева Мои приложения — Новое приложение, далее Пользовательские приложения и заполняем поля:

  • Имя приложения: любое удобное;
  • URL-адрес: любой, но он должен быть уникальным;
  • Шаблон приложения: пользовательское приложение;
  • Ценовой план: стандартный 1 или бесплатный;

Если выбрали стандартный ценовой план, ниже создайте подписку Azure и выберите расположение, ближайшее к вам (для России — Европа).

В меню выберите Шаблоны устройств — Создать, как показано на рисунке ниже.


Далее Устройство IoT — Следующий: Настроить. В поле Имя шаблона устройства введите Socket. Нажмите Далее: проверка, Создать.

В появившемся диалоге выберите Импорт модели и выберите файл Socket.json, прилагающийся к данной статье.

Видим следующую картину:

Что только что произошло? Фактически, мы объявили для IoT Central "язык" ("шаблон"), на котором говорит наша розетка при обмене данными с облаком, а именно, если развернем параметры каждой возможности (в оригинале — Capability), увидим следующее:

Почему в телеметрии 0/1, а в команде true/false? Это связано с особенностями визуализации в IoT Central, короче говоря, телеметрию в виде 0/1 на картинках можно отобразить нагляднее, чем true/false.

Откуда взялся файл Socket.json? Автор подготовил его заранее, введя описание всех возможностей розетки в самом IoT Central, затем просто сохранил шаблон в файл, используя встроенную функцию экспорта.

Теперь по поводу визуализации. Нашему устройству неплохо бы сделать красивый дашборд, с которого мы будем посылать на него команды включения/выключения и видеть его состояния. Для этого нажмем в списке возможностей устройства пункт Представления и выберем плитку Визуализация устройства.


В разделе Телеметрия выберите Socket1State, нажмите + Телеметрия и выберите Socket2State, затем нажмите Добавить плитку. На появившейся плитке нажмите иконку и выберите Диаграмма состояний из меню. Нажмите Сохранить.

Теперь нам нужно "опубликовать" наш шаблон, т.е. перевести его из черновика в состояние, когда им можно будет пользоваться. Для этого нажмите соответствующую кнопку (Опубликовать). Подтвердите публикацию, нажав в появившемся окне кнопку Опубликовать.

Пока что мы только опубликовали шаблон устройства, теперь заведем запись для нашего конкретного устройства. Для этого переходим в главном меню в раздел Устройства и нажимаем кнопку + Создать. В появившемся окне изменяем только шаблон устройства на Socket. Нажимаем кнопку Создать и кликаем по имени появившегося устройства. Нажмем кнопку Подключить в верхней части окна и в появившемся окне видим всю необходимую информацию, которую нам нужно будет использовать в прошивке устройства, чтобы оно могло "разговаривать" с IoT Central. В поле Тип проверки подлинности выберем Подписанный URL-адрес (SAS) (так проще). Итого нам понадобятся:

  • Область идентификатора — это идентификатор нашего приложения IoT Central;
  • Идентификатор устройства — не требует пояснений;
  • Первичный ключ — считаем, что это "пароль" этого конкретного устройства.

С этими данными устройство должно обратиться к сервису регистрации устройств (Device Provisioning Service, DPS) для получения адреса IoT Hub, еще одного сервиса Azure. Зачем еще IoT Hub? Дело в том, что IoT Central работает "поверх" IoT Hub, являясь как бы "оберткой" для него. Вся последующая коммуникация будет происходить именно с этим IoT Hub.

Проблема в том, что простые в использовании библиотеки Arduino не включают готового клиента DPS. Ну раз так, то возьмем систему с Windows 10, и получим этот адрес IoT Hub вручную. Утилита dps-keygen умеет это делать, правда для ее запуска понадобится node.js.

Раз так, установим последнюю версию node.js с официального сайта с параметрами по умолчанию, затем запустим стандартную командную строку Windows и выполним команды (естественно, подставив нужные данные из нашего приложения IoT Central):

Порядок аргументов в последней строке не имеет значения.

Нас предупредят, что эта возможность "deprecated" и не "best practices", но нам очень надо, и не "best", а "fast", иначе не уложимся за 60 минут, которые обещал автор, поэтому продолжаем. На выходе будет строка подключения, которую мы позже укажем в прошивке розетки:


Отлично! Мы готовы к сборке стенда.

15 минут: достаем компоненты из ящика и собираем стенд

Сгребаем в охапку все провода, компоненты, и собираем их, как показано на схеме ниже. Можно как припаивать провода, так и соединять через разъемы — дело вкуса. В любом случае особое внимание уделяем высоковольтной части. Автор сделал разъемные соединения, где это было возможно, остальное — припаял.


Результат немного угрожающий, но для стенда вполне работоспособный:


Такой вид в общем-то вполне нормален для всяких самоделок, но если под рукой (совершенно случайно!) есть 3D-принтер, можно сделать что-то более презентабельное:


Как и обещал, две кнопки, две розетки.
Между прочим, если задумаете поменять пины на Dev Board, рекомендую эту картинку для понимания, что на каких пинах есть:


Также из-за ошибки трассировки на плате автора был не подключен пинов GND около кнопки EN (RST), так что такие моменты тоже неплохо бы проверить (на вашей плате).

Ну и для справки, схема соединений сигнальных проводов в виде таблицы (для удобства сборки):

Контакт Контакт
ESP32 GPIO16 Кнопка 1
ESP32 GPIO17 Кнопка 2
ESP32 GPIO5 Реле 1
ESP32 GPIO18 Реле 2

15 минут: подготовка инструментов и сборка прошивки

Будем собирать прошивку на Windows 10 (любой сборки, но авторы категорически рекомендуют LTSC).

Версия библиотеки может отличаться. Замените 1.0.5 на ту, которая применяется в вашем случае.
Если хотите больше двух розеток — без проблем! Внесите изменения в схему и добавьте номера пинов кнопки и сокета в массивы BUTTON_PIN и SWITCH_PIN.

5 минут: наслаждаемся собранным устройством

Теперь вернемся в IoT Central, чтобы потестировать наше устройство.


  1. На закладке Команды можно включать и отключать каждую из двух розеток отдельно:




Вместо заключения

Это еще не все, и мы планируем продолжить эксперименты в подобном формате, а именно:

  • Сделать поддержку DPS в прошивке;
  • Добавить поддержку IoT Plug and Play, тогда на стороне IoT Central не нужно будет регистрировать устройство, и оно все сделает само;
  • Сделать голосовое управление розеткой ("Эй Кварта Технологии! Включи розетку 1!").

О нас

Компания Кварта Технологии была основана в 1997 году и сегодня является лидирующим поставщиком программного обеспечения и облачных сервисов для рынка встраиваемых систем и IoT в России, Украине, Грузии и странах СНГ.

Мы предоставляем услуги по лицензированию, разработке и обучению в области встраиваемых решений, помогая производителям из разных стран создавать передовые интеллектуальные системы и устройства в кратчайшие сроки.

С 2004 года компания является авторизованным дистрибутором и тренинг-партнером Microsoft Windows Embedded (IoT) на территории России и СНГ. Последние несколько лет входит в Топ-5 лучших дистрибуторов Microsoft по Embedded-продуктам в регионе EMEA (Европа, Ближний Восток, Африка) и обладает статусом «Windows Embedded Partner Gold Level».

Предисловие

image

Умная розетка на Arduino, что может быть проще. Основной целью данного проекта было разработать розетки с беспроводным управлением, а также «автоматизировать» вход в Windows. Мотивирующая составляющая – разобраться, что такое RFID–метки и как с ними работать. В итоге было разработано два устройства – деблокиратор, который считывает карточки и собственно умная розетка, которая принимает сигнал «включиться» от деблокиратора. Если я Вас заинтересовал прошу к прочтению.

К слову, деблокиратор в данном проекте умеет как читать RFID-метки, так и писать на них. Область применения умной розетки достаточно большая. С их помощью можно удаленно включать и отключать электрические устройства. Так же данный проект может быть использован как пример для создания более сложных устройств управления электрическими устройствами (об этом в заключении). Сначала, думаю, стоит показать проект в работе, а потом рассказать как все работает.

Из чего это сделано

Умная розетка

image

Схема подключения:

image

  • Arduino Leonardo
  • АС-DС миниатюрный блок питания на 12В
  • Bluetooth-модуль
  • Обычная розетка на 220В, 2 штуки
  • Вилка 220В с проводом
  • Контактная площадка
  • Двухцветный светодиод для индикации работы
  • Площадка из ДСП для размещения компонентов

Подробнее о компонентах. Все комплектующие я разместил на площадке из ДСП размером 15 на 15 сантиметров.

image

Крепление всех комплектующих к площадке выполнено при помощи шурупов и предварительно просверленных в площадке отверстий. В качестве микроконтроллера я использовал именно Arduino Leonardo, так как эта плата в отличие от Uno, например, может выступать в роли USB-HID устройства. На фото Uno, но это фото, сделанное до появления идеи разблокировать Windows с помощью розетки. Leonardo нам нужен, чтобы сымитировать ввод пароля. Вместо Leonardo для этих целей можно было взять Arduino Due, Micro, Zero или Esplora.

Модуль реле

Что касаемо модуля реле, то он на два канала:

image

Коммутируемые токи до 10А при AC250V или DC30V. Имеется два управляющих пина на каждое реле и пины питания и земли. Важно отметить, что пины в данном модуле инверсные, то есть делая так:

Вы размыкаете реле. Чтобы ток пошел, нужно подать на пин логический ноль.

О проводке. Для низковольтной части схемы я использовал обычные коннекторы из шлейфа DuPont. Для высоковольтной части я взял алюминиевые провода сечением 2 мм. Будьте очень осторожны и внимательны при монтаже высоковольтных проводов!

О блоке питания. Я использовал блок питания для светодиодных лент, выходные параметры которого 12В, 0,4 А — достаточно и не много для Arduino. Зачем он нужен? Нужен для того, чтобы низковольтная часть схемы использовало то же напряжение, которое идет на наши розетки. Плюс от блока питания подается на Vin вход Arduino, минус — на Gnd. На заметку: вполне безопасно подключать USB-кабель одновременно с подключенным блоком питания на Vin.

Bluetooth-модуль

Теперь самое интересное — Bluetooth-модуль. В данном проекте я использовал модуль HC-05, так как он может выступать как в роле мастера, так и в роли слейва.

image

Слейвом у меня является модуль, установленный в умную розетку, мастером — модуль в деблокираторе. Таким образом, деблокиратор всегда является инициатором подключения. Данные модули можно сконфигурировать так, чтобы при включении они соединялись автоматически. Так я и сделал. Конфигурирование данного bluetooth-модуля выполняется путем отправки ему AT-команд. Для того, чтобы модуль мог принимать AT-команды его нужно перевести в AT-режим. Модуль, который попался мне (FC-114) имеет на борту кнопку (см. фото). Если ее зажать при включении модуль войдет в AT-режим. Согласитесь, неудобно. При таком подходе я не смогу динамически подключиться к какому-либо неизвестному до этого модулю. Было бы хорошо, чтобы можно было подать на какой-либо пин модуля логическую единицу и таким образом войти в AT-режим. Так и сделано во многих модулях, но не в FC-114. Такой пин имеет номер 34 в моем модуле и для того, чтобы в будущем, если понадобится подключаться к bluetooth-модулям динамически, я припаял к пину 34 модуля провод, который можно подключить к пину Arduino.

image

Теперь о командах для соединения двух bluettoth-модулей HC-05. В режиме слейв каждый модуль HC-05 работает "из коробки". Нужно лишь узнать его MAC-адрес, который мы будем использовать при конфигурировании мастера. Делать это будем при помощи AT-команд, о которых я упоминал выше. Для начала необходимо подключить пин RX bluetooth-модуля к пину 0 Arduino (тоже RX), пин TX соответственно к пину 1 Arduino. Обратите внимание, что здесь соединение не кроссовер, потому что мы используем UART Arduino. Далее необходимо залить на Arduino пустой скетч, так как опять таки мы используем UART Arduino.

Далее, перед включением питания, как я упоминал выше, необходимо зажать маленькую кнопку на bluetooth-модуле, чтобы войти в AT-режим. После этого, используя стандартную IDE (Tools -> Serial Monitor). Также, открыв Serial Monitor, необходимо установить скорость передачи данных (baud rate) равную 38400 и установить подстановку символов \r\n после каждой команды (Both NL & CR). Проверить, что все подключено верно и работает, можно путем ввода "AT". В ответ мы должны получить "OK". Далее можно написать команду "AT+NAME?". В ответ мы должны получить название bluetooth-модуля. На данный момент мы работает со слейв-устройством, поэтому все, что нам нужно, это узнать его MAC-адрес и убедиться, что оно работает в режиме "Slave", а не "Master". Для этого вводим две команды:

Если мы получили 0 — значит, что устройство работает в режиме "Slave", 1 — "Master". Чтобы изменить это значение, команда отправляется таким образом:

Теперь узнаем MAC-адрес Slave'а, чтобы Master знал, к кому ему нужно подключаться. Вводим команду:

Например, ответ был такой: "ADDR:20:2:110001". Это означает, что MAC-адрес нашего Slave'а 20:2:110001.

image

На этом работа со Slave'ом закончена. Переходим к конфигурированию Master'а. Таким же образом подключаем его к Arduino и заливаем пустой скетч, открываем Serial Monitor, ставим скорость передачи 38400, и подстановку /r/n. Далее вводим команды по порядку.

Итак, подробнее о каждой команде. Команда ORGL полностью сбрасывает устройство, а команда RMAAD удаляет все предыдущие "пары" с другими Slave-устройствами. Команда ROLE, как говорилось выше, имея аргумент 1 означает, что мы хотим, чтобы устройство работало в режиме Master. Команда CMODE с аргументом 1 (по умолчанию равен 0) означает, что наше Master-устройство может подключаться к Slave-устройству с любым адресом (можно задать определенный). Команда INIT запускает библиотеку SPP (Serial Port Profile), нужную для передачи/получения информации. Емкое высказывание зачем она нужна: "В то время как спецификация Bluetooth описывает как работает эта технология, профили определяет то, как с этой технологией работать". Вы можете получить ошибку 17 на данном шаге. Это означает, что библиотека уже запущена, просто продолжайте. Команда INQ означает, что наше Master-устройство начинает поиск Slave-устройств. Вывод данной команды — это список MAC-адресов найденных устройств. Например:

Сигнал и тип можно проигнорировать. Находим MAC-адрес нашего Slave'а и следующей командой LINK соединяем Master-устройство со Slave'ом. Обратите внимание, что здесь двоеточия в MAC-адресе заменяются на запятые. После этого Ваши bluetooth-устройства должны начать моргать два раза в

2 секунды. Это означает, что они соединены. До этого они моргали достаточно часто (два раза в секунду) — это значит, что они в поиске "пары".

Полный список AT-команд:

image

Деблокиратор

image

Схема подключения:

image

  • Arduino Uno
  • Bluetooth-модуль
  • RFID — сенсор
  • LCD — модуль
  • Тумблер для переключения режима
  • Пьезоэлемент

Подробнее о компонентах.

LCD — модуль

В рамках данного проекта был использован LCD-модуль 1620. Данный дисплей способен отобразить 2 строки по 16 символов каждая. Модуль подключается к микроконтроллеру Arduino через интерфейс I2C. I2C – последовательная шина данных для связи интегральных схем, использующая две двунаправленные линии связи (SDA и SCL). Данные передаются по двум проводам — проводу данных и проводу тактов. Есть ведущий (master) и ведомый (slave), такты генерирует master, ведомый лишь принимает байты. Всего на одной двухпроводной шине может быть до 127 устройств. I2C использует две двунаправленные линии, подтянутые к напряжению питания и управляемые через открытый коллектор или открытый сток – последовательная линия данных (SDA, англ. Serial Dаta) и последовательная линия тактирования (SCL, англ. Serial Clock). В скетче для работы с данным модулем используется библиотека LiquidCrystal_I2С. С ее помощью выводить данные на дисплей предельно просто. Данный пример кода выводит две символьные строки на две строки дисплея.

RFID — модуль

image

С этим модулем и с технологией RFID в целом было особенно интересно разобраться. В рамках данного проекта был использован RFID-модуль RC-522, который работает с картами стандарта HF, в частности MIFARE с частотой 13,56 МГц. Данный модуль подключается к микроконтроллеру Arduino через интерфейс SPI. SPI – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, предназначенный для обеспечения простого и недорогого высокоскоростного сопряжения микроконтроллеров и периферии. В SPI используются четыре цифровых сигнала:

  • MOSI – Служит для передачи данных от ведущего устройства ведомому;
  • MISO – Служит для передачи данных от ведомого устройства ведущему;
  • SCK – Служит для передачи тактового сигнала для ведомых устройств;
  • NSS – выбор микросхемы, выбор ведомого

RFID-модуль выступает в качестве ведомого, а микроконтроллер – в качестве ведущего.

Структура памяти RFID-карт MIFARE Classic

Память чипов MIFARE Classic имеет четкую структуру (в отличие от MIFARE DESFIre, имеющего более сложную, файловую организацию памяти). Память MIFARE 1K и MIFARE 4K разделена на сектора, 16 секторов у MIFARE 1K и 40 секторов у MIfare 4K. Каждый сектор MIFARE 1K и первые 32 сектора MIFARE 4K состоят из трех блоков данных и одного блока для хранения ключей (Sector Trailer). Последние 8 секторов MIFARE 4K состоят из 15 блоков данных и одного (16-го) блока хранения ключей. Блоки данных доступны для чтения/записи при условии успешной авторизации по ключу.

О "служебном" блоке. Блок Sector Trailer хранит секретные значения ключей (А и В) для доступа к соответствующему сектору, а также условие доступа (определяемое значением битов доступа). Блок Sector Trailer всегда последний (четвертый) блок в секторе. Каждый сектор MIFARE Classic может иметь свои собственные ключи доступа и условия записи/чтения данных.

О блоках данных. Каждый блок данных состоит из 16 байт, доступных для записи/чтения (кроме блока 0 сектора 0, где хранится не стираемая информация завода-изготовителя). Запись/чтение данных производится по ключу и битам доступа. Блоки данных могут быть сконфигурированы как блоки для обычной записи/чтения, или как блоки хранения условных единиц (функция электронного кошелька). В обычные блоки данных можно записывать любую информацию (цифры, символы и т.п.). Если блок данных сконфигурирован как блок для хранения условных единиц, то работа с таким блоком происходит по командам increment/decrement. То есть числовое значение, хранящееся в таком блоке, можно только увеличивать и уменьшать.

О правилах доступа. Ко всем секторам карты MIFARE Classic доступ осуществляется по единым правилам. Доступ к тому или иному сектору производится с помощью ключей (Ключ А и Ключ В). С помощью Access Condition (условие доступа в Sector Trailer) задаются условия записи и чтения данных из каждого сектора с использованием одного ключа (А или В) или обоих ключей А и В одновременно. Например, при пользовании клиентами карт MIFARE можно реализовать чтение (только чтение) данных из блока по ключу А, в то время как системный администратор может читать и писать данные к память MIFARE, используя ключ В. В четвертом блоке каждого сектора (Sector Trailer) для обеспечения такого разграничения доступа используются три бита (access bits) C1, C2 и С3. С помощью этих битов можно задать восемь различных режимов доступа к сектору MIFARE. Бит C1 считается младшим значащим битом (LSB).

О том, как я использовал память RFID-меток. В рамках проекта используется два режима: основной – чтение RFID – карты и включение розетки, дополнительный – программирование RFID – карты. Для авторизации RFID – карты деблокиратором на нее записывается секретный ключ длиной в 128 байт. 128 байт = 8 блоков по 16 байт. 3 блока пишутся в сектор 1, 3 блока в сектор 2 и, наконец, 2 оставшихся блока в сектор 3. Для чтения необходима аутентификация по ключу А, для записи – по ключу B, которых находятся в trailer блоке. Длина ключа в 128 байт была выбрана без каких-либо принципов, можно было использоваться хоть всю память карты. Ключ — случайный набор символов, который находится в коде прошивки и деблокиратора, и умной розетки. Такое решение сверх-безопасностью явно не обладает, но в рамках проекта задачи обеспечить защищенную систему не стояло. Об этом также в заключении.

Подключение тумблера

image

Как мне кажется, имеет смысл также отметить подключение тумблера к Arduino. Тумблер в деблокираторе используется для переключения режима работы. В первом режиме устройство считывает RFID-карты и если в нужных блоках памяти карты записан секретный ключ, о котором говорилось выше, посылает по bluetooth сигнал "Включить розетки и разблокировать Windows" на умную розетку. Во втором режиме, деблокиратор записывает на RFID-карту секретный ключ. Перед записью он карту считывает: если на ней уже записан правильный секретный ключ, он очищает нужные блоки памяти путем записи нулей. Согласитесь, странно снабжать деблокиратор и функцией чтения, и функцией записи RFID-карт. О том почему так — в заключении.

При подключении тумблеров, кнопок, переключателей имеет место "дребезг контактов" — явление, при котором вместо четкого и стабильного переключения мы получаем случайные многократные неконтролируемые замыкания и размыкания контактов. Другими словами, контакты при соприкосновении начинают колебаться (т.е. «дребезжать»), порождая множество срабатываний вместо одного. Соответственно, микроконтроллер «поймает» все эти нажатия, потому что дребезг не отличим от настоящего нажатия на кнопку.

Для подавления "дребезга" я использовал подтягивающий резистор емкостью 20 кОм, встроенный в Arduino. Он осуществляет подтягивание к логической единице. Так как у тумблера оба положения — ON, подтягивание к логической единице — то, что нужно. Используется он таким образом:

Заключение

Итак, у меня получилось два устройства, одно из них принимает сигналы по bluetooth и активирует розетки, а также разблокирует Windows на присоединенном компьютере, а другое — эти сигналы отправляет после успешной валидации по RFID-метке. Однако, как я уже говорил, было странным делать и запись, и чтение в одном устройстве, без какой-либо защиты. Я сделал так лишь потому, что хотел пойти дальше считывания ID RFID-карты и сравнения его с захардкоженым значением, а попробовать поработать с ее памятью, для чего она собственно предназначена. Таким образом, теперь я знаю как записать любую информацию на RFID-карту, как ее считать, как сделать карту Read Only и т.п. Получилась система для домашнего использования. Так и получается, я использую свой девайс дома, умная розетка подключена к компьютеру, в нее подсоединены колонки и зарядное для телефона. Деблокиратор стоит на входе комнаты. Не скажу, что это девайс, без которого я не могу жить, но идеи реального практического применения у него есть. Одна из них вполне осуществима и будет реализована.

Планируется сделать систему контроля доступа к рабочему месту студента в аудитории с компьютерами. Забегая вперед, скажу, что в качестве студенческого билета в нашем университете используется RFID-карта MIFARE 1K. Предположим, что у нас есть небольшая аудитория на 6 компьютеров, другими словами на 6 рабочих мест.

Сперва мы "клонируем" умную розетку — делаем еще 5 таких устройств, чтобы помимо использования компьютера, студент мог подключить свой ноутбук/паяльник/телефон к розетке. Тут нам и пригодится динамическое соединение Master-устройства bluetooth со Slave-устройством, о котором я говорил, рассказывая про bluetooth-модуль. Больше каким-либо образом модифицировать умную розетку не придется. Единственное, придется поискать решение, чтобы нельзя было перепрограммировать микроконтроллер Arduino, присоединенный к компьютеру через USB-кабель.

Теперь стоит сказать об изменениях в деблокираторе. Его мы лишаем функции записи, оставляя возможность только считывать RFID-карты. Если бы мы использовали самодельные RFID-карты, то понадобилось еще сделать устройство для записи RFID-карт. Так как планируется использовать уже готовые студенческие билеты с готовой записанной информацией, данное устройство в рамках будущего проекта не требуется, но в случае использования своих, "кастомных" карт его создание было бы очень простым с учетом проделанной работы над этим проектом. Также, деблокиратор необходимо будет оснастить Ethernet- или WiFi-модулем, для возможности осуществлять запросы на management-сервер. Какой и зачем, спросите вы? Чтобы сделать систему более гибкой и удобной, перед тем как придти поработать в аудиторию, студенту необходимо "забронировать" себе место с помощью данного веб-сайта. Деблокиратор при проверке RFID-карты студента будет обращаться на данный сервер для проверки бронирования (и еще чего-нибудь, если хочется). Остается подумать, как реализовать перепроверку присутствия студента (ушел и не приложил карту) и удобный способ информирования об окончании "рабочего" времени.

Очередная «умная» розетка своими руками. Часть 1

Да, да, да. Еще одна. Понимаю, всем надоело. Но очень уж хотелось сделать самому, свою собственную «умную» розетку, с лото и курсистками. Встраиваемую (в доме — скрытая проводка). С управлением через WiFi (локально) и Интернет (глобально). С получением текущего статуса (в перспективе — с информацией о потреблении). С подключением нескольких розеток в одном блоке (до четырех). С датчиками температуры, освещенности и присутствия. С видеокамерой, в конце концов!

Первая часть — просто проверяем общую работоспособность схемы. По сути — некий аналог WeMo Switch, только встраиваемый в стандартный подрозетник и потому не привязанный к какому-то определенному дизайну (чтобы вписаться в любой уже существующий интерьер).

Итак, чего хочется? Хочется управлять независимо каждой из четырех розеток (у меня дома в одной из комнат розетки объединены в блоки по два двухрозеточных модуля вплотную друг к другу, в двух стандартных пластиковых подрозетниках соответственно). К одному из таких блоков подключены все агрегаты (освещение, насос фильтра, нагреватель, компрессор) аквариума с красивым парчовым сомиком, вот ими и будем управлять. Сомик вот такой, если что (картинка для привлечения внимания):

image

Итак, что нам надо?
1. Получать команды через WiFi и выдавать соответствующие управляющие сигналы на замыкание контактов. Т.е. нужен модуль контроллера с WiFi. Поскольку у меня есть наша платка на AR9331 (рояль в кустах, да: собственно, изначально и хотелось ее в реальном деле опробовать), она и будет таким контроллером.

image

2. Реле на 16A 220V. Чтобы не заморачиваться — взял готовый модуль от Амперки. Заодно там и светодиод есть для индикации режима работы розетки.

image

3. Питать эти два модуля напряжением 5V. Разобрал компактный блок питания с разъемом USB.

image

4. Подрозетник глубиной 60мм.

image

5. Собственно розетка (пока для экспериментов взял первую попавшуюся в соседнем хозяйственном магазине):

image

6. Светодиод для индикации режима работы розетки (On/Off). Нашел у себя в тумбочке зеленый и красный. Сначала хотел использовать зеленый (цвет больше нравится), но он оказался недостаточно ярким, так что в результате взял красный.

Прикинул схему (примитивная, да):

image

image

Нарезал проводов, запаял:

image

Отрезал куски термоусадочных трубок, заизолировал модули:

image

Запихал все в подрозетник, подсоединил кабель, подключил к розетке. Пока в стенку еще рано пихать, надо на столе отладиться.

image

Чтобы светодиод был виден получше, тонким жалом паяльника проделал небольшое отверстие в розетке.

Испытательный стенд готов.

Софт для первоначальной простой проверки взял из поста ув. Ariman'а.

Ну что же… Как ни удивительно, но все работает. Реле щелкает, светодиод моргает, электричество в розетку подается. Первый шаг сделан. Времени ушло где-то часа полтора в общей сложности. Денег:
1. Контроллер на AR9331 — не знаю даже, как оценивать. Пусть будет 750р — по такой цене мы его продавать собираемся, когда партию сделаем.
2. Модуль реле — 290р.
3. Блок питания — ну, пусть будет 200р (видел в переходе подземном по такой цене, мой-то у меня уже пару лет валялся).
4. Подрозетник — 45р.
5. Розетка — 120р.

Теперь надо довести до ума софт (прежде всего — прошивку). Об этом — в следующей части, если народу будет интересно. А потом буду подключать датчики и еще три модуля реле, чтобы управлять четырьмя розетками, а не одной.

Самый простой вариант Умной розетки, бюджетный вариант, цена вопроса 180 рублей


Во вторых и в основных, поговорим и попробуем сегодня сделать мы вот что. Начнем подробно.
Нано технологии затронули не только производство автомобилей, роботов и космических кораблей, но и не торопясь вошли в каждый дом, в форме бытовых электронных новинок. Не так давно появилось такое понятие как «умный дом» и оно уверенно вошло в наш обиход.

В американских фильмах часто демонстрируется дом, который как будто живет своей самостоятельной жизнью. По легкому движению руки зажигаются светильники. От пронзительного взгляда кино героя распахиваются шторы или двери. После произнесенного кодового слова включается музыка.

Все это и есть «умный дом», то есть интеллектуальная электронная домашняя система управления. И сегодня мы с Вами попробуем смастерить самый несложный прибор данной системы. А именно «умную розетку». Которая будет управляется через дистанционный пульт .

Существуют различные по типу управления «умные розетки» - GSM, WI-FI, Инфракрасные и т.д. Мы остановимся на самом простом варианте «умной розетки» (не будем прыгать через ступеньки, начнем с начала, т.е. самого простого), а именно розетки управляемой через инфракрасный сигнал, передаваемый на расстоянии через пульт управления.

Подвигли меня к сборке данной инфракрасной «умной розетки» две причины. Главная, абсолютная простота изготовления (читаем - доступно всем, или почти всем). Вторая, доступность и дешевизна комплектующих (для изготовления прибора я приобрел лишь инфракрасный дистанционный блок управления за 180 рублей (такая «умная розетка в магазине стоит порядка 2 000 рублей, т.ч. денег сэкономил прилично») на Алиэкспресс, ссылочка кому интересно - 1 канальный релейный модуль дистанционного управления для электронных приборов .

Остальное я нашел в гараже и пыльных уголках квартиры. Кстати на Алиэкспресс я заказал еще и умный паяльник на 60 вт., с ручной регулировкой температуры жала и с электронной индикацией, ссылка на паяльник - Электрический паяльник с регулируемой температурой 60 Вт/80 Вт, а если хвастаться до конца, заказал там еще, так называемую "третью руку", для пайки, приспособление для фиксации печатной платы, частая проблема при пайке не хватает одной руки, для того, что бы все хорошо спаялось, ссылка на "третью руку" - Подставка для паяльника «третья рука», увеличительное стекло, 2 зажима типа «крокодил», вращающие 360 градусов)

Совсем немного, о Вашем здоровье. Напряжение 220 вольт опасно для Вашего здоровья и жизни! Работать нам сегодня придется и с данным напряжением. Будьте осторожны не замеряйте его пальцами рук, а тем более нежной мякотью языка. Выполняйте, пожалуйста, правила техники безопасности при работе с электричеством, другими опасными приборами и оборудованием. Если вы будете серьезно относится к данным правилам, то до глубокой старости будете ходить с широкой улыбкой на лице, ступая по земле, двумя ногами. :-)

Принцип работы инфракрасного дистанционного блока управления заключается в следующем: Мы имеем пульт передатчик инфракрасного излучения, заявленная дальность 8 метров, вполне хватает для городской квартиры. Передатчик подает инфракрасный сигнал на исполняющий блок приемник, в блоке установлен инфракрасный датчик, который принимает и через электронную систему, преобразует сигнал в электрическое напряжение, достаточное для включения исполняющего реле. При включении реле замыкаются рабочие контакты, которые включают необходимый модуль в нашем случае, через замкнутый контакт реле, подается напряжение питания на блок розеток, на блоке розеток появляется напряжение. «Умная розетка» подала напряжение на потребителя, например светильник.

Возможные варианты применения нашего прибора самоделки:
Включение и выключение света, радио точки, перезагрузка маршрутизатора, отопительных приборов, включение и выключение приборов аквариума, включение и выключение полива комнатных растений (можно применять и на даче, но там масштабы уже другие) и многое другое (хорошие мысли всегда приходят вовремя и Вам, наверняка придет в голову интересная идея использования данного прибора).

Любящим смотреть самоделки глазами, а не читать, представляю видео ролик инструкцию, где подробно описан процесс изготовления «умной розетки».

Видео инструкция изготовления розетки с дистанционным включением подачи напряжения на рабочие контакты прибора.

Инструкция по изготовлению «умной розетки» с дистанционным управлением, своими руками.

Инструменты для изготовления управляемой розетки:

1. Дрель или сверлильный станок.
2. Ножницы.
3. Линейка, штангенциркуль.
3. Карандаш или фломастер.
4. Абразивная шкурка.
5. Надфили или маленький напильник
6. Ножовка или лобзик.
7. Сверла.
8. Паяльник можно такой - Электрический паяльник с регулируемой температурой 60 Вт/80 Вт
9. Отвертка.
10. Канцелярский нож.
11. По возможности и желанию - Подставка для паяльника «третья рука», увеличительное стекло, 2 зажима типа «крокодил», вращающение 360 градусов

Расходные материалы для изготовления прибора:

1. Провода монтажные.
2. Припой для пайки электронных модулей заказал здесь - Свинцово-оловянный припой канифольное ядро
3. Релейный инфракрасный модуль с пультом дистанционного управления можно приобрести здесь - 1 канальный релейный модуль дистанционного управления для электронных приборов
4. Блок розеточный, в моем случае, старый компьютерный блок питания на 5 розеток.
5. Блок питания от старой телефонной зарядки на 5 вольт, для запитки нашего инфракрасного релейного модуля, или что-то похожее, что найдется под рукой.
6. Небольшой кусок пластика, для заклейки штатного магазинного отверстия под выключатель.
7. Клей для клейки пластика.
8. Немного термоклея, для фиксации электронных блоков.
9. Выключатель, типа тумблер, или какой будет под рукой.

Процесс изготовления розетки:



















1. Разбираем старую, ненужную телефонную зарядку, использовать будем сам электронный блок 220в. - 5 в.
2. Паяем конструкцию по схеме, подробно изложено в видео ролике.
3. Разбираем розеточный блок, освобождаем место под наши электронные блоки — блок питания 220в. - 5в., инфракрасный релейный блок. В розеточном корпусе делаем 3 отверстия — по выключатель, индикатор подачи напряжения и инфракрасный датчик.
4. Устанавливаем электронные модули в корпус розетки. Собираем розетку.
5. Проверяем наш прибор в работе, показано в видео ролике.

Ремарка.
Инфракрасные модули выпускаться с реле под разное напряжение питания, в нашем случае блок питания с выходным напряжением 5в., следовательно, инфракрасный модуль берем с реле на 5 вольт. Т.е. при выборе, исходите из выходного напряжения вашего источника питания имеющегося в наличии.


Если ваша конструкция не помещается в стандартную розетку, можно изготовить розетку самостоятельно, это не сложно.

Как сделать портативную розетку с аккумулятором

Наличие источника электропитания для использования в экстренных случаях является разумной мерой предосторожности, особенно если вы живете в районе, который может быть подвержен стихийным бедствиям. Даже способность управлять несколькими небольшими электрическими приборами может существенно повлиять на ваш комфорт и способность общаться. С некоторой базовой аппаратурой вы можете собрать систему для преобразования энергии постоянного тока (аккумулятора) в мощность переменного тока (розетки) довольно просто.


Шаг 1

Удалите 1/2 дюйма изоляции с одного конца черного и красного кабелей с помощью зачистки проводов.

Шаг 2

Наденьте кольцевую клемму на оголенные концы каждого провода и закрепите на месте, надвинув обжимной инструмент на клемму и опрессовав их на месте.

Шаг 3

Удалите 1/2 дюйма изоляции с других концов кабелей.

Шаг 4

Поместите клемму аккумулятора поверх оголенных концов провода и закрепите их на месте. Разные типы клемм аккумулятора будут использовать разные методы крепления - некоторые требуют, чтобы вы затянули установочный винт, другие зажимают гайкой и болтом. Используйте инструменты, соответствующие типу клеммы аккумулятора.

Шаг 5

Шаг 6

Наденьте клемму аккумулятора на красном кабеле на положительный полюс аккумулятора и затяните ее небольшим разводным ключом. Наденьте клемму аккумулятора на черном кабеле на отрицательный полюс аккумулятора и затяните.

Читайте также: