主講人:康留元
康留元
河南省汝州市信息科技學(xué)科高級(jí)教師,全國中小學(xué)生創(chuàng)·造大賽裁判員,DF創(chuàng)客社區(qū)IoT物聯(lián)網(wǎng)版主,吳俊杰老師創(chuàng)客教育普惠課程掌控板mPython基礎(chǔ)課程合伙人。
教學(xué)背景
隨著社會(huì)新型智慧城市建設(shè)的推進(jìn),智能化的技術(shù)手段被應(yīng)用到城市各個(gè)領(lǐng)域,智慧公交也開始出現(xiàn)在各個(gè)城市街頭。智慧公交不僅可以實(shí)現(xiàn)公交語音播報(bào)站點(diǎn),還可以實(shí)現(xiàn)實(shí)時(shí)查詢公交車的位置,方便出行。本節(jié)課學(xué)生將學(xué)會(huì)利用Easy IoT物聯(lián)網(wǎng)平臺(tái),模仿設(shè)計(jì)公交車語音播報(bào)系統(tǒng),實(shí)現(xiàn)公交語音播報(bào)和位置查詢的功能。
教學(xué)目標(biāo)
1.通過了解語音合成原理,學(xué)習(xí)Easy IoT物聯(lián)網(wǎng)平臺(tái)MQTT(消息隊(duì)列遙測傳輸)相關(guān)知識(shí)。
2.經(jīng)歷根據(jù)需求,設(shè)計(jì)和搭建簡單的應(yīng)用系統(tǒng),解決實(shí)際生活問題的過程。
3.感受萬物互聯(lián)給人們的生活帶來的改變,提高學(xué)生計(jì)算思維和解決問題的能力。
教學(xué)重點(diǎn)與難點(diǎn)
教學(xué)重點(diǎn):體驗(yàn)物聯(lián)網(wǎng)系統(tǒng)的數(shù)據(jù)采集、網(wǎng)絡(luò)傳輸和反饋的過程。
教學(xué)難點(diǎn):學(xué)會(huì)利用Mind+ 實(shí)時(shí)模式下“廣播”傳遞數(shù)據(jù)的方法,能根據(jù)實(shí)際需要利用物聯(lián)網(wǎng)解決問題。
教學(xué)準(zhǔn)備
硬件:掌控板(國產(chǎn)開源硬件);中英文語音合成模塊V2.0(Gravity);IO擴(kuò)展板。
軟件:Mind+(編程環(huán)境)。
教學(xué)過程
一、觀看視頻,導(dǎo)入主題
師:這是一個(gè)萬物互聯(lián)的全新時(shí)代,物聯(lián)網(wǎng)技術(shù)正漸行漸近地走進(jìn)我們的生活。什么是物聯(lián)網(wǎng)?物聯(lián)網(wǎng)這個(gè)名詞聽起來很專業(yè),似乎離我們很遠(yuǎn),但其實(shí)它已經(jīng)融入人們的日常生活。同學(xué)們,一起來觀看視頻,我們可以看到人們用手機(jī)解鎖共享單車,用手機(jī)上的“百度地圖”實(shí)時(shí)查詢公交車的位置,智慧公交車已經(jīng)進(jìn)入我們的生活。智慧公交車不僅開拓了人性化的服務(wù)模式,而且構(gòu)建了智慧生活與生態(tài)和諧共美的人居環(huán)境。今天我們一起學(xué)習(xí)設(shè)計(jì)與搭建基于Easy IoT平臺(tái)的公交車語音播報(bào)系統(tǒng),目標(biāo)是實(shí)現(xiàn)公交語音播報(bào)和位置查詢的功能。
學(xué)生觀看視頻后,已經(jīng)對(duì)今天將要學(xué)習(xí)的內(nèi)容有了最初的印象。
二、學(xué)習(xí)新知,創(chuàng)建項(xiàng)目
Easy IoT是一個(gè)常用的國際化物聯(lián)網(wǎng)服務(wù)平臺(tái),可以對(duì)聯(lián)網(wǎng)的傳感器和執(zhí)行器數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)控和反饋,并且對(duì)接收到的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和分析,并向傳感器和執(zhí)行器發(fā)回?cái)?shù)據(jù),實(shí)現(xiàn)控制效果。它的操作簡單明了,學(xué)生能夠迅速掌握技巧,搭建一個(gè)物聯(lián)網(wǎng)項(xiàng)目。
學(xué)生登錄Easy IoT網(wǎng)站,在線注冊(cè)賬號(hào),然后點(diǎn)擊“工作間”,新建一個(gè)設(shè)備,默認(rèn)名字為“設(shè)備一”。一個(gè)賬號(hào)默認(rèn)有10000條信息的儲(chǔ)存容量,這些容量能夠?qū)崿F(xiàn)所有設(shè)備共享。如果設(shè)備上方顯示“0/1000”,那意味著此設(shè)備最大可儲(chǔ)存1000條信息,已使用0條信息的儲(chǔ)存空間,當(dāng)收發(fā)的信息超過1000條,新信息將不再存入系統(tǒng)中。每個(gè)設(shè)備默認(rèn)每隔1秒儲(chǔ)存一次消息。學(xué)生們可以觀察到設(shè)備唯一識(shí)別碼Topic以及用戶信息,點(diǎn)擊“眼睛”圖標(biāo)可以將隱藏的Iot_id和Iot_pwd顯示出來。
三、動(dòng)手實(shí)踐
1.認(rèn)識(shí)廣播
在Mind+ 編程中,廣播—消息機(jī)制就是編程的全局事件。當(dāng)一個(gè)消息被廣播時(shí),所有角色(包含廣播者自身)都會(huì)接收到該消息。廣播可以在不同角色中傳遞消息,以站點(diǎn)“汝瓷小鎮(zhèn)”三條指令為例。
(1)接收到汝瓷小鎮(zhèn):意味著當(dāng)角色接收到消息時(shí),觸發(fā)該腳本。
(2)廣播汝瓷小鎮(zhèn):向包含自身在內(nèi)的所有角色發(fā)送該消息。發(fā)送結(jié)束后,會(huì)立即繼續(xù)向下執(zhí)行腳本。
(3)廣播汝瓷小鎮(zhèn)并等待: 消息發(fā)送后,等到所有接收消息的腳本執(zhí)行完成后才繼續(xù)向下執(zhí)行腳本。
2.測試物聯(lián)網(wǎng)平臺(tái)數(shù)據(jù)
打開Mind+ 右上角“實(shí)時(shí)模式”,再點(diǎn)擊界面左下角“擴(kuò)展”,添加網(wǎng)絡(luò)服務(wù)MQTT,測試物聯(lián)網(wǎng)數(shù)據(jù)傳輸是否正常。登錄Easy IoT物聯(lián)網(wǎng)平臺(tái),設(shè)置公交車報(bào)站主題,發(fā)送啟動(dòng)或者運(yùn)行命令。學(xué)生需要在 Mind+ 實(shí)時(shí)模式下,測試創(chuàng)建的角色“小麥”是否能接收到相關(guān)命令,保證物聯(lián)網(wǎng)平臺(tái)數(shù)據(jù)暢通。
四、程序編寫
1.明確程序算法思路
(1)當(dāng)按下掌控板A鍵,掌控板顯示公交車語音播報(bào)系統(tǒng),語音播放:“乘客您好,歡迎乘坐汝州市七路公交車,請(qǐng)站穩(wěn)扶好。”同時(shí),Easy IoT物聯(lián)網(wǎng)平臺(tái)發(fā)出“運(yùn)行”命令,小麥接收命令后顯示“iot連接成功”,繼續(xù)等待掌控板B鍵按下的命令。
(2)當(dāng)按下掌控板B鍵,Easy IoT物聯(lián)網(wǎng)平臺(tái)會(huì)發(fā)出“啟動(dòng)”命令,電腦接收到命令后,小麥變身一名公交車司機(jī),駕駛“汝河號(hào)公交車”,帶領(lǐng)大家一起去體驗(yàn)智慧公交車之旅。
(3)小麥依次發(fā)出公交車站點(diǎn)“風(fēng)穴寺”“市二高”“汝瓷小鎮(zhèn)”“沙灘公園”“市標(biāo)”“中大街”的報(bào)站提示音,MQTT發(fā)出等待六站的信息,掌控板通過Easy IoT物聯(lián)網(wǎng)平臺(tái)收到“風(fēng)穴寺”等六站信息命令后,播放公交車語音報(bào)站信息。
2.編寫程序
公交車語音報(bào)站A端:打開Mind+ 右上角“實(shí)時(shí)模式”,點(diǎn)擊界面左下角“擴(kuò)展”,添加網(wǎng)絡(luò)服務(wù)MQTT以及相關(guān)角色和舞臺(tái)。小麥角色初始化程序如圖1所示,公交車角色編程如圖2所示。
公交車語音報(bào)站B端:打開Mind+ 連接設(shè)備COM12,打開界面右上角“上傳模式”, 左下角點(diǎn)擊“擴(kuò)展”,添加掌控板和語音合成模塊以及網(wǎng)絡(luò)服務(wù)MQTT和 Wi-Fi;繼續(xù)點(diǎn)擊“執(zhí)行器”代碼塊,添加語音合成對(duì)應(yīng)指令。
為了保證通信穩(wěn)定,建議使用硬串口進(jìn)行通信。模塊循環(huán)發(fā)出合成的聲音(注意中英文語音合成模塊V2.0的開關(guān)是否撥到了UART方向)。如果使用到大量的文字播放,可調(diào)用“使用flash存儲(chǔ)”功能將文字存儲(chǔ)到Flash上減少內(nèi)存。公交車語音報(bào)站B端主程序如圖3所示。
當(dāng)行空板收到公交車語音報(bào)站A端MQTT發(fā)送的指令,會(huì)播放相關(guān)站點(diǎn)提示語音。“風(fēng)穴寺”站點(diǎn)智能語音報(bào)站提示相關(guān)程序圖如圖4所示,其他站點(diǎn)程序可參考此程序。
五、小組展示
學(xué)生以小組為單位共同完成項(xiàng)目,最后由各小組代表分享本組的公交車語音播報(bào)系統(tǒng),并進(jìn)行組內(nèi)自評(píng),小組之間互評(píng)。學(xué)生通過電子教室上交作業(yè),教師給予指導(dǎo)與評(píng)價(jià)。
六、課外拓展
教師可以讓學(xué)生開展課外拓展,結(jié)合溫濕度傳感器和氣壓傳感器設(shè)計(jì)一個(gè)Easy IoT校園數(shù)字氣象站,制作校園氣象數(shù)據(jù)遠(yuǎn)程觀測在線系統(tǒng)。
教學(xué)反思
學(xué)生通過設(shè)計(jì)Easy IoT物聯(lián)網(wǎng)平臺(tái)的公交車語音播報(bào)系統(tǒng),知道了物聯(lián)網(wǎng)MQTT數(shù)據(jù)傳輸過程,認(rèn)識(shí)了語音合成原理。本課例不僅綜合了開源硬件知識(shí),還涉及了廣播相關(guān)的編程知識(shí),讓學(xué)生根據(jù)實(shí)際問題的需要,培養(yǎng)自覺、主動(dòng)尋求恰當(dāng)?shù)姆绞浇鉀Q問題的能力以及獲取與處理信息的信息意識(shí),讓學(xué)生養(yǎng)成數(shù)字化學(xué)習(xí)與創(chuàng)新的習(xí)慣。