- Необходимые материалы:
- Принципиальная электрическая схема:
- Программа Raspberry Python:
- Управление светодиодами с помощью бота Raspberry Pi и Telegram:
Telegram - оптимальное приложение, которое можно комбинировать с Raspberry Pi для всех наших целей мобильного управления. У него очень хорошая поддержка разработчиков, и в ближайшее время планируется выпустить множество функций, чтобы повысить производительность ботов Telegram. В нашем предыдущем уроке мы узнали, как настроить телеграмм-бота для raspberry pi, а также узнали, что нужно общаться с ним и обмениваться изображениями, документами и аудиофайлами.
Теперь мы перейдем к следующему шагу, изучив, как мы можем управлять контактами GPIO на контактах Raspberry с помощью Telegram, чтобы обеспечить некоторую аппаратную поддержку для нашего бота. В этом уроке мы подключим четыре светодиода к контактам Raspberry Pi GPIO и переключим их, используя естественный язык (например, в чате) из Telegram. Звучит интересно, правда? Приступим.
Необходимые материалы:
- Четыре светодиода (любого цвета)
- Raspberry Pi (с подключением к Интернету)
- Макетная плата
- Соединительные провода
Предварительные требования:
Прежде чем продолжить обучение, убедитесь, что ваш Raspberry Pi подключен к Интернету, и вы можете запускать программы Python на своем Pi. Также прочтите предыдущее руководство, чтобы узнать, как настроить бота Telegram с Raspberry Pi Pi, поскольку я предполагаю, что вы знакомы с этим, чтобы продолжить работу над проектом.
Если вы новичок в Raspberry Pi, следуйте нашей статье «Введение в Raspberry Pi» и другим учебным материалам по Raspberry Pi.
Принципиальная электрическая схема:
Принципиальная схема для управления светодиодами с помощью приложения Raspberry Pi и Telegram для Android представляет собой не более чем четыре светодиода и несколько соединительных проводов. Токоограничивающие резисторы нам не понадобятся, так как выводы Raspberry Pi GPIO работают на 3,3 В TTL. Следуйте приведенной ниже схеме и подключите светодиод.
Следующая таблица поможет вам определить номер контакта и номер GPIO для подключения четырех светодиодов.
Светодиодный терминал |
Пин код |
Номер GPIO |
Зеленый анод |
Пин 31 |
GPIO 6 |
Красный анод |
Штифт 33 |
GPIO 13 |
Желтый анод |
Штырь 35 |
GPIO 19 |
Белый анод |
Штырь 37 |
GPIO 26 |
Катод всех четырех |
Штырь 39 |
Земля |
Ниже представлена принципиальная схема, в которой четыре светодиода подключены в соответствии с таблицей, приведенной выше:
После подключения ваше оборудование должно выглядеть примерно так, как показано ниже.
Программа Raspberry Python:
Когда оборудование будет готово, мы можем приступить к программе Python. В этой программе мы должны прочитать данные (сообщение), отправленные от бота Telegram, и соответственно переключить светодиод. Чтобы сделать его более естественным, вместо проверки каждого предложения и жесткого кодирования этого предложения внутри нашей программы мы можем проверять слова и действовать соответственно.
Таким образом, программа будет в первую очередь проверить на два слова, они на и прочь. Обнаружив одно из этих двух слов, он будет искать другие ключевые слова, такие как белый, желтый, зеленый и красный. Соответствующий цветной светодиод будет переключаться, только если слово обнаружено. Мы также обновим строку для обнаруженных слов, чтобы отправить сообщение боту Telegram.
Полная программу можно найти в нижней части этой страницы; чуть ниже я объяснил программу, разбив ее на небольшие значимые ненужные файлы.
Чтобы эта программа работала, нам нужно, чтобы телепот был загружен и импортирован в Raspberry Pi. В нашем предыдущем руководстве мы уже загрузили телепорт в нашу Raspberry Pi, поэтому теперь нам просто нужно импортировать его в нашу программу вместе с библиотекой GPIO, как показано ниже.
импортировать RPi.GPIO как GPIO импортировать телепот из telepot.loop импортировать MessageLoop
Мы будем контролировать светодиодные индикаторы с помощью этой программы, и цвета светодиодов будут белым, желтым, красным и зеленым. Они подключаются к выводам, показанным на принципиальной схеме; Давайте определим имена контактов для этих светодиодов на основе их цвета, чтобы использовать их в программе.
белый = 26 желтый = 19 красный = 13 зеленый = 6
Следующим шагом будет определение всех этих светодиодных контактов как выходных контактов и определение их как отключенных по умолчанию с помощью следующих строк.
# LED Белый GPIO.setup (белый, GPIO.OUT) GPIO.output (белый, 0) # Первоначально выключен # LED Желтый GPIO.setup (желтый, GPIO.OUT) GPIO.output (желтый, 0) # Первоначально выключен # LED Красный GPIO.setup (красный, GPIO.OUT) GPIO.output (красный, 0) # Первоначально выключен # Светодиод зеленый GPIO.setup (зеленый, GPIO.OUT) GPIO.output (зеленый, 0) # Первоначально выключен
Как мы узнали в нашем предыдущем руководстве, все действия, которые должен выполнять бот Raspberry, будут определены внутри действия функции. Здесь мы должны заставить бота прослушивать сообщение, отправленное с мобильного телефона, сравнивать его с некоторыми ключевыми словами и соответственно включать светодиод.
Для каждого сообщения, которое мы отправляем с мобильного телефона, будет указан идентификатор чата и команда. Этот идентификатор чата требуется программе, чтобы ответить отправителю. Итак, мы сохраняем идентификатор чата и сообщение, как показано ниже.
chat_id = msg command = msg
Теперь все, что мы отправляем с телефона, будет сохранено в виде строки в переменной command . Итак, все, что нам нужно сделать, это проверить ключевые слова в этой переменной. В Python есть команда, которая упрощает работу. Например, если нам нужно проверить, присутствует ли слово «on» в строке, хранящейся в командной переменной, мы можем просто использовать следующую строку.
если в команде 'on':
Точно так же мы проверяем все ключевые слова, как только мы получаем «on», мы переходим к проверке, какой цвет упомянул пользователь. Это также делается теми же командами путем сравнения одних и тех же ключевых слов. Мы также обновляем строку с именем message, на которую можно ответить пользователю как статусное сообщение.
if 'on' в команде: message = "Включено", если 'белый' в команде: message = message + "white" GPIO.output (белый, 1) если 'желтый' в команде: message = message + "yellow" GPIO.output (желтый, 1), если «красный» в команде: message = message + «красный» GPIO.output (красный, 1), если «зеленый» в команде: message = message + «green» GPIO.output (зеленый, 1) если в команде 'all': message = message + "all" GPIO.output (белый, 1) GPIO.output (желтый, 1) GPIO.output (красный, 1) GPIO.output (зеленый, 1) message = message + "свет (ы)" telegram_bot.sendMessage (chat_id, message)
Как показано выше, мы ищем такие ключевые слова, как «зеленый», «белый», «красный», «желтый» и «все» и «Включен» только для этого конкретного светодиода. Как только работа будет выполнена, мы отправим пользователю сообщение о том, что только что произошло. Таким же способом можно хорошо выключить свет.
если в команде «выключено»: message = «Выключено», если в команде «белый»: сообщение = сообщение + «белый» GPIO. выход (белый, 0) если в команде «желтый»: сообщение = сообщение + «желтый» GPIO.output (желтый, 0), если «красный» в команде: message = message + «красный» GPIO.output (красный, 0), если «зеленый» в команде: message = message + «green» GPIO.output (зеленый, 0) если в команде 'all': message = message + "all" GPIO.output (белый, 0) GPIO.output (желтый, 0) GPIO.output (красный, 0) GPIO.output (зеленый, 0) message = message + "свет (ы)" telegram_bot.sendMessage (chat_id, message)
Управление светодиодами с помощью бота Raspberry Pi и Telegram:
Подключите светодиоды и запустите вашу программу на python. Убедитесь, что вы изменили адрес токена для своего бота. И начните вводить желаемые команды. Например, чтобы включить красный и желтый свет, вы можете использовать любую из следующих команд.
1. включите красный и желтый свет
2. включите красный и желтый цвет справа
3. На красном и желтом
4.Please положил на в желтый и красный свет
Как видите, бот ищет только ключевые слова и игнорирует другие слова в предложении, так что вы можете говорить с ним естественным образом. Полную работу проекта можно найти в видео в конце этой страницы.
Преуспевать! поиграйте со своим проектом и получайте удовольствие. Теперь вы можете вывести его на новый уровень. Объединяя оба руководства, у нас есть возможность управлять любым оборудованием с нашего смартфона в любой точке мира, а также получать входные данные / результаты от нашего Raspberry Pi в форме сообщения, аудио, изображения и даже в виде документа. Если вы замените светодиоды на реле и приборы переменного тока, тогда это может быть домашняя автоматизация, управляемая смартфоном. Итак, используйте свое творчество и создавайте свои собственные крутые проекты…
Надеюсь, вам понравился проект, и вам понравилось создавать что-то подобное. Сообщите мне, если у вас возникнут проблемы, через раздел комментариев, и я буду рад вам помочь. Также поделитесь со мной своей крутой идеей и давайте посмотрим, что мы можем построить.