基于Arduino的物联网温控实验设计

2017-02-10 08:55刘文杰覃振权
实验技术与管理 2017年1期
关键词:小数联网无线

刘文杰, 朱 明, 覃振权

(大连理工大学 软件学院, 辽宁 大连 116621)

基于Arduino的物联网温控实验设计

刘文杰, 朱 明, 覃振权

(大连理工大学 软件学院, 辽宁 大连 116621)

基于Arduino平台和Zigduino控制器,实现物联网无线温控高级实验教学。采用模块化的实验过程,把物联网实验的知识点直观展现在学生面前。实验通过网络传感器、温度传感器、时钟模块与液晶显示屏联动,让学生在实际操作和编程过程中深刻理解单片机总线工作原理。同时,针对高校学生的基本情况,设计了理论完善、操作性强的实验流程。

温度控制实验; 物联网; Arduino

在传统的物联网教学体系中,常以结课考核结果作为教学评价标准,而授课过程中的考核仅作为辅助性评价[1]。这种教学评价,使学生的创新思想、在实践过程中的交流、改进和实现等无法在考核中完全体现[2]。为此,将Arduino应用到物联网工程专业实践教学中,利用Arduino平台的优势,创新物联网工程专业实践教学,并在软件工程物联网专业教学的软硬件整合方面进行深入的探索和改进[3],在培养学生自主意识、创新意识与能力等方面,取得良好的教学效果。

1 嵌入式实验平台的应用

在传统的物联网实践教学体系中,讲授物联网底层技术开发,有诸多不足。一方面,需要用很多时间讲授51-STM32嵌入式开发体系[4];另一方面,传统的嵌入式实验教学平台体积庞大、体系复杂,无法适应创新实践教学模式的开放性[5]。为了激发学生的学习兴趣、培养学生的创新思维,必须突破传统教学中实验室的限制,用开放实验教学的思路鼓励学生利用开源平台完成实验[6]。在开放性实验平台中,使用简便、灵活的开发平台,进行物联网感知、识别和控制中外围功能模块的讲解,让学生在有限的基础知识上提高学习效率、快速进行实验开发。

Arduino实验平台的结构如图1所示,基于Arduino的物联网工程实践教学过程如下:

(1) 从Arduino开放平台硬件接口引入,从最简单的Arduino工程入手,由浅入深地介绍Arduino开发环境、语法、接口等基本技术。

(2) 学习用Arduino进行物联网创新实践学习过程。Arduino的开发板和ZigBee、以太网通信等功能模块体积小、重量轻、采用USB供电,并有多种开源传感器可供使用,一般不受时间、地点的限制,可在教学过程中可将任务布置在课后,由学生独立完成[7]。

(3) 在高级实验中,包括开发环境的基本操作、常用函数、GPIO的读写、UART通信接口、AD接口等,还有基本传感器与控制元件的使用,如LED、按键、与计算机通信、温湿度传感器、超声波距离传感器、继电器、舵机各类扩展功能等[8]。

图1 Ardiuno实验平台结构

2 实验内容

2.1 实验平台搭建

使用Ardiuno平台硬件接口,从最简单的Arduino工程(包括Blink、ASCII Table等基本的工程)入手,由浅入深介绍Arduino开发环境、语法、接口等基本技术。采用Zigduino控制器来实现温度数据的ZigBee无线传输。Zigduino是带有ZigBee无线传输功能的Arduino兼容控制器,具有集成化程度高、体积小、性价比高的优点[9]。

Arduino开发环境相对于其他嵌入式开发平台,具有极好的跨平台性。在任意操作系统上,下载对应的Arduino IDE,按照操作提示安装即可。

Zigduino的开发环境是基于Aduino的开发环境开发而来,可以使用Zigduino完整版或Arduino IDE扩展包来实现Zigduino的开发。将扩展包内2个文件夹复制到原IDE的根目录下,替换提示重复的文件后,再次运行arduino.exe即可正常使用[10]。

2.2 配置Zigduino平台与温度测量实验

