Когда мы в последний раз уходили от нашего героя…

Резюме

В Части I мы:

  • Настройте драйверы и набор инструментов для работы с ESP32-DevKitC
  • Установлена ​​ОС Mongoose и протестировано подключение ESP32-DevKitC через IDE веб-клиента.
  • Настроил AWS IoT и добавил ESP32 как «вещь» в свой реестр.

Фух! Что теперь?

Цели

  • Создайте простую «Интернет-кнопку», которая рассылает по электронной почте цитату из Spacecat.
  • Настройте правило в AWS IoT для запуска другого процесса

Концепции

Темы MQTT для взаимодействия с тенью: Ссылка

MQTT

Легкий протокол обмена сообщениями.

  • Pub / Sub: организации публикуют новую информацию в теме, и подписчики на эту тему получают обновления от этих публикаций.
  • Темы / подписки. Темы - это «каналы», по которым объекты либо отправляют информацию, либо получают информацию по подписке на эту тему. Тема в AWS IoT может выглядеть так:
$aws/things/thingName/shadow/update
  • QoS: «Качество обслуживания» - это уровень «квитирования», который происходит для обеспечения корректной передачи сообщения. QoS = 0 не означает никакой проверки, QoS = 2 - это четырехэтапное квитирование.

Учебное пособие по MQTT: Ссылка

Требования

  • ESP32-DevKitC
  • Mongoose OS
  • Аккаунт AWS
  • Завершенные шаги в части I

Настраивать

1. Настройте тему в соц.сетях.

UI Интерфейс

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

Введите Название темы и Отображаемое имя для почтовых уведомлений SpaceCat:

После нажатия Создать тему вы увидите, что ваша тема добавлена ​​в сетку вкладок Темы.

Перейдите на вкладку Подписки и нажмите Создать подписку. Выберите Электронная почта для своего протокола и введите свой адрес электронной почты для своей конечной точки.

После нажатия Создать подписку вы должны увидеть свою подписку на вкладке Подписки:

2. Установите правило

Перейдите на вкладку Правила в AWS IoT. Нажмите Создать правило.

Заполните поля Имя и Описание.

Установите для поля Атрибут в правиле значение *.

Установите фильтр тем на соответствующую тему MQTT. В нашем примере мы создадим тему spacecatmail как:

$aws/things/esp32_068A80/spacecatmail

Затем нажмите Добавить действие.

В списке доступных действий нажмите Отправить сообщение как push-уведомление в социальных сетях. Нажмите Настроить действие.

В нижней части конфигурации правила вы должны увидеть добавленное действие. Нажмите Создать правило.

3. Код

Запустите IDE mos tool:

$ ~/.mos/bin/mos

Выберите init.js в диспетчере файлов устройства.

Введите следующий код:

load('api_config.js');
load('api_gpio.js');
load('api_mqtt.js');
load('api_net.js');
load('api_sys.js');
load('api_timer.js');
let button = ffi('int get_button_gpio_pin()')();
GPIO.set_button_handler(button, GPIO.PULL_UP, GPIO.INT_EDGE_NEG, 200, function() {
  let topic = '$aws/things/' + Cfg.get('device.id') + '/spacecatmail';
  let message = 'Im feline paw-some.';
  let ok = MQTT.pub(topic, message, 1);
  print('Published:', ok ? 'yes' : 'no');
}, null);

Вы можете изменить строку для message на любую, как хотите, чтобы ваша цитата Spacecat была.

4. Прошиваем ESP.

Чтобы прошить код, нажмите Сохранить + перезагрузить.

5. Тест

На мгновение нажмите правую кнопку на своем наборе esp32 devkit, и через несколько секунд вы увидите, что письмо от Spacecat попадет в ваш почтовый ящик. Ура!

Что дальше?

В части III мы исследуем:

  • как управлять тенью устройства
  • как создать устройство с батарейным питанием и раскрыть функцию глубокого сна esp32 для сохранения энергии.