日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

W5100S-EVB-Pico [Micropython] – MQTT

發(fā)布時間:2023/12/29 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 W5100S-EVB-Pico [Micropython] – MQTT 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

注:最初發(fā)表-By Louis_m?

組成:

硬件設(shè)施:

W5100S-EVB-Pico??????????????X 1

Raspberry Pi 4 ?????????????X 1

軟件應(yīng)用程序:

Micopython?

詳細(xì)信息:

什么是MQTT?

??發(fā)布(Pub)/訂閱(Sub)模型和發(fā)布者/訂閱者模型是訂閱客戶端和發(fā)布客戶端之間的通信模型。

?為在M2M和物聯(lián)網(wǎng)中使用而創(chuàng)建的輕量級消息協(xié)議。

  • ?在TCP操作。
  • ??<發(fā)布者>主題問題。
  • <訂閱者>訂閱主題。
  • <代理(broker)>作為中繼,適用于1:N的通信。
  • ?適用于“設(shè)備對設(shè)備”的消息處理,如低功耗傳感器、移動設(shè)備、嵌入式計算機(jī)、Arduinos和微控制器。

概述:

WIZnet以太網(wǎng)帽(硬件連接在頂部)是一個利用W5100S并支持3.3V和5V樹莓派Pico引腳兼容板。

請參考這個鏈接獲取更多關(guān)于W5100S的信息。

  • 樹莓派Pico pin兼容
  • 以太網(wǎng)(W5100S 硬連線TCP/IP芯片)
  • 產(chǎn)品頁面:?Overview | WIZnet Document System
  • 同時支持4個獨立的硬件插槽
  • 支持無socket的新命令:ARP-Request, PING-Request
  • 僅在自協(xié)商模式下支持Auto-MDIX

RP2040數(shù)據(jù)表:

–?Raspberry Pi Documentation - Raspberry Pi Pico

RP2040

準(zhǔn)備:

連接 Raspberry Pi

接通電源并連接以太網(wǎng)線纜

運行RPi-4 mosquitto到服務(wù)器:

在你的樹莓派準(zhǔn)備好樹莓派OS后,你可以繼續(xù)本教程,讓我們安裝Mosquitto Broker.

??? 1.樹莓派通過SSH打開終端窗口。

打開Rpi終端

?2.執(zhí)行以下命令升級和更新系統(tǒng)

pi@raspberry:~?$ sudo apt update && sudo apt upgrade

3.按“Y”Enter。更新和升級需要一些時間(在我的例子中,大約需要10分鐘)

4.要安裝mosquitto Broker,請輸入以下命令:

pi@raspberry:~?$ sudo apt install -y mosquitto mosquitto-clients

5.要使mosquitto在樹莓派啟動時自動啟動,你需要運行以下命令(這意味著當(dāng)樹莓派啟動時,mosquitto broker將啟動):

pi@raspberry:~?$ sudo systemctl enable mosquitto.service

6.現(xiàn)在,運行以下命令來測試安裝:

pi@raspberry:~?$ mosquitto -v

7.檢查mosquitto 服務(wù)器是否使用下面的命令運行。您還可以使用命令停止和啟動服務(wù)器。

狀態(tài)

pi@raspberry:~?$service?mosquitto status

停止

pi@raspberry:~?$service?mosquitto stop

開始

pi@raspberry:~?$service?mosquitto start

如果檢查出現(xiàn)如下狀態(tài),說明服務(wù)器正常運行。

Mosquitto 狀態(tài)

連接 W5100S-Pico-EVB:

?W5100S-PIco-EVB

連接樹莓派Pico到臺式機(jī)或筆記本使用5針微型USB電纜。

開發(fā)環(huán)境設(shè)置:

Micropython Thonny IDE

在樹莓派Pico上安裝Thonny IDE,請參考上面鏈接。

Thonny, Python IDE for beginners

  • 在所有的RP2040板上,該驅(qū)動器將被稱為RPI-RP2。從下面的鏈接下載UF2(firmware.uf2)文件,并將該文件放到Pico中。
  • 文件鏈接-firmware.uf2

    (Release v1.0.0 firmware.uf2 · Wiznet/RP2040-HAT-MicroPython · GitHub)

    2.如果你點擊狀態(tài)欄中的MicroPython(Raspberry Pi Pico)并選擇“Configure interpreter...”,你也可以訪問固件安裝菜單。

    3.查看殼牌面板底部的Thonny編輯器。你應(yīng)該會得到以下結(jié)果:

    進(jìn)口MQTT庫:

    首先,將要使用的函數(shù)庫從庫中導(dǎo)入到電腦中,請遵循以下步驟使用Thonny IDE將文件上傳。

    Micropython以太網(wǎng)庫:

    • 創(chuàng)建一個新文件,使用你想要的名字并保存在電腦中,例如“(你的庫名).py”。
    • 進(jìn)入“Open>這臺計算機(jī)”

    該文件應(yīng)以“(你的庫名).py”的名稱保存在RPi Pico上。

    • 進(jìn)入文件>保存為>樹莓派Pico>
  • 發(fā)布

    #### MQTT Pico (1) #####?– publish

  • 設(shè)置SPI接口和初始化以太網(wǎng)配置
  • spi=SPI(0,2_000_000, mosi=Pin(19),miso=Pin(16),sck=Pin(18))

    nic = network.WIZNET5K(spi,Pin(17),Pin(20)) #spi,cs,reset pin

    nic.ifconfig(('192.168.1.20','255.255.255.0','192.168.1.1','8.8.8.8'))

    while not nic.isconnected():

    ? ? time.sleep(1)

    print(nic.regs())??

    2.在MQTT配置中,代理IP地址是Raspberry Pi服務(wù)器的IP。

    #mqtt config

    mqtt_server = '192.168.1.7'client_id = 'wiz1'topic_pub = b'hello'topic_msg = b'Hello Pico'

    last_message = 0

    message_interval = 5

    counter = 0

    #MQTT connect

    def mqtt_connect():

    ? ? client = MQTTClient(client_id, mqtt_server, keepalive=60)

    ? ? client.connect()

    ? ? print('Connected to %s MQTT Broker'%(mqtt_server))

    ? ? return client

    #reconnect & reset

    def reconnect():

    ? ? print('Failed to connected to MQTT Broker. Reconnecting...')

    ? ? time.sleep(5)

    ? ? machine.reset()

    3.將使用MQTT發(fā)布

    #MQTT Publish

    def main():

    ? ? w5x00_init()

    ? ? try:

    ? ? ? ? client = mqtt_connect()

    ? ? except OSError as e:

    ? ? ? ? reconnect()

    ? ??

    ? ? while True:

    ? ? ? ? client.publish(topic_pub, topic_msg)

    ? ? ? ? time.sleep(3)

    ? ? ? ??

    client.disconnect()

    以“Hello”為主題向服務(wù)器發(fā)送“Hello WIZnet”消息

    MQTT發(fā)布

    訂閱:

    #### MQTT Pico (2) #####?– 訂閱

  • 設(shè)置SPI接口和初始化以太網(wǎng)配置
  • spi=SPI(0,2_000_000, mosi=Pin(19),miso=Pin(16),sck=Pin(18))

    nic = network.WIZNET5K(spi,Pin(17),Pin(20)) #spi,cs,reset pin

    nic.ifconfig(('192.168.1.20','255.255.255.0','192.168.1.1','8.8.8.8'))

    while not nic.isconnected():

    ? ? time.sleep(1)

    ? ? print(nic.regs())

    2.在MQTT配置中,代理IP地址是Raspberry Pi服務(wù)器的IP。

    #mqtt config

    mqtt_server = '192.168.1.7'

    client_id = "wiz"

    topic_sub = b'hello'

    last_message = 0

    message_interval = 5

    counter = 0

    def sub_cb(topic, msg):

    ? ? print((topic.decode('utf-8'), msg.decode('utf-8')))

    #MQTT connect

    def mqtt_connect():

    ? ? client = MQTTClient(client_id, mqtt_server, keepalive=60)

    ? ? client.set_callback(sub_cb)

    ? ? client.connect()

    ? ? print('Connected to %s MQTT Broker'%(mqtt_server))

    ? ? return client

    #reconnect & reset

    def reconnect():

    ? ? print('Failed to connected to Broker. Reconnecting...')

    ? ? time.sleep(5)

    ? ? machine.reset()

    3.使用MQTT訂閱

    #subscribe

    def main():

    ? ? w5x00_init()

    ? ? try:?

    ? ? ? ? client = mqtt_connect()

    ? ? except OSError as e:

    ? ? ? ? reconnect()

    ? ? while True:

    ? ? ? ? client.subscribe(topic_sub)

    ? ? ? ? time.sleep(1)

    ? ? client.disconnect()

    如果您訂閱了“Hello”主題,則可以從發(fā)布服務(wù)器獲得一條消息。

    MQTT訂閱

    文檔:

    代碼:

    MQTT_pub

    MQTT_sub?

    總結(jié)

    以上是生活随笔為你收集整理的W5100S-EVB-Pico [Micropython] – MQTT的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。