STM32 W5500 MQTT使用記錄

2021-10-10 05:40:32 字數 1302 閱讀 2807

第一次嘗試寫部落格,不為別的,為了積累一些知識和記錄下使用的遇到的問題。

1.實現mqtt協議,要基於tcpip協議,則首先要能正確的使用w5500 ,並配置成客戶端,可以正常的鏈結伺服器並傳輸資料,關於w5500的使用,還在學習中,現在除錯是基於原來的工程,所以省了很多時間除錯。只是學習的如何寫客戶端。mqtt協議不論發布資料還是訂閱資料,都是基於客戶端的方式進行通訊的,所以我感覺除錯通客戶端鏈結伺服器並傳輸資料是比較重要的。

2.如何在自己的工程內新增mqtt協議,我使用的是開源的庫,根據別人部落格介紹進行新增到自己工程內。主要是修改幾個函式如下,這個是自己根據使用中遇到的問題進行修改的.

3.mqtt庫移植完成了,接下來就是該考慮如何進行資料發布了,剛開始一頭霧水,就參考別人的歷程,自己修改了,總是不能發布成功,之後偶然的機會,去掉了訂閱號和id標識的鏈結之傳輸訂閱號,居然成功了.可是根據我檢測資料發現,每次都是發布成功一次,失敗一次.之後我就在每次發布完成後關閉鏈結,這樣就沒有遇到發布不成功的時候了,以為這樣就算完成mqtt的程式了,後來根據串列埠列印出來的資訊看到,每次都需要鏈結一次伺服器,這就出現新的問題,難道mqtt每次發布資料都是這樣的.之後就緒繼續查詢資料,可是發現介紹的很少.請教別人也很難得到明確的答案,可是和別人的伺服器對接就在眼前,只能先這樣硬著頭皮用了.

4.對接的時候 使用者那邊也發現了這個問題,之後提出來了,這是時候得到明確的答案,mqtt發布資料,不需要每次都請求來鏈結伺服器,只需要鏈結一次就可以了.既然知道了這個,接著就是想辦法怎麼實現了,可以把原來的發布訊息拆分成兩段程式,乙個負責處理請求鏈結mqtt伺服器,另外的則負責發布資料,在正確鏈結到伺服器後再發布資料,之後完美解決了這個問題.正常聯網發布資料沒有問題.

5. 我在想這樣發布資料突然把網線拔掉程式會怎麼樣,哈哈哈突然發現程式看門狗居然復位了,程式居然重新執行了,之後使用定時器進行處理這個問題.可以暫時解決掉這個問題了.

就寫到這個了.w5500怎麼自動獲取ip位址呢?

基於STM32 W5500 的DNS移植

dns domain name system,網域名稱系統。簡單理解,我們平時在瀏覽器上輸入的都是網域名稱,如www.baidu.com,這種網域名稱便於人們的記憶和溝通。你可以很輕鬆的記住10個網域名稱,但要你記住10個純數字的ip位址,那就比較費勁了,但電腦通訊的時候是通過ip來通訊的。那麼dn...

MQTT客戶端移植到STM32

是新一代資訊科技的重要組成部分,也是 資訊化 時代的重要發展階段。其英文名稱是 internet of things iot 顧名思義,物聯網就是物物相連的網際網路。這有兩層意思 其一,物聯網的核心和基礎仍然是網際網路,是在網際網路基礎上的延伸和擴充套件的網路 其二,其使用者端延伸和擴充套件到了任何...

MQTT協議在STM32上的移植

mqtt協議在stm32上的移植 開發平台 軟體環境 硬體環境 參考文件 本篇是mqtt在stm32裝置上的移植,因此使用paho的嵌入式c 庫,原始碼位址 移植 首先,需要將 paho.mqtt.embedded c mqttpacket 中的所有檔案新增到keil工程檔案,然後參考 paho.m...