🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Урок 12. aREST. Милашка розетка

    Русскоязычный форум
    1
    1
    4.2k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • DimiD
      Dimi
      last edited by

      Цель урока

      Привет! Сегодня мы научимся управлять розекткой через Интернет с помощью сервиса 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
      1 Reply Last reply Reply Quote 0
      • First post
        Last post