# Использование

Руководство по использованию сервера blynk.su

## Скачиваем приложение Blynk

{% hint style="info" %}
Последняя версия приложения Blynk, в котором работает регистрация это *Blynk v2.27.30*
{% endhint %}

Скачиваем приложение, устанавливаем

{% file src="/files/isX59Gsx2PB3lbKp5qGA" %}

Если приложение не устанавливается, сначала пробуем дать разрешение на установку из неизвестных источников, затем проверяем, полностью ли скачан apk файл (бывает скачивается не до конца и остается повреждённым), если не помогает, пробуем установить более старые версии Blynk, которые можно найти на [этом](https://www.apkmirror.com/apk/blynk-inc/blynk-legacy/) сайте.

## Регистрируемся

{% hint style="info" %}
Начнем с того, что сервер может быть оригинальный, например как наш кастомный. (сервер компании Blynk, с 01.01.23 не работает)

Он расположен по адресу blynk.su с портом 8080 для обычного соединения или 9443 для защищенного.
{% endhint %}

### Чтобы зарегистрироваться на нашем сервере, необходимо:

1\. Открыть приложение

2\. Нажать кнопку "**Create new account**"

3\. Ввести адрес своей почты и придумать пароль

4\. Нажать кнопку ниже, и ввести адрес нашего сервера - `blynk.su` c портом `9443`

{% hint style="info" %}
После этого вы можете входить в приложение при помощи почты и пароля. Токены для новых устройств будут высылаться вам на почту, также вы сможете их увидеть и в самом приложении.
{% endhint %}

<div data-full-width="false"><figure><img src="/files/Mmj1AkLmrJT9NxMFLEAV" alt=""><figcaption></figcaption></figure> <figure><img src="/files/cvSVrlpi59jaIAB9zsqB" alt=""><figcaption></figcaption></figure> <figure><img src="/files/AvH85pK8rKi2WG0D5TjR" alt=""><figcaption></figcaption></figure></div>

## Обновляем приложение

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

## Прописываем в скетче

Теперь нам необходимо настроить сам микроконтроллер для работы с нашим кастомным сервером, для этого:<br>

Сначала прописываем токен в области с глобальными переменными (до setup и loop). Например, вот так:

```cpp
#define BLYNK_AUTH_TOKEN "kekWI-token-token-jSBcVGzB-jr"
char auth[] = BLYNK_AUTH_TOKEN;
```

В setup нужно прописать следующую строчку:

```cpp
Blynk.begin(auth, ssid, pass, "blynk.su", 8080); 

```

Где auth - ваш токен, ssid и pass - данные Wi-Fi сети, и наш сервер с портом.&#x20;

{% hint style="info" %}
Для удобства проверки соединения можете использовать данный [сайт](https://arduin.ru/blynktk.php)
{% endhint %}

## Можно пользоваться!

{% hint style="success" %}
Сервер бесплатный для всех пользователей, но если вы хотите, то можете помочь оплатить аренду сервера по реквизитам на странице [Поддержка сервера](/podderzhka-servera)
{% endhint %}

{% hint style="info" %}
А также обязательно присоединяйтесь к нашему дружному [Telegram-чату](https://t.me/BlynkChat)!
{% endhint %}


# Мониторинг сервера

[netdata.blynk.tk](https://netdata.blynk.tk) – страница мониторинга нашего сервера Blynk

{% embed url="<https://netdata.blynk.tk>" %}

{% hint style="info" %}
Сам мониторинг размещен на сервере, а это значит если он доступен и работает, то и сам сервер в этот момент работает
{% endhint %}

*Можно использовать как проверку работы сервера, если страница доступна, проблемы на вашей стороне*


# Домен для работы с API

Алиса, Домовёнок

Адрес API: `api.blynk.su`

{% hint style="info" %}

```
Пример: https://api.blynk.su/{TOKEN}/update/V0?value=0
```

{% endhint %}


# Поддержка сервера

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

* **Tinkoff** – `5536 9141 6382 0230`
* **Сбер** – `2202 2025 3406 3320`
* **Альфа-Банк** – `2200 1523 4907 1103`
* **СБП** (Альфа) – `+7 (953) 930-77-59`
* **YooMoney** – `4100116553807397`


# API

Blynk имеет свой HTTP RESTful API и позволяет легко считывать и записывать значения контактов в проектах и оборудовании (микроконтроллеры и микрокомпьютеры, такие как Arduino, Raspberry Pi, ESP8266, Particle и т. д.).

\[**PUT] -** запрос обновляет состояние Pin'а как в приложении, так и на оборудовании.&#x20;

**\[GET]** -  вернет текущее состояние/значение на данном Pin'e. Blynk также предоставляем упрощенный API, чтобы вы могли выполнять обновления с помощью GET запросов.

```http
Get pin value: [/{auth_token}/get/{pin}]
```

* Параметры
  * auth\_token (Обязательный, string, `4ae3851817194e2596cf1b7103603ef8`) ... authentification token.
  * pin (Об, string, `D8`) ... pin you want to read.


# Вступление

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

Платформа состоит из трех основных компонентов:

* **Приложение Blynk** — позволяет создавать потрясающие интерфейсы для ваших проектов, используя различные виджеты, которые мы предоставляем.
* **Blynk Server** — отвечает за все коммуникации между смартфоном и оборудованием. Вы можете использовать наш ~~Blynk Cloud~~ или запустить свой [частный локальный сервер Blynk](https://github.com/Peterkn2001/blynk-server). Он имеет [открытый исходный код](https://github.com/Peterkn2001/blynk-server), может легко работать с тысячами устройств и даже может быть запущен на Raspberry Pi.
* [**Библиотеки Blynk**](#user-content-fn-1)[^1] — для всех популярных аппаратных платформ — обеспечивают связь с сервером и обрабатывают все входящие и исходящие команды.

А теперь представьте: каждый раз, когда вы нажимаете кнопку в приложении Blynk, сообщение отправляется на~~космос~~Blynk Cloud, где он волшебным образом попадает на ваше оборудование. То же самое работает и в обратную сторону, и все происходит в мгновение ока.

<figure><img src="/files/FZYDa0igVptPPJjdvSoT" alt="" width="320"><figcaption></figcaption></figure>

### Функции <a href="#intro-features" id="intro-features"></a>

* Один API и пользовательский интерфейс для всего поддерживаемого оборудования и устройств.
* Подключение к серверу Blynk с помощью:
  * Wi-Fi
  * Bluetooth и BLE
  * Ethernet
  * USB (последовательный)
  * GSM
  * …
* Набор простых в использовании виджетов
* Непосредственное управление выводами без написания кода
* Легко интегрировать и добавлять новые функции с помощью виртуальных контактов.
* Мониторинг данных через виджет SuperChart
* Связь между устройствами с помощью Bridge Widget
* Отправка электронных писем, твитов, push-уведомлений и т. д.

Вы можете найти [примеры](https://examples.blynk.cc/), охватывающих основные функции Blynk. Они так-же включены в библиотеку. Все примеры созданы так, чтобы их можно было легко комбинировать друг с другом.

### Что мне нужно, для Blynk? <a href="#intro-what-do-i-need-to-blynk" id="intro-what-do-i-need-to-blynk"></a>

В данный момент вы можете подумать: **«Хорошо, я это хочу. А что мне нужно, чтобы начать?»** – На самом деле, всего пара вещей:

**1. Аппаратное обеспечение .**

Arduino, Raspberry Pi или аналогичный комплект для разработки.

**Blynk работает через Интернет.** Это означает, что выбранное вами оборудование должно иметь возможность подключения к Интернету. Некоторым платам, таким как Arduino Uno, для связи потребуется Ethernet или Wi-Fi Shield, другие уже подключены к Интернету: например, ESP8266, ESP32, Raspberri Pi, Particle Photon или SparkFun Blynk Board. Но даже если у вас нет Shield, вы можете подключить ваше оборудование через USB к ноутбуку или настольному компьютеру (это немного сложнее для новичков, но мы вам поможем). Что круто, так это то, что [список оборудования](#user-content-fn-2)[^2], работающего с Blynk, огромен.

**2. Смартфон .**

Приложение Blynk — это хорошо продуманный конструктор интерфейсов. Он работает как на iOS, так и на Android, так что никаких проблем здесь не будет!

### Загрузки <a href="#downloads" id="downloads"></a>

Приложения Blynk можно скачать для [~~iOS~~ ](#user-content-fn-3)[^3]или Android

### &#x20;       [<img src="/files/4CNqyN7oti5Cam7sSVAW" alt="Рисунок" data-size="original">](https://play.google.com/store/apps/details?id=cc.blynk) <a href="#downloads-blynk-apps-for-ios-or-android" id="downloads-blynk-apps-for-ios-or-android"></a>

### **Библиотека Blynk** <a href="#downloads-blynk-library" id="downloads-blynk-library"></a>

### &#x20;[ЗАГРУЗИТЕ БИБЛИОТЕКУ BLYNK](https://github.com/blynkkk/blynk-library/releases) <a href="#downloads-blynk-library" id="downloads-blynk-library"></a>

Если вы забыли или не знаете, как установить библиотеки Arduino, [Arduino IDE v1](https://docs.arduino.cc/software/ide-v1/tutorials/installing-libraries) или [Arduino IDE v2](https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-installing-a-library).

[^1]: С локальным сервером Blynk совместимы только версии <1.2.0

[^2]: Будет добавлен позже

[^3]: На данный момент скачать старую версию приложения Blynk невозможно


# Начало работы

### Подготовка

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

Подключите светодиод, как показано на изображении ниже:

<img src="https://web.archive.org/web/20210125221527/http://docs.blynk.cc/images/Arduino_LED.jpg" alt="" width="188">

### Начало работы с приложением Blynk <a href="#getting-started-getting-started-with-the-blynk-app" id="getting-started-getting-started-with-the-blynk-app"></a>

## 1. [Создайте учетную запись Blynk.](#user-content-fn-1)[^1] <a href="#getting-started-getting-started-with-the-blynk-app-1-create-a-blynk-account" id="getting-started-getting-started-with-the-blynk-app-1-create-a-blynk-account"></a>

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

Мы рекомендуем использовать **реальный** адрес электронной почты, потому что это упростит работу в дальнейшем.

<img src="https://web.archive.org/web/20210125221527/http://docs.blynk.cc/images/register_account.png" alt="" width="188">

**Зачем мне нужно создавать учетную запись?**

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

Вы всегда можете настроить свой собственный [частный сервер Blynk](https://github.com/Peterkn2001/blynk-server) и иметь полный контроль.

## 2. Создайте новый проект

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

<img src="https://web.archive.org/web/20210125221527/http://docs.blynk.cc/images/getting_started/create_project_button.png" alt="" width="188">

#### 3. Выберите свое оборудование <a href="#getting-started-getting-started-with-the-blynk-app-3-choose-your-hardware" id="getting-started-getting-started-with-the-blynk-app-3-choose-your-hardware"></a>

Выберите модель оборудования, которую вы будете использовать.&#x20;

<img src="https://web.archive.org/web/20210125221527/http://docs.blynk.cc/images/getting_started/select_hardware.png" alt="" width="188">

## 4. Токен авторизации

**Auth Token** — это уникальный идентификатор, который необходим для подключения вашего оборудования к смартфону. Каждый новый проект, который вы создаете, будет иметь свой собственный токен авторизации. Вы автоматически получите токен авторизации на свою электронную почту после создания проекта. Вы также можете скопировать его вручную.&#x20;

Нажмите на раздел «Устройства» и выберите необходимое устройство:

<img src="https://web.archive.org/web/20210125221527/http://docs.blynk.cc/images/getting_started/token_1.png" alt="" width="188">

И вы увидите токен:

<img src="https://web.archive.org/web/20210125221527/http://docs.blynk.cc/images/getting_started/new_device.png" alt="" width="188">

*<mark style="color:red;">**ПРИМЕЧАНИЕ.**</mark> <mark style="color:red;"></mark><mark style="color:red;">Не сообщайте никому свой токен аутентификации, если только вы не хотите, чтобы кто-то имел доступ к вашему оборудованию.</mark>*

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

Теперь нажмите кнопку **«Создать»** .

<img src="https://web.archive.org/web/20210125221527/http://docs.blynk.cc/images/new_project.png" alt="" width="188">

#### 5. Добавьте виджет <a href="#getting-started-getting-started-with-the-blynk-app-5-add-a-widget" id="getting-started-getting-started-with-the-blynk-app-5-add-a-widget"></a>

Экран вашего проекта пуст, давайте добавим кнопку для управления нашим светодиодом.

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

<img src="https://web.archive.org/web/20210125221527/http://docs.blynk.cc/images/widgets_box.png" alt="Окно виджетов" width="188">

**Перетаскивание** — нажмите и удерживайте виджет, чтобы перетащить его в новое положение.

**Настройки виджета** — Каждый виджет имеет свои собственные настройки. Нажмите на виджет, чтобы увидеть их.

<img src="https://web.archive.org/web/20210125221527/http://docs.blynk.cc/images/button_settings.png" alt="" width="188">

Самый важный параметр, который нужно установить, — это **PIN** . Список контактов отражает физические контакты, определенные вашим оборудованием. Если ваш светодиод подключен к цифровому контакту 8 – тогда выберите **D8** ( **D** – означает **цифровой** ).

<img src="https://web.archive.org/web/20210125221527/http://docs.blynk.cc/images/pin_selection.png" alt="" width="188">

#### 6. Запустите проект <a href="#getting-started-getting-started-with-the-blynk-app-6-run-the-project" id="getting-started-getting-started-with-the-blynk-app-6-run-the-project"></a>

Когда вы закончите с настройками - нажмите кнопку **PLAY** . Это переключит вас из режима *редактирования* в режим **PLAY**, где вы сможете взаимодействовать с оборудованием. В режиме *воспроизведение* вы не сможете перетаскивать или настраивать новые виджеты, нажав *СТОП* и вы вернетесь в режим *редактирования*.

Вы получите сообщение «Arduino UNO не в сети». Мы разберемся с этим в следующем разделе.

<img src="https://web.archive.org/web/20210125221527/http://docs.blynk.cc/images/play_button.png" alt="" width="188">

### Начало работы с оборудованием <a href="#getting-started-getting-started-with-hardware" id="getting-started-getting-started-with-hardware"></a>

#### Как использовать пример эскиза <a href="#getting-started-getting-started-with-hardware-how-to-use-an-example-sketch" id="getting-started-getting-started-with-hardware-how-to-use-an-example-sketch"></a>

На вашем компьютере уже должна быть установлена ​​библиотека Blynk. Если нет – [нажмите здесь](https://github.com/blynkkk/blynk-library/releases).

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

Откройте пример эскиза в соответствии с используемой вами моделью оборудования или шилда.

<img src="https://web.archive.org/web/20210125221527/http://docs.blynk.cc/images/connection_type_sketch.png" alt="" width="375">

Давайте посмотрим на пример эскиза шилда [Arduino UNO + Ethernet.](https://github.com/blynkkk/blynk-library/blob/master/examples/GettingStarted/BlynkBlink/BlynkBlink.ino)

```cpp
#define BLYNK_PRINT Serial
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>

char auth[] = "YourAuthToken";

void setup()
{
  Serial.begin(9600); // See the connection status in Serial Monitor
  Blynk.begin(auth);  // Here your Arduino connects to the Blynk Cloud.
}

void loop()
{
  Blynk.run(); // All the Blynk Magic happens here...
}
```

#### Токен авторизации <a href="#getting-started-getting-started-with-hardware-auth-token" id="getting-started-getting-started-with-hardware-auth-token"></a>

В этом примере найдите следующую строку:

```cpp
char auth[] = "YourAuthToken";
```

Это [токен аутентификации](#4.-token-avtorizacii), который вы скопировали или отправили себе по электронной почте. Пожалуйста, проверьте свою электронную почту и скопируйте токен, а затем вставьте в кавычки.

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

```
char auth[] = "f45626c103a94983b469637978b0c78a";
```

Загрузите эскиз на плату и откройте монитор порта. Подождите, пока не увидите что-то вроде этого:

```
Blynk v.X.X.X
Your IP is 192.168.0.11
Connecting...
Blynk connected!
```

**Поздравляю! У вас все настроено! Теперь ваше оборудование подключено к серверу Blynk!**

### Мигаем <a href="#getting-started-blynking" id="getting-started-blynking"></a>

Вернитесь в приложение Blynk, нажмите кнопку и включите и выключите светодиод! Он должно мигать.

<img src="https://web.archive.org/web/20210125221527/http://docs.blynk.cc/images/button_pressed.png" alt="" width="188">

Посмотрите [другие примеры эскизов](https://github.com/blynkkk/blynk-library/tree/master/examples).

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

Например, чтобы подключить светодиод к выводу с поддержкой [ШИМ](https://docs.arduino.cc/built-in-examples/analog/Fading) на Arduino, установите виджет-ползунок для управления яркостью светодиода. Просто используйте те же шаги, что описанны выше.

\ <br>

[^1]: Крайняя версия в которой доступна регистрация в приложении Blynk v2.27.30


# Режим OTA

Режим OTA (Over-the-Air - Обновление по воздуху)

* ## ОТА <a href="#ota" id="ota"></a>

  Blynk поддерживает беспроводные обновления для таких плат как: ESP8266, NodeMCU и SparkFun Blynk. OTA пока поддерживается только для локальных серверов.

### Как это работает? <a href="#ota-how-does-it-work" id="ota-how-does-it-work"></a>

* Вам нужно использовать [обычный скетч для экспортированных приложений](https://github.com/blynkkk/blynk-library/tree/v0.6.1/examples/Blynk.Inject/Template_ESP8266) ;
* После того, как вы запустили свое оборудование, вы готовы к OTA;
* Вы можете запустить обновление прошивки для конкретного оборудования с помощью его [токена ](https://wiki.blynk.su/blynk-legacy/pages/S74rTuiYke9cWffAcOPm#4.-token-avtorizacii)или для всего оборудования.

#### Поток <a href="#ota-how-does-it-work-flow" id="ota-how-does-it-work-flow"></a>

1. Пользователь с правами администратора запускает OTA с помощью одного из HTTPS-запросов;
2. Пользователь предоставляет в HTTPS-запросе учетные данные администратора и двоичный файл встроенного ПО для обновления оборудования;
3. Когда оборудование подключается к серверу - сервер проверяет его прошивку. В случае, если дата сборки прошивки оборудования отличается от загруженной прошивки, сервер отправляет аппаратному обеспечению специальную команду с URL-адресом новой прошивки;
4. Получение URL-адреса новой версии прошивки с помощью [обработчика](https://github.com/blynkkk/blynk-library/blob/v0.6.1/examples/Blynk.Inject/Template_ESP8266/OTA.h): &#x20;

   ```clike
      BLYNK_WRITE(InternalPinOTA) {
       // Получение ссылки на файл прошивки
       // Пример: http://localhost:8080/static/ota/FUp_2441873656843727242_upload.bin
       overTheAirURL = param.asString();
       ...
     }
   ```
5. Оборудование загружает новую прошивку и начинает обновление

### Примеры команд <a href="#ota-trigger-update-for-the-specific-hardware" id="ota-trigger-update-for-the-specific-hardware"></a>

#### Запустить обновление для конкретного оборудования <a href="#ota-trigger-update-for-the-specific-hardware" id="ota-trigger-update-for-the-specific-hardware"></a>

```
curl -v -F file=@Template_ESP8266.ino.nodemcu.bin --insecure -u admin@blynk.cc:admin https://localhost:9443/admin/ota/start?token=123
```

* `Template_ESP8266.ino.nodemcu.bin`- относительный (или полный) путь к вашей прошивке;
* `--insecure`флаг для серверов с самогенерируемыми сертификатами. Вам не нужен этот флаг, если вы использовали Let's Encrypt или другие доверенные сертификаты;
* `admin@blynk.cc:admin`учетные данные администратора на вашем сервере. Это значения по умолчанию. Формат `username:password`. Вы можете изменить его в `server.properties`файле;
* [`token`](https://wiki.blynk.su/blynk-legacy/pages/S74rTuiYke9cWffAcOPm#4.-token-avtorizacii)— это идентификатор вашего оборудования, к которому вы хотите применить обновление прошивки. [Обновление прошивки будет запущено только в том случае, если устройство находится в сети](#user-content-fn-1)[^1];

#### Запустить обновление всех устройств  <a href="#ota-trigger-ota-for-all-devices" id="ota-trigger-ota-for-all-devices"></a>

Обновление для всех устройств будет запущено только при их подключении к локальному серверу.&#x20;

```
curl -v -F file=@Template_ESP8266.ino.nodemcu.bin --insecure -u admin@blynk.cc:admin https://localhost:9443/admin/ota/start
```

В этом случае OTA сработает сразу после подключения устройства к серверу. Если устройство подключено к сети, обновление прошивки будет инициировано только после повторного подключения устройства.

#### Запустить обновление для конкретного пользователя <a href="#ota-trigger-ota-for-the-specific-user" id="ota-trigger-ota-for-the-specific-user"></a>

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

```
curl -v -F file=@Template_ESP8266.ino.nodemcu.bin --insecure -u admin@blynk.cc:admin https://localhost:9443/admin/ota/start?user=pupkin@gmail.com
```

#### Запустить обновление для конкретного проекта пользователя <a href="#ota-trigger-ota-for-specific-user-and-project" id="ota-trigger-ota-for-specific-user-and-project"></a>

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

```
curl -v -F file=@Template_ESP8266.ino.nodemcu.bin --insecure -u admin@blynk.cc:admin https://localhost:9443/admin/ota/start?user=pupkin@gmail.com&project=123
```

#### Остановить обновление <a href="#ota-stop-ota" id="ota-stop-ota"></a>

```
curl -v --insecure -u admin@blynk.cc:admin https://localhost:9443/admin/ota/stop
```

### Как собрать прошивку <a href="#ota-how-to-make-firmware" id="ota-how-to-make-firmware"></a>

Для того, чтобы собрать прошивку в Arduino IDE - зайдите в меню: Скетч -> Экспорт бинарного файла.

*ВНИМАНИЕ:* ESP8266 сейчас принимает прошивку только через HTTP, а не HTTPS.

[^1]: !ВНИМАНИЕ! Обновить отправленную команду на обновление оборудования нельзя, пока не будет выполнена команда [остановки обновления](#ota-stop-ota)


