衡阳派盒市场营销有限公司

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

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

3天內不再提示

使用Adafruit IO作為MQTT控制Raspberry Pi GPIO的AC設備

科技觀察員 ? 來源:circuitdigest ? 作者:Rishabh Jain ? 2022-09-01 16:30 ? 次閱讀

在本教程中,我們將使用 Adafruit IO 作為 MQTT 代理來控制連接到 Raspberry Pi GPIO 的 AC 設備。

所需組件

安裝了 Raspbian Stretch 的 Raspberry Pi。

繼電器模塊

電燈泡

跳線

在這里,我們將使用 SSH 訪問筆記本電腦上的 Raspberry Pi。您可以在筆記本電腦上使用 VNC 或遠程桌面連接,或者可以將您的 Raspberry pi 連接到顯示器。

電路原理

這個帶有 MQTT 云和樹莓派物聯網控制家電的電路圖很簡單,只需在樹莓派的 GPIO 引腳 35 上連接一個帶有繼電器模塊的燈泡。

poYBAGMQbOiARbUtAAEGtMapGzc982.png

pYYBAGMQbOSACJgVAAOv-ZWko8o183.png

在樹莓派上安裝 MQTT 云庫

這里Adafruit IO 平臺與 Raspberry Pi 一起用作 MQTT 代理。正如我們在之前的教程中多次使用Adafruit IO平臺一樣,我們可以在 Raspberry Pi 中使用它。

制作儀表板后,在 Raspberry Pi 中安裝一些庫以開始使用 MQTT。

1.首先,通過發出以下命令更新您的 Pi 和 Python

sudo apt-get update

sudo apt-get upgrade

sudo pip3 install --upgrade setuptools

2. 現在,使用以下命令安裝 Rpi.gpio 和 Adafruit blink 庫

sudo pip3 install RPI.GPIO

sudo pip3 install adafruit-blinka

3. 使用以下命令安裝 Adafruit IO 庫

sudo pip3 安裝 adafruit-io

4. 使用以下命令從 github 克隆 adafruit 示例

git 克隆 https://github.com/adafruit/Adafruit_IO_Python.git

5. 然后,通過在終端中輸入以下命令導航到示例文件夾:

cd Adafruit_IO_Python/examples/basics

如果你不確定你在哪個目錄,你可以通過運行 pwd來檢查。

6. 對于此文件夾中的所有示例,您需要設置 ADAFRUIT_IO_KEY 和 ADAFRUIT_IO_USERNAME,這可以從 Adafruit 儀表板中找到。如下所示

poYBAGMQbOCAQUxJAAEBbrfIwWY757.png

切換 Adafruit IO 儀表板上的按鈕,您應該在 Pi 的終端中看到以下內容。

7. 現在,使用nano編輯器打開subscribe.py文件。輸入以下命令打開它

須藤納米訂閱.py

我們必須修改這個程序來控制儀表板上的任何 GPIO。

MQTT控制樹莓派GPIO的編碼說明

首先,導入所有必需的庫以使用 GPIO 引腳和 Adafruit MQTT 客戶端。

將 RPi.GPIO 導入為 GPIO
從 Adafruit_IO 導入sys導入 MQTTClient

現在,設置 GPIO 模式并定義 LED 引腳號并設置為輸出。

GPIO.setmode(GPIO.BOARD) 
GPIO.setwarnings(False) 
ledPin = 12 
GPIO.setup(ledPin, GPIO.OUT)

接下來,我們必須設置在創建儀表板時找到的 AIO 密鑰和用戶名。

ADAFRUIT_IO_KEY = 'YOUR_AIO_KEY' 
ADAFRUIT_IO_USERNAME = 'YOUR_AIO_USERNAME'

輸入您為打開和關閉燈而提供的提要名稱。在這里,它是“光”。

FEED_ID = '光'

現在,定義一個在有事件發生時將被調用的函數。因此,我們將使用client.subscribe(FEED_ID)訂閱 Feed

def connected(client): 
    client.subscribe(FEED_ID) 
    print('Waiting for feed data...')

訂閱提要后,我們必須檢查新值并將其存儲到有效負載變量中。為此消息函數被調用。因此,每當有效載荷變量中有“1”時,將 LED 引腳設為高電平,“0”將其設為低電平。

def message(client, feed_id, payload): 
  print('Feed {0} received new value: {1}'.format(feed_id, payload)) 
  if payload == 1: 
       GPIO.output(ledPin, GPIO.HIGH) 
else :
      GPIO.輸出(ledPin,GPIO.LOW)

