Главные новости последнего месяца (апрель 2020) практически во всех странах – коронавирус Covid-19. В данном проекте описывается маленький гаджет, который поможет вам быть в курсе о ситуации в вашей стране по коронавирусу. Естественно мониторинг Covid-19 выбран так как это сейчас у всех на слуху, а подобным образом можно выводить любую статистическую информацию с интернета – погоду, курсы валют и акций, кол-во дней до какого-либо события и т.д.
В данном проекте отображается в реальном времени вся статистика о случаях заболевания, смерти и выздоровления людей от коронавируса COVID-19. За основу проекта взят контроллер Wemos D1 Mini Pro, который основан модуле ESP8266, который в свою очередь парсит данные с worldometers через API-интерфейс ThingSpeak. Звучит сложно? Но на самом деле все очень просто и ниже вы в этом убедитесь! Для отображения данных я использовал 0,96-дюймовый OLED-дисплей.
Итак, нам понадобится:
- Wemos D1 Mini Pro (AliExpress ~ 3$)
- OLED Display (AliExpress ~1.5$)
- Макетная плата (AliExpress)
- Аккумулятор 18650 (AliExpress)
- Держатель аккумулятора 18650 (AliExpress)
- Выключатель и соединительные провода
OLED-дисплей подключается к плате Wemos по шине I2C. Не вижу смысла описывать это мероприятие, т.к. по данному дисплею все очень досконально разжевано в этой статье.
Поэтому вся схема подключений до безобразия проста:
Подключение OLED к Wemos:
VCC -> VCC
GND - > GND
SCL-> D1
SDA -> D2
В качестве питания я использовал Li-Ion аккумулятор форм-фактора 18650. Выводы с держателя аккумулятора 18650 через выключатель питания подсоединяются к пинам 5V и GND платы Wemos.
Ну а теперь настало самое интересное: настройки ThingSpeak.
Сперва вам необходимо зарегистрироваться на сайте https://thingspeak.com/
Имейте ввиду, что также понадобиться зарегистрироваться и на MathWorks.
Затем вверху нажимаем «New ThingHTTP».
Откроется форма с кучей полей для заполнения, но нам нужны всего три:
- Имя проекта (на ваш выбор)
- URL-адрес: https://www.worldometers.info/coronavirus/
- Parse String: строка для парсинга. Ниже я расскажу подробнее.
Заходим на сайт статистических данных по коронавирусу: https://www.worldometers.info/coronavirus/
Находим там свою страну.
Затем щелкаем по названию страны и переходим на страницу метрики:
Здесь отображается три счетчика:
1. Кол-во зараженных (Coronavirus Cases)
2. Умерло (Deaths)
3. Вылечились (Recovered)
Выделяем цифры нужного нам счетчика. К примеру Coronavirus Cases:
Щелкаем по выделенному правой кнопкой мыши и в контекстном меню выбираем «Посмотреть код». Сбоку или снизу откроется панель разработчика с HTML-кодом данного элемента и страницы. Я буду показывать на примере самого популярного браузера: Google Chrome. В других браузерах названия и меню могут быть немного другими, но смысл остается таким же.
Затем щелкаем по строке правой кнопкой мыши и в контекстном меню кликаем по Copy -> Copy XPath. Вообще Xpath это декларативный язык запросов к элементам xml или (x)html документа. Говоря простым языком это путь в иерархии к элементу.
Затем возвращаемся на сайт ThingSpeak и в настройках ThingHTTP вставляем полученный XPath в поле Parse String.
Сохраняем. Проделываем тоже самое для Deaths и Recovered. В итоге должно получиться примерно так:
Названия полей не важны, главное что нам потом понадобиться это Api Key.
Программный код
Скетч прикреплен внизу к статье. Также понадобиться библиотека для OLED-дисплея, которую можно взять на GitHub.
Для использования Wemos D1 необходима среда разработки Arduino IDE с ESP8266.
В исходном коде нужно будет заменить следующие строки:
- SSID и пароль вашего домашнего маршрутизатора
- Три строки с Api Key, которые нужно скопировать с ThingHTTP.
После компиляции скетча и загрузки кода в плату должно получиться так:
Подобным образом можно парсить и выводить практически любую информацию из интернета.
На этом все. Надеюсь, что цифры заболевших не будут увеличиваться, а больным пожелаю скорейшего выздоровления! И никому не болеть!
Тема на форуме по коронавирусу Covid-19.
Комментарии (3) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация