精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

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

科技觀察員 ? 來源:circuitdigest ? 作者:阿斯文斯·拉吉 ? 2022-11-30 17:22 ? 次閱讀

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

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

所需材料:

四個指示燈(任何顏色)

樹莓派(帶互聯網連接)

面包板

連接線

先決條件:

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

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

電路圖:

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

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

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

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

pYYBAGOHIOyAB7KyAACmYU1fQ_Q374.png

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

poYBAGOHIO6AOp7nAADWg6IagZI936.jpg

Raspberry Python Program:

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

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

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

為了使該程序正常工作,我們需要將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 機器人必須完成的所有操作都將在函數操作中定義。在這里,我們必須讓機器人收聽從移動設備發送的消息,將其與某些關鍵字進行比較并相應地切換 LED。

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

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

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

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

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)

使用 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)



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

    關注

    116

    文章

    1699

    瀏覽量

    105531
  • gpio引腳
    +關注

    關注

    0

    文章

    7

    瀏覽量

    2624
收藏 人收藏

    評論

    相關推薦

    樹莓控制gpio

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

    如何在樹莓派上安裝系統

    如何在樹莓派上安裝系統
    發表于 11-17 16:17

    樹莓派MCC118

    +,B +,2和3型號上。HAT 配置HAT配置參數已存儲在采集卡EEPROM中,允許樹莓派在連接HAT時自動設置GPIO引腳。可堆疊HATs最多可將8個MCC HAT堆疊到單個樹莓
    發表于 01-21 09:22

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

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

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

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

    樹莓gpio接口及編程方法

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

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

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

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

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

    怎樣在樹莓派上設置Telegram Bot

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

    如何在樹莓派上運行Fedora

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

    如何將ubuntu安裝到樹莓派上

    本文將描述如何將ubuntu安裝到樹莓派上。環境介紹:
    的頭像 發表于 08-08 14:49 ?2798次閱讀

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

    電子發燒友網站提供《用網頁控制樹莓派的GPIO引腳.zip》資料免費下載
    發表于 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

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

    如何在樹莓派上面安裝Windows

    早期,想要在樹莓派上面安裝Windows一直是個比較麻煩的事情,下載系統鏡像,燒錄、還有一系列復雜的配置。
    的頭像 發表于 09-12 09:54 ?1784次閱讀
    如何在<b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>面安裝Windows

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

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