Начало работы с Blynk: простые устройства для Интернета вещей своими руками

Начало работы с Blynk: простые устройства для Интернета вещей своими руками

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





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





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





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

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

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



лучшие неопубликованные приложения для Fire TV

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

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





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

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





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

Приложение дает возможность поделиться своим проектом с другими. Генерируется QR-код, который можно отправить по электронной почте или отсканировать напрямую, и использовать его всем, у кого есть приложение Blynk. Тот, с кем вы делитесь, не может вносить изменения в проект, что делает его быстрым и удобным способом поделиться контролем над вашими устройствами. Однако стоит отметить, что ваш проект в приложении должен быть запущен, чтобы другие пользователи имели доступ к оборудованию.

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

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

Сервер Blynk

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

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

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

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

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

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

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

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

Создайте свой проект. Это автоматически отправит токен авторизации. Если вы не получили его, вы можете отправить его повторно, выбрав значок настроек проекта (маленький орех), выбрав свое устройство и выбрав «Электронная почта».

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

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

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

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential

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

sudo npm install -g npm
sudo npm install -g onoff
sudo npm install -g blynk-library

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

blynk.js [YourAuthorizationTokenHere]

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

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

Быстрая настройка с помощью NodeMCU

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

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

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

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

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

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

char auth[] = 'YourAuthToken';
char ssid[] = 'YourNetworkName';
char pass[] = 'YourPassword';

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

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

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

Блинк на Raspberry Pi

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

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

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

Тебе понадобится:

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

Настройте свою макетную плату следующим образом:

Я нашел телефон, но он заблокирован, как мне его разблокировать

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

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

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

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

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

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

sudo nano blynkdoor.js

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

var blynklib = require('/usr/local/lib/node_modules/blynk-library');
var AUTH ='PasteAuthorizationCodeHere'
var blynk = new blynklib.Blynk(AUTH);

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

var Gpio = require('onoff').Gpio,
reed = new Gpio(17, 'in', 'both'), //register changes 'both' when switch is opened and closed
led = new Gpio(22, 'out');
var virtualPin = 0;

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

reed.watch(function(err,value){
led.writeSync(value);

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

if(value==0){
blynk.virtualWrite(virtualPin,'Closed');
console.log('Door Closed');
};
if(value==1){
blynk.notify('The door just opened!');
blynk.email('email@address.here', 'Front Door', 'The front door just opened.');
blynk.virtualWrite(virtualPin,'Open');
console.log('Door Open');
};
});

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

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

process.on('SIGINT', function () {
led.unexport();
reed.unexport();
});

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

sudo node blynkdoor.js

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

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

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

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

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

Кредит изображения: Джузеппе Каккавале через YouTube.com

Делиться Делиться Твитнуть Эл. адрес Canon против Nikon: какой бренд камеры лучше?

Canon и Nikon - два крупнейших имени в индустрии фотоаппаратов. Но какой бренд предлагает лучшую линейку камер и объективов?

Читать далее
Похожие темы
  • Сделай сам
  • Умный дом
  • Ардуино
  • Raspberry Pi
  • Домашняя автоматизация
  • Интернет вещей
  • Электроника
Об авторе Ян Бакли(Опубликовано 216 статей)

Ян Бакли - независимый журналист, музыкант, исполнитель и видеопродюсер, живущий в Берлине, Германия. Когда он не пишет или на сцене, он возится с электроникой или кодом своими руками в надежде стать безумным ученым.

Ещё от Ian Buckley

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Нажмите здесь, чтобы подписаться