999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

初嘗物聯(lián)網(wǎng)“掌控板遠控樹莓派LED燈陣”

2021-07-15 20:13:37牟曉東
電腦報 2021年19期
關(guān)鍵詞:動作

牟曉東

我們在開發(fā)開源硬件涉及到物聯(lián)網(wǎng)應(yīng)用項目時,會用到一種為連接遠程設(shè)備提供實時可靠消息服務(wù)的MQTT(Message Queuing Telemetry Transport)協(xié)議,即“消息隊列遙測傳輸協(xié)議”。這是一種基于“客戶端-服務(wù)器”的“消息發(fā)布與訂閱”式即時通訊協(xié)議,開銷較小且占用的網(wǎng)絡(luò)帶寬也較低,非常適合進行物聯(lián)網(wǎng)創(chuàng)客項目的實施。比如我們來制作一個利用掌控板遠控樹莓派LED燈陣的項目,通過對掌控板的A、B鍵按下和搖晃掌控板三種動作,遠程觸發(fā)樹莓派上的LED燈陣發(fā)光、熄滅和流水閃爍效果。

1.在mPython X中為掌控板編程實現(xiàn)消息發(fā)送

將掌控板通過數(shù)據(jù)線與電腦USB接口連接,運行mPython X,登錄成功后進行程序的編寫。

首先設(shè)置網(wǎng)絡(luò)的連接,分別填寫好WiFi名稱和密碼;接著從“物聯(lián)網(wǎng)”-“MQTT”中選擇第一個MQTT模塊,客戶端“client_id”的內(nèi)容設(shè)置為“l(fā)uke007”,這是樹莓派的古德微機器人網(wǎng)站登錄賬號名稱;服務(wù)器“server”的內(nèi)容設(shè)置為古德微機器人網(wǎng)站的“www.gdwrobot.top”;下方的“user”和“password”保持為空,“keepalive”也保持默認的“30”不變;然后添加一個“連接MQTT”模塊,作用是根據(jù)上方的參數(shù)設(shè)置模塊與對應(yīng)的服務(wù)器進行MQTT連接;接著,使用“顯示”區(qū)域中的“OLED顯示清空”“OLED第1行顯示……”和“OLED顯示生效”三個模塊,控制掌控板的OLED顯示屏輸出提示信息:“MQTT連接成功!”(如圖1)。

以按下掌控板的A鍵為例,先從“事件”區(qū)域中選擇第一個“當按鍵A被按下時執(zhí)行”,再從“MQTT”中選擇“發(fā)布……至主題……”,分別輸入“ON”(注意大寫)和“l(fā)uke007/KeyA”,作為按鍵A被按下時觸發(fā)的第一個動作:向樹莓派賬號luke007發(fā)送主題為“KeyA”的消息,其值為“ON”;然后,添加一個0.5秒的等待語句。同理,再設(shè)置按鍵B被按下時觸發(fā)“發(fā)布‘ON至主題‘luke007/KeyB”;當掌控板檢測到“被搖晃”的動作發(fā)生時,觸發(fā)“發(fā)布‘ON至主題‘luke007/Shaking”(如圖2)。

2.在古德微機器人網(wǎng)站中為樹莓派編程實現(xiàn)消息接收

在瀏覽器中訪問古德微機器人網(wǎng)站,登錄賬號luke007后開始進行“積木”編程:

第一, 從左側(cè)“物聯(lián)網(wǎng)”-“常用”中選擇“設(shè)置物聯(lián)網(wǎng)服務(wù)器”,保持服務(wù)器“www.gdwrobot.top”和端口號“1883”默認不變,用戶名和密碼保持為空;接著使用一條輸出調(diào)試信息,內(nèi)容為“開始監(jiān)聽掌控板傳來的消息:”,作為程序運行的提示信息。

第二, 是三個監(jiān)聽主題語句(無先后次序),監(jiān)聽的主題為“KeyA”、“KeyB”和“Shaking”,分別對應(yīng)掌控板的按鍵A、按鍵B和搖晃動作所觸發(fā)的消息主題。

第三, 從“線程”中添加三個子線程,同樣也是不分先后次序,線程函數(shù)名分別為“ListenKeyA”、“ListenKeyB”和“ListenShake”,分別對應(yīng)監(jiān)聽掌控板三個動作消息后進行調(diào)用對應(yīng)同名的函數(shù)(如圖3)。

以函數(shù)“ListenKeyA”為例,外層的“如果……執(zhí)行……”條件分支對“物聯(lián)網(wǎng)是否收到新數(shù)據(jù)”進行判斷,條件成立的話則對變量“A鍵”進行賦值,其值為“獲取主題‘KeyA的數(shù)據(jù)”;接著輸出調(diào)試信息“收到掌控板A鍵消息!”,表示已經(jīng)收到了掌控板按鍵A的動作消息;然后再用內(nèi)層“如果……執(zhí)行……”條件分支對“‘A鍵的值是否為‘ON”進行判斷,條件成立,說明掌控板的A鍵已經(jīng)被按下,于是調(diào)用“LED_ON”函數(shù)(如圖4),執(zhí)行由5、6、12和16四支LED所組成的燈陣全部發(fā)光的動作(如圖5);最后的0.1秒等待語句,作用仍然是防止程序過多占用系統(tǒng)資源。

與此類似,函數(shù)“ListenKeyB”和“ListenShake”是用來監(jiān)聽掌控板按鍵B是否被按下和整個掌控板是否被搖晃兩個動作的(如圖6),條件成立則分別調(diào)用“LED_OFF”和“LED_Water”函數(shù),前者是熄滅LED燈陣,后者則是循環(huán)點亮和熄滅燈陣,效果類似于流水燈(如圖7)。

3.安裝并測試“掌控板遠控樹莓派LED燈陣”

返回mPython X界面,點擊“刷入運行”按鈕,將程序代碼寫入掌控板(稍候,右下角會有“刷入成功”、連接WiFi:“Connection WiFi……”的提示),掌控板顯示屏的第一行會顯示出“MQTT連接成功!”;在古德微機器人平臺先點擊“連接設(shè)備”,然后點擊“運行”按鈕,LOG調(diào)試信息區(qū)會顯示提示信息:“開始監(jiān)聽掌控板傳來的消息:”。

此時,嘗試輕輕按下掌控板的A鍵,樹莓派的LED燈陣就會亮起(LOG調(diào)試信息提示:“收到掌控板A鍵消息!”);輕輕按下B鍵,樹莓派的LED燈陣就會熄滅(LOG調(diào)試信息提示:“收到掌控板B鍵消息!”);如果搖晃掌控板的話,樹莓派的LED燈陣就會出現(xiàn)流水燈效果(LOG調(diào)試信息提示:“收到掌控板晃動消息!”)。如果多次測試無問題,就說明我們實現(xiàn)了掌控板遠控樹莓派LED燈陣進行開、關(guān)燈和流水燈的目標(如圖8),大家不妨一試。

猜你喜歡
動作
動作不可少(下)
巧借動作寫友愛
下一個動作
動作描寫要具體
畫動作
讓動作“活”起來
動作描寫不可少
非同一般的吃飯動作
動作喜劇電影周
電影故事(2015年30期)2015-02-27 09:03:12
神奇的手
主站蜘蛛池模板: 亚洲人成网18禁| 午夜a级毛片| 欧美性爱精品一区二区三区 | 97免费在线观看视频| 亚洲欧美不卡| 欧美在线视频不卡| 伦伦影院精品一区| 亚洲天堂伊人| 黄色网址手机国内免费在线观看| 国产精品白浆无码流出在线看| 国产综合欧美| 人妻无码AⅤ中文字| 天天激情综合| 中文字幕在线观看日本| 99精品视频播放| 鲁鲁鲁爽爽爽在线视频观看| 欧美在线黄| 亚洲91精品视频| 免费啪啪网址| 日韩AV手机在线观看蜜芽| 欧美一区中文字幕| 精品免费在线视频| 国产成人a毛片在线| 日韩在线视频网站| 91小视频在线| 在线免费不卡视频| 青草视频久久| 欧美精品一二三区| 青青青国产精品国产精品美女| 欧美日韩久久综合| 国产在线欧美| 国产一二三区视频| 就去吻亚洲精品国产欧美| www亚洲天堂| 久久精品视频亚洲| 77777亚洲午夜久久多人| 青青草综合网| 亚洲综合色婷婷| 香蕉视频国产精品人| 日韩黄色大片免费看| 精品国产91爱| 成人国产一区二区三区| 成人va亚洲va欧美天堂| 国内黄色精品| 91福利国产成人精品导航| 精品国产自在在线在线观看| 日本久久久久久免费网络| 美女一区二区在线观看| 久久精品aⅴ无码中文字幕 | 亚洲综合色在线| 国产精品jizz在线观看软件| 亚洲无码免费黄色网址| 婷五月综合| 国产成人精品高清不卡在线 | 色综合久久久久8天国| 色香蕉网站| 国产激情第一页| 夜夜操国产| 婷婷丁香在线观看| 九色视频最新网址| 国产精品成人久久| 看你懂的巨臀中文字幕一区二区 | 首页亚洲国产丝袜长腿综合| 蜜桃臀无码内射一区二区三区 | 亚洲色成人www在线观看| 热伊人99re久久精品最新地| 91久久夜色精品| 欧美精品成人一区二区在线观看| 亚洲动漫h| 日韩高清在线观看不卡一区二区| 亚洲欧美日韩另类在线一| 99精品一区二区免费视频| 亚洲大尺码专区影院| 狠狠色狠狠色综合久久第一次| 四虎在线观看视频高清无码 | 国产免费羞羞视频| 一级毛片高清| 亚洲中文制服丝袜欧美精品| 亚洲国产精品日韩专区AV| 欧美成人看片一区二区三区 | 免费人成又黄又爽的视频网站| 波多野结衣第一页|