Управление blynk через браузер

Обновлено: 04.07.2024

Знакомимся с платформой Blynk и создаем проект в котором будем дистанционно управлять светодиодом со смартфона.

Комплектующие

В этом уроке мы реализуем удаленное управление светодиодом с помощью приложения Blynk и с использованием платы Arduino Uno. Для этого нам понадобится:

    (или аналоги) ,
  • Светодиод,
  • Резистор.

В целом, мы можем использовать различные типы подключения, такие как Bluetooth, Wi-Fi, USB и многие другие. Приложение также поддерживает множество плат.

Что такое Blynk?

Прежде всего для нас это приложение и нам необходимо скачать приложение Blynk для Android либо для iOS. Ссылки на установку указал выше. После загрузки открываем приложение. Далее оно попросит вас создать учетную запись или авторизоваться.

Согласно официальному сайту Blynk, - это платформа с приложениями для iOS и Android для управления Arduino, Raspberry Pi и другими платами и устройствами удаленно через Интернет. По сути, это цифровая панель инструментов, где вы можете создать графический интерфейс для вашего проекта, просто перетаскивая виджеты.

Новичку не нужно тратить время на изучение приложения и можно начать использовать платформу очень быстро. Платформа может поддерживать Arduino и Raspberry Pi через Wi-Fi, Ethernet или чип ESP8266, а также она работает со множеством языков программирования.

Начало работы с Blynk

Начальное окно приложения выглядит так:


После создания учетной записи нажмите New Project (Новый проект).


Далее даем Название нашему проекту и выбираем Плату (Устройство, Device), которую вы будете использовать. Я использую плату Arduino Uno. Если у вас есть Arduino Mega или любая другая плата, то выберите ее.

Выберите USB в качестве типа подключения (Connection Type), потому что мы собираемся управлять им через последовательную связь. В типе подключения USB вам не потребуется другое устройство. Если вы выбираете тип подключения Bluetooth, вам потребуется Bluetooth, а для типа подключения Wi-Fi требуется шилд Ethernet или любое другое устройство Wi-Fi.


Когда вы нажмете кнопку Создать (Create), приложение оповестит о том, что токен аутентификации был отправлен на вашу электронную почту, и вы увидите экран, подобный показанному ниже. Если у вас iOS, экран может отличаться.


Теперь нажмите на экран, и вы увидите окно виджетов.


В окне виджетов много контроллеров, но нам нужна только лишь кнопка для этого проекта. Поэтому нажмите на Кнопку (Button), и кнопка будет размещена на экране вашего проекта.


Теперь нажмите на кнопку и вы увидите свойства. Выберите пин (Output) и тип (Mode) - кнопка или переключатель. В моем случае я выбрал контакт 8 и кнопку - переключатель.


Библиотека Blynk

Теперь нам нужно скачать библиотеку Blynk для Arduino IDE, которую можно найти здесь.

Поместите библиотеку в папку библиотек Arduino и откройте IDE Arduino.

В меню Примеров (Examples) выберите Arduino Serial USB.


В скетч вставьте токен аутентификации, который вы получили в электронном письме от приложения Blynk, и далее загрузите код на плату.


После сохранения файла запустите его, и вы увидите экран терминала cmd, как показано ниже:


Соединяем комплектующие

Теперь подключите всё согласно схеме, как показано ниже:


Теперь, когда вы в ваше приложения Blynk нажимаете кнопку, светодиод будет включаться и выключаться.

На этом всё! Наше знакомство с Blynk оказалось довольно простым. Теперь вы можете попробовать поиграть с другими функциями приложения.

Blynk Local Server

Платформа с приложением для iOS и Android для управления Arduino, ESP8266, Raspberry Pi и других плат микроконтроллеров через Интернет.

Что такое Blynk?

Blynk - это платформа с приложениями iOS и Android для управления Arduino, ESP8266, Raspberry Pi и подобных плат микроконтроллеров через Интернет. Вы можете легко создавать графические интерфейсы для всех своих проектов, просто перетаскивая виджеты. Если вам нужна дополнительная информация, перейдите по следующим ссылкам:

Dashboard settings
Widgets Box
Dashboard
Dashboard2

Сервер Blynk - это Java сервер с открытым исходным кодом Netty, отвечающий за пересылку данных между мобильным приложением Blynk и различными микроконтроллерами и SBC (например, Arduino, Raspberry Pi и т. д.).

  • Требуется Java 8/9 (OpenJDK, Oracle)
  • Любая операционная система, которая имеет поддержку java
  • Не менее 30 МБ ОЗУ (оперативной памяти) - (может быть меньше при настройке)
  • Открытые порты 9443 (для приложения), 8442 (для аппаратного обеспечения без ssl), 8441 (для аппаратного обеспечения с ssl)

Для Windows загрузите Java здесь и установите.

Быстрая настройка локального сервера

java -version Output: java version "9"

  • Запустите сервер по умолчанию «аппаратный порт 8442» и по умолчанию «порт приложения 9443» (порт SSL)

java -jar server-0.31.0.jar -dataFolder /path

Вот и всё!

ПРИМЕЧАНИЕ: / path должен быть реальным существующим путем в папку, где вы хотите хранить все свои данные.

Blynk Server successfully started. All server output is stored in current folder in 'logs/blynk.log' file.

Включение почты на локальном сервере

Чтобы включить уведомления по почте на локальном сервере, вам необходимо предоставить свои собственные учетные данные. Создайте файл mail.properties в той же папке, где server.jar .

Пример настройки почты здесь.

ПРЕДУПРЕЖДЕНИЕ: разрешены только учетные записи gmail.

ПРИМЕЧАНИЕ. Вам нужно настроить Gmail для работы с ненадежными приложениями. Нажмите здесь, а затем нажмите «Ненадежные приложения заблокированы ».

Быстрая настройка локального сервера на Raspberry Pi

  • Подключить Raspberry Pi через ssh;
  • Установить java 8:

java -version Output: java version "1.8"

  • Загрузите Blynk сервер Jar файл (или вручную скопируйте его в Raspberry Pi через команду ssh и scp):
  • Запустите сервер по умолчанию «аппаратный порт 8442» и по умолчанию «порт приложения 9443» (порт SSL)

java -jar server-0.31.0-java8.jar -dataFolder /home/pi/Blynk

Вот и всё!

Blynk Server successfully started. All server output is stored in current folder in 'logs/blynk.log' file.

Включение автоматического перезапуска сервера в UNIX-системах

  • Чтобы включить автоматический перезапуск сервера, найдите файл /etc/rc.local и добавьте:

java -jar /home/pi/server-0.31.0.jar -dataFolder /home/pi/Blynk &

  • Или если описанный выше подход не работает, выполните:

@reboot java -jar /home/pi/server-0.31.0.jar -dataFolder /home/pi/Blynk &

Сохранить и выйти.

Включение автоматического перезапуска сервера в Windows

java -jar server-0.31.0.jar -dataFolder /home/pi/Blynk

  • Добавить файл bat в папку автозагрузки Windows

Вы также можете использовать этот скрипт для запуска сервера.

Инструкция по обновлению для unix - систем

ВАЖНО Сервер должен всегда обновляться до того, как вы обновите приложение Blynk. Чтобы обновить сервер до более новой версии, вам нужно будет убить старый процесс и запустить новый.

ps -aux | grep java

username 10539 1.0 12.1 3325808 428948 pts/76 Sl Jan22 9:11 java -jar server-0.31.0.jar

10539 - идентификатор процесса сервера blynk из вывода команды выше.

После этого вы можете обновить приложение Blynk. Понижение версии сервера не поддерживается.

ВНИМАНИЕ! Не переустанавливайте сервер на более низкие версии. Вы можете потерять все свои данные.

Инструкцию по обновлению для Windows

Открыть диспетчер задач;

Запустить новый сервер как обычно

Изменения в приложение и эскизе

  • Укажите настраиваемый путь к серверу в приложении

Custom server icon
Server properties menu

Изменить тип вашего проводного подключения к интернету с

Измените ваше WiFi подключения с

Изменить ваш Raspberry Pi Javascript c

или в случае USB при запуске blynk-ser.sh предоставить опцию «-s» с адресом вашего локального сервера

./blynk-ser.sh -s you_host_or_IP

ВАЖНО Блинк постоянно развивается. Мобильные приложения и сервер часто обновляются. Чтобы избежать проблем во время обновлений, отключите автоматическое обновление для приложения Blynk или одновременно обновите локальный сервер и приложение blynk, чтобы избежать возможных проблем с миграцией.

ВАЖНО Локальный сервер Blynk отличается от сервера Blynk Cloud. Они не связаны вообще. Вы должны создать новую учетную запись при использовании локального сервера Blynk.

Расширенная настройка локального сервера

Для большей гибкости вы можете расширить сервер с большим количеством опций, создав файл server.properties в той же папке, что и server.jar . Пример можно найти здесь. Вы также можете указать любой путь к файлу server.properties через аргумент командной строки -serverConfig . Вы можете делать то же самое с mail.properties через -mailConfig и sms.properties через -smsConfig .

java -jar server-0.31.0.jar -dataFolder /home/pi/Blynk -serverConfig /home/pi/someFolder/server.properties

Доступные параметры сервера:

  • Аппаратный порт ssl/tls (для аппаратного обеспечения, поддерживающего сокеты SSL/TLS)

Указывает на cert и ключ, который помещается в ту же папку, что и jar.