温度测量实验采用Zigduino控制器和温度传感器DS18B20来实现[11]。将DS18B20的VDD和GND分别接至Zigduino控制器的+5 V和GND,数据引脚DQ接至Zigduino控制器的数字端口D2,并且在数据引脚DQ与+5 V之间连接阻值为4.7 kΩ的电阻,以保证温度传感器DS18B20能够正常工作[12]。主要功能使用第三方函数库DallasTemperature来实现,将带有两位小数的温度数据先放大100倍以去除小数点,再提取出温度数据的整数部分和小数部分,具体代码如下:

#include //加载无线库 #include //加载单总线总线库 #include //加载单总线温度传感器库 #define ONE_WIRE_BUS 2//定义单总线所连接的引脚 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); char i,j;//定义变量,用于存放温度数据的整数和小数部分 int a;//定义变量,用于存放温度数据 void setup() { ZigduinoRadio.begin(11);//设置通道为11,可设置为11-26 sensors.begin();//初始化传感器 } void loop(){ sensors.requestTemperatures();//从DS18B20传感器获取温度数据 a=sensors.getTempCByIndex(0)*100;//将温度数据放大100倍,以去除小数点 i=a/100;//取出温度数据的整数部分 j=a%100;//取出温度数据的小数部分 ZigduinoRadio.beginTransmission();//无线开始通信标志 ZigduinoRadio.write(i);//无线发送温度数据的整数部分 ZigduinoRadio.write(j);//无线发送温度数据的小数部分 ZigduinoRadio.endTransmission();//无线结束通信标志 delay(1000);//更新速率为1次/秒 }

2.3 Zigduino平台的温度实验显示

时钟和显示部分采用Zigduino控制器和DS3231实时时钟模块、LCD1602液晶显示屏模块来实现。将DS3231的5 V和GND分别接至Zigduino控制器的5 V和GND,信号引脚SCL、SDA分别接至Zigduino控制器的端口SCL、SDA;将LCD1602液晶显示屏模块的VCC、GND、R/W分别接至Zigduino控制器的5V、GND和GND,对比度调节引脚VEE通过10 kΩ的电位器来调节分压值,信号控制引脚RS、E分别接至Zigduino控制器数字端口D7和D6,数据输入引脚D4、D5、D6、D7分别接至Zigduino控制器数字端口D5、D4、D3、D2。程序如下:

#include //加载液晶显示库 #include //加载I2C总线库 #include //加载无线库 #include ″DS3231.h″//加载DS3231时钟库 DS3231 RTC;//创建时钟类 LiquidCrystal lcd(7, 6, 5, 4, 3, 2);//依次为液晶RS、E、D4、D5、D6、D7所连接的引脚 char i,j; void setup() { ZigduinoRadio.begin(11);//设置通道为11,可设置为11-26 lcd.begin(16, 2);//初始化1602液晶显示屏 Wire.begin();//初始化I2C总线 RTC.begin();//启动DS3231实时时钟模块 lcd.clear();//清除液晶显示屏上的内容 } void loop() { lcd.setCursor(0, 0); DateTime now = RTC.now();//获取当前时间 lcd.print(now.year(), DEC);//显示年份 lcd.print(′/′); lcd.print(now.month(), DEC);//显示月份 lcd.print(′/′); lcd.print(now.date(), DEC);//显示日期 lcd.setCursor(0, 1); lcd.print(now.hour(), DEC);//显示小时 lcd.print(′:′); if(now.minute()>9){//判断是否分钟的十位部分是否为零,若十位部分为零,则在十位处显示0,,例如为5分钟,则显示为05 lcd.print(now.minute(), DEC);//显示分钟 } else{ lcd.print(″0″); lcd.print(now.minute(), DEC); } lcd.print(′:′); if(now.second()>9){ lcd.print(now.second(), DEC);//显示秒钟 } else{ lcd.print(″0″); lcd.print(now.second(), DEC); } lcd.print(″ ″); if (ZigduinoRadio.available())//判断无线是否接受到数据 { i=(char)ZigduinoRadio.read();//将接收到的数据赋给变量i,因为我们在发射端发送的数据为char型变量,故要接收char型可以直接在接收变量前面加(char),这样既可使接收到的数据变为char型。 j=(char)ZigduinoRadio.read(); } lcd.print(i,DEC);//显示温度数据的整数部分 lcd.print(″.″); if(j>9){ lcd.print(j,DEC);//显示温度数据的小数部分 } else{ lcd.print(″0″); lcd.print(j,DEC); } lcd.write(0xdf);//显示摄氏温度单位℃ lcd.write(′C′); }

3 结语

结合不同专业方向的本科教学特点,使用开源的Zigduino控制器设计了基于Arduino开放平台的高级实验课程,使学生学习到的物联网知识能够在高级实验过程中通过工程应用的方法实现。该实验设计降低了物联网实验的难度。为了充实物联网开放性实验平台,还需对课程内容、教学模式、培养方式等方面进行更多的探索。

References)

[1] Creasy R. The Origin of the VM/370 Time-Sharing System[J].IBM Journal of Research and Development, 2010(25):483-490.

[2] 刘文杰,江贺.基于VMware的桌面虚拟化实验设计[J].实验技术与管理.2015,32(1):127-128.

[3] Miller K, Pegah M. Virtually at the Desktop[C]//35th Annual ACM SIGUCCS Conference on User Services. USA: Orlando, 2007:255-260.

[4] 刘文杰,王善坤.网络仿真技术在校园网网络实验中的应用[J].实验技术与管理,2016,33(1):132-134.

[5] 崔贯勋.基于云计算技术的计算机实验教学平台[J].实验室研究与探索,2013,32(10):447-450.

[6] Miller K, Pegah M. Virtualization, Virtually at the Desktop[C]//35th Annual ACM SIGUCCS Conference on User Services. Orlando, Florida,USA,2007:255-260.

[7] Liu Wenjie, Feng Bin , Wang Yongjian. A dynamic trust value based on the recommended solution[C]//2012 IEEE 2nd International Conferences on Cloud Computing and Intelligence Systems.Hangzhou, 2012.

[8] 吴良,邹志宏,吴文华.智能实验室管理系统的开发与实践[J].实验室研究与探索,2012,31(5):169-172.

[9] 刘红,王成林,马向国,等.智能实验室管理设想[J].物理与工程,2008,18(5):34-36.

[10] 邓超.桌面虚拟化在数字化校园中的应用研究[J].教育信息技术,2010(12):47-49.

[11] 崔炜荣.桌面虚拟化在高校公共机房中的应用探讨[J].电子世界,2012(6):8-9.

[12] Baratto R A, Potter S, Su G, et al. MobiDesk: Mobile Virtual Desktop Computing[C]//Tenth Annual ACM International Conference on Mobile Computing and Networking (MobiCom).2004:1-15.

Design of IoT temperature control experiment based on Arduino

Liu Wenjie, Zhu Ming, Qin Zhenquan

(School of Software Technology, Dalian University of Technology, Dalian 116621, China)

Based on the Arduino platform and Zigduino controller, this paper realizes the Internet of things integration wireless network experiment courses, which can let students quickly understand the hierarchical structure of the Internet of things, develop the students’ ability of agile development. Experiment through the network of sensors, temperature sensors, clock module and LCD display, can let the students in the process of actual operation and programming deeply understand the working principle of the single chip microcomputer bus. According to the basic situation of college students, the experimental process shows that the theory is perfect and feasible in experimental process.

temperature control experiment; Internet of things(IoT); Arduino

10.16791/j.cnki.sjg.2017.01.035

2016-07-21 修改日期:2016-09-26

国家自然科学基金青年科学基金项目(61202442)

刘文杰(1979—),男,河北保定,硕士,工程师,主要研究方向为网络安全和物联网工程.

E-mail:liuwj@dlut.edu.cn

TP393;G642.4

A

1002-4956(2017)1-0150-03

猜你喜欢
小数联网无线
小数加减“四不忘”
“身联网”等五则
《物联网技术》简介
我国古代的小数
小数的认识
《无线互联科技》征稿词(2021)
小数的认识
无线追踪3
基于ARM的无线WiFi插排的设计
抢占物联网