Урок 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