server.ssl.cert=./server_embedded.crt server.ssl.key=./server_embedded.pem server.ssl.key.pass=pupkin123

  • Папка профилей пользователей. Папка, в которой будут сохраняться все профили пользователей. По умолчанию используется System.getProperty («java.io.tmpdir») / blynk. Будет создано, если не существует
  • Папка для всех журналов приложений. Будет создана, если оно не существует. «.» Это директория, из которого вы запускаете скрипт.
  • Уровень отладки журнала. Возможные значения: trace | debug | info | error. Определяет, насколько точным будет запись. Слева направо -> максимальная регистрация до минимума
  • Максимально допустимое количество панелей пользователей.
  • 100-кратное ограничение скорости на пользователя. Вы также можете расширить этот предел на странице hardware side.
  • этот параметр определяет, как часто вы можете отправлять почту / твит / push или любое другое уведомление. Указано в секундах
  • Максимально разрешенный размер профиля пользователя. В Кб.
  • Количество строк для хранения в терминальном виджете (данные истории терминала)
  • Максимально допустимое количество очереди уведомлений. Очередь, ответственная за обработку электронной почты, нажатие, отправка твитов. Из-за проблемы с производительностью - эта очередь обрабатывается в отдельном потоке, это требуется из-за блокировки характера всех вышеперечисленных операций. Обычно ограничение не должно быть достигнуто
  • Количество потоков для выполнения операций блокировки - push, twits, emails, db query. Рекомендуется удерживать это значение до минимума, если вам не нужно выполнять много операций блокировки.
  • Период для очистки всей пользовательской БД на диск. В миллисекундах
  • Указывает максимальный период времени, когда аппаратный сокет может быть бездействующим. После чего сокет будет закрыт из-за неактивности. Через несколько секунд. Оставьте его пустым для тайм-аута бесконечности
  • В основном требуется настройка локальных серверов в случае, если пользователь хочет записывать необработанные данные в формате CSV. Дополнительную информацию см. В разделе raw data.
  • Список IP-адресов администратора, разделенных запятыми. Разрешить доступ к пользовательскому интерфейсу администратора только для этих IP-адресов. Вы можете установить его для 0.0.0.0/0, чтобы разрешить доступ для всех. Вы можете использовать нотацию CIDR. Например, 192.168.0.53/24.
  • Имя и пароль администратора по умолчанию. Будет создан при запуске начального сервера
  • Хост для перенаправления пароля и генерации сертификата. По умолчанию текущий IP-адрес сервера взят из сетевого интерфейса «eth». Может быть заменено более дружественным именем хоста. Рекомендуется переопределить это свойство с помощью IP-адреса вашего сервера, чтобы избежать возможных проблем с решением узла.
  • Электронная почта, используемая для регистрации сертификата, может быть опущена, если вы уже указали ее в mail.properties.
  • Список пользователей с запятыми, которым разрешено создавать учетные записи. Оставьте его пустым, если не требуется никаких ограничений.

Сервер Blynk предоставляет панель администрирования, где вы можете контролировать свой сервер. Она доступна по этому URL-адресу:

Administration UI

ПРЕДУПРЕЖДЕНИЕ Пожалуйста, измените пароль администратора и его имя сразу после входа на страницу администратора. ЭТО МЕРЫ БЕЗОПАСНОСТИ.

ПРЕДУПРЕЖДЕНИЕ По умолчанию параметр allowed.administrator.ips разрешает доступ для всех. Другими словами, доступной с любого другого компьютера. Ограничьте доступ к нему через свойство allowed.administrator.ips .

  • Вы должны увидеть выделенный текст, говорящий: «Разрешить недопустимые сертификаты для ресурсов, загруженных с localhost». Нажмите «Включить»

Включение смс на локальном сервере

Чтобы включить уведомления SMS на локальном сервере, вам необходимо предоставить учетные данные для шлюза SMS (в настоящее время сервер Blynk поддерживает только 1 провайдера - Nexmo. Вам нужно создать файл sms.properties в той же папке, где находится server.jar.

Включение хранилища необработанных данных

По умолчанию необработанное хранилище данных отключено (поскольку он много занимает место на диске). Когда вы включаете его, каждая команда Blynk.virtualWrite будет сохранена в DB. Вам необходимо будет установить PostgreSQL Database (** минимальная требуемая версия - 9.5 **), чтобы включить эту функцию:

1. Включение необработанных данных на сервере

Включить необработанные данные в server.properties :

2. Установите PostgreSQL. Вариант A

sudo apt-get update sudo apt-get install postgresql postgresql-contrib

2. Установите PostgreSQL. Вариант Б

sudo apt-get update apt-get --no-install-recommends install postgresql-9.6 postgresql-contrib-9.6

4. Переместите файл create_schema.sql в папку temp (чтобы избежать проблем с разрешением)

mv create_schema.sql /tmp

Скопируйте его в буфер обмена с консоли.

5. Подключитесь к PostgreSQL

sudo su - postgres psql

6. Создать Blynk DB, проверить пользователя и таблицы

/ tmp / create_schema.sql - путь от шага 4.

Вы должны увидеть следующий вывод:

Теперь запустите свой сервер, и вы увидите следующий текст в файле postgres.log :

2017-03-02 16:17:18.367 - DB url : jdbc:postgresql://localhost:5432/blynk?tcpKeepAlive=true&socketTimeout=150 2017-03-02 16:17:18.367 - DB user : test 2017-03-02 16:17:18.367 - Connecting to DB. 2017-03-02 16:17:18.455 - Connected to database successfully.

ПРЕДУПРЕЖДЕНИЕ: Исходные данные могут очень быстро сократить пространство на диске!

Формат данных CSV

значение, метка времени, DeviceId

Где 10 - значение булавки. 1438022081332 - разница, измеренная в миллисекундах, между текущим временем и полночью, 1 января 1970 г. UTC. Чтобы отобразить дату / время в excel, вы можете использовать формулу:

= ((Column / (60 * 60 * 24) / 1000 + 25569))

0 - идентификатор устройства

Автоматическое создание шифрования сертификатов

У последнего сервера Blynk есть супер классная функция - автоматическая генерация сертификатов Encrypt. Однако он имеет несколько требований:

  • Добавить свойство server.host в файл server.properties . Например :
  • Добавить свойство contact.email в server.properties . Например :

Это оно! Запускать сервер как обычный, а сертификаты будут генерироваться автоматически.

Руководство шифровки сертификатов SSL / TLS

  • Сначала установите certbot на свой сервер (машина, на которой вы собираетесь запускать сервер Blynk)
  • Генерирование и проверка сертификатов (ваш сервер должен быть подключен к Интернету и иметь открытые порты 80/443)

./certbot-auto certonly --agree-tos --email YOUR_EMAIL --standalone -d YOUR_HOST

./certbot-auto certonly --agree-tos --email pupkin@blynk.cc --standalone -d blynk.cc

  • Затем добавьте файл server.properties (в папку с server.jar)

server.ssl.cert = / и т.д. / letsencrypt / живой / YOUR_HOST / fullchain.pem server.ssl.key = / и т.д. / letsencrypt / живой / YOUR_HOST / privkey.pem server.ssl.key.pass =

Создание собственных сертификатов SSL

openssl req -x509 -nodes -days 1825 -newkey rsa: 2048 -keyout server.key -out server.crt

openssl pkcs8 -topk8 -inform PEM -outform PEM -in server.key -out server.pem

Если вы подключаете аппаратное обеспечение с помощью USB-скрипта, вы должны указать опцию '-s', указывающую на «общее имя» (имя хоста), вы указанных во время создания сертификата.

В качестве вывода вы получите файлы server.crt и server.pem, которые необходимо предоставить для свойств server.ssl.

Установить java для Ubuntu

sudo apt-add-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java9-installer

в случае, если в вашей системе еще нет Java 9.

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT - to-port 8080 sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT - to-port 9443

Включение генерации QR на сервере

sudo apt-get install libxrender1

За маршрутизатором wifi

Если вы хотите запустить сервер Blynk за WiFi-маршрутизатором и хотите, чтобы он был доступен из Интернета, вам необходимо добавить правило переадресации портов на вашем маршрутизаторе. Это необходимо для перенаправления всех запросов, которые поступают на маршрутизатор в локальной сети на сервер Blynk.

Blynk имеет кучу интеграционных тестов, требующих DB, поэтому вам нужно пропустить тесты во время сборки.

mvn clean install -Dmaven.test.skip = true

Как работает Блинк?

Определения команд и состояний: BlynkProtocolDefs.h

S BLYNK_CMD_LOGIN + токен аутентификации SP BLYNK_CMD_PING SP BLYNK_CMD_RESPONSE SP BLYNK_CMD_BRIDGE SP BLYNK_CMD_HARDWARE S BLYNK_CMD_TWEET S BLYNK_CMD_EMAIL S BLYNK_CMD_PUSH_NOTIFICATION

Самый простой способ настроить Blynk - это использовать функцию Blynk.begin() :

Она имеет несколько параметров для разных моделей оборудования, а также зависит от типа подключения. Следуйте примеру скетча для вашей конкретной аппаратной модели.

Что происходит внутри функции Blynk.begin() :

  1. Подключение к сети (WiFi, Ethernet, . )
  2. Вызов Blynk.config (. ) для установки токена авторизации, адреса сервера и т.д.
  3. Пытается сразу подключиться к серверу (может продлится в течении 30 сек)

config() позволяет управлять сетевым подключением. Вы можете настроить тип подключения (WiFi, Ethernet, . ) самостоятельно, а затем соединиться:

Используйте connectWiFi чтобы удобно настроить WiFi соединение:

Чтобы подключиться к открытой сети WiFi, укажите пустую строку ( "" ).

Есть несколько функций, которые помогут с управлением соединением:

Эта функция будет продолжать попытки подключиться к серверу Blynk. Возвращает true при подключении, false , если истекло время ожидания. Время ожидания по умолчанию составляет 30 секунд.

Отключает оборудование от сервера Blynk:

Возвращает true , когда оборудование подключено к Серверу Blynk, false , если нет активного подключения к серверу Blynk.

Эта функция должна вызываться часто, чтобы обрабатывать входящие команды и выполнять поддреживать соединения с Сервером Blynk. Обычно вызывается в цикле void loop () <> .

Управление цифровыми и аналоговыми пинами

Библиотека Blynk может выполнять основные операции ввода-вывода "из коробки":

Нет необходимости писать код для простых вещей, таких как светодиод, реле управления и аналоговые датчики. Просто выберите соответствующий пин в приложении Blynk и управляйте им напрямую без дополнительного кода

Управление виртуальными пинами

Виртуальные пины (Virtual Pins) - это способ обмена любыми данными между вашим оборудованием и приложением Blynk. Думайте о виртуальных пинах как о каналах для приема/передачи любых данных. Убедитесь, что вы различаете виртуальные контакты от физических GPIO пинов на вашем оборудовании. Виртуальные контакты не имеют физического представления.

Виртуальные пины обычно используются для взаимодействия с другими библиотеками (Servo, LCD и др.) и реализации пользовательской логики. Устройство может отправлять данные в приложение, используя Blynk.virtualWrite (pin, value) , и получать данные из приложения, используя BLYNK_WRITE (vPIN) . Читайте ниже.

Типы данных Виртуальных пинов

Все значения виртуальных пинов всегда отправляются в виде строк, и нет никаких практических ограничений на данные, которые могут быть отправлены. Однако при работе с числами существуют определенные ограничения на аппаратную часть. Например, целое число на Arduino - 16-бит, допустимый диапазон значений от -32768 до 32767.

Чтобы интерпретировать входящие данные как целые числа, числа с плавающей запятой, двойные числа и строки, используйте:

Вы также можете получить RAW данные из буфера параметров:

ПРИМЕЧАНИЕ. Используйте BlynkTimer при использовании этой команды для отправки данных. В противном случае ваше оборудование будет терять связь с сервером

Отправка данных в различных форматах на виртуальные пины.

Примечание: Для виртуальных контактов с номерами больше 127 синтаксис V128 недоступен.

Пожалуйста, используйте простой виртуальный пин-код, например:

Важно посылать данные с интервалами и сохранять цикл void () как можно более свободным.

BlynkTimer позволяет периодически отправлять данные с заданными интервалами, не мешая работе библиотеки Blynk BlynkTimer наследует SimpleTimer Library, хорошо известную и широко используемую библиотеку для обработки нескольких событий на оборудовании. BlynkTimer включен в библиотеку Blynk по умолчанию и нет необходимости устанавливать SimpleTimer отдельно или включать SimpleTimer.h

  • Один объект BlynkTimer позволяет планировать до 16 таймеров.
  • Улучшена совместимость с такими платами, как Arduino 101 , Intel Galileo и т.д.
  • Когда таймер пытается запуститься несколько раз (из-за заблокированного цикла), он просто пропускает все пропущенные интервалы запуска и вызывает вашу функцию только один раз. Это отличается от SimpleTimer , который может вызывать вашу функцию несколько раз в этом сценарии.

Для получения дополнительной информации об использовании таймера, пожалуйста посмотрите. А вот и BlynkTimer пример скетча.

Также помните, что один экземпляр BlynkTimer может запланировать до 16 таймеров, поэтому, скорее всего, вам понадобится только один экземпляр BlynkTimer в вашем скетче.

BLYNK_WRITE это функция, вызывается каждый раз, когда устройство получает обновление значения виртуального пина от сервера (или приложения):

Для чтения полученных данных используйте код:

BLYNK_WRITE нельзя использовать внутри какого-либо цикла или функции. Это отдельная функция.

Примечание: Для виртуальных контактов с номерами > 127 используйте API BLYNK_WRITE_DEFAULT()

Примечание: Для виртуальных пинов с номерами более 127 используйте API BLYNK_READ_DEFAULT()

Переопределяет обработчик для всех выводов, которые не покрыты пользовательскими функциями BLYNK_WRITE .

Переопределяет обработчик для всех выводов, которые не покрыты пользовательскими функциями BLYNK_READ .

Используйте эту функцию, когда вам нужно запустить определенную процедуру, когда оборудование подключается к Blynk Cloud или локльному серверу. Чаще всего вызывают эту функцию для синхронизации значений Сервер-Приложение-Оборудование.

Эта функция вызывается каждый раз, когда клиент приложения Blynk подключается к серверу Blynk.

Примечание: Сначала включите эту функцию в настройках проекта:


Эта функция вызывается каждый раз, когда приложение Blynk отключается от Blynk Cloud или локального сервера.

Примечание. Сначала включите эту функцию в настройках проекта:


Запрашивает все сохраненные на сервере последние значения для всех виджетов. Все аналоговые/цифровые/виртуальные значения и состояния выводов будут установлены на последнее сохраненное значение. Каждый виртуальный вывод генерирует событие BLYNK_WRITE ().

Примечание: Рекомендиуется использовать только на стадии написания кода (иногда возникают ошибки). Для надежности следует применять выборочную синхронзацию syncVirtual .

Эта команда обновляет отдельный виртуальный пин до последнего сохраненного значения на сервере. Когда он используется, вызывается соответствующий обработчик BLYNK_WRITE .

Чтобы обновить несколько контактов, используйте код:

Blynk.setProperty(vPin, "property", value)

Чтобы включить отладочную информацию на последовательном порту по умолчанию, добавьте в начало скетча. ВАЖНО: это должна быть первая строка в вашем коде:

Обязательно включите последовательный вывод в setup() :

Откройте Serial Monitor, и вы увидите отладочные данные.

Вы также можете использовать запасные аппаратные последовательные порты или SoftwareSerial для вывода отладочной информации (вам понадобится адаптер для подключения к ПК).

ПРЕДУПРЕЖДЕНИЕ: Включение BLYNK_DEBUG ' замедлит вашу аппаратную производительность в 10 раз!

Когда параметр BLYNK_PRINT определен, вы можете использовать BLYNK_LOG для записи ваших LOG журналов. Используется похоже на printf :

On some platforms (like Arduino 101) the BLYNK_LOG may be unavailable, or may just use too much resources.
In this case you can use a set of simpler log functions:

На некоторых платформах (например, Arduino 101) BLYNK_LOG может быть недоступен или просто использовать слишком много ресурсов. В этом случае вы можете использовать набор более простых функций журнала:

Минимизация объема кода

Чтобы свести к минимуму объем программы Flash/RAM памяти, вы можете отключить некоторые встроенные функции:

Put on the top of your sketch:

Поместите верхнюю часть вашего скетча:

Если вы хотите погрузиться в создание/взлом/портирование реализации библиотеки Blynk, пожалуйста, также ознакомтесь с этой документацией.

Начало работы с Blynk: простые устройства IoT для самостоятельной работы

Blynk — это сервис Интернета вещей (IoT), разработанный для того, чтобы сделать дистанционное управление и считывание данных датчиков с ваших устройств максимально быстрым и простым. В этой статье мы расскажем, что такое Blynk, как он работает, и представим два коротких примера проектов по различным видам использования сервиса с платами разработки NodeMCU и Raspberry Pi.


Никогда еще не было так легко начинать разработку интеллектуальных объектов с использованием микроконтроллеров, и в последние годы популярность устройств IoT быстро росла. Платы для разработки, такие как Arduino или Raspberry Pi, можно использовать для управления всем, начиная от розеток электропитания. в своем доме о рождественских украшениях с активированным движением

Одной из областей, которая может создать проблему для непосвященных, является кодирование и создание сетей. Blynk стремится избавить от необходимости интенсивного кодирования и облегчить доступ к вашим устройствам из любого места на вашем смартфоне. Его можно бесплатно использовать для любителей и разработчиков, хотя его можно также использовать на коммерческой основе за плату — компании могут использовать Blynk для создания своих собственных приложений и систем, а затем продавать их под собственным брендом.

Blynk использует свой собственный сервер и библиотеку, чтобы заставить сервис работать, но это приложение Blynk, которое, кажется, является его главной силой.

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

Приложение Blynk доступно бесплатно на Android и iOS. Это отправная точка для ваших проектов с простой в использовании системой перетаскивания для создания пользовательских элементов управления для вашей установки IoT. Рабочий процесс быстрый: при запуске нового проекта вам предлагается выбрать свою доску для разработки из обширного списка, а также способ подключения. Затем приложение отправляет токен авторизации по электронной почте для подключения к вашему устройству через сервер Blynk.

Элементы управления называются виджетами : различные типы методов ввода и вывода информации, включая кнопки, ползунки, джойстик, графики и текстовую обратную связь. Существуют также виджеты, специфичные для компонентов, со стилизованными элементами управления для светодиодов, ЖК-дисплеев и даже потокового видео. Также примечательны виджеты, которые добавляют функции, такие как автоматическая публикация в Twitter и пользовательские уведомления.

Хотя приложение бесплатное, оно ограничивает количество виджетов, которые вы можете использовать одновременно, предоставляя им все «энергозатраты». Приложение дает вам баланс в 2 000 для игры, с возможностью купить больше, если это необходимо.

Я обнаружил, что предоставленного начального баланса было более чем достаточно для примеров проектов, перечисленных здесь, хотя, если ваша установка более сложная, вы можете обнаружить, что сока достаточно быстро.

Каждый виджет имеет меню редактирования, позволяющее изменить имя и цвет. Затем вы выбираете, какой из выводов повлиять (будь то вывод на вашей доске или один из виртуальных выводов Blynk), а также диапазон значений для отправки. Для выходных дисплеев, таких как графики и текстовые поля, вы также можете выбрать, как часто вы хотите, чтобы он обновлялся, потенциально экономя драгоценную пропускную способность.

Blynk также имеет возможность назначать инструкции «виртуальным» контактам, которые являются настроенными пользователем соединениями между приложением и оборудованием. Поэтому одну кнопку в приложении можно использовать для запуска множества различных событий на устройстве. Мы расскажем, как использовать их позже в статье.

Вы также можете поделиться проектом, не предоставляя доступ к своему оборудованию, что является отличным способом научить людей пользоваться приложением, не позволяя им включать и выключать свет!

Я нашел создание приложения очень быстрым и интуитивно понятным. После создания вы можете сразу начать использовать его, нажав на символ воспроизведения в правом верхнем углу. Если вам нужно внести изменения позже, вы можете просто нажать ту же кнопку, чтобы вернуться в режим редактирования.

Сервер Блынк

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

Облачный сервер Blynk быстрый, отзывчивый и бесплатный в использовании. Подключиться к устройству Wi-Fi так же просто, как скопировать сгенерированный код авторизации в эскиз Arduino и предоставить свои данные Wi-Fi. Для Raspberry Pi Blynk предоставляет тестовый скрипт, который вы можете запустить с вашим кодом авторизации для того же эффекта. Позже в этой статье мы создадим наш собственный скрипт, использующий библиотеку Blynk для подключения к сервису.

Второй вариант — разместить свой собственный сервер Blynk. Blynk предоставляет Java-сервер с открытым исходным кодом на базе Netty, который можно запустить с вашего компьютера или даже Raspberry Pi. Это имеет различные преимущества для некоторых пользователей с точки зрения функциональности и безопасности, хотя для наших примеров здесь мы сосредоточимся на использовании предоставленного облачного сервера Blynk.

веб-сайт blynk

Блинкская библиотека

Третий и последний элемент Blynk — это библиотека Blynk . Эта библиотека работает с огромным списком плат разработки, чтобы обеспечить связь между приложением и вашим оборудованием.

В самом простом случае все, что требуется, это установить библиотеку и загрузить один из предоставленных хорошо аннотированных эскизов.

Блынк: Начальная настройка

Установите приложение Blynk на свой смартфон и создайте учетную запись. Убедитесь, что вы используете адрес электронной почты, к которому вы можете получить доступ, поскольку именно туда будут отправляться ваши токены авторизации. Теперь создайте проект, выбрав, какую доску вы будете использовать и как вы будете к ней подключаться. Оба примера здесь подключаются через Wi-Fi, хотя также возможны подключения через Bluetooth, Ethernet и даже GSM.

Затем установите библиотеки Blynk с веб-сайта Blynk. Для Arduino установите библиотеку, скопировав файлы в папку Arduino> библиотеки . Если вы новичок в Arduino, вот руководство по

Для Raspberry Pi вы должны убедиться, что у вас установлен Node.js. В этой статье приведено руководство по установке Node.js. если вам это нужно.

Во-первых, убедитесь, что ваш Pi обновлен и на нем установлен пакет build-essential.

Затем установите диспетчер пакетов Node , библиотеку OnOff и библиотеку Blynk , введя это в окне терминала.

Вы можете проверить, все ли работает, запустив тестовый скрипт Blynk:

Если все работает, это должно выглядеть так:

blynk pi blynk тестовый скрипт

Если вы получаете какие-либо ошибки, убедитесь, что ваш Pi обновлен, и у вас установлена ​​самая последняя версия Node.js, прежде чем переустанавливать библиотеки NPM, OnOff и Blynk.

Быстрая настройка с NodeMCU

Этот первый пример показывает, как быстро настроить простые системы с помощью Blynk. Не требует кодирования, и после установки он полностью автономен. Пока у платы есть доступ к вашему Wi-Fi-соединению, вы можете получить к нему доступ из любого места, используя свой смартфон.

Для начала настройте простую схему на макете. Подсоедините контакт D0 к положительной ветви светодиода и обратно к контакту GND через резистор 220 Ом.

нодмку фритзинг

Откройте свой проект NodeMCU в приложении Blynk. Справа выберите виджет « Кнопка» в меню. Выберите вашу кнопку в вашем проекте, чтобы открыть его меню свойств. Здесь вы можете назвать его и выбрать, какой вывод на вашей плате NodeMCU он должен затронуть. Выберите вывод D0 из списка выходов и переключите режим, чтобы сделать его переключателем включения, а не кратковременным нажимным переключателем.

Затем откройте Arduino IDE и выберите вашу плату NodeMCU и порт из меню инструментов. Если вы не видите свою плату в этом меню, вам может потребоваться установить библиотеки ESP8266 ( это руководство должно помочь ).

Теперь откройте автономный скрипт ESP8266 Blynk, предоставленный в их библиотеке, перейдя в File> examples> Blynk> Boards_WiFi> ESP8266_Standalone . Замените заполнитель токена авторизации на тот, который вы получили по электронной почте, и введите свои данные Wi-Fi.

Сохраните эскиз под новым именем и загрузите его на свою доску. Теперь, когда вы нажимаете кнопку в приложении, светодиод должен включаться и выключаться. Если это не работает, убедитесь, что вы нажали значок воспроизведения в приложении.

В простых случаях, подобных этим, Blynk невероятно быстр в настройке.

Стоит также отметить, что, поскольку здесь используется сервер Blynk, вы можете управлять своей платой из любого места, если у платы есть доступ к домашнему Wi-Fi-соединению, а у вашего смартфона есть мобильный доступ к данным.

Блинк на малиновом пи

Вы можете использовать Blynk точно так же, как в приведенном выше примере на Raspberry Pi, используя тестовый скрипт Blynk, но есть некоторые более глубокие функциональные возможности, которые предоставляют виртуальные контакты Blynk, которые мы рассмотрим сейчас.

Blynk работает с использованием Node.js, поэтому код, который мы напишем сегодня, будет в Javascript. Если вы новичок в этом языке, это должно стать отличным учебником для начинающих. великолепных великолепных

Мы будем использовать библиотеку Blynk для создания приложения, которое сообщает, открыт ли или закрыт датчик двери, и отправляет электронное письмо и push-уведомление на ваш мобильный телефон при открытии двери.

  • Дверной магнитный выключатель (также известный как геркон)
  • 1х 1к? резистор
  • 1х 10к? резистор
  • 1x 220? резистор
  • 1x светодиод
  • Макетные и соединительные провода

Настройте ваш макет так:

пи фритзинг

Обратите внимание, что библиотека Блинка использует номера GPIO выводов Пи, поэтому мы будем использовать их в этом проекте. Подсоедините контакты 5 В и GND к силовым шинам на макете. Подключите контакт 22 GPIO на Raspberry Pi к светодиодному аноду и подключите катод к шине заземления через 220? резистор. Подключите контакт 17 GPIO к одной стороне 1k? резистор, а подключить 10? резистор с другой стороны, и 5V сторона шины питания. Наконец, подключите ваш геркон к стороне заземления шины питания с одной стороны, и на линии, где 1k? а 10к? резисторы встречаются с другой. Эта установка подтягивающего резистора приведет к тому, что напряжение на выводе 17 будет высоким, когда переключатель размыкается.

Создайте новый проект в приложении Blynk и выберите свою доску Raspberry Pi. В меню виджетов выберите «Помеченное значение», «Электронная почта» и «Виджет уведомлений».

Выберите Помеченное значение, назовите его и выберите виртуальный вывод V0 в качестве входного вывода. Вы также можете изменить способ отображения информации. В этом случае добавьте «The door is» перед / pin / во вкладке «Label». Мы можем оставить значение частоты чтения в настройках по умолчанию, но вы можете изменить его, чтобы отправлять данные в ваше приложение с другой скоростью.

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

Когда вы будете довольны тем, как выглядит ваше приложение, нажмите кнопку «Воспроизвести» в верхнем правом углу.

стоимость проекта

Теперь создайте новый скрипт с именем blynkdoor.js . Полный код доступен с полной аннотацией здесь .

Нам нужно начать с импорта библиотеки Blynk, добавления ключа авторизации и создания экземпляра Blynk для использования в нашем сценарии.

Нам также нужно импортировать библиотеку OnOff и объявить переменные, которые настраивают наш геркон и светодиод. Мы также создадим переменную для виртуального вывода, который мы настроили в приложении Blynk.

Теперь мы будем использовать функцию watch из библиотеки OnOff, чтобы отслеживать изменения в нашем герконе. Переключатель двери находится в положении 0 или 1 , и всякий раз, когда это значение изменяется, мы записываем это изменение в вывод светодиода.

Мы также можем использовать это значение для отправки данных в приложение Blynk. Если дверь закрыта, мы хотим видеть это в вашем виджете «Помеченное значение». Если дверь откроется, мы хотим получить уведомление и письмо по электронной почте. Мы делаем это с помощью оператора if и с помощью функций virtualWrite , notify и email из библиотеки Blynk. Полную документацию по Blynk можно найти здесь .

Теперь, когда геркон регистрирует изменение значения, данные отправляются на наш виртуальный контакт, а в случае открытия двери в виджет уведомлений в приложении, а также записи на консоль. Обратите внимание, что заключительные скобки — это то, откуда мы запустили функцию наблюдения выше.

Наконец, нам нужно сбросить пин-код, когда программа заканчивается. Это то же самое, что GPIO.cleanup (), с которым вы, вероятно, уже знакомы.

Теперь сохраните ваш код и выйдите. Запустите ваш скрипт, используя узел.

Теперь, когда вы убираете магнит от герконового датчика, вы должны получить уведомление о том, что дверь открыта, и ваш маркированный дисплей должен измениться. Снова закройте переключатель, и вы увидите, что помеченный дисплей снова изменится.

Стоит отметить, что приложение Blynk должно быть запущено на вашем телефоне для получения push-уведомлений, хотя электронные письма работают независимо от того, запущено приложение или нет.

За короткое время, проведенное с Blynk, этот сервис кажется очень простым в использовании. Это позволяет людям, не обладающим знаниями в области программирования, легко создавать системы домашней автоматизации DIY. С небольшим дополнительным знанием кодирования он становится еще более мощным, позволяя создавать гораздо более сложные системы и множественные триггеры событий от нажатия одной кнопки в приложении.

Этот проект был базовым введением в Blynk, хотя то, что мы рассмотрели здесь, можно легко изменить практически для любого проекта домашней автоматизации или микроконтроллера.

Вы использовали Blynk? У вас есть сумасшедшая сложная система, использующая сервис, которым вы хотели бы поделиться с нами? Дайте нам знать в комментариях ниже!

Blynk для Arduino, ESP8266,RPi
версия: 2.27.24

Последнее обновление программы в шапке: 31.01.2021

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Краткое описание:
Мобильное приложение для IOT.

Blynk это украинский стартап успешно запущен на Kickstarter.

Blynk - это платформа с приложениями для iOS и Android для управления Arduino, Raspberry Pi ESP8266 и другими через Интернет. Это цифровая панель, где вы можете создать графический интерфейс для своего проекта, просто перетаскивая виджеты.

Создавайте классные интерфейсы для своих проектов добавляя различные виджеты, такие как: кнопки: ползунки, графики, терминал и многие многие другие!

Все настолько просто, что вы сможете начать проверять ваши идеи за 5 минут, без сложной настройки и чтения тонны документации.

Все очень просто! Как 1-2-3:
1. Добавьте и настройте виджеты за несколько прикосновений
2. Загрузите программу с библиотекой Blynk на свое железо
3. Готово!

Blynk подходит для любых проектов: мигание LED-ами, отображение температуры по собственной метеостанции, управления игрушками и работами и даже домашняя автоматизация!

Платы расширения и способы соединения:
• USB, подключенный к ноутбуку или ПК
• Ethernet shield (W5100)
• Adafruit CC3000 WiFi
• Official Arduino WiFi shield
• ENC28J60
• RN-XV WiFly

В библиотеке много примеров, которые помогут начать строить Ваш Интернет Вещей (IoT), без разницы профессионал вы или любитель.

Вы можете использовать бесплатный Blynk Cloud, или запустить собственный сервер Blynk в минуту и получить полный контроль над своими данными (детали на сайте). Сервер можно запустить даже на Raspberry Pi!

Успехов с Blynk-ом!

Требуется Android: 4.2 и выше
Русский интерфейс: Нет

- Исправлено отключенное состояние динамических ярлыков
- Исправлено изменение размера рамки виджета в некоторых случаях
- Виджет-слайдер: исправлено значение при переподключении / перезагрузке приложения
- Поддержка Blynk.Faces в исправлениях предварительного просмотра приложения
- Улучшения стабильности

Поддерживаемое оборудование
Исправление проблем
Безопасность
Blynk сервер
Blynk Firmware
Вопросы-Ответы
Лицензия
Этот проект выпущен под лицензией MIT (MIT)

Полноценная документация на украинском языке ТУТ (в процессе перевода . )

Читайте также: