Установка telegram на raspberry pi
У многих из нас на полках пылится купленный однажды про запас Raspberry Pi.
Использовать в качестве десктопа или сервера слабый компьютер с очень медленным I/O — удовольствие не из приятных, хотя я и держал его некоторое время как CI сервер, тонкий клиент для RDP и даже запускал на нем полноценную IntelliJ IDEA (спойлер — она работает как часы, но максимально неторопливо).
А вот в качестве базы для мелких датчик о в — прекрасно. Пусть Arduino правит бал в числе последователей, доступных плат и модулей. Зато у Rasberry Pi полноценный Linux и много больше мощности, а значит в выборе софта ограничений никаких. Большинство железа прекрасно себя чувствует на обеих платформах.
Датчики для множества простых и занимательных вещей, вроде освещенности, уровня воды, температуры, движения и даже алкоголя продаются в среднем по 150–600 рублей за штуку.
Для себя я собрал домашнюю метеостанцию с интерфейсом в Telegram, получив от этого неожиданно много фана.
Итак, сдуем пыль с малины.
Ходить по SSH на домашнюю Linux машину неудобно, небезопасно и требует много лишних телодвижений с сетью.
Бот же — идеальный вариант как для выставления интерфейса, так и для предоставления доступа к железу из закрытого сегмента сети:
Все просто. Одна большая кнопка «Сделать хорошо».
В моем случае используется высокоточный метеодатчик на сенсоре SHT3x-DIS, работающий на шине I²C в сборке от компании Амперка, собранный с удобной разводкой:
Гугление дает варианты покупки этого датчика и в виде голой платы — попрактикуйтесь в пайке ножек, если есть желание.
Исходим из того, что Raspberry Pi у нас уже в наличии и на нем установлена Raspbian (полагаю, что и с другими дистрибутивами проблем быть не должно).
Если же Pi нет, но вдруг очень захотелось, можно докинуть в корзину прямо в Амперке:
На Яндекс.Маркете можно собрать необходимое чуть дешевле вместе с более симпатичным оригинальным корпусом и блоком питания, а также взять быструю microSD карту (советую не ниже UHS Speed Class 1).
Важно не сэкономить на блоке питания. Хотя Raspberry Pi может работать и от power bank, и от любой зарядки — при вполне обычных нагрузках ядро начнет регулярно ругаться на undervoltage.
Из обязательной распиновки (и в сборке от Амперки) датчик имеет:
- питание (04 DC Power 5v),
- землю (06 Ground),
- пин ввода/вывода данных (03 SDA),
- пин тактирования шины (05 SCL).
В стандартной разводке Raspberry Pi датчик получится подключить двумя трехпроводными шлейфами, либо четырьмя одинарными проводами «мама-папа»:
Raspberry Pi является хорошим инструментом для реализации многих интересных проектов в электронике благодаря наличию мощного процессора на архитектуре ARM и Linux-подобной операционной системе. В этом проекте мы рассмотрим использование Telegram бота для обмена данными (файлы/фото/видео/аудио и др.) между платой Raspberry Pi и мобильным телефоном (смартфоном).
Одной из "продвинутых" возможностей приложения Telegram является то, что оно поддерживает ботов. Это означает, что возможностями данного приложения могут пользоваться не только люди, но и "машины". В нашем случае в роли "машины" будет выступать плата Raspberry Pi. Как только вы обучите Raspberry Pi выполнять роль Telegram бота, она сможет "сидеть в чате" с обычным человеком и "расшаривать" фото, картинки, документы и аудио файлы. Также такого бота можно натренировать чтобы он был вашим персональным помощником (Personal assistant).
Необходимые компоненты
- Плата Raspberry Pi (купить на AliExpress), подключенная к сети интернет.
- Запущенное на смартфоне приложение Telegram.
Настройка Raspberry Pi в качестве Telegram бота
Для того, чтобы ваша плата Raspberry Pi могла исполнять роль Telegram бота, выполните следующую последовательность шагов.
Шаг 1 . Установка приложения Telegram на ваш смартфон
Приложение Telegram доступно для платформ на основе операционных систем Android, IOS и даже для Windows. Скачайте его на свое устройство (смартфон), установите и пройдите простую процедуру регистрации. После этого оно будет готово к работе.
Шаг 2. Создание нового бота Telegram
В правом верхнем углу главного экрана приложения Telegram есть иконка поиска, нажмите ее и выполните поиск “botfather” ("отец ботов"). Botfather – это бот, который поможет создать вам нового бота. Нажмите в нем start и затем выберите newbot как показано на рисунке ниже. После этого Botfather попросит вас ввести параметры нового бота: имя бота и пользовательское имя бота. Заполните эти детали и запомните введенное имя пользователя (username) – оно нам понадобится в дальнейшем.
Шаг 3. Получение вашего токена (token) доступа (маркера доступа)
Мы назвали бота circuitdigest, а в качестве его пользовательского имени (username) мы использовали circuitdigestBot. После этого приложение botfather выдаст вам маркер доступа (Token for access) – это своеобразный пароль для бота, другие люди могут использовать вашего бота если они знают его ключ доступа (token key). Поэтому храните этот ключ в надежном месте и не показывайте его никому. Как только вы получили этот ключ доступа, можно переходить к работе на Raspberry Pi.
Шаг 4. Установка приложения Telegram на Raspberry Pi
Использовать Telegram бота в Raspberry Pi можно с помощью пакета на python под названием Telepot. Необходимо установить данный пакет в Raspberry Pi с помощью соответствующих команд в Lx терминале:
Итоги проекта можно в будущем использовать для управления чем-либо в своем доме или даже кормить свою собаку, когда вы уезжаете.
Что нам понадобится
Набор комплектующих не велик:
- Raspberry Pi
- 2 светодиода
- 2 резистора на 220 Ом
Установка и создание бота Телеграм
Сначала перейдите в магазин Google Play и загрузите приложение Telegram.
Когда вы откроете приложение, он спросит ваш номер телефона. Введите номер, и Telegram отправит код подтверждения. Вам нужно будет ввести код для подтверждения своей учетной записи.
После добавления номера приложение перенесет вас на главный экран, который будет выглядеть следующим образом:
Затем напишите «/start», чтобы начать общение с ботом.
После этого напишите «/newbot», чтобы запросить нового бота.
Теперь он попросит вас назвать своего нового бота.
Затем найдите бота, используя его, чтобы подтвердить, что бот создан.
Схема соединения
Подключите положительный провод красного светодиода к GPIO 21 от Raspberry Pi и подсоедините отрицательный провод красного светодиода к земле через резистор 220 Ом.
Аналогичным образом подключите положительный провод зеленого светодиода к GPIO 20 от Raspberry Pi и отрицательный вывод зеленого светодиода на землю через 220-омный резистор.
Установка правильной библиотеки в Raspbian
Нам нужно установить библиотеку телепорта в Raspbian. Введите следующую команду в терминале, чтобы её установить:
sudo pip install telepot
Объяснение кода бота Telegram
Во-первых, мы добавили необходимые библиотеки для этого проекта. Библиотека телепорта позволяет нашей "малине" общаться с ботом Telegram с использованием API. Библиотека даты и времени используется для получения даты и времени. Библиотека GPIO используется для подсветки светодиодов.
Вам нужно будет ввести свой токен бота ниже. «Bot.getMe()» будет проверять, успешно ли было установлено соединение между Pi и ботом Telegram, и напечатает ответ.
Полный код приведен ниже.
Код целиком
На этом пока всё. Вы создали свою программу для бота Телеграма и Raspberry Pi.
Raspberry Pi — одноплатный компьютер размером с банковскую карту, изначально разработанный как бюджетная система для обучения информатике, впоследствии получивший намного более широкое применение и популярность, чем ожидали его авторы.
Рассмотрим, как настроить систему Raspberry Pi.
Шаг 1: Откройте терминал Raspberry Pi
Откройте терминал Raspberry Pi и выполните следующие команды в терминале:
- Sudo apt-get update
- Sudo apt-get upgrade
- Sudo apt-get install libreadline-dev
- Sudo apt-get install libconfig-dev
- Sudo apt-get install libssl-dev lua5.2 liblua5.2-dev libevent0dev make
Шаг 2: Клонируйте репозиторий Github
Теперь нужно клонировать хранилище данных Github, выполнив следующие команды:
Подождите некоторое время — пусть установщик сделает свою работу.
- d tg
- bin/telegram-cli –k tg-server.pub –W
Шаг 3: Подключите ваш телефон
Существует множество команд, которые можно использовать в Telegram. Некоторые из которых упомянуты ниже.
Что можно делать на Raspberry Pi с установленным Telegram?
Предположим, что вы вне дома хотите проверить, выключили ли вы свою газовую плиту в квартире.
Один из вариантов — поставить какие-то газовые / температурные датчики на кухне и подключить их к микроконтроллеру. Затем подключите микроконтроллер к модулю Wi-Fi. Вам нужно будет написать полную программу для вашего микроконтроллера. Для этой цели также понадобится специальное приложение. Сложновато?
Но есть простое решение. Ваш Raspberry Pi 3 имеет встроенный Wi-Fi — нужно просто настроить Telegram, подключив датчик газа (легко сделать с Raspberry Pi).
Имеется масса сценариев, в которых вы можете использовать Telegram на Raspberry Pi.
Теперь о командах, которые вам понадобятся:
chat_with_peer: Запускает сеанс чата one-on-one (/exit or /quit для завершения этого режима).
rename_contact: Попытаться переименовать контакт.(Если у вас есть другие устройства, это вызовет битву.)
add_contact: Попытка добавить контакт в контактный лист телефона.
Multimedia
send_photo: Отправляет фотографию.
send_video: Отправляет видео.
load_photo/load_video/load_video_thumb/load_audio/load_document/load_document_thumb: Загружает фото/ видео/аудио/документы в режиме загрузки
view_photo/view_video/view_video_thumb/view_audio/view_document/view_document_thumb – loads photo/video: Загружает dir и запускает средство просмотра системного значения по умолчанию.
set_profile_photo : Загружает фотографию профиля. Фотография должна быть квадратной, иначе сервер обрежет.
Опции группового чата
chat_info: Информация о чате.
chat_del_user: Удаляет пользователя из чата.
chat_add_user: Добавляет пользователя в чат.
rename_chat: Переименовывает чат.
chat_set_photo: Устанавливает профиль чата. Те же ограничения, что и для профиля пользователя.
create_group_chat …: Создает групповой чат с пользивателями. Используйте chat_add_user для добавления пользователей. .
Поиск
search pattern: Поиск в чате.
Секретный чат
create_secret_chat : Создает секретный чат с конкретным пользователем.
visualize_key: Визуализация ключа шифрования. Вы должны сравнить его с ключом шифрования вашего партнера.
Читайте также: