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


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

Внешний вид проекта сервера Blynk на Raspberry Pi и управления им с NodeMCU ESP8266

В данной статье мы рассмотрим установку локального сервера 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 с помощью команды:

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

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

Запуск сервера Blynk в работу

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

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

Настройка запуска 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, установите его и создайте себе в нем новый аккаунт.

Вход в приложение Blynk

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

Ввод IP адреса вашего локального сервера Blynk

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

Создание аккаунта на локальном сервере

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

Создание нового проекта в приложении Blynk

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

Иконка для добавления новых виджетов в приложении Blynk

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

Список доступных виджетов в приложении Blynk

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

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

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

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

Схема проекта управления светодиодом с помощью локального сервера 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.

Полученный от Blynk токен аутентификации (Auth Token)

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

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

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

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

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

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

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

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

(Проголосуй первым!)
Загрузка...
4 262 просмотров

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

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