Рубрики
Проекты на ESP8266

Установка локального сервера Blynk на Raspberry Pi и управление им с NodeMCU ESP8266

Blynk представляет собой платформу интернета вещей (IoT), в которой вы можете достаточно просто создать графический интерфейс для своих проектов используя уже готовые виджеты из данной платформы. Но у данной платформы есть и определенные недостатки: задержка (latency) и ограниченное количество энергии. Эти недостатки можно преодолеть при помощи установки локального сервера (local server) Blynk, который обеспечивает неограниченное количество энергии и уменьшает задержку.

В данной статье мы рассмотрим установку локального сервера Blynk на плату Raspberry Pi (была использована плата Raspberry Pi 4) и взаимодействие с ним с помощью платы NodeMCU ESP8266.

Необходимые компоненты

  1. NodeMCU ESP8266 (купить на AliExpress).
  2. Плата Raspberry Pi (купить на AliExpress).
  3. Светодиод (купить на AliExpress).

Установка локального сервера Blynk на Raspberry Pi

Сервер Blynk разработан на Java, поэтому первую вещь, которую мы должны сделать – это проверить что на вашей Raspberry Pi установлена Java 8. Сделать это можно с помощью команды:

Если на вашей плате Raspberry Pi не установлена данная версия Java, то тогда ее необходимо установить с помощью команды:

После этого скачайте JAR файл сервера Blynk с помощью команды:

Затем нам необходимо запустить сервер в работу с помощью команды:

После этого вы на экране должны увидеть примерно следующую картину:

Либо же вы можете запускать данный сервер в работу при каждой загрузке системы. Для этого используйте следующую команду чтобы открыть crontab:

После этого добавьте следующую команду в конец файла. Измените путь чтобы он соответствовал каталогу установки Blynk.

Сохраните изменения нажав CTRL+X, затем Y, затем ENTER.

Конфигурация файла электронной почты (mail)

Сервер Blynk передает email с токеном аутентификации (authentication token) каждый раз когда вы создаете новый проект. Вам необходимо сконфигурировать настройки отправки электронных писем. Для этого создайте новый файл с именем mail.properties и сохраните его в том же самом каталоге, в котором у вас расположен сервер. Это можно сделать с помощью следующей команды:

Затем в этот файл mail.properties вам необходимо добавить следующие нижеприведенные строки. Не забудьте добавить свой Email id (имя почты) и пароль к ней (Password) в последние две строки.

Сохраните изменения нажав CTRL+X, затем Y, затем ENTER.

На этом установка сервера Blynk будет закончена. Перезагрузите плату Raspberry Pi с помощью команды:

Настройка приложения Blynk

Скачайте приложение Blynk из Play Store или App Store, установите его и создайте себе в нем новый аккаунт.

Затем нажмите на иконку внизу экрана. Нажмите кнопку чтобы активировать Custom mode (обычный режим). Введите IP адрес вашего локального сервера Blynk (в нашем случае это IP адрес платы Raspberry Pi) и нажмите OK.

На следующем экране введите правильный email и пароль к нему чтобы создать аккаунт на вашем локальном сервере.

После того как вы войдете в свой аккаунт нажмите на Create New Project (создать новый проект). Введите имя проекта. После этого в качестве устройства (device) выберите NodeMCU, а в типе соединения (connection type) — Wi-Fi.

После этого нажмите на кнопку ‘Create’ чтобы сформировать ваш проект. Как только окно проекта откроется нажмите на иконку с плюсом чтобы добавить в него новый виджет.

Затем нажмите на ‘Button’ чтобы добавить виджет кнопки в ваш проект.

После этого нажмите на иконку кнопки чтобы изменить настройки данного виджета. Введите имя для вашей кнопки и выберите D1 в качестве выходного контакта (output pin).

Схема проекта

Схема проекта управления светодиодом с помощью локального сервера Blynk и NodeMCU представлена на следующем рисунке.

Теперь, когда у нас локальный сервер настроен, мы будем с его помощью и NodeMCU управлять светодиодом, подключенным к контакту D1 платы NodeMCU ESP8266

Примечание: в приведенной схеме небольшая опечатка – светодиод подключен не к контакту D1, а к контакту D0.

Внешний вид собранной конструкции проекта показан на следующем рисунке.

Программирование NodeMCU ESP8266 для взаимодействия с сервером Blynk

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Библиотеку Blynk можно скачать и установить с помощью менеджера библиотек (Library Manager) в Arduino IDE. Для этого в Arduino IDE выберите пункт меню Sketch < Include Library < Manage Libraries. В открывшемся окне выполните поиск Blynk и установите библиотеку Blynk

Первым делом в начале программы подключим используемые библиотеки.

В следующей строчке кода введите токен аутентификации (Auth Token), который вы получили в электронном письме (mail) от Blynk.

Внутри функции setup инициализируем последовательную связь со скоростью 9600 бод (для целей отладки). Также убедитесь в том, что помещены в комментарии строки соединения с сервером Blynk по умолчанию поскольку мы используем локальный сервер Blynk – введите в параметрах функции Blynk.begin правильный IP адрес этого сервера.

Тестирование работы проекта

Запустите сервер Blynk на Raspberry Pi и загрузите код программы (скетч) в NodeMCU. Подождите пока она соединится с сетью Wi-Fi. После этого откройте приложение Blynk на своем смартфоне и нажмите на кнопку run. После этого вы сможете управлять состоянием светодиода с помощью созданной ранее кнопки в приложении Blynk.

Более подробно работу проекта вы можете посмотреть на видео, приведенном в конце статьи.

Исходный код программы (скетча)

Видео, демонстрирующее работу проекта

Источник статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *