IPv4/IPv6双栈物联网智能家居系统设计与仿真实现
2023-06-27吴薇薇李清平
吴薇薇,李清平
(浙江育英职业技术学院信息技术学院,杭州 310018)
0 引言
随着通信技术、计算机技术和电子技术的不断发展,移动通信正在从人与人(Human to Human,H2H)向人与物(Human to Machine,H2M),以及物与物(Machine to Machine,M2M)通信的方向发展,万物互联成为移动通信发展的必然趋势,物联网(Internet of Things,IoT)正是在此背景下应运而生,其被认为是继计算机、互联网之后,世界信息产业的第三次浪潮,应用开发前景广阔,产业带动能力强[1]。思科(Cisco)公司预测,未来十年,物联网将为全球公司和行业创造价值高达14.4 万亿美元的机遇,对整个社会所带来的影响将是互联网的5~10倍[2]。欧美国家已纷纷将发展物联网纳入整体信息化战略,我国也已将物联网明确纳入国家中长期科学和技术发展规划(2006—2020 年)及2050年国家产业路线图。
物联网作为一项前沿技术,已经逐步融入生产生活的许多应用场景,广泛应用在交通、物流、环保、电力等领域,人们在潜移默化中感受到物联网的影响。整个物联网应用市场的细化特点也日益显现,家居的智能化就是利用物联网技术将独立家居设备进行联网互通,实现设备间的资源和信息共享。
由于IPv4 网络地址数量匮乏、安全性等问题,制约物联网、5G 等新业务的开展,IPv6 网络将成为互联网新业务发展与运用的强有力支撑[3]。但囿于Internet 的规模以及目前网络中数量庞大的IPv4 用户和设备,IPv4 到IPv6 的过渡不可能一次性实现,而且目前许多企业和用户的日常工作越来越依赖于Internet,所以IPv4 到IPv6的过渡必然是一个循序渐进的过程[4]。IPv4到IPv6 的过渡技术中,双栈技术是在IPv6 结点中嵌入IPv4 协议栈,无需构造隧道,既不影响现有IPv4 业务,又可以满足IPv6 的新需求,实现相对简单[5]。
1 仿真平台概述
IPv4/IPv6 双栈物联网智能家居系统仿真平台采用思科公司开发的Packet Tracer软件,该软件支持多种服务器,功能强大,用户可以直接利用虚拟环境搭建网络拓扑。7.1 版本操作界面简洁,提供的物联网模块包括家居(Home)、智慧城市(Smart City)、工业(Industrial)及电网(Power Grid),每个模块下面又包含若干IoT 设备[6],如本实验用到的Furnace(加温器)、Thermostat(温度调节器)、Humidity Monitor(湿度监测仪)、Fire Sprinkler(喷洒灭火器)、Smoke Detector(烟雾探测器)、Water Level Monitor(水位监测仪)等,基本可以满足一个物联网智能家居的系统设计需求。
2 仿真场景部署与IPv4/IPv6地址分配
2.1 仿真场景及拓扑图
IPv4/IPv6 双栈物联网智能家居系统由室内和室外两部分组成,如图1所示。室内部分包括Fire Sprinkler(喷洒灭火器)、Fan(风扇)、Window(窗)、Door(门)、Smart LED(智能LED)、Light(台灯)、Humidifier(加湿器)、Humidity Monitor(湿度监测仪)、Thermostat(温度调节器)、Furnace(加温器),以IoT1~IoT10 予以标识,通过室内PC 进行调控。室外部分包括Garage Door(车库门)、Home Speaker(音响设备)、Lawn Sprinkler(草坪喷灌器)、Water Level Monitor(水位监测仪)、Smoke Detector(烟雾探测器),以IoT11~IoT15 予以标识,通过智能手机进行调控。所有物联网设备以及调控设备都连接到中心交换机,并通过服务器(Server)获取IP地址并进行注册。智能手机通过无线路由器接入中心交换机,设置两者的服务集标识符(service set identifier,SSID)均为“SmartHome”,认证方式(Authentication)采用AES 加密算法的WPA2-PSK。
2.2 IPv4/IPv6地址分配
海量的地址是移动互联网、物联网、5G 等应用深入发展的基础,128bit的IPv6成为这些新兴领域的刚需,据预测未来5 年全球将有500 亿物联网终端接入,到2025 年我国在IPv6 网络规模、用户规模和流量规模三个关键性指标方面将位居世界前列[7]。
受到终端及运营商网络IPv6 能力的限制,互联网业务的IPv6 改造不可能一蹴而就,因此IPv4 和IPv6 的并存将会持续相当长时间,数据中心(服务器)作为应用基础设施的重要部分,需要同时支撑IPv4业务和IPv6业务。
图1 IPv4/IPv6双栈物联网智能家居系统仿真拓扑
动态主机配置协议(dynamic host configuration protocol,DHCP),使用UDP 工作的局域网(LAN)网络协议,给内部网络或网络服务供应商自动分配IP 地址,或给用户或内部网络管理员作为对所有计算机进行统一管理的手段[8]。IPv6 动态主机配置协议(dynamic host configuration protocol for IPv6,DHCPv6)是运行在客户端和服务端之间的协议,与IPv4 中的DHCP 一样,所有的协议报文都基于UDP 协议,但由于在IPv6中没有广播报文,因此DHCPv6使用组播报文[9]。
服务器通过手动方式配置IPv4/IPv6 地址,室内外所有的IoT 设备、智能手机、室内PC 通过服务器自动获取IPv4/IPv6地址,如表1所示。
表1 服务器、IoT设备、智能手机、室内PC的IPv4/IPv6地址分配
3 主要配置命令及解析
3.1 配置服务器
(1)按照表1 的要求完成服务器的IPv4/IPv6地址静态配置。
(2)在服务器“services” 菜单的“DHCP”选项中配置DHCP动态池,命名为“toipv4”,起始IPv4 地址为192.168.1.1, 子网掩码为255.255.255.0,最大可分配数目为200。
(3)在“DHCPv6”选项中配置DHCPv6 动态池,命名为“toIPv6IoT”,IPv6前缀为5001:1::1/64,有效生存周期(valid lifetime)为2592000秒,推荐生存周期(preferred lifetime)为604800秒。在推荐生存周期结束之前,5001:1::1/64 可以访问其他设备或者被访问;如果推荐生存周期到了,而有效生存周期没到,那么该地址只可以被访问,不能主动访问别人;当有效生存周期也到了,该地址则失效。
(4)在“IoT”选项中点击“on”单选框,开启服务器的注册功能。
3.2 设置注册账号密码
智能手机和室内PC 在动态获取IP 地址后,可以通过IP 地址、域名和IoT 监视器(IoT Monitor)三种方法在服务器中分别进行IPv4/IPv6 注册,这里以智能手机为例,通过Web 浏览器以IPv6 地址登录服务器设置注册账号和密码为“IPv6Test”,如图2和图3所示。
图2 智能手机在服务器中注册IPv6账号和密码
图3 服务器中注册成功的IPv6账号和密码
3.3 编写主要IoT调控设备代码
IPv4/IPv6 双栈物联网智能家居系统的主要IoT 调控设备包括室内的温度调节器、湿度监测仪以及室外的水位监测仪、烟雾探测器,可以采用JavaScript 语言和Python 语言对其功能进行编程,以温度调节器Thermostat 为例,主要Python语言代码及解析如下:
……
#设置Thermostat温度的初始值
autoCoolTemp=20
autoHeatTemp=19
……
#设置Thermostat的四种状态
state=0 #0 off,1 cooling,2 heating,3 auto
STATE_NAMES=[“OFF”,“COOL”,“HEAT”,“AUTO”]
……
#设置IoT的客户端
IoTClient.setup({
“type”:“Thermostat”,
“states”:[{
“name”:“Status”,
“type”:“options”,
“options”:{
0:“Off”,
1:“Cooling”,
2:“Heating”,
3:“Auto”
},
“controllable”:True
},{
“name”:“Temperature”,
“type”:“number”,
“unit”:“°;C”,
“imperialUnit”:“°;F”,
#设置华氏温度和摄氏温度之间的换算
“toImperialConversion”:“x*1.8+32”,
“toMetricConversion”:“(x-32)/1.8”,
“decimalDigits”:1
},
……
#设置环境更新的延迟时间,这里为1000毫秒
def loop():
global temperature
temperature = Environment.get(“Ambient Temperature”)
updateEnvironment()
measurementSystemChangeEvent()
sendReport()
delay(1000)
……
#设置环境更新的条件
def updateEnvironment():
global autoMode
autoCoolTemp=float(getDeviceProperty(getName(),“auto cool temp”))
autoHeatTemp=float(getDeviceProperty(getName(),“auto heat temp”))
digitalWrite(HEATER_PIN,LOW)
digitalWrite(COOLER_PIN,LOW)
#判断环境的四种状态
if state==0:
digitalWrite(HEATER_PIN,LOW)
digitalWrite(COOLER_PIN,LOW)
elif state==1:
digitalWrite(COOLER_PIN,HIGH)
elif state==2:
digitalWrite(HEATER_PIN,HIGH)
elif state==3:
if temperature>=autoCoolTemp:
digitalWrite(COOLER_PIN,HIGH)
elif temperature digitalWrite(HEATER_PIN,HIGH) …… 3.4.1 智能家居室内主要调控温度和湿度 通过室内PC 登录服务器,在“Condition”菜单中设置室内IoT 设备的控制条件为:①当Thermostat温度≥26.0℃时,风扇低速运转,门窗开启,加温器关闭;②当Thermostat温度≥30.0℃时,风扇转为高速运转,喷洒灭火器开始喷水;③当Thermostat 温度≤20.0℃时,风扇停止运转,门窗关闭,加温器启动,台灯打开;④按照我国室内空气标准,夏季室内湿度以40%~80%为宜,冬季应控制在30%~60%[10]。这里以夏季室内湿度标准为参考,当Humidity Monitor 监测湿度≤40%时,加湿器开启,喷洒灭火器喷水;⑤当Humidity Monitor 监测湿度≥80%时,风扇高速运转,门窗开启,如图4所示。 图4 智能家居室内控制条件设置 3.4.2 室外主要监控车库的烟雾情况以及草坪的水位状况 通过智能手机以IPv6 地址登录服务器,设置控制条件为:①环境中的消防烟感达到5%~15%OBS/M 时便会报警[11]。当Smoke Detector 检测到车库烟雾浓度≥15时,车库门打开;②草坪湿度用土壤含水率进行分析,含水量在12%~15%就会产生缺水现象,植被需要灌溉浇水[12],Water Level Monitor 以英寸/厘米为测量单位,当Water Level Monitor Lever<20.0 cm 时草坪喷灌器开始喷水,否则停止喷水,如图5所示。 图5 智能家居室外控制条件设置 经过测试,智能手机、室内PC 以及所有IoT设备均能动态地获得IPv4/IPv6地址,以智能手机为例来说明,自动获取的IPv4 地址为192.168.1.2, DNS 服务器的 IP 地址为192.168.1.100;自动获取的IPv6 地址为5001:1::202:4AFF:FE6B:B98E,IPv6 DNS 服务器地址为5001:1::1,如图6所示。 图6 智能手机自动获取的IPv4/IPv6地址 室内PC、智能手机以及所有IoT 设备之间能相互通过IPv4/IPv6地址通信,以室内PC 分别ping 服务器的IPv4/IPv6 地址为例进行说明,如图7所示。 图7 室内PC分别ping服务器的IPv4/IPv6地址结果 IoT 设备通过自带的“Remote Server”选项,输入服务器IP 地址以及注册的账号、密码进行远程注册,以IoT1_Fire Sprinkler 设备为例予以说明,如图8 所示。IoT 设备注册结果以室内设备为例进行说明,如图9所示。 图8 IoT1远程注册服务器 图9 室内IoT设备在服务器的注册结果 IPv4/IPv6双栈物联网智能家居系统的IoT设备在服务器注册后,有条不紊地按照预先设定的条件运转,达到了智能调控的目的,提高了家居环境的舒适度,通过远程或室内操控物联网设备,让生活更加便捷。 智能家居系统作为物联网时代的代表项目,成为行业的关注焦点。智能家居最基本的目标是给人们提供一个温馨舒适、安全节能、方便高效的生活环境,自动化和信息化、设备互联、安全可靠、组网灵活且扩展性能好、智能化程度高及操作简便是物联网智能家居设计的五个基本原则。本设计根据智能家居功能的需求,实现以下基本的功能:智能家电控制、智能灯光控制、智能温湿控制、智能安全报警等,同时为了适应未来技术和应用服务的发展趋势,以IPv6 过渡技术的IPv4/IPv6 双栈协议应用于物联网智能家居系统,在仿真平台上提供了一个应用案例。3.4 设置IoT设备的控制条件
4 结果验证
4.1 动态IPv4/IPv6地址的获取情况
4.2 网络主机及设备之间的通信情况
4.3 IoT设备在服务器的注册结果
4.4 IPv4/IPv6双栈物联网智能家居系统整体运行的情况
5 结语