Aviatreid.ru

Прокат металла "Авиатрейд"
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как сделать умную розетку, включающуюся от сигнала по wi-fi

Как сделать умную розетку, включающуюся от сигнала по wi-fi

Для программирования микроконтроллера ESP8266 вам понадобятся:

  • адаптер FTDI Usb 3,3 В
  • повода-коннекторы

Шаг 2: Предупреждение!

Высокое напряжение опасно для здоровья и жизни!! Пожалуйста, будьте осторожны. Если вы не знакомы с техникой безопасности при работе с высоким напряжением, обязательно ознакомьтесь с ней. Я вас предупредил.

Шаг 3: Делаем блок питания

Я решил просто припаять провода к основному входу и использовать шнур USB для выхода. Все компоненты, которые будут находиться под высоким напряжением, я поместил в корпус адаптера. Я аккуратно вскрыл его канцелярским ножом.

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

Шаг 4: Проводка для высокого напряжения

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

Шаг 5: Подключаем микропроцессор и реле

  • Ground
  • RX
  • TX
  • GPIO0 (замыкается на землю при включении питания, чтобы перевести контроллер в режим программирования)
  • Reset (перезапуск, опционально)

На фото видно, что я спаял всю проводку вокруг модуля реле, вместо того, чтобы установить реле на макетную плату. Линейный регулятор AMS1117 и микропроцессор ESP8266 я установил вокруг модуля реле. Провода достаточно жесткие, чтобы удержать модуль вай-фай на месте. Напряжение 3В от линейного регулятора выводится на средний штырь И на теплоотвод, так удобнее фиксировать модуль вай-фая на месте.

Шаг 6: Программирование

Что касается программного обеспечения, выбор у вас обширен. Простейшая программа, что я нашел – Blynk. Скачайте бесплатное приложение для Android или iPhone, зарегистрируйтесь и получите аутентификатор.

В программе Arduino IDE откройте Менеджер библиотек (Скетч> Включить библиотеку> Управление библиотеками) чтобы установить библиотеку Blynk. Файл> Образцы> Blynk> Платы и шилды> ESP8266_StandAlone

Пропишите в скетче ваш аутентификатор, SSID (имя) вашего домашнего вай-фая и пароль.
Заземлите GPIO0 (можно временно припаять провод на землю, или с помощью переключателя), и включите питание, чтобы перевести контроллер в режим программирования. Как только загрузка будет завершена, можно отсоединить USB-шнур.
В приложение Blynk настройте кнопку и на этом ваша работа над умной розеткой завершена!

Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.

Полезные устройства для дома: WiFi-розетка своими руками

Привет Geektimes! В статье хочу представить инструкцию по созданию WiFi-розетки.

Началось всё с того, что осенью наткнулся на WiFi-розетки в магазинах, подумал, что вроде ничего сложного, потом ознакомился с ESP8266 и понял, что готов сделать розетку сам.

Розетка будет состоять из:

  • Корпус;
  • ESP8266 12E с платой развязки питания;
  • Питание для ESP8266 от 220 Вольт;
  • Плата контроля 220 Вольт;
  • Контрольная панель (кнопка, led, порт RJ45 для прошивки).

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

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

Все платы имеют максимальный размер 5 x 3.5 см, поэтому коробка будет 5 х 5 х 3.5 см.

  • кусок оргстекла, наименьшего размера 0.5 x 0.25 метра, вполне хватит на десяток таких поделок
  • петли, наименьшие из найденных 2.5 x 2.5 см
  • шурупы
Читайте так же:
Розетки для электроплит так

Оргстекло вырезал паяльником, разогретым до 300 градусов: линию разреза расчерчивал лезвием ножа, и затем проводил паяльником по линии с нажимом на паяльник, потом проводил с другой стороны, и тогда можно ломать по линии разлома.

Отверстия для шурупов к петлям высверливал мини дрелью на двигателе с цангой и сверлом 1мм.

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

Представленные платы совместимы для ESP8266 12F и 12E:

Сама ESP8266 положилась на эту плату:

А развязка питания, и прошивки происходит здесь:

Понадобится 5 штук 10k Ом и 1 штука 470 Ом 0.125 Вт SMD резисторов и 0.1 mkF кондесатор SMD.
На 6-ти контактах по два отверстия, одно для входящего провода от платы Esp8266, а другое для исходящего провода в плату для гнезда RJ45 (используемый для прошивки).

PS: Соединение «locking on programmator wires» замыкается в режиме прошивки, например сделать перемычку в кабеле с коннектором RJ45.

Плата под гнездо RJ45:

Всё получится компактно.

Для питания легче всего использовать китайскую USB зарядку для телефона похожую на зарядку для IPhone.

Замене подвергнется только выделенный красным стабилитрон (диод Зенера). В USB зарядке на 5 Вольт, стоит стабилитрон на 5 Вольт. Для питания ESP8266 нужно 3.3 Вольта, и стабилитрон на 3.3 Вольта мощностью более 1 Ватта с запасом судя по потреблению (3.3 Вольт, <300 mA).

Далее выпаиваем USB коннектор и припаиваемся к + и -.

  • 1 штук 500k Ом и 1 штука 470 Ом, 1 штука 200 Ом 0.125 Вт SMD резисторов;
  • 1 Симистор
  • 1 Опто-пара, MOC3052
  • две пары клемм для зажима 220 Вольтовых проводов

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

Скрипты находятся тут
Я использовал:

  • NodeMcu — нужная для работы lua скриптов
    Esplorer — для загрузки lua скриптов, html, js, css, и других файлов на ESP8266

Для оптимизации памяти, чтобы память ESP8266, которой маловато, не тратилась на компиляцию, после загрузки файлов на ESP8266, необходимо скомпилировать .lua файлы (кроме init.lua) в .lc прямо на ESP8266 через Esplorer.

Такая получилась у меня

Кнопка переключает ESP8266 в режим создания своей точки доступа в положении «Выкл» (для указания Точки доступа пользователя и пароля к точке доступа пользователя), в «Вкл» — рабочее состояние.

Светодиод — горит, когда кнопка «Выкл» (ESP8266 находится в режиме создания своей точки доступа);

  • мигает, когда кнопка «Вкл», и ESP8266 в процессе подключения;
  • не горит, когда кнопка «Вкл», и ESP8266 подключено к роутеру.
    гнездо RJ45 — для прошивки, или питания через USB Uart переходник.

Управление розеткой происходит из андройд телефона. WiFi-Switcher Git-Hub

Когда розетка и телефон подключены к роутеру, андройд-телефон шлёт UDP-широковещательные пакеты роутеру на порт 33248, открытый на розетке. Она отвечает на него, передаёт свой Id и Type.

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

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

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

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

Читайте так же:
Розетка телефоны нокия 515

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

Первое, что приходит в голову — для розетки берем микроконтроллер с 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 понадобится прошивка. Вариантов для ее разработки немного:

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

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

Заходим по ссылке. Понадобится учетная запись Microsoft, с которой следует залогиниться. Подписка Azure для пробной 7-дневной версии — не нужна, но лучше все-таки ее оформить, чтобы взять один из стандартных ценовых планов, где время использования не ограничено и есть два бесплатных устройства.

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

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

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

Нажмите кнопку Создать

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

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

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

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

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

  • каждая из двух розеток передает сообщение телеметрии, в котором закодировано состояние: 0 — выключено, 1 — включено;
  • каждая из двух розеток принимает команду с параметром типа Boolean (true — включено, false — выключено).
Читайте так же:
Розетка трехфазная технические характеристики

Почему в телеметрии 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 минут: достаем компоненты из ящика и собираем стенд

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

Читайте так же:
Dkc розетки силовые с заземлением

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

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

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

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

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

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

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

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

    .
  1. Загрузим и установим драйверы моста UART-USB, распаянного на плате. В случае автора это был CP2102 (на нем самом написано).
  2. Запустим Arduino IDE и перейдем в меню Файл — Настройки. В поле Дополнительные ссылки для Менеджера плат вводим https://dl.espressif.com/dl/package_esp32_index.json. Это позволит установить поддержку ESP32 прямо из Arduino с сайта производителя чипа. Нажмем OK и закроем диалог.
  3. Перейдем в меню Инструменты — Плата — Менеджер плат, в поиске введем esp32. В появившемся пункте нажимаем Установить.
  4. Из прилагающегося архива распаковываем каталог GetStarted и открываем скетч GetStarted.ino.
  5. Находим следующие строки и внутри кавычек соответственно прописываем SSID Wi-Fi сети и пароль:
  6. Находим строку и внутри кавычек вставляем строку соединения, которую мы получили ранее при помощи утилиты dps-keygen.
  7. Находим строку и внутри кавычек вставляем идентификатор нашего устройства:
  8. В настройках платы (Инструменты — Плата) устанавливаем параметры, как на рисунке ниже.
  9. Поправим баг библиотеки SNTP, приводящий к перезагрузке ESP32 при пропадании соединения, для чего откроем файл C:Usersимя_пользователяAppDataLocalArduino15packagesesp32hardwareesp321.0.5librariesAzureIoTsrcaz_iotc-utilitypallwipsntp_lwip.c и в самое начало функции SNTP_Init() вставим код:

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

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

  1. На дашборде устройства есть закладка Необработанные данные, где можно увидеть сообщения телеметрии, отправляемые розеткой. Здесь же можно увидеть, что поля deviceId и messaageId не соответствуют модели. Так и есть — в шаблоне устройства их нигде нет, они добавлены только для отладочной телеметрии.

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

  1. Также можно включать и отключать каждую розетку кнопкой на ней. В любом случае, все изменения отражаются на в телеметрии вкладке Состояние при любом переключении. Причем телеметрия отсылается не реже, чем раз в час, так что можно, например, в IoT Central создать правило, отслеживающее наличие подключения розетки: если за последний час не было ни одного сообщения, розетка потеряла связь. При срабатывании правила можно предпринять ряд действий, например, отправить e-mail и т.п.

