Урок 12. aREST. Милашка розетка
-
Цель урока
Привет! Сегодня мы научимся управлять розекткой через Интернет с помощью сервиса aREST (рис. 1).

Рисунок 1
Необходимо реализовать возможность взаимодействия с M5 через Интернет при условии того, что мы не имеем статического IP-адреса, выделенного оператором. Формирование и отправка команд должна производиться через Веб-панель управления.
При включении устройства пользователю будет предложено вставить карту памяти. На карте памяти будут находится следующие файлы:
- файл с известными Wi-Fi-сетями (/system/wifi.ini);
- звуковой файл (/cutesocket/nya.mp3);
- изображения эмоций (/cutesocket/0..2.jpg).
Краткая справка
Иногда возникает необходимость во взаимодействии с вещами через Интернет. Тут многие сталкиваются с проблемой доступа извне. Обычно операторы связи раздают своим клиентам динамические IP-адреса, которые размещены за NAT - поэтому не так просто включить в доме свет, открыть ворота и т. п. Приходится доплачивать оператору за статический IP; или арендовать VPN-сервер, что очень накладно.
Одним из решений выступает облачный сервис https://aREST.io. Настоятельно рекомендую посетить раздел Get Started https://arest.io/get-started, чтобы узнать более подробно о работе сервиса.

Рисунок 1.1
Перечень компонентов для урока
- M5STACK (2 шт.);
- кабель USB-C из стандартного набора;
- карта памяти MicroSD на 4 ГБайт;
- цветные провода из стандартного набора (тип розетка-вилка);
- паяльник и припой;
- термоусадка;
- термоклей;
- доска. Размеры 30 x 7 x 1 см;
- розетка (гнездо);
- вилка (штекер);
- Двойной релейный модуль;
- винты;
- гайки (с места крепления материнской платы от корпуса ПК);
- дрель;
- сверло. Диаметр: 2.5 мм;
- провод медный. Диаметр 1 мм, длинна: 20 см.
Начнём!
Шаг 1. Зарегистрируемся на сайте arest.io
Регистрация абсолютно бесплатна и не займёт много времени (рис. 2). Перейдите по ссылки на панель управления https://dashboard.arest.io

Рисунок 2. Нажмите на кнопку Sign Up
Придумайте название панели управления, например m5stack_cuteSocket (рис. 2.1).

Рисунок 2.1. Введите имя и нажмите Add a new dashboard
Теперь войдите в только что созданную панель управления (рис. 2.2).

Рисунок 2.2.
Нажмите на кнопку Show Edit Mode (рис. 2.3).

Рисунок 2.3
Хорошо, сейчас создадим новый элемент управления (рис. 2.4). Придумайте и напишите имя элемента управления в первое поле, во второе - уникальный номер Вашего устройства, в третье - тип данных, в четвёртый номер физического контакта на устройстве, в пятый - тип элемента управления. Затем нажмите на кнопку Create new element.

Рисунок 2.4
На этом регистрация завершена. Панель управления готова к работе (рис. 2.5).

Рисунок 2.5
Шаг 2. Сделаем макет
Возьмите розетку (в зависимости от региона тип может отличаться) и разберите (рис. 3 - 3.1).

Рисунок 3.

Рисунок 3.1
Возьмите провод, диаметр которого 1 мм и сделайте два одинаковых отрезка по 10 см. Далее с помощью паяльника залудите концы и зафиксируйте с помощью винтов и отвертки на контактах розетки (рис. 3.2 - 3.3).

Рисунок 3.2

Рисунок 3.3
Возьмите термоклей и зафиксируйте основание розетки по центру доски (рис. 3.4). Установите на место крышку розетки.

Рисунок 3.4
Возьмите модуль реле и зафиксируйте провода в контактах с помощью отвертки (рис. 3.5).

Рисунок 3.5
Сделайте четыре отверстия диаметром 2.5 мм и установите в них гайки (с места крепления материнской платы от корпуса ПК) (рис. 3.6).

Рисунок 3.6
Установите модуль на гайки и зафиксируйте с помощью винтов (рис. 3.7).

Рисунок 3.7
Возьмите защитную сетку от куллера ПК и откусите с помощью кусачиков крепёжные петли. Далее с помощью термоклея приклейте к доске (рис. 3.8).

Рисунок 3.8
Установите M5 на сетку и подключите к модулю реле с помощью цветных проводов (рис. 3.9).

Рисунок 3.9
Подключите вилку к модулю реле и зафиксируйте провод с помощью термоклемя (3.10).

Рисунок 3.10
Ура! На этом монтаж завершён.
Шаг 3. Напишем скетч
Подключим библиотеки:
... include <WiFi.h> #include <PubSubClient.h> #include <aREST.h>Инициализируем экземпляры классов:
WiFiClient espClient; PubSubClient client(espClient); aREST rest = aREST(client);Придуаем уникальный номер устройства для сервиса aREST:
char* device_id = "1c2b3a"; // for exampleНастроим порты ввода/вывода:
pinMode(RELAY1, OUTPUT); pinMode(RELAY2, OUTPUT); digitalWrite(RELAY1, HIGH); digitalWrite(RELAY2, LOW);Добавим важные вещи:
client.setCallback(callback); rest.set_id(device_id); rest.set_name("esp32");Не забудьте про функции обратного вызова. Эта функция будет вызваться при каждом запросе от облака к устройству:
void callback(char* topic, byte* payload, unsigned int length) { rest.handle_callback(client, topic, payload, length); ... }Запустим клиент:
void loop() { rest.handle(client); }На этом урок завершен!
Шаг 5. Запуск!
В разделе "Download" прилагается видео с демонстрацией работы. На этом урок завершён.
Downloads
- Скетч (GitHub): https://github.com/dsiberia9s/aREST.-Cute-socket
- Библиотеки (Yandex Disk): https://yadi.sk/d/hK1wKp3B3UsBCt
- Видео с демонстрацией работы (YouTube): https://youtu.be/OLJlK17hkDo
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login