




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
+硬件趣學Python編程
網(wǎng)絡互動情誼傳,網(wǎng)絡表情互發(fā)游戲的制作牛艾科技目錄ContentsSuccessWords2第一部分網(wǎng)絡基礎知識簡介第二部分Skids的無線通信功能第三部分MQTT協(xié)議入門第四部分消息接收器的實現(xiàn)第五部分開發(fā)板相互發(fā)送表情的實現(xiàn)目錄ContentsSuccessWords3第一部分網(wǎng)絡通信基礎知識簡介4無處不在的網(wǎng)絡通信近年來,網(wǎng)絡通信技術的發(fā)展是有目共睹的,其進入了一個前所未有的發(fā)展時期,在通信流量保持快速增長的同時,業(yè)務應用業(yè)呈現(xiàn)更為豐富的多樣性網(wǎng)絡通信先后經(jīng)歷了單機、局域網(wǎng)、互聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)和物聯(lián)網(wǎng)等階段,目前正處于新技術革命深度交叉與融合的發(fā)展階段。5網(wǎng)絡通信的常用協(xié)議網(wǎng)絡通信中最重要的就是網(wǎng)絡協(xié)議,類似人類交流中最重要的就是語言(中文、英文……)網(wǎng)絡協(xié)議就是網(wǎng)絡之間溝通、交流的橋梁,只有相同網(wǎng)絡協(xié)議的計算機才能進行信息的溝通與交流。好比人與人之間交流,只有使用相同語言才能正常地進行交流。國際標準化組織ISO于1981年正式推出了一種網(wǎng)絡系統(tǒng)結(jié)構(gòu)--OSI七層參考模型,各種計算機網(wǎng)絡逐漸向其靠攏,大大推動了網(wǎng)絡通信的發(fā)展?;贠SI模型,美國國防部高級研究計劃局計算機網(wǎng)的TCP/IP網(wǎng)絡逐漸成為了業(yè)界標準,并演化到如今的Internet6TCP/IP網(wǎng)絡架構(gòu)7TCP/IP的主要協(xié)議8TCP/IP協(xié)議棧的數(shù)據(jù)傳輸過程9常用的網(wǎng)絡設備1網(wǎng)卡:安裝在計算機上,使計算機連網(wǎng)的硬件設備2中繼器:是對信號進行再生和還原的網(wǎng)絡設備,主要功能是通過對數(shù)據(jù)信號的重新發(fā)送或者轉(zhuǎn)發(fā),來擴大網(wǎng)絡傳輸?shù)木嚯x3網(wǎng)橋:是連接兩個局域網(wǎng)的一種存儲/轉(zhuǎn)發(fā)設備,它能將一個大的局域網(wǎng)分割為多個網(wǎng)段,或?qū)蓚€以上的局域網(wǎng)互聯(lián)為一個邏輯局域網(wǎng)4路由器:是網(wǎng)絡的主要結(jié)點設備,通過路由決定數(shù)據(jù)的轉(zhuǎn)發(fā)。轉(zhuǎn)發(fā)策略稱為路由選擇,這也是路由器名稱的由來。作為不同網(wǎng)絡之間互相連接的樞紐,路由器系統(tǒng)構(gòu)成了整個互聯(lián)網(wǎng)的主體脈絡。5交換機:負責統(tǒng)一網(wǎng)絡內(nèi)的數(shù)據(jù)幀的轉(zhuǎn)發(fā),交換機根據(jù)數(shù)據(jù)幀的MAC地址轉(zhuǎn)發(fā)至相應的端口10部分設備圖片
網(wǎng)卡
家用路由器
核心路由器
交換機11無線局域網(wǎng)與WIFI從用戶角度,通信網(wǎng)絡可分為有線局域網(wǎng)(以太網(wǎng))、無線局域網(wǎng)、廣域網(wǎng)和移動網(wǎng)絡無線局域網(wǎng)利用射頻技術,使用電磁波,取代傳統(tǒng)雙絞銅線或光纖所構(gòu)成的局域網(wǎng)絡,通過空氣進行通信連接,使網(wǎng)絡的部署和連接更加便利WIFI(WirelessFidelity),用于將個人電腦、手持設備(如PDA、手機)等終端以無線方式互相連接,是一種短距離無線傳輸技術,屬于無線局域網(wǎng)的一種目前我們常用的無線局域網(wǎng)幾號都是WIFI目錄ContentsSuccessWords12第二部分Skids的無線通信功能*Skids對無線通信的支持Skids開發(fā)板使用了ESP32芯片ESP32是一個集成了WIFI和藍牙功能的芯片,雙核32位MCU、2.4GHz雙模Wi-Fi和藍牙、主頻高達230MHz,計算能力可達600DMIPSSkids提供了豐富的Python網(wǎng)絡接口,便于開發(fā)人員進行網(wǎng)絡相關的設計開發(fā)*常用的Python接口網(wǎng)絡相關接口封裝在network庫,主要用于WIFI相關的配置和連接WIFI有兩種配置模式,一個用于station(當ESP32連接到路由器時),一個用于熱點(accesspoint)(用于其他設備與ESP32連接)。使用以下指令創(chuàng)建這些對象的實例:importnetworksta_if=network.WLAN(network.STA_IF)#STA模式ap_if=network.WLAN(network.AP_IF)#AP模式15常用的Python接口可使用以下指令檢查接口是否有效:sta_if.active()#Ture表示接口有效,F(xiàn)alse表示無效ap_if.active()
#Ture表示接口有效,F(xiàn)alse表示無效可使用以下指令檢查接口的網(wǎng)絡設置:ap_if.ifconfig()#返回值為:IP地址、網(wǎng)絡掩碼、網(wǎng)關、DNS16WiFi的配置步驟配置WIFI,讓Skids可以連接某個熱點實現(xiàn)上網(wǎng)的過程如下:sta_if=network.WLAN(network.STA_IF)#STA模式ap_if=network.WLAN(network.AP_IF)#AP模式ifap_if.active():#如果AP模式開啟了,則先關閉ap_if.active(False)ifnotsta_if.isconnected():print('Connectingtonetwork...')sta_if.active(True)#激活STAsta_if.connect(wifi_name,wifi_SSID)#連接WiFi熱點,參數(shù)為WiFi的SSID和密碼whilenotsta_if.isconnected():pass目錄ContentsSuccessWords17第三部分MQTT協(xié)議入門18MQTT協(xié)議簡介MQTT(MessageQueuingTelemetryTransport,消息隊列遙測傳輸協(xié)議),構(gòu)建于TCP/IP協(xié)議上,由IBM在1999年發(fā)布。MQTT基于客戶端-服務器的消息發(fā)布/訂閱傳輸協(xié)議,以極少的代碼和有限的帶寬,為連接遠程設備提供實時可靠的消息服務。MQTT協(xié)議是輕量、簡單、開放、低開銷和易于實現(xiàn)的,這些特點使它適用范圍非常廣泛。使其在物聯(lián)網(wǎng)、小型設備、移動應用等方面有較廣泛的應用。19MQTT的應用場景20MQTT的實現(xiàn)方式實現(xiàn)MQTT協(xié)議需要客戶端和服務器端通訊完成在通訊過程中,MQTT協(xié)議中有三種身份:發(fā)布者(Publish)、代理(即服務器,Broker)、訂閱者(Subscribe)消息的發(fā)布者和訂閱者都是客戶端,消息代理是服務器,消息發(fā)布者可以同時是訂閱者MQTT傳輸?shù)南⒎譃椋褐黝}(Topic)和負載(payload)兩部分:Topic,可以理解為消息的類型,訂閱者訂閱(Subscribe)后,就會收到該主題的消息內(nèi)容(payload)payload,可以理解為消息的內(nèi)容,是指訂閱者具體要使用的內(nèi)容21MQTT的總體架構(gòu)22MQTT的客戶端與服務器服務端工作流程:(1)接受來自客戶的網(wǎng)絡連接;(2)接受客戶發(fā)布的信息;(3)處理來自客戶端的訂閱和退訂請求;(4)向訂閱的客戶轉(zhuǎn)發(fā)其已經(jīng)訂閱的消息。
客戶端工作流程:(1)連接服務端(2)發(fā)布消息,這些消息其他客戶端可能會訂閱;(3)訂閱其它客戶端發(fā)布的消息;(4)退訂或刪除消息;(5)斷開與服務器連接。
23MQTT的主要特點使用發(fā)布/訂閱消息模式,提供一對多的消息發(fā)布,解除應用程序耦合使用TCP/IP提供網(wǎng)絡連接。主流的MQTT是基于TCP連接進行數(shù)據(jù)推送的,但是也有基于UDP的版本小型傳輸,開銷很小,以降低網(wǎng)絡流量有三種消息發(fā)布服務質(zhì)量:"至多一次",消息發(fā)布完全依賴底層TCP/IP網(wǎng)絡。會發(fā)生消息丟失或重復。"至少一次",確保消息到達,但消息重復可能會發(fā)送。"只有一次",確保消息到達一次。在一些要求比較嚴格的系統(tǒng)中會使用此級別,確保用戶收到且只會收到一次。24MQTT的Python開發(fā)Skids可以作為MQTT的客戶端,與MQTT服務端進行通訊使用TCP/IP提供網(wǎng)絡連接。主流的MQTT是基于TCP連接進行數(shù)據(jù)推送的,但是也有基于UDP的版本小型傳輸,開銷很小,以降低網(wǎng)絡流量有三種消息發(fā)布服務質(zhì)量:"至多一次",消息發(fā)布完全依賴底層TCP/IP網(wǎng)絡。會發(fā)生消息丟失或重復。"至少一次",確保消息到達,但消息重復可能會發(fā)送。"只有一次",確保消息到達一次。在一些要求比較嚴格的系統(tǒng)中會使用此級別,確保用戶收到且只會收到一次。25MQTT服務器的搭建需要的軟件(1)Emqtt下載地址:/downloads(2)Mqttbox下載地址:/html/mqttbox/downloads.html26MQTT服務器的搭建解壓好emqtt打開命令提示符進入bin文件夾【bin文件夾的位置是你解壓壓縮包的位置】在命令提示符中輸入emqttd.cmdstart27MQTT服務器的搭建瀏覽器中輸入網(wǎng)址:18083默認登錄用戶名和密碼是admin,public需要增加自己的登錄信息使用如下命令設置。emqttd_ctladminsadd<Username><Password>28安裝mqttbox安裝后打開MQTT服務器的搭建29MQTT服務器的搭建點擊createmqttclient按下圖輸入需要填入MqttclientName,Protocol以及HostProtocol需要選擇mqtt/tcp,Host寫服務器地址和端口號注:mqtt服務端口號默認是188330保存成功后進入如下的界面,接下來可以開始測試消息發(fā)布和訂閱。如下圖所示,綠色“Connected”按鈕表明當前MQTT連接已經(jīng)成功Topictosubcribe訂閱的主題必須是skids板子的消息主題+id【在第四部分會繼續(xù)講到】Qos字段選擇0-AlmostOncePayload里輸入內(nèi)容publish發(fā)布內(nèi)容MQTT服務器的搭建31MQTT服務器的搭建打開EMQ的管理員控制臺,可以看到一些相關的統(tǒng)計數(shù)據(jù)已經(jīng)發(fā)生了變化。比如在“Themessagesdata”表格中,“qos0/received”的值為1,說明EMQ收到了1條QoS0的消息;“qos0/sent”的值為1,表示EMQ轉(zhuǎn)發(fā)了一條QoS0的消息。目錄ContentsSuccessWords32第四部分消息接收器的實現(xiàn)33消息接收器的實現(xiàn)設備連接網(wǎng)絡需要設置Wifi的名字和密碼對應例子程序中的變量要改成所要連接的設備熱點的賬號密碼或者路由器的賬號密碼;Mqtt的服務器地址和端口設置對應服務器的信息DEVICE_ID用來標識連接的設備以及需要監(jiān)聽的TOPIC34消息接收器的實現(xiàn)配制完成所要連接的wifi信息后通過sta模式獲取WiFi并連接網(wǎng)絡讓設備持續(xù)連上網(wǎng)絡35消息接收器的實現(xiàn)服務器消息回調(diào)目錄Contents
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一年級數(shù)學說課稿北師大版
- 中鐵電料合同范本
- 一年級下冊數(shù)學第四單元教案
- 勞動支付合同范本
- 包子店勞務合同范本
- 《病人》閱讀答案
- 勞動合同范本 導購
- 修建小區(qū)合同范本
- 單位掛機空調(diào)保養(yǎng)合同范本
- 《堆雪人》教學反思
- 高考報名資格審查表
- 幽門螺桿菌的診治規(guī)范課件
- 數(shù)學基礎模塊上冊課件
- 中國化學家侯德榜市公開課獲獎課件
- 2022年人教部編版三年級下冊道德與法治全冊教案
- 支氣管鏡室工作制度
- 紫精丹_圣惠卷九十五_方劑加減變化匯總
- 天藍色商務發(fā)展歷程時間軸PPT模板課件
- 第5章液相傳質(zhì)步驟動力學
- GJB 國軍標標準對應名稱解析
- 2019版人教版新課標高中英語必修1第一冊單詞表
評論
0/150
提交評論