Интеграл 4/2020

УДК 004.773

DOI 10.24411/2658-3569-2020-10085

УПРАВЛЕНИЕ «GPIO» С ПОМОЩЬЮ «VKAPI»

«GPIO» CONTROL USING «VK-API»

Крайников Александр Николаевич, Северный арктический федеральный университет им. М.В. Ломоносова, г. Архангельск

Krajnikov A.N., kpahyx@gmail.com

Банников Анатолий Анатольевич, к.т.н., доцент кафедры автоматики, робототехники и управления техническими системами, Северный арктический федеральный университет им. М.В. Ломоносова, г. Архангельск

Bannikov A.A., a.bannikov@narfu.ru

Аннотация. В статье рассматривается пример того, каким образом можно управлять пинами ввода/вывода на микрокомпьютере raspberry pi с помощью vk-api, тем самым имитирую концепт «интернет вещей»

Summary. The article discusses how you can control the I / O pins on a raspberry pi microcomputer using vk-api, thereby imitating the concept of the «Internet of Things»

Ключевые слова: raspberry pi, vk-api, dht-11, rgb, управление, интернет вещей.

Keywords: raspberry pi, vk-api, dht-11, rgb, control, internet of things.

ВВЕДЕНИЕ

К 2009 году количество устройств, подключенных к глобальной сети, превысило численность населения Земли, тем самым ознаменовался переход от эпохи «Интернет людей» к «Интернет вещей». Сейчас концепция интернета вещей используются повсеместно, а на одного человека в среднем приходится порядка 6.58 вещей, подключённых к сети интернет.

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

Мы поставили задачу реализовать включение и выключение определенных светодиодов на плате Raspberry PI 3B+, а также считывание сигналов с датчика DHT11, который позволяет измерить температуру и влажность окружающей среды. Управление реализовать через систему VK-API с использованием бота.

Решение данной задачи можно условно разделить на 3 этапа:

  • Создание бота;
  • Сборка установки;
  • Программирование бота.

Создание бота

Для того, чтобы создать бота Вконтакте есть два способа:

  • Использовать пользовательскую страничку
  • Использовать группу

Нами был выбран второй вариант. Для того чтобы создать группу нам необходимо авторизоваться в социальной сети, после перейти во вкладку «Сообщество». В верхней части, открывшейся страницы, будет доступна кнопка «Создать сообщество». В открывшемся меню выбираем пункт «Группа по интересам». Указываем любое название группы. Например, в нашем случае подойдет: «Home1.0». Выбираем любую тематику и указываем тип группы «Частная», для того, чтобы никто посторонний не мог зайти в нашу группу. Остальные пункты являются не обязательными. Нажимаем кнопку «Создать сообщество».

Мы создали свое сообщество. Далее нам требуется подключить API. Существует два типа API:

  • Long Poll API. Данный тип базируется на запросах к REST API (архитектурный стиль взаимодействия компонентов распределённого приложения в сети). Написанная далее нами программа будет отправлять запрос на сервер «Вконтакте» и получать в ответ файл обновления с какой-либо информацией.
  • Callback API. В этом случае сервер «Вконтакте» будет автоматический посылать файл обновления по мере необходимости на наш хостинг. В данной случае нет необходимости запрашивать данный файл.

Так как мы не обладаем личным хостингом, то выберем Long Poll API. Для его активации нам необходимо с главной страницы нашей группы (данная страница автоматический открывается после создания сообщества. Также данную страницу можно открывать во вкладке «сообщества», путем выбора нужного сообщества) перейти во вкладку «Управление», ссылка на которое находится в меню в правой части страницы. Далее переходимо в раздел «Работа с API». Выбираем «Long Pool API». Меняем состояние кнопки с одноименным названием на пункт «Включено». Далее переходим во вкладку «Типы событий» и ставим галочку на против пунктов «Входящее сообщение» и «Исходящее сообщение». Тем самым мы подключили системы API к сообществу.

Теперь нам нужно создать токен для управления сообществам. Токен – это альтернатива логину и пароль, но для программы. Таким образом, зная токен, программа может получить доступ к управлению сообществом. Также токен называют «Ключом доступа». Для того, чтобы создать токен нам необходимо перейти во вкладку «Ключи доступа» и нажать кнопку «Создать ключ». На подключенное к аккаунту мобильное устройство придет PUSH-уведомление (Всплывающее уведомление), на которое нужно ответить подтверждением. Далее нам нужно выбрать функционал, который будет доступен по данному токену. Для нас будет достаточно доступа к сообщениям сообщества. Ставим галку напротив данного пункта. Вследствие чего отобразится ключ(токен). Например, «d4a4cd7ac52c6fbe9ce05a22d89236f9aeb32d99e5734a019be1572d7dcc97743cf3e6dca0d284fa82e85». Данный токен необходимо скопировать и сохранить в удобном для вас месте. Далее он нам понадобиться на стадии написании программы.

Сборка установки

В нашем случае нам понабиться:

  • Микрокомпьютер Raspberry PI 3B+ и адаптер питания
  • Датчик температуры и влажности DHT11
  • 3-хцветный светодиод со встроенными резисторами.

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

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

Пин «GND» (Земля, «-») RGB светодиода (трехцветный светодиод) к пину 39 микрокомпьютера. Пин «GND» датчика «DHT11» также в пин 39 или, если вы не используете макетную плату, можно воспользоваться пином 6. Пин «S» (он же «signal», он же «Dout») в пин 7. Пин «VCC» (3.3v, «+») в пин 1 на микрокомпьютере. Следует помнить, что данный датчик получает питание от линии 3.3В и линия 5В может повредить его. Пины «R», «G» и «B» RGB светодиода следует соединить с пинами соответственно 11, 13, 15. Если ваш светодиод не имеет встроенного резистора, тогда его следует подключить самостоятельно, в противном случае светодиод может перегореть. Соответствие пина микрокомпьютера и его номера показано на рисунке 1.

Программирование

Далее нам необходимо запустить микрокомпьютер и в удобной для нас среде разработки написать код управления ботом. Для функционирования кода нам понадобится подключение нескольких модулей (библиотек), которые можно установить с помощью системы «Pip».  Пример данного кода приведен ниже. Следует понимать, что в данном коде отсутствует токен и его следует вставить самостоятельно в место, указанное соответствующим комментарием. Пример кода приведен на языке Python.

СПИСОК ЛИТЕРАТУРЫ

  1. Описание библиотеки Adafruit_Python_DHT – [Электронный ресурс] – Режим доступа URL: https://pypi.org/project/Adafruit_Python_DHT/;
  2. Описание библиотеки RPi.GPIO – [Электронный ресурс] – Режим доступа URL: https://pypi.org/project/RPi.GPIO/;
  3. Описание библиотеки vk-api – [Электронный ресурс] – Режим доступа URL: https://pypi.org/project/vk-api/;
  4. Знакомство с API ВКонтакте – [Электронный ресурс] – Режим доступа URL: https://vk.com/dev/first_guide;
  5. Саммерфилд Марк. Программирование на Python 3. Подробное руководство // Символ-Плюс 2016. C. 608.
  6. Пишем чат бота для ВКонтакте на python с помощью longpoll – [Электронный ресурс] – Режим доступа URL: https://habr.com/ru/post/428507/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *