Цифровая электроника для начинающих (Елисеев) - страница 37

if (timeinfo.tm_hour == 8 && timeinfo.tm_min == 0) {

...

}


Мы также используем строку “%A, %B %d %Y %H:%M:%S”, которая указывает в каком формате выводить дату и время. Например, чтобы вывести только время, достаточно написать “%H:%M:%S”. Список разных форматов можно найти здесь.


Запустим программу, и в Serial Monitor увидим на экране точное время.


Самостоятельная работа: вывести точное время на экран дисплея.


3.6 Выводим количество друзей в “Контакте”

Продолжим углубляться в тонкости Web. На этот раз мы выведем количество друзей “ВКонтакте” для заданного пользователя. Подобная задача довольно часто встречается в профессиональном программировании, когда нужно получить и отобразить данные с какого-то сайта. Поэтому рассмотрим подробнее, как это делается.


Шаг-1. Находим, как получить список друзей

Каждый крупный сайт имеет так называемый “интерфейс разработчика”, или API - Application Program Interface, набор функций, доступный программистам для доступа к данным. Набираем в гугле “vk.com get friends API” (международным языком в программировании является английский), и первая же ссылка возвращает нам нужную страницу с описанием параметров: https://vk.com/dev/friends.get.


Еще немного ищем в интернете примеры использования, и в итоге получаем, что нам нужно выполнить такой запрос: https://api.vk.com/method/friends.get?user_id=ID, где ID - это идентификатор пользователя, который можно посмотреть в подсказке к ссылке на каждой странице. Берем первый попавшийся идентификатор, например 29744451, и открываем ссылку https://api.vk.com/method/friends.get?user_id=29744451 в браузере.


Работает! Мы получили страницу, которая выглядит примерно так:


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


Шаг-2. Получение данных с сервера.

Для получения данных в Arduino есть специальный класс HTTPClient.

Код для загрузки данных выглядит так:


const char *url = "https://api.vk.com/method/friends.get?user_id=29744451";

HTTPClient http;

http.begin(url);

int http_code = http.GET();

if (http_code > 0) {

String json = http.getString();

...

}


Можно вывести данные в serial port и убедиться, что возвращается правильный список друзей. Он должен выглядеть также, как и в браузере по ссылке выше.


Шаг-3. Обработка данных

Нам не нужен весь список целиком, достаточно лишь узнать количество друзей. Для этого используем библиотеку обработки (парсинга) Json, скачать которую можно по ссылке https://github.com/bblanchon/ArduinoJson. Как обычно, файлы необходимо скачать и распаковать в папку Документы\Arduino\libraries.