現在,創建一個 MQTT 客戶端來連接 Adafruit IO 平臺并來回發送消息。

client = MQTTClient(ADAFRUIT_IO_USERNAME, ADAFRUIT_IO_KEY) 
client.on_connect = 已連接
client.on_disconnect = 已斷開

另外,請注意代碼中的正確縮進,否則會顯示錯誤。教程末尾給出了完整的 Python 代碼。

最后,使用 ctrl+x 保存程序并回車。現在,我們必須運行腳本才能訂閱消息。所以在終端輸入python subscribe.py并回車。

python訂閱.py

您將看到一條消息正在等待 Feed 數據。..,如下圖所示。

現在,確保繼電器模塊與 Raspberry Pi 的 GPIO 引腳連接,然后轉到 Adafruit IO 儀表板并更改光饋。收到“ 1”時燈泡應打開,收到“0”時應關閉,如下圖所示。

pYYBAGMQbNmAHuEqAAGeFeUC9uw276.png

通過這種方式,我們可以使用 Raspberry Pi 和 MQTT 云從世界任何地方控制任何設備

將 RPi.GPIO 作為 GPIO

導入 sys

從 Adafruit_IO 導入 MQTTClient

GPIO.setmode(GPIO.BOARD)

GPIO.setwarnings(False)

ledPin = 12

GPIO.setup(ledPin, GPIO.OUT)

ADAFRUIT_IO_KEY = 'YOUR_AIO_KEY'

ADAFRUIT_IO_USERNAME = 'YOUR_AIO_USERNAME'

FEED_ID = 'light'

def connected(client):

# 訂閱名為 Counter 的提要的更改。

print('訂閱 Feed {0}'.format(FEED_ID))

client.subscribe(FEED_ID)

print('正在等待 Feed 數據...')


def 斷開連接(客戶端):

sys.exit(1)


def message(client, feed_id, payload):

print('Feed {0} received new value: {1}'.format(feed_id, payload))

if payload == 1:

GPIO.output(ledPin, GPIO.HIGH)

else :

GPIO.output(ledPin, GPIO.LOW)

# 創建一個 MQTT 客戶端實例。

client = MQTTClient(ADAFRUIT_IO_USERNAME, ADAFRUIT_IO_KEY)

# 設置上面定義的回調函數。

client.on_connect = 已連接

client.on_disconnect = 已斷開

client.on_message = 消息


# 連接到 Adafruit IO 服務器。

client.connect()

client.loop_blocking()

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

    關注

    16

    文章

    1216

    瀏覽量

    52377
  • MQTT
    +關注

    關注

    5

    文章

    653

    瀏覽量

    22691
