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

delay(1000);

Serial.print(".");

WiFi.begin(ssid, password);

}

Serial.println("");

Serial.println("WiFi connected!");

}


void loop() {

const char *url = "https://www.googleapis.com/youtube/v3/channels?id=UCzz4CoEgSgWNs9ZAvRMhW2A&part=statistics&key=XXXXXXXXXX";

Serial.println("Connecting to www.googleapis.com");


HTTPClient http;

http.begin(url);

int httpCode = http.GET();

if (httpCode > 0) {

Serial.print("httpCode: "); Serial.println(httpCode);

String json = http.getString();

// Парсинг Json

DynamicJsonBuffer jsonBuffer(16*1024);

JsonObject& parsed = jsonBuffer.parseObject(json);

if (parsed.success()) {

JsonArray& items = parsed["items"];

if (items.size()> 0) {

JsonObject& statistics = items[0]["statistics"];

long subscriberCount = statistics["subscriberCount"];

Serial.print("Number of subscribers: ");

Serial.println(subscriberCount);

}

} else {

Serial.println("Json parsing error");

}

} else {

Serial.println("HTTP request error");

Serial.println(httpCode);

}

http.end();


// Пауза

delay(120000);

}


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


При запуске программы данные будут выведены в Serial Monitor:


Самостоятельная работа: По аналогии с вышенаписанным, получить число просмотров для видеоролика на youtube. Для этого воспользоваться следующей функцией из Google API:


https://www.googleapis.com/youtube/v3/videos?part=statistics&id=ID&key=XXXX


(здесь ID - это идентификатор видеоролика, XXXX - Google API Key)


Функция вернет json, который выглядит примерно так:


{


"kind": "youtube#videoListResponse",


"etag": "\"_gJQceDMxJ8gP-8T2HLXUoURK8c/mISbZAYZi79hOI4WFXbLXPUphmg\"",


"items": [


{


"kind": "youtube#video",


"etag": "\"_gJQceDMxJ8gP-8T2HLXUoURK8c/PoZyfbkQEtIkGNfjDsAafjr_R08\"",


"id": "CizKnuwvXXg",


"statistics": {


"viewCount": "184277",


"likeCount": "8585",


"dislikeCount": "212",


"favoriteCount": "0",


"commentCount": "1349"


}


}


]


}


Необходимо исправить в коде обработку json, чтобы получить интересующие нас поля.


При желании можно вывести данные на OLED-дисплей, сделав автономно работающее устройство.



3.8 Запускаем собственный Web-сервер

Мы уже умеем получать и обрабатывать данные с различных серверов. Настала пора двигаться дальше - мы запустим на ESP32 собственный сервер. Его можно будет открыть в браузере, введя IP-адрес платы, подключенной к WiFi-сети. А если настроить статический IP-адрес и перенаправление портов на маршрутизаторе, то можно будет получить доступ к нашему серверу через Интернет, с любой точки земного шара!