Когда мы в последний раз уходили от нашего героя…
Резюме
В Части 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 для сохранения энергии.