收藏 人收藏

    評論

    相關推薦

    基于Amazon?Echo?和?Raspberry?Pi?的自動窗簾控制

    GPIO 的水晶頭網線一塊 Raspberry Pi 開發板與Raspberry Pi GPIO
    發表于 08-23 16:04

    黑科技!使用Raspberry Pi和Python GUI控制伺服電機(原理圖、源碼、項目教程)

    教程中,我們將介紹如何使用Raspberry Pi和Python TK GUI精確控制伺服。硬件組件:Raspberry Pi 3型號B.×
    發表于 10-16 16:49

    使用raspberry pi Pico的原因

    使用raspberry pi Pico的原因在硬件產品(單片機)的開發中我們往往需要借助一些額外的儀器/設備進行產品的輔助測試, 假設我們需要一個IO+ADC類型輔助
    發表于 02-07 09:16

    Raspberry Pi上的IO引腳編號有幾種方法

    一. 導入RPI.GPIOimport RPi.GPIO as GPIO二. 指定引腳編號方式RPi.GPIO中的Raspberry Pi
    發表于 02-17 06:33

    帶超頻冷卻孔徑的Raspberry Pi GPIO

    描述Raspberry Pi GPIO 帽,帶超頻冷卻孔徑這是一個 Raspberry Pi 帽子,它允許
    發表于 09-12 06:14

    如何使用ESP-01板通過MQTT和OpenHab使用Raspberry Pi控制LED?

    在這里寫了一篇非常基本的文章 ,但如果它對某人有用,我很樂意嘗試寫更多關于使用 ESP-01 板通過 MQTT 和 OpenHab 使用 Raspberry Pi 控制 LED 的正式
    發表于 05-24 07:34

    如何使用Thingsboard通過MQTT進行Raspberry Pi GPIO控制

    為簡化此說明,我們在每個Thingboard安裝中可用的演示數據中都包含了“ Raspberry PI GPIO演示儀表板”。當然,您可以修改此儀表板:調整,添加,刪除小部件等。您可以通過以租戶管理員身份登錄來訪問此儀表板。
    的頭像 發表于 10-12 14:32 ?1.7w次閱讀
    如何使用Thingsboard通過<b class='flag-5'>MQTT</b>進行<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>GPIO</b><b class='flag-5'>控制</b>

    Raspberry Pi GPIO帽開源分享

    電子發燒友網站提供《Raspberry Pi GPIO帽開源分享.zip》資料免費下載
    發表于 08-18 11:01 ?2次下載
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>GPIO</b>帽開源分享

    用于40針Raspberry Pi型號的GPIO分線板

    電子發燒友網站提供《用于40針Raspberry Pi型號的GPIO分線板.zip》資料免費下載
    發表于 08-19 09:35 ?2次下載
    用于40針<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>型號的<b class='flag-5'>GPIO</b>分線板

    Raspberry Pi上安裝和測試MQTT進行IoT通信

    在本教程中,我們將更多地了解 MQTT 及其相關術語。在這里,我們將使用Raspberry Pi 作為本地 MQTT 代理,并通過
    的頭像 發表于 09-06 15:14 ?3121次閱讀
    在<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>上安裝和測試<b class='flag-5'>MQTT</b>進行IoT通信

    從Alexa控制Raspberry Pi(Linux設備

    電子發燒友網站提供《從Alexa控制Raspberry Pi(Linux設備).zip》資料免費下載
    發表于 12-09 16:18 ?0次下載
    從Alexa<b class='flag-5'>控制</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>(Linux<b class='flag-5'>設備</b>)

    如何使用GPIO引腳將按鈕連接到Raspberry Pi

    電子發燒友網站提供《如何使用GPIO引腳將按鈕連接到Raspberry Pi.zip》資料免費下載
    發表于 12-23 17:04 ?0次下載
    如何使用<b class='flag-5'>GPIO</b>引腳將按鈕連接到<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>

    Raspberry Pi Pico作為HID鼠標

    電子發燒友網站提供《Raspberry Pi Pico作為HID鼠標.zip》資料免費下載
    發表于 02-01 10:17 ?1次下載
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Pico<b class='flag-5'>作為</b>HID鼠標

    Raspberry Pi GPIO引腳介紹

    近年來,Raspberry Pi因其可以用作可用于媒體和復古視頻游戲的廉價、兼容的Linux機器以及網絡設備而備受喜愛。
    的頭像 發表于 02-24 18:08 ?3572次閱讀
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>GPIO</b>引腳介紹

    IO設備接入MQTT

    隨著物聯網的迅速發展,越來越多的IO設備需要與云平臺進行通信,以實現遠程監控和控制。本文將基于EsDA開發套件快速實現將IO設備接入
    的頭像 發表于 09-28 08:26 ?786次閱讀
    <b class='flag-5'>IO</b><b class='flag-5'>設備</b>接入<b class='flag-5'>MQTT</b>
    百家乐的如何玩| 黄金城百家乐官网游戏| bet365手机| 劳力士百家乐官网的玩法技巧和规则 | 全讯网即时线路| 威尼斯人娱乐城动态| 百家乐公式与赌法| 百家乐一起多少张牌| 百家乐规律和方法| 澳门百家乐的玩法技巧和规则| 百家乐高额投注| 试玩百家乐代理| 送58百家乐的玩法技巧和规则| 百家乐公式与赌法| 百家乐高手论坮| 百家乐筹码多少钱| 百家乐双倍派彩的娱乐城| 百家乐网盛世三国| 百家乐技巧开户网址| 大发888认识的见解| 合乐娱乐| 百家乐官网有没有攻略| 波音网百家乐官网合作| 百家乐官网技巧在那里| 游戏机百家乐官网的技术| 百家乐官网赌场技巧网| 362百家乐官网的玩法技巧和规则 大集汇百家乐官网的玩法技巧和规则 | 合乐8百家乐官网娱乐城| 百家乐官网天下| 澳门百家乐搏牌规则| 四方百家乐的玩法技巧和规则 | 赌博百家乐官网赢不了| 作弊百家乐官网赌具价格| 雅加达百家乐官网的玩法技巧和规则 | 金沙百家乐娱乐城场| 百家乐筹码片| 博彩网论坛| 百家乐官网注册赠金| 真人版百家乐官网试玩| 百家乐永利娱乐网| 真龙国际娱乐|