Пример создания правила (высылает e-mail с предупреждением на заданный адрес, если не было ни одного сообщения телеметрии за последние 60 минут, другими словами, розетка «не в сети»):

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

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

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

О нас

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

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

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

Arduino MKR1000 WIFI, Программируемый контроллер на базе SAMD21, Wi-Fi, разработка IoT

Фото 2/7 Arduino MKR1000 WIFI, Программируемый контроллер на базе SAMD21, Wi-Fi, разработка IoT Фото 3/7 Arduino MKR1000 WIFI, Программируемый контроллер на базе SAMD21, Wi-Fi, разработка IoT Фото 4/7 Arduino MKR1000 WIFI, Программируемый контроллер на базе SAMD21, Wi-Fi, разработка IoT Фото 5/7 Arduino MKR1000 WIFI, Программируемый контроллер на базе SAMD21, Wi-Fi, разработка IoT Фото 6/7 Arduino MKR1000 WIFI, Программируемый контроллер на базе SAMD21, Wi-Fi, разработка IoT Фото 7/7 Arduino MKR1000 WIFI, Программируемый контроллер на базе SAMD21, Wi-Fi, разработка IoT

Платформа Arduino MKR1000 была разработана, чтобы предложить практическое и экономически эффективное решение для «мэйкеров», желающих добавить Wi-Fi связь к своим проектам с минимальным опытом работы в сети. Плата построена на основе SoC ATSAMW25, которая является часть семейства беспроводных устройств Atmel SmartConnect, специально разработанных для IoT проектов.

ATSAMW25 сотоит из трех основных блоков:
— SAMD21 Cortex-M0+ 32bit low power ARM MCU;
— WINC1500 low power 2.4GHz IEEE® 802.11 b/g/n Wi-Fi;
— ECC508 Crypto Authentication.

ATSAMW25 содержит также в себе PCB антенну.

Конструкция включает в себя схему заряда Li-Po батарей, что позволяет плате работать от аккумулятора или внешнего источника питания с номинальным напряжением 5 В. Зарядка аккумулятора происходит при поключение внешнего источника питания. Переключение с одного источника на другой выполняется автоматически. Хорошая вычислительная мощность 32-бит аналогичная платформе Arduino Zero, богатый набор I/O интерфейсов, Wi-Fi cвязь с низким энергопотреблением и простота использования ПО Arduino IDE для разработки кода и программирования. Все эти функции делают эту платформу предпочтительным выбором для новых IoT проектов с батарейным питанием в компактном форм-факторе. Порт USB можно использовать для подачи питания (5 В) на плату. При питании от USB порта, не обязательно подключать батареи, плата может запускаться с батареями и без батарей.

Спецификация:
— Микроконтроллер: SAMD21 Cortex-M0+ 32bit low power ARM MCU;
— Питание платы (USB/VIN): 5 В;
— Поддержка батарей: Li-Po single cell, 3.7V, 700 мАч минимум;
— Рабочее напряжение схемы: 3.3 В;
— Цифровые I/O контакты: 8;
— ШИМ контакты: 12 (12 (0, 1, 2, 3, 4, 5, 6, 7, 8, 10, A3 — или 18 -, A4 -или 19);
— UART: 1;
— SPI: 1;
— I2C: 1;
— Аналоговые входы: 7 (АЦП 8/10/12 бит);
— Аналоговые выходы: 1 (ЦАП 10 бит);
— Внешние прерывания: 8 (0, 1, 4, 5, 6, 7, 8, A1 -или 16-, A2 — или 17);
— Максимальный ток с пина или на пин: 7 мА;
— Flash память: 256 КБ;
— SRAM: 32КБ;
— EEPROM: нет;
— Тактовая частота: 32.768 кГц (RTC), 48 МГц;
— LED_BUILTIN: 6;
— Full-Speed USB Device и встроенный Host;
— Wi-Fi модуль: Atmel ATSAMW25;
— Частота: 2.4 ГГц;
— Стандарт: IEEE 802.11 b/g/n
— Длина: 61.5 мм;
— Ширина: 25 мм;
— Вес 32 гр.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector