在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用Telegram控制樹莓派上的GPIO引腳

科技觀察員 ? 來源:circuitdigest ? 作者:阿斯文斯·拉吉 ? 2022-11-30 17:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

電報是與樹莓派結合的最佳應用程序,用于我們所有的移動控制目的。它具有非常好的開發(fā)人員支持,并且計劃很快發(fā)布許多功能,以提高電報機器人的性能。

現在,我們將繼續(xù)下一步,學習如何使用 Telegram 控制樹莓引腳上的 GPIO 引腳,以便我們?yōu)闄C器人提供一些硬件支持。在本教程中,我們將四個 LED 連接到 Raspberry Pi GPIO 引腳,并使用 Telegram 中的自然語言(像聊天一樣)切換它們。聽起來很有趣吧?讓我們開始吧。

所需材料:

四個指示燈(任何顏色)

樹莓派(帶互聯(lián)網連接)

面包板

連接線

先決條件:

在繼續(xù)本教程之前,請確保您的樹莓派已連接到互聯(lián)網,并且可以在 Pi 上運行 python 程序。另請閱讀前面的教程以了解如何使用Raspberry Pi Pi設置Telegram機器人,因為我假設您熟悉這些東西以繼續(xù)進行該項目。

如果您不熟悉樹莓派,請按照我們的樹莓派介紹文章和其他樹莓派教程進行操作。

電路圖:

使用Raspberry Pi和Telegram Android應用程序控制LED的電路圖無非是四個LED和一些連接線。我們不需要限流電阻,因為Raspberry Pi GPIO引腳在3.3V TTL上工作。按照下面的電路連接您的 LED。

下表將幫助您確定連接四個 LED 的引腳編號和 GPIO 編號。

發(fā)光二極管端子 引腳編號 通用信息辦公室編號
綠色陽極 引腳 31 GPIO 6
紅色陽極 引腳 33 通用信息總局 13
黃色陽極 引腳 35 GPIO 19
白色陽極 引腳 37 GPIO 26
所有四個陰極 引腳 39

下面是根據上表連接四個LED的電路圖:

pYYBAGOHIOyAB7KyAACmYU1fQ_Q374.png

連接后,您的硬件設置應如下所示。

poYBAGOHIO6AOp7nAADWg6IagZI936.jpg

Raspberry Python Program:

硬件準備就緒后,我們可以繼續(xù)進行 Python 程序。在這個程序中,我們必須讀取從電報機器人發(fā)送的數據(消息)并相應地切換 LED。為了使它更自然,我們可以檢查單詞并相應地進行相應的操作,而不是檢查每個句子并在程序中對這些句子進行硬編碼。

因此,程序將主要檢查兩個單詞,它們是打開和關閉的。一旦檢測到這兩個單詞中的任何一個,它將查找其他關鍵字,如白色、黃色、綠色和紅色。僅當檢測到單詞時,才會切換相應的顏色 LED。我們還將更新檢測到的單詞的字符串,以將消息發(fā)送回電報機器人。

完整的程序可以在此頁面底部找到;就在下面,我通過將程序分解為有意義的小垃圾來解釋該程序。

為了使該程序正常工作,我們需要將telepot下載并導入到我們的樹莓派中。在我們之前的教程中,我們已經在樹莓派中下載了傳送,所以現在我們只需要將其與 GPIO 庫一起導入我們的程序,如下所示。

import RPi.GPIO as GPIO
import telepot
from telepot.loop import MessageLoop
我們將使用此程序控制 LED 燈,LED 的顏色將為白色、黃色、紅色和綠色。它們連接到電路圖所示的引腳;讓我們根據顏色定義這些LED的引腳名稱,以便在程序中使用它們。

white = 26
yellow = 19
red = 13
green = 6
下一步是將所有這些 LED 引腳定義為輸出引腳,并使用以下行將它們定義為默認關閉。

