1. 物联网技术课程教学现状
1.1. 物联网技术
物联网工程是目前流行的专业学科和专业方向。物联网从提出到发展,从实践到创新,已经悄然迈入了2.0时代。物联网技术是典型的跨学科技术,涵盖了嵌入式技术、传感器技术、无线通信技术等等 [1]。目前流行的车联网技术、智能电网、智慧农业、智慧物流、智慧交通无不体现出物联网技术的强大力量和在社会生产生活中发挥的举足轻重的作用。
1.2. 物联网技术课程概况
目前笔者所在教学单位的物联网技术课程的理论教学为32学时,实验教学为16个学时。理论课内容主要是依据目前的《物联网概论》教材,讲授物联网相关概念和知识体系架构,对物联网的感知层、网络层、应用层进行系统讲解,覆盖了物联网背景、架构、核心技术、应用等基本框架,形成物联网知识体系。课堂理论教学内容是以概念为主,没有涉及具体的物联网工程软硬件开发和程序设计。
1.3. 物联网技术实验教学内容
物联网技术课程的主要实验教学内容是无线传感组网。实验设备是CVT-IOT-VSL物联网实验箱。该实验箱的物联网网关核心采用采用ARM Cortex-A8内核处理器,运行Android 2.3系统,附带温湿度传感器、振动传感器、光照传感器、超声波传感器等等模块、支持ZigBee无线传感组网实验、蓝牙无线传感数据通信实验、WiFi无线传感数据通信实验,并支持有源标签RFID和GPS实验。物联网实验箱无线传感模块如图1所示:
实验教学内容,以实验教学的重点之一ZigBee无线传感组网部分为例展开分析。该实验要求学生将多个传感器的ZigBee终端进行星状网和树状网组网,并在上位机显示多个传感数据。ZigBee模块的核心是德州仪器CC2530单片机,采用IAR集成开发环境进行C语言程序设计。物联网网关的Android无线传感上位机软件采用Eclipse开发环境结合Android SDK进行JAVA程序设计。实验教学过程采用循序渐进的方式,按照基础实验(无操作系统)、传感器实验、组网实验、Android传感器信息显示实验的步骤,由浅入深依次进行学习与研究。
基础实验部分,教师先讲解CC2530单片机的寄存器、定时器/计数器、中断系统、I/O口和串口的编程使用方法。学生练习CC2530的LED灯闪烁控制编程、UART串口通讯编程,为后续ZigBee组网实验打好基础。
传感器实验部分,要求学生掌握光照传感器、温湿度传感器的工作原理,编写传感器采集程序,下载到传感器终端模块进行调试运行,通过上位机软件查看传感器采集的数据。
Android传感器信息显示实验部分,教师指导学生掌握Android网络通讯编程方法,学习物联网网关上位机的Android程序设计,体验程序运行效果。
组网实验部分,学生在教师的指导下进行ZigBee无线传感组网的程序修改和软硬件调试。在实验教学过程中,教师通过课件和和实际工程讲解ZigBee网络三种逻辑设备类型Coordinator、Router、End-Device的角色分工,设备寻址原理、设备绑定机制,带领学生了解ZigBee组网的核心关键技术Z-Stack协议栈。教师演示修改Z-Stack协议栈程序实现简单的星状网和树状网无线传感通讯,展示组网效果。学生可自主操作ZigBee传感模块的硬件搭配,对程序配置关键参数修改调试,扩大组网节点规模,在物联网网关Android上位机和PC上位机观察组网效果和传感数据。实验中的ZigBee无线传感组网效果如图2所示:

Figure 2. Wireless sensor networking effect
图2. 无线传感组网效果
实验中的ZigBee无线传感数据展示如图3所示:

Figure 3. Wireless sensor data display
图3. 无线传感数据展示
1.4. 实验教学存在的问题和解决思路
通过研究实验教学的过程和效果,笔者分析了实验教学的问题和解决方法。
实验教学硬件操作层面的问题体现在,学生面对数量较多的模块化的无线传感模块,容易出现识别错误和操作错误。比如学生经常将外观相似的蓝牙模块和ZigBee模块混淆,将蓝牙CC2541通讯程序烧写进ZigBee CC2530模块导致出错。各种传感器模块,包括光照传感器、振动传感器、温湿度传感器等等,必须根据功能组合设计需求和各种无线模块母版准确搭配。模块之间搭配组合的接口和针脚也容易出现接插错误,引起硬件功能失常。因此教师需要细心指导学生认读模块芯片的丝印文字,准确识别和区分各种无线通讯模块和传感器模块,熟悉和摸透硬件设备,手把手教会学生正确搭建底层硬件。ZigBee CC2530模块和蓝牙CC2541模块如图4所示:

Figure 4. CC2530 and CC2541 module
图4. CC2530模块和CC2541模块
实验教学软件操作层面的问题体现在学生对Z-Stack协议栈的理解和使用。Z-Stack协议栈就是将各个ZigBee组网系统的层定义的协议都集合在一起,以函数的形式实现,并给用户提供一些API,供用户调用 [2]。Z-Stack协议栈的实现代码规模较大,完全吃透Z-Stack协议栈原理和代码并不现实也没必要,在开发过程中完全不必关心Z-Stack协议的具体实现细节。教师要让学生关注于应用层的数据是使用哪些函数通过什么方式发送数据或者接收数据。教师必须梳理Z-Stack协议栈的数据接口、关键函数、关键参数作为重点,指导学生学会使用ZigBee协议栈,避免学生在Z-Stack协议栈理解的上耗费过多时间。
通过基本的ZigBee无线数据通信实验,教师要带领学生总结归纳出这样的经验:组网操作就是调用协议栈的组网函数、加入网络函数,实现网络的建立与节点的加入;发送数据就是发送节点调用协议栈的无线数据发送函数,实现无线数据发送;接收数据就是接收节点调用协议栈的无线数据接收函数,实现无线数据接收。Z-Stack协议栈如图5所示:
软硬件协同调试的难点体现在大规模ZigBee组网的复杂性。每个ZigBee模块都有相应的三级逻辑分工,有协调器、路由器、终端这三种分工角色,每个分工角色都有关键的参数配置和程序调试要求,大量的模块组网必然带来复杂的参数设置操作和组网调试工作流程。学生必须熟练掌握软硬件工具,熟悉程序中的关键功能设计,反复进行程序修改和参数调试,观察硬件运行表现。通过教师的细心和反复指导,调动和发挥学生的自主探索的积极性和创造性,可以良好地完成实验操作,得到理想的实验效果。ZigBee组网三级设备分工如图6所示:

Figure 6. ZigBee networking three-level equipment division
图6. ZigBee组网三级设备分工
物联网无线传感组网的实验操作是一个软硬件紧密结合,体系化的十分耗时耗力的工作,对学生的动手能力提高、工程技术锻炼起到了很好的促进作用。教师在精通物联网技术理论、熟练掌握物联网软硬件工具的基础上,将丰富的理论知识和工程技术经验传授给学生,带领学生多动手实践,多观察和分析实验现象,多归纳总结,才能使学生在实验操作中有所斩获,掌握基本的物联网工程技术,保证物联网技术课程的实验教学质量,切合应用型人才培养目标。
2. 实验教学的改革
2.1. 理论和实验教学的衔接
理论课和实验课的内容关联存在一定程度的不足。理论课主要根据《物联网概论》教材讲解物联网的概念和知识体系结构,限于教材内容和课时量,没有涵盖无线传感组网的程序设计的相关内容。实验课是物联网无线传感组网实验,是物联网具体工程案例实践,学生在有限的实验课时内对物联网硬件做基本了解和简单的程序修改,软硬件调试。程序设计训练量略有不足。实验课时也比较有限,制约了实验内容的展开。这也是各高校同类课程的共性问题。笔者的思考是在理论课适当浓缩概念讲解的篇幅,增加无线传感组网的编程设计内容讲授,并增加实验课时,给学生充足时间进行无线传感编程和软硬件协同调试的训练。以此手段加强理论和实验教学的关联,提升教学效果。
笔者提出的解决方案还包括在后期的专业人才培养方案中开设《物联网通信技术与应用》课程,理论课堂内容专注于ZigBee、蓝牙、WiFi传感器组网的具体工程技术案例介绍和编程开发的讲解,跟实验课堂的编程训练紧密结合。《物联网技术》课程作为基本概念科普性质的角色发挥作用,适当配置体验式实验教学内容。
2.2. 实验教学技术架构的升级
随着物联网技术和IT技术的迅速发展,物联网工程的技术架构和开发工具也在迭代更新。
从物联网实验教学的软件工具架构来看,目前物联网实验设备的网关是Android 2.3系统,软件开发工具是Eclipse。物联网技术课程的前修课程《Android应用程序设计》使用的是市面主流的Android8.0以上系统,软件开发工具是Android Studio。系统代差较大,Android SDK和API应用程序接口也发生了较大变化,程序设计中所调用的类库、函数均有重大变化。让熟悉新版Android系统程序设计的师生转移到较旧系统平台,会产生一定的不适应和混乱,影响教学效果。解决思路是升级现有物联网网关开发板和Android系统,尽量接近市面主流安卓系统版本。
从整体技术架构层面来看,物联网课程的教学内容和实验设备还没有涵盖Nb-iot、Lora等流行的物联网技术。这也是今后物联网技术课程的教学建设的考虑方向。
2.3. 设计型实验教学改革
当前物联网实验教学的实验类型主要是验证型实验。转变为设计型实验需要打破实验箱设备相对固定的物理限制。可添置脱离于实验箱的模块化无线单元、传感器单元,嵌入式开发板(Arduino、树莓派、STM32),实现完全自由组合搭配,让学生充分发挥想象力,DIY搭建小型物联网硬件系统并设计无线传感程序,实现验证型实验向设计型实验升级转变的目标。比如基于树莓派的物联网环境监测系统的设计,便是以无线传感网搭建与应用设计为重点的设计型实验 [3]。DIY物联网环境监测系统如图7所示:

Figure 7. DIY IoT environmental monitoring system
图7. DIY物联网环境监测系统
3. 实验教学建设展望
3.1. AIoT物联网教学建设
鉴于物联网技术已进入2.0时代,开展智能化物联网实验教学条件建设迫在眉睫。可根据“AI + IoT”的行业理念,增设定制化物联网教学内容和实验设备。依托百度AI云服务、阿里云服务、机器视觉、深度学习技术加载AI功能和服务(图像识别、目标检测、语音识别),通过端云融合,实现物联网应用的智能化,促进AIoT落地教学改革 [4]。将多种传感器单元、自动识别功能单元、执行机构与控制单元和全系列物联网通信单元,通过多种功能单元之间的组合,实现基于物联网的交互式控制,实现各类物联网行业应用的教学落地。物联网方向的教学建设相应搭配物联网核心技术课程,配套课程资源与开发资料,教学PPT、实验讲义、实验案例源码、开发环境及软件工具等,支持无线传感网应用开发、物联网系统集成与搭建、物联网应用软件开发、AIoT应用开发等多层次、阶梯化物联网教学等。
3.2. 物联网设计大赛
以促进专业教学建设,强化实践教学和应用型人才培养为导向,参加相关学科竞赛是值得考虑的举措。全国大学生物联网设计竞赛是以学科竞赛推动专业建设、培养大学生创新能力为目标,面向全国高校大学生举办的全国性竞赛。竞赛以物联网行业项目和创新产品为导向激发学生的创造、创新、创业活力,推动创新创业教育的开展,助力大众创业万众创新支撑平台的建设为办赛方针,以高校大学生为主体,为高质量的物联网工程专业人才培养搭建交流、展示、合作的平台,并推动物联网技术在相关领域的应用与发展 [5]。
竞赛特别设计的具有前瞻性的主题,参赛队可以选择某一竞赛主题进行作品构思。竞赛组委会提供线上/线下技术教学资源,参赛队可通过多种方式与物联网行业资深工程师交流,并根据需要领取组委会推荐的技术平台。指导教师负责指导参赛队选题、组织学生参加赛前的技术培训,并鼓励学生应用竞赛推荐技术平台进行作品的创意设计与实现。
通过参加全国大学生物联网设计竞赛,促进专业领域的校际交流,开拓师生的视野,提高学生的专业实践动手能力,发挥“以赛促学,以赛促教”的良性循环作用,将竞赛中获得的知识、技术和思想融入物联网技术课程的理论教学和实验教学,把物联网技术课程做优做强。