Мини-кейс 5: Blynk [Устарело, не работает в России]
Познакомимся с сервисом Blynk и поуправляем RGB матрицей со смартфона.
Blynk — сервис для программирования приборов и удобного доступа к ним с панели управления на экране смартфона. Встроенный конструктор кода для различных задач и наглядный интерфейс панели управления сильно облегчают создание IoTприборов. Сервис совместим с кучей устройств — от Wi-Fi Troyka
модуля до последней версии компьютера Raspberry Pi.
Для начала работы с Blynk прибор нужно прошить кодом с твоей программой и клиентской частью Blynk.
Затем понадобится смартфон с приложением Blynk — с него ты будешь контролировать свои умные устройства.
Оба устройства являются клиентами, связующим звеном между которыми выступает сервер Blynk.

ЧТО ДЕЛАЕМ?
Зайди на blynk.cc и выбери пункт GETTING STARTED.
Установи на смартфон приложение Blynk.
Открой приложение на смартфоне.
Заведи учётную запись.
Нажми кнопку «New Project».
Введи название проекта и выбери плату, с которой будешь работать:
ESP8266
. Тип соединения —Wi-Fi
.Как только ты создашь проект, на указанную при регистрации почту придёт сообщение с уникальным токеном идентификации. Он потребуется в коде программы.
Теперь нужно установить библиотеки в Arduino IDE. Их нельзя автоматически установить из архива, поэтому придётся сделать это вручную. Ниже на странице
«GETTING STARTED»
нажми на кнопку«Download Blynk Library»
.По ссылке в самом низу страницы находятся последние версии библиотек в .zip файле. Скачай этот архив.
Добавьте скаченные библиотеки в
Arduino IDE
.Теперь собери устройство. Установи на
Slot Shield
в 8 пинRGB матрицу
, аSlot Shield
на Arduino.Загрузи код в Arduino UNO:
#include <Adafruit_NeoPixel.h> // Библиотека для работы с RGB-матрицей #define MATRIX_PIN 8 // Номер пина, к которому подключена RGB-матрица #define LED_COUNT 16 // Количество светодиодов в матрице #define BRIGHTNESS 127 // Яркость матрицы Adafruit_NeoPixel rgbMatrix = Adafruit_NeoPixel(LED_COUNT, MATRIX_PIN, NEO_GRB + NEO_KHZ800); // создаём объект класса Adafruit_NeoPixel int ledR, ledG, ledB; void setup() { Serial.begin(115200); rgbMatrix.begin(); // Инициализация RGB-матрицы rgbMatrix.setBrightness(BRIGHTNESS); // Устанавливаем яркость матрицы } void loop() { String command = Serial.readStringUntil('\n'); // Считываем из Serial строку до символа переноса на новую строку if (command.length() > 0) { // Проверяем первый символ переменной на значение R, G или B и записываем в переменные ledR, ledG, ledB. // С помощью функции substring вырезаем символ из строки // С помощью функции toInt - преобразовываем строку а число if (command[0] == 'R') ledR = command.substring(1).toInt(); else if (command[0] == 'G') ledG = command.substring(1).toInt(); else if (command[0] == 'B') ledB = command.substring(1).toInt(); } colorWipe(rgbMatrix.Color(ledR, ledG, ledB), 50); // Заполняем RGB-матрицу } // Функция заполнения каждого сегмента void colorWipe(uint32_t colorCode, uint8_t wait) { for (uint16_t i = 0; i < rgbMatrix.numPixels(); i++) { // Заполняем текущий сегмент выбранным цветом rgbMatrix.setPixelColor(i, colorCode); // В пиксель i установить цвет rgbMatrix.show(); // Выполнить на матрице delay(wait); // Ждём } }
Вернись к своему смартфону. Открой приложение Blynk и проект, который ты создал.
Проведи пальцем по экрану влево. Ты увидишь панель виджетов.
Выбери виджет
«zeRGBa»
. Он появится на рабочем поле проекта.Щёлкни на виджете, чтобы увидеть его настройки.
OUTPUT
переведи вMERGE
, установи диапазон значений от 0 до 255, аSEND ON RELEASE
переведи вOFF
.Для доступа к физическим пинам устройства через элементы управления в приложении Blynk используются «виртуальные пины».
В коде, которым прошивается Arduino, можно назначить номера виртуальных пинов для любых доступных пинов устройства. А в самом приложении при выборе инструмента управления или наблюдения нужно указать номер виртуального пина. Виртуальный пин можно указать и для аппаратного UART — для этого в коде будет использоваться функция-обработчик.
Подключи
WI-FI модуль
к Breadboard’у. Ты можешь перепрограммировать его, не разбирая схемы, — соедини модуль с Arduino в режиме USB-UART.Загрузи на
Wi-Fi модул
ь управляющую прошивку Blynk. Как загружать?#include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> #define WIFI_SSID "freetime" // Указываем SSID и пароль Wi-Fi сети, с которой будем выходить в интернет #define WIFI_PASSWORD "" #define BLYNK_TOKEN "ТОКЕН_blynk" // Указываем токен blynk void setup() { Serial.begin(115200); Blynk.begin(BLYNK_TOKEN, WIFI_SSID, WIFI_PASSWORD); } // Циклично запрашиваем данные у Blynk. // Если от сервиса пришли новые данные для виртуального пина V1, вызываем функцию-обработчик void loop() { Blynk.run(); } // Данные для пинов содержатся в переменной param. // Blynk отправляет сразу 3 значения, к каждому из них мы можем обратиться по индексу. // Функция asInt() преобразует входные данные в числовое значение. BLYNK_WRITE(V1) { int redValue = param[0].asInt(); int greenValue = param[1].asInt(); int blueValue = param[2].asInt(); // Записываем в Serial три строки. По одной на каждый цвет: первый символ строки указывает цвет, а за ним следует число от 0 до 255. Serial.print("R"); Serial.println(redValue); Serial.print("G"); Serial.println(greenValue); Serial.print("B"); Serial.println(blueValue); }
Проверь работу программы. Сразу после загрузки кода на
Wi-Fi модуль
открой проект с zeRGBa на смартфоне. Нажми на кнопку с треугольником в правом верхнем углу экрана — это запустит работу проекта.Открой
Serial Monitor
. Убедись, что скорость выставлена на115200 бод
, и начни водить пальцем по зебре. Ты увидишь поток данных, которые пойдут черезSerial
. Данные должны приходить именно в том формате, для которого ты подготовил программу на Arduino, — убедись в этом перед финальным запуском.Теперь собери финальное устройство. Подключи правильно! Wi-Fi модуль: RX - 0, TX - 1.
Ура, ты прошёл весь набор! Теперь ты можешь создавать серьёзные устройства. Используй изученные сервисы для своих крутых проектов. Полив растений, кормушка для домашних животных и птиц, система умного дома — управление устройствами теперь доступно с твоего смартфона в любое время даже на другом конце Земли!
Дополнительное задание:
Добавь реле. Управляй реле через Blynk по нажатию кнопки.
Остальное по твоему усмотрению.
Last updated
Was this helpful?