李媛 楊加 林泳免
摘 要:本文根據(jù)C語言、Java、C#和Android等技工院校信息類專業(yè)常開設(shè)的程序設(shè)計(jì)課程,探討研發(fā)基于物聯(lián)網(wǎng)技術(shù)的教學(xué)設(shè)備、應(yīng)用于程序設(shè)計(jì)的教學(xué)課程,讓學(xué)生輕松學(xué)習(xí)計(jì)算機(jī)編程語言,享受學(xué)習(xí)編程語言的樂趣,從而提高學(xué)生的編程能力水平,挖掘?qū)W生的內(nèi)在潛力。
關(guān)鍵詞:物聯(lián)網(wǎng)技術(shù) 編程教學(xué) 創(chuàng)新
計(jì)算機(jī)程序設(shè)計(jì)課程是技工院校信息類專業(yè)的核心課程,通過程序設(shè)計(jì)課程的教學(xué),能夠讓學(xué)生掌握一門或者多門程序設(shè)計(jì)語言,養(yǎng)成分析問題、解決問題的基本能力,并且加深對(duì)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的理解。
程序設(shè)計(jì)課程邏輯性較強(qiáng),內(nèi)容枯燥,艱澀難懂,技工院校的學(xué)生在學(xué)習(xí)編程時(shí),常常處于一種機(jī)械、被動(dòng)、不自信的狀態(tài),程序設(shè)計(jì)水平長(zhǎng)期徘徊不前,進(jìn)而失去學(xué)習(xí)的興趣,教學(xué)效果很不理想。
探索新的教學(xué)方法,為技工院校信息類專業(yè)學(xué)生解決編程學(xué)習(xí)難的問題,已迫在眉睫。
一、物聯(lián)網(wǎng)技術(shù)在編程教學(xué)中的創(chuàng)新應(yīng)用
結(jié)合筆者學(xué)校學(xué)生特點(diǎn)和當(dāng)前開設(shè)的程序設(shè)計(jì)課程,筆者通過大量實(shí)驗(yàn),測(cè)試市面上各種相關(guān)物聯(lián)網(wǎng)芯片和電子零件的功能和穩(wěn)定性,選取符合技工院校程序設(shè)計(jì)教學(xué)特點(diǎn)的零件,進(jìn)行硬件組裝和軟件加工設(shè)計(jì),研發(fā)基于物聯(lián)網(wǎng)技術(shù)的教學(xué)設(shè)備,將其應(yīng)用于程序設(shè)計(jì)課程教學(xué),讓枯燥乏味的編程課程變得輕松有趣。具體步驟如下。
第一,基于物聯(lián)網(wǎng)技術(shù)研發(fā)教學(xué)設(shè)備,選擇合適的主控芯片和網(wǎng)絡(luò)芯片來控制設(shè)備和接入網(wǎng)絡(luò),為硬件編寫一套代碼,實(shí)現(xiàn)通過網(wǎng)絡(luò)傳輸?shù)男问絹戆l(fā)送參數(shù)和解析外部傳入的命令,內(nèi)部封裝嚴(yán)謹(jǐn),外部交互接口參數(shù)豐富,操作直觀易用,學(xué)生無須學(xué)習(xí)額外的知識(shí)就可以快速入門,有助于學(xué)生對(duì)物聯(lián)網(wǎng)技術(shù)的理解和認(rèn)識(shí),同時(shí)提升教師的專業(yè)能力。
第二,通過采取軟硬件結(jié)合的編程學(xué)習(xí)方法,可以很好地鍛煉學(xué)生的思維能力、動(dòng)手能力以及創(chuàng)造創(chuàng)新能力,對(duì)個(gè)人專業(yè)技能提升有很大幫助。
第三,物聯(lián)網(wǎng)技術(shù)的編程教學(xué)方法可運(yùn)用于C語言、Java、C#和Android等多種編程語言的教學(xué),有助于學(xué)生從基礎(chǔ)編程課程向進(jìn)階課程的學(xué)習(xí)升級(jí)。
第四,搭建實(shí)驗(yàn)教學(xué)環(huán)境——物聯(lián)網(wǎng)平臺(tái)。設(shè)計(jì)開發(fā)基于MQTT協(xié)議及WebSocket協(xié)議的物聯(lián)網(wǎng)云平臺(tái),下面以“基于物聯(lián)網(wǎng)技術(shù)編程讀取溫濕度的實(shí)驗(yàn)”為例進(jìn)行分析。
(一)實(shí)驗(yàn)?zāi)康?/p>
本實(shí)驗(yàn)主要通過物聯(lián)網(wǎng)技術(shù),讓學(xué)生通過編寫簡(jiǎn)單的程序遠(yuǎn)程讀取硬件模塊溫濕度的值。實(shí)驗(yàn)采用團(tuán)隊(duì)自行設(shè)計(jì)的軟硬件平臺(tái),簡(jiǎn)化復(fù)雜的編程過程,而且支持多個(gè)編程環(huán)境平臺(tái)。傳統(tǒng)的編程學(xué)習(xí)主要是使用顯示屏幕進(jìn)行互動(dòng),而本實(shí)驗(yàn)?zāi)茏寣W(xué)生在編程入門學(xué)習(xí)中直接與硬件模塊互動(dòng),從而培養(yǎng)其學(xué)習(xí)的興趣,掌握編程的技巧。
(二)物聯(lián)網(wǎng)云平臺(tái)軟硬件介紹(見圖1)
1.學(xué)生編程環(huán)境工具
Visual Studio? ?AndroidStudio? ?Dreamweaver.
2.實(shí)驗(yàn)使用自行設(shè)計(jì)的溫濕度模塊(見圖2、圖3)。
(三)實(shí)驗(yàn)過程
1.準(zhǔn)備工作
(1)先打開物聯(lián)網(wǎng)平臺(tái),在平臺(tái)上注冊(cè)一個(gè)用戶名,并設(shè)置好密碼。
(2)在物聯(lián)網(wǎng)平臺(tái)登錄用戶后臺(tái),創(chuàng)建一個(gè)溫濕度設(shè)備,設(shè)置好設(shè)備ID。
(3)使用已經(jīng)編寫好的設(shè)備固件源代碼,修改設(shè)備要接入的Wifi信號(hào)和密碼,再修改設(shè)備ID、用戶名和密碼等內(nèi)容,使其與物聯(lián)網(wǎng)平臺(tái)注冊(cè)的用戶及設(shè)備ID一致(見圖4、圖5)。
(4)為設(shè)備接入供電電源,設(shè)備啟動(dòng)并自動(dòng)聯(lián)網(wǎng),接入物聯(lián)網(wǎng)平臺(tái)。
2.不同編程課程的學(xué)習(xí)及代碼
以《C#.Net程序設(shè)計(jì)》代碼讀取顯示溫濕度為例。
(1)先導(dǎo)入命名空間。
using MyWlw.User; //導(dǎo)入會(huì)員操作命名空間
using MyWlw.Devices.Wsd; //導(dǎo)入設(shè)備命名空間
(2)拖放三個(gè)Label控件,分別命名為label1,label2,label3。
(3)在窗口加載時(shí)編寫以下代碼:
聲明對(duì)象變量:
User usr;
Wsd w1;
Form_Load事件中:
usr=new User(“用戶名”,“密碼”); //使用在平臺(tái)注冊(cè)的會(huì)員創(chuàng)建一個(gè)用戶對(duì)象
w1=new Wsd(usr , “設(shè)備ID”); //使用用戶對(duì)象和設(shè)備ID創(chuàng)建一個(gè)溫濕度設(shè)備
w1.SetCallBack(GetData);? //設(shè)置好數(shù)據(jù)返回的回調(diào)函數(shù)
w1.Connect(); //連接物聯(lián)網(wǎng)平臺(tái)
用于返回?cái)?shù)據(jù)的回調(diào)函數(shù):
Private void GetData(string type, string data)? //當(dāng)平臺(tái)有數(shù)據(jù)返回時(shí),自動(dòng)調(diào)用該函數(shù)
{
//判斷每次返回的數(shù)據(jù)類型,顯示數(shù)據(jù)到窗體上
if (type==”ds18b20”)? label1.Text=”溫度1:”+data+”度”;
if (type==”dht11_wd”)? label2.Text=”溫度2:”+data+”度”;
if (type==”dht11_sd”)? label3.Text=”濕度:”+data+”%”;
}
在窗體上拖放一個(gè)定時(shí)器,設(shè)置每隔3秒執(zhí)行以下代碼:
private void timer1_Tick(object sender, EventArgs e)
{
w1.Get (); //每隔3秒向物聯(lián)網(wǎng)平臺(tái)發(fā)送一個(gè)獲取溫濕度數(shù)據(jù)的指令。
}
(4)運(yùn)行效果(見圖6)。
二、取得的效果
一是近幾年信息類專業(yè)招生率逐年上升。2018年筆者學(xué)校計(jì)劃招生200人,實(shí)際招生220人,比原計(jì)劃提高10%;2019年計(jì)劃招生250人,實(shí)際招生280人,比原計(jì)劃提高12%;2020年計(jì)劃招生 250人,實(shí)際招生 300人,比原計(jì)劃提高20%。
二是近幾年參加校內(nèi)集訓(xùn)的人數(shù)逐年遞增,學(xué)生參加省級(jí)比賽取得的名次逐年靠前。2018年筆者學(xué)校選手參加第45屆世界技能大賽省屬技工院校選拔賽,1人獲得了三等獎(jiǎng);2019年筆者學(xué)校參加第四屆廣東省技工院校職業(yè)技能大賽,獲得了總分第3名;2020年筆者學(xué)校選手參加第46屆世界技能大賽廣東省選手選拔賽,有兩名學(xué)生分別獲得了二等獎(jiǎng)和三等獎(jiǎng)。
三是自主創(chuàng)業(yè)的學(xué)生逐年增多。自2017年以來自主創(chuàng)業(yè)人數(shù)每年都在遞增,公司業(yè)務(wù)類型越來越多樣化,公司員工人數(shù)逐年增多。
三、小結(jié)
在程序設(shè)計(jì)課程教學(xué)中運(yùn)用物聯(lián)網(wǎng)技術(shù),采用一體化的教學(xué)手段,使學(xué)生在課堂上體驗(yàn)如何拼裝程序小車、組裝智能機(jī)器人、安裝各類燈組模塊和傳感器,通過遠(yuǎn)程錄入指令,完成特定功能,以多元化的方式來直觀展示程序運(yùn)行結(jié)果,改變了以往程序設(shè)計(jì)課堂嚴(yán)肅、乏味的現(xiàn)狀,為學(xué)生進(jìn)一步學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。
參考文獻(xiàn):
[1]丁曉波,蔡政英.物聯(lián)網(wǎng)專業(yè)人才培養(yǎng)實(shí)踐體系探索與實(shí)踐[J]. 物聯(lián)網(wǎng)技術(shù),2020(4).
[2]陳崎峙.經(jīng)濟(jì)發(fā)展中物聯(lián)網(wǎng)的意義與作用[J].環(huán)渤海經(jīng)濟(jì)瞭望,2020(2).
[3]趙宏林,廉小親,郝寶智,羅旭,龔永罡.基于物聯(lián)網(wǎng)云平臺(tái)的空調(diào)遠(yuǎn)程控制系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2017(8).
[4]肖清旺,王錦華,朱易翔. 物聯(lián)網(wǎng)智能終端設(shè)備識(shí)別方法[J].電信科學(xué),2017(8).
(作者單位:廣東省粵東技師學(xué)院)