Мини-кейс 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?