#LED White
GPIO.setup(white, GPIO.OUT)
GPIO.output(white, 0) #Off initially
#LED Yellow
GPIO.setup(yellow, GPIO.OUT)
GPIO.output(yellow, 0) #Off initially
#LED Red
GPIO.setup(red, GPIO.OUT)
GPIO.output(red, 0) #Off initially
#LED green
GPIO.setup(green, GPIO.OUT)
GPIO.output(green, 0) #Off initially
正如我們在前面的教程中學到的那樣,Raspberry 機器人必須完成的所有操作都將在函數操作中定義。在這里,我們必須讓機器人收聽從移動設備發(fā)送的消息,將其與某些關鍵字進行比較并相應地切換 LED。

對于我們從移動設備發(fā)送的每條消息,都會有一個聊天ID和命令。程序需要此聊天 ID 才能回復發(fā)件人。因此,我們保存聊天ID和消息,如下所示。

chat_id = msg['chat']['id']
command = msg['text']

現在,我們從手機發(fā)送的任何內容都將在變量命令中保存為字符串。因此,我們所要做的就是檢查此變量中的關鍵字。Python有一個命令使事情變得簡單。例如,如果我們必須檢查存儲在命令變量中的字符串中是否存在單詞“on”,我們可以簡單地使用以下行。

if 'on' in command:
同樣,我們檢查所有關鍵字,一旦收到“on”,我們繼續(xù)檢查用戶提到的顏色。這也是通過比較相同的關鍵字來使用相同的命令來完成的。我們還更新名為 message 的字符串,該字符串可以作為狀態(tài)消息回復給用戶。

if 'on' in command:
message = "Turned on "
if 'white' in command:
message = message + "white "
GPIO.output(white, 1)
if 'yellow' in command:
message = message + "yellow "
GPIO.output(yellow, 1)
if 'red' in command:
message = message + "red "
GPIO.output(red, 1)
if 'green' in command:
message = message + "green "
GPIO.output(green, 1)
if 'all' in command:
message = message + "all "
GPIO.output(white, 1)
GPIO.output(yellow, 1)
GPIO.output(red, 1)
GPIO.output(green, 1)
message = message + "light(s)"
telegram_bot.sendMessage (chat_id, message)
如上所示,我們僅查找“綠色”、“白色”、“紅色”、“黃色”和“全部”和“打開”等關鍵字。工作完成后,我們會向用戶發(fā)送一條關于剛剛發(fā)生的事情的消息。同樣的方法可以用來關燈。

if 'off' in command:
message = "Turned off "
if 'white' in command:
message = message + "white "
GPIO.output(white, 0)
if 'yellow' in command:
message = message + "yellow "
GPIO.output(yellow, 0)
if 'red' in command:
message = message + "red "
GPIO.output(red, 0)
if 'green' in command:
message = message + "green "
GPIO.output(green, 0)
if 'all' in command:
message = message + "all "
GPIO.output(white, 0)
GPIO.output(yellow, 0)
GPIO.output(red, 0)
GPIO.output(green, 0)
message = message + "light(s)"
telegram_bot.sendMessage (chat_id, message)

使用 Raspberry Pi 和 Telegram bot 控制 LED:

連接您的 LED 并在 python 上啟動您的程序。確保已更改機器人的令牌地址。并開始輸入您想要的命令。例如,要打開紅燈和黃燈,您可以使用以下命令中的任何一個。

1.開啟紅黃燈

2.打開紅色和黃色右邊

3.關于紅色和黃色

4.請亮起黃燈和紅燈

什么不是。

如您所見,機器人僅查找關鍵字,并會忽略句子中的其他單詞,這樣您就可以自然地與之交談。該項目的完整工作可以在本頁末尾的視頻中找到。

pYYBAGOHIO-AYVJyAADNcV4r1qQ152.jpg

import time, datetime

import RPi.GPIO as GPIO

import telepot

from telepot.loop import MessageLoop


white = 26

yellow = 19

red = 13

green = 6


now = datetime.datetime.now()

GPIO.setmode(GPIO.BCM)

GPIO.setwarnings(False)





#LED White

GPIO.setup(white, GPIO.OUT)

GPIO.output(white, 0) #Off initially

#LED Yellow

GPIO.setup(yellow, GPIO.OUT)

GPIO.output(yellow, 0) #Off initially

#LED Red

GPIO.setup(red, GPIO.OUT)

GPIO.output(red, 0) #Off initially

#LED green

GPIO.setup(green, GPIO.OUT)

GPIO.output(green, 0) #Off initially



def action(msg):

chat_id = msg['chat']['id']

command = msg['text']


print 'Received: %s' % command


if 'on' in command:

message = "Turned on "

if 'white' in command:

message = message + "white "

GPIO.output(white, 1)

if 'yellow' in command:

message = message + "yellow "

GPIO.output(yellow, 1)

if 'red' in command:

message = message + "red "

GPIO.output(red, 1)

if 'green' in command:

message = message + "green "

GPIO.output(green, 1)

if 'all' in command:

message = message + "all "

GPIO.output(white, 1)

GPIO.output(yellow, 1)

GPIO.output(red, 1)

GPIO.output(green, 1)

message = message + "light(s)"

telegram_bot.sendMessage (chat_id, message)



if 'off' in command:

message = "Turned off "

if 'white' in command:

message = message + "white "

GPIO.output(white, 0)

if 'yellow' in command:

message = message + "yellow "

GPIO.output(yellow, 0)

if 'red' in command:

message = message + "red "

GPIO.output(red, 0)

if 'green' in command:

message = message + "green "

GPIO.output(green, 0)

if 'all' in command:

message = message + "all "

GPIO.output(white, 0)

GPIO.output(yellow, 0)

GPIO.output(red, 0)

GPIO.output(green, 0)

message = message + "light(s)"

telegram_bot.sendMessage (chat_id, message)





telegram_bot = telepot.Bot('470583174:AAG7MPZc93qchp-tjqA_K2meRYcQiOR7X7Y')

print (telegram_bot.getMe())


MessageLoop(telegram_bot, action).run_as_thread()

print 'Up and Running....'


while 1:

time.sleep(10)



聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 樹莓派
    +關注

    關注

    121

    文章

    1995

    瀏覽量

    107369
  • gpio引腳
    +關注

    關注

    0

    文章

    8

    瀏覽量

    2717
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何在樹莓派上安裝并運行 Arduino 集成開發(fā)環(huán)境!

    使用樹莓派單板計算機,你可以運行各種應用程序,包括廣受歡迎的Arduino集成開發(fā)環(huán)境(IDE)。這意味著你可以用它輕松地為通過USB連接到樹莓派計算機的微控制器編程,以創(chuàng)建交互式電子項目。下面
    的頭像 發(fā)表于 07-01 17:41 ?965次閱讀
    如何在<b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>安裝并運行 Arduino 集成開發(fā)環(huán)境!

    樹莓控制gpio

    樹莓派在哪里編寫程序控制gpio引腳
    發(fā)表于 07-23 09:05

    通過Python RPi.GPIO控制樹莓引腳

    零、匯總通過Python RPi.GPIO 控制樹莓引腳輸出高低電平、脈沖電平驅動器接收接收樹莓派信號,驅動57步進電機工作一、
    發(fā)表于 08-31 07:59

    HiHope的產品,是否有類似于樹莓派的GPIO引腳的設計?

    【對比樹莓派】使用過樹莓派產品的人都知道:樹莓派上GPIO引腳(如下圖)。通過
    發(fā)表于 07-14 10:40

    樹莓gpio接口及編程方法

    GPIO(GeneralPurposeI/OPorts)意思為通用輸入/輸出端口,通俗地說,就是一些引腳,可以通過它們輸出高低電平或者通過它們讀入引腳的狀態(tài)-是高電平或是低電平。GPIO
    發(fā)表于 11-22 11:54 ?6.6w次閱讀

    樹莓派上MAX7219的字符驅動程序編寫

    本文主要介紹了在樹莓派上MAX7219的字符驅動程序編寫。拿到MAX7219驅動的LED矩陣,第一件事是先連接并嘗試顯示圖案。使用MAX7219除了需要提供GND以及VCC外,只需要再提供三根引腳
    發(fā)表于 01-17 11:16 ?7391次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>MAX7219的字符驅動程序編寫

    怎樣在樹莓派上使用Telegram發(fā)送和接收消息

    Telegram是Android,iOS和Windows上提供的即時消息服務電話。
    的頭像 發(fā)表于 07-31 17:52 ?6155次閱讀

    怎樣在樹莓派上設置Telegram Bot

      我希望本教程可以幫助您首次在Raspberry Pi上設置Telegram Bot。正如我所說,這僅僅是一個開始。只要您可以與Pi進行通信,就可以告訴它做任何您想做的事,也可以告訴它告訴您它想做的事。
    的頭像 發(fā)表于 09-26 15:33 ?3487次閱讀

    如何在樹莓派上運行Fedora

    樹莓派基金會這幾年來生產了很多型號。本文的安裝過程已經在第三代樹莓派上進行了測試:3B v1.2 和 B+(較舊的 樹莓派 2 和新的 樹莓
    的頭像 發(fā)表于 09-08 14:12 ?4058次閱讀

    如何將ubuntu安裝到樹莓派上

    本文將描述如何將ubuntu安裝到樹莓派上。環(huán)境介紹:
    的頭像 發(fā)表于 08-08 14:49 ?3236次閱讀

    用網頁控制樹莓派的GPIO引腳

    電子發(fā)燒友網站提供《用網頁控制樹莓派的GPIO引腳.zip》資料免費下載
    發(fā)表于 11-16 14:57 ?1次下載
    用網頁<b class='flag-5'>控制</b><b class='flag-5'>樹莓</b>派的<b class='flag-5'>GPIO</b><b class='flag-5'>引腳</b>

    樹莓派上的Kubernetes

    電子發(fā)燒友網站提供《樹莓派上的Kubernetes.zip》資料免費下載
    發(fā)表于 11-17 11:19 ?0次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>的Kubernetes

    樹莓gpio有什么用,樹莓gpio接口及編程方法

    /Output,通用輸入/輸出)是樹莓派提供的一組可編程的引腳,是樹莓派與外部世界進行交互的重要橋梁。通過GPIO,用戶可以控制外部電路,讀
    的頭像 發(fā)表于 10-22 18:09 ?2644次閱讀

    GPIO樹莓派中的應用

    直接控制和讀取外部硬件設備的狀態(tài)。 1. GPIO簡介 GPIO樹莓派上用于與外部世界交互的一組引腳
    的頭像 發(fā)表于 01-09 09:41 ?818次閱讀

    你真的懂樹莓派5嘛?樹莓派5引腳圖全面指南:理解GPIO引腳及其功能!

    樹莓派5上的GPIO通用輸入/輸出(GPIO引腳樹莓派上的物理連接器,允許
    的頭像 發(fā)表于 07-04 15:27 ?468次閱讀
    你真的懂<b class='flag-5'>樹莓</b>派5嘛?<b class='flag-5'>樹莓</b>派5<b class='flag-5'>引腳</b>圖全面指南:理解<b class='flag-5'>GPIO</b><b class='flag-5'>引腳</b>及其功能!
    主站蜘蛛池模板: 欧美69xx性欧美 | 亚洲欧美在线播放 | 日韩亚| 色天天综合色天天碰 | 美女张开大腿让男人捅 | 她也啪97在线视频 | 91md天美精东蜜桃传媒在线 | 亚洲精品综合网在线8050影院 | 在线视频久久 | 成人黄色网址 | 美日韩毛片 | 四虎最新网 | 免费观看在线永久免费xx视频 | 天堂资源 | 久久伊人成人 | 日日干干夜夜 | 国产精品久久精品牛牛影视 | 亚洲国产精品综合久久2007 | 久久亚洲国产成人精品性色 | 色播影院性播免费看 | 天堂网在线最新版官网 | 国产美女久久 | 在线观看亚洲一区 | 色色色色色色色色色色色色色色 | 欧美性xxxx交 | 国产一区二区中文字幕 | 97色吧| 久久婷婷婷 | 国产精品 色 | 又大又粗进出白浆直流动态图 | 天天做天天操 | 亚洲精品视频免费 | 天天狠狠干 | 久久婷婷午色综合夜啪 | 五月在线观看 | 丁香五六月婷婷 | 国产无套视频在线观看香蕉 | 天堂在线www天堂中文在线 | 亚洲午夜久久久精品影院视色 | 欧美色欧美亚洲高清在线视频 | 日本三级视频 |