鄭祥
● 物聯網技術及其原理
物聯網技術分為感知、傳輸和控制三個方面。一個典型的物聯網應用是通過感知技術獲取數據,再傳輸、存儲到物聯網服務器上,最后物聯網根據這些外界環(huán)境的數據做出相應的控制,從而實現與外界環(huán)境的“互動”,如圖1所示。
1.物聯網感知技術
物聯網的感知技術涉及的領域非常廣泛,主要包括傳感器技術、射頻識別技術、GPS定位技術等,所有能夠將外界環(huán)境或物品的狀態(tài)信息轉化為計算機能處理的數字信號的技術都屬于感知技術。
2.物聯網傳輸技術
物聯網的傳輸技術主要負責將物聯網終端感知到的環(huán)境數據傳輸至物聯網服務器,主要借助于互聯網技術。物聯網應用場景的多樣性,決定了物聯網終端設備的不同傳輸方案的部署。
3.物聯網控制技術
物聯網控制技術,顧名思義就是通過物聯網對某一物品或電器實現控制的目的,在一些智能家居產品上能看到物聯網技術在控制方面的應用。
● 物聯網課程的教學現狀
據調研,國內中小學開設物聯網課程的寥寥無幾,真正讓學生自行完成物聯網實驗的學校更是少之又少。以江蘇省為例,雖然最早將“物聯網技術”作為拓展模塊納入義務教育信息技術課程指導綱要,但是教材卻停留在“紙上談兵”階段,幾乎沒有機會開展物聯網相關的基礎實驗,更別說動手實踐設計一個簡單的物聯網作品了。分析其原因,有如下兩點:①開展物聯網實驗需要硬件支持。②物聯網編程的技術門檻太高。雖然常見的開源硬件降低了硬件成本,但是所支持的編程語言卻不適合初中學生。如下頁表1所示,除了圖形化編程語言外,可選的只有C++、JavaScript、MicroPython。圖形化的編程只能在小學階段使用,而C/C++和JavaScript語言對初中學生而言難度太高。至于MicroPython,雖然其語法風格與Python語言一致,但是缺少各種Python擴展庫的支持后,很多創(chuàng)意被限制了。
● 用Python語言設計物聯網實驗的可行性
隨著計算思維成為新課程核心素養(yǎng)的重要組成部分,Python語言也作為統一的編程語言納入各個版本的高中新教材。浙江省2020年版初中信息技術教材中,也將Python語言完全取代了VisualBasic語言的編程教學,并將物聯網的相關內容作為主要部分納入八年級下冊新教材,如表2所示。
相較C/C++、JavaScript語言,Python語言語法風格簡單。與此同時,Python語言又擁有十分龐大的模塊和庫,非常適合初中學生編寫與網絡、人工智能相關的應用。雖然借助pyserial庫,Python能夠通過串口控制各種開源硬件,并與之交互,但是開源硬件端需要編寫相應程序(燒錄固件),相對來說難度還是太高,不適合推廣。
當pinpong庫出現后,Python導入庫并建立對象后,就能自動給開源硬件“燒錄”固件,還能完美地兼容掌控板和micro:bit等開源硬件。就連不支持網絡連接的Arduino,也可以在pinpong庫的支持下通過計算機串口實現聯網。這樣一來,物聯網終端硬件的選擇范圍擴大了,編程的技術門檻也大幅度降低。Python的庫非常豐富,結合MQTT或者siot庫,完成一個物聯網實驗非常簡單。
● 初中物聯網實驗的設計范例
感知和控制是物聯網中的核心內容。本文選擇了兩個經典的物聯網實驗,即感知溫度和遠程控制,展示基于Python和pinpong庫的物聯網實驗設計。實驗的硬件采用Arduino,物聯網服務器選擇SIoT,物聯網協議采用MQTT,并使用siot庫。SIoT服務器和siot庫都是開源的,屬于“虛谷計劃”中虛谷物聯項目中的組成部分。從難度上看,小學高年級和初中學生完全可以理解和掌握。
1.物聯網采集實驗:感知溫度
實驗內容:通過Arduino定時采集環(huán)境溫度,然后上傳到物聯網服務器。
硬件清單:ArduinoUno、擴展板、LM35溫度傳感器。
將ArduinoUno與擴展板連接起來,再將LM35溫度傳感器連接到擴展板的A0引腳,如圖2所示。具體代碼掃描下方二維碼。
運行代碼后,計算機將自動給Arduino刷寫一個“固件”,隨后就每隔0.5秒上傳溫度數據到SIoT服務器,Topicid為“tiyan2/temp”。感知溫度代碼運行及siot平臺溫度數據掃描下頁二維碼。
2.物聯網控制實驗:LED燈遠程控制
實驗內容:通過物聯網平臺SIoT,發(fā)送MQTT指令,實現對LED燈的控制。
硬件清單:Arduino Uno、擴展板、LED燈模塊。
將ArduinoUno與擴展板連接起來,再將LED燈連接到擴展板的D8引腳上,如圖3所示。具體代碼掃描下方二維碼。
運行程序代碼。當收到物聯網平臺上的消息為“on”時,點亮LED燈;當收到物聯網平臺上的消息為“off”時,則熄滅LED燈。
注:MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)是一種基于發(fā)布/訂閱模式的“輕量級”物聯網通信協議。它可以用極少的代碼和有限的帶寬,為連接遠程設備提供實時可靠的消息服務,也就是說它可以在較差的網絡環(huán)境下使用。目前,國內外主要的云計算服務商,如阿里云、AWS、百度云、Azure以及騰訊云等都支持MQTT協議。
● 基于Python語言的初中物聯網課程設計
隨著物聯網技術的普及,智能家居也逐漸走進了人們的生活。智能家居是物聯網應用的拓展,也是學生對物聯網應用的最直觀感受。因此,初中的物聯網課程可以與智能家居相結合,初中物聯網課程可按如表3所示的參考目錄進行開設。
這兩個單元,除了增加相應的物聯網實驗外,還可以采用項目式學習的方式,讓學生分組真正動手制作物聯網應用。例如,第一單元可以選擇制作“搭建一個簡單的物聯網應用模型”,第二單元可以選擇“改造家里的智能家居應用”。除了可以完成課程中的各種實驗,還可以開發(fā)物聯網方面的創(chuàng)客作品。
● 結語
信息技術在高速發(fā)展,中小學的信息技術課程也要與時俱進。物聯網課程的開設,既需要一系列硬件、軟件的支持,也需要設計一系列貼近學生生活的經典實驗,以此來激發(fā)學生的實踐能力和創(chuàng)造意識。語法簡潔而功能強大的Python語言、價格低廉而擴展豐富的開源硬件,是物聯網課程的最佳選擇。在pinpong庫的支持下,二者完美地結合在一起,大大降低了物聯網的技術門檻,期望在越來越多的物聯網課程中加入實驗活動,讓學生能夠真正駕馭物聯網技術。