Получите данные со своих умных часов, запросите данные из Python 3 API Wrapper для Garmin Connect.

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

Недавнее исследование предсказало, что в 2027 году будет отгружено 353 миллиона умных часов — по сравнению с 51 миллионом совсем недавно, в 2017 году.

Garmin Connect — популярная платформа для отслеживания физической активности, которая позволяет пользователям отслеживать свои тренировки, шаги, сон и многое другое. API Garmin Connect позволяет разработчикам получать доступ к данным с устройств Garmin для отслеживания физической активности, включая часы с поддержкой GPS, фитнес-браслеты и смарт-часы. С помощью API разработчики могут получать данные о таких занятиях, как бег, езда на велосипеде, плавание, походы и т. д. Эти данные можно использовать для создания приложений, связанных со здоровьем и фитнесом, или для интеграции функций отслеживания физической формы в другие приложения.

Типы данных, которые может предоставить Garmin Connect API, например. :

  • Шаги
  • Спать
  • Частота сердцебиения
  • Калории
  • Расстояние
  • стресс

В этой статье мы рассмотрим пример веб-приложения Flask, в котором используется Garmin Connect Python 3 API Wrapper для получения данных о действиях пользователя (например, о шагах и сне).

Настраивать

  1. Установите python, если у вас его нет.
  2. Клонируйте этот репозиторий.
  3. Перейдите в каталог проекта:
$ cd flask-garminconnect

4. Создайте новую виртуальную среду:

Примечание. При выполнении команд вам может потребоваться ввести python3/pip3 вместо python/pip в зависимости от ваших настроек.

$ python -m venv venv
$ . venv/bin/activate

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

5. Установите зависимости, перечисленные в файле «requirements.txt»:

$ pip install -r requirements.txt

6. Создайте файл переменных среды «.env»:

$ touch .env

Файл переменных среды (.env) используется в Python для хранения конфиденциальной информации, такой как пароли, ключи API или другой информации о конфигурации, которая требуется программе для запуска, но не должна отображаться в коде или конфигурации. файлы.

7. Добавьте эти переменные, и ваш Garmin подключит «EMAIL», «PASSWORD» к файлу .env:

 FLASK_APP=app
 FLASK_ENV=development

 EMAIL = "[email protected]"
 PASSWORD = "example123"

8. Запустите приложение:

$ flask run

Понимать

В этом коде показано, как получить данные о шагах из Garmin Connect API и отобразить их в веб-приложении Flask с помощью HTML и JavaScript.

Начнем с функции init_garmin_api в файле «app.py». Эта функция инициализирует объект Garmin и выполняет вход в службу Garmin Connect, используя предоставленный адрес электронной почты и пароль. Если вход в систему выполнен успешно, функция возвращает объект Garmin. Если авторизация не удалась, функция возвращает сообщение об ошибке.

from garminconnect import Garmin

def init_garmin_api(email, password):
    try:  
        api = Garmin(email, password)
        api.login() 
    except: 
        return "Garmin Connect Server is not working!!! Please try later."
    return api

Например, чтобы получить данные «Шаги», эта строка кода извлекает данные шагов для определенной даты из API Garmin Connect. Функция get_steps_data() является частью класса Garmin из модуля garminconnect, который используется для взаимодействия с Garmin Connect API. Метод date.isoformat() вызывается для объекта datetime для преобразования даты в строковый формат, который принимается API Garmin Connect. Результирующая переменная steps_data будет содержать список словарей, где каждый словарь представляет данные шага за определенный интервал времени (обычно 15 минут) в течение дня. Данные о шагах обычно включают количество пройденных шагов, пройденное расстояние и сожженные калории за этот временной интервал.

steps_data = api.get_steps_data(date.isoformat())

Чтобы отобразить данные шагов в веб-приложении Flask, вызывается функция getSteps с параметром даты для создания URL-адреса для запроса AJAX. Затем этот URL-адрес передается функции makeAjaxCall, которая использует функцию ajax jQuery для выполнения HTTP-запроса GET для получения данных шага за указанную дату. Если запрос выполнен успешно, вызывается функция updateStepsData для обновления HTML данными шага.

function getSteps(date) {
  makeAjaxCall('/my-steps-route/' + getDateString(date), updateStepsData);
}

function makeAjaxCall(url, successFunc, errorFunc = console.log) {
  $.ajax({
    url: url,
    type: 'GET',
    success: successFunc,
    error: errorFunc,
  });
}

function updateStepsData(response) {
  $('#stepsTotal').text(response.stepstotal);
  $('#stepGoal').text(response.stepGoal);
  $('#stepsPer').text(response.stepsPer).width(response.stepsPer);
}

Сводка

В этом примере веб-приложения Flask используется API Garmin Connect для получения данных о шагах и сне на заданную дату. Функции init_garmin_api, my_steps_function, my_sleep_function, get_time и handle_error используются для взаимодействия с API и обработки любых возникающих ошибок. Функция index используется для рендеринга главной страницы веб-приложения.

Примечание: это важная веха для меня, поскольку я представляю свою дебютную статью на Medium и, кроме того, мою первую техническую статью! Я готов получать конструктивные отзывы и приветствую любые комментарии или замечания.

Добрый день!