物联网工程与设计.doc_第1页
物联网工程与设计.doc_第2页
物联网工程与设计.doc_第3页
物联网工程与设计.doc_第4页
物联网工程与设计.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

物联网工程与设计课程设计报告姓名:滕 玲 班级:物联1301 学号:131408119 指导老师:张正华日期:2016.6.8 一、课程设计目标任务1.1 课程的背景在计算机技术与通信技术高速发展的今天,智能化、网络化以超出想象的速度发展。当今,世界上每一个事物都可能成为互联网连接和沟通对象,物联网也就作为一种新兴技术应运而生。通过物联网,智能终端可以为人们提供便捷的信息和决策服务,除此之外,还可以通过个人设备及电脑获得特定服务。智能家居的发展日新月异,用户可以更加方便的管理家用电器,也可以进行通信和信息的交流,从而使生活更加高效舒适。1.2 课程的目标将ZigBee技术应用到智能家居当中,实现对窗帘的智能控制,方便对居室窗帘的控制与调节,提升了智能家居系统给用户带来的体验度,使生活更加舒适、方便、安全。基于Zig Bee技术,应运CC2530芯片,完成了智能窗帘的光控、温控等功能,并实现了对其的智能管理。1.3 课程设计任务物联网是一个基于互联网、传统电信网等信息承载体,让所有能够被独立寻址的普通物理对象实现互联互通的网络。通过物联网可以对机器、设备、人员进行集中管理和智能控制,对于基于物联网的窗帘控制系统的研究是非常必要的。我们可以根据所学知识完成基于物联网的窗帘控制系统设计,提高分析问题、解决问题的能力。1.4 课程设计的意义此系统通过光敏传感器采集室内光线强度,zigbee模块传输光强度信号并且控制窗帘的升降。该系统能够不仅能够根据室内光强度自动控制窗帘的升降,也可以通过上位机来控制,具有很多优点: (1)经济实惠,低成本。采用开放的协议标准,支持多种产品,通过竞争降低成本。设备可以DIY或者专业设计,推动节能意识和控制。(2)方便容易。采用无线技术降低了运行成本和铺设电线的麻烦,采用全球2,4GHZ频段简化了安装和认证的互操作性。(3)安全性高,保密性好。通过安装无线传感器监测各种情况,遇到异常事件接收信号后自动通知采用固定位加密个人信息,通过设备认证保证邻居网络安全。(4)操作性强。客户可以选择多种产品你满足需求,将照明、安全、家用电器等集成控制,进行监控。二、方案设计2.1 系统总体方案设计基于技术的智能家居采集控制系统主要由三部分构成,分别为远程用户监测、家庭控制器和家电控制节点。在无线智能家居系统中,采集和传输各种设备的数据和运行信息是保证智能家居系统正常运行的关键。基于上述设计思想,提出了智能家居数据采集控制系统的总体设计框架,如图所示整个系统采用的无线传感器星型拓扑网络结构,由一个协调器节点与多个终端节点组成,基于点对点的形式完成数据的采集和信息的无线收发控制通过触摸式工业平板电脑作为上位机向串口发送命令到协调器,协调器接收到命令信息后,分析并将命令再发送到受控的智能终端节点并控制其动作,最终完成任务并返回终端状态信息。各种设备可在信息交互的基础上实现互相操作,相互协作和远程控制的功能,因此系统具有万能联动的功能。本系统包括数据采集终端、终端节点、协调器节点、遥控器和上位机五个部分。 1.数据采集终端数据采集终端主要完成家庭里的环境参数温度、湿度、光照等诸多模拟量的采集和智能家电以及灯具的开关量采集。各个采集模块均与终端节点相连接,集成到一个板子上。 2. ZigBee终端节点ZigBee终端节点主要完成从数据采集终端接收数据,并通过无线通信方式发送接收到的数据,或者接收协调器节点发送的控制命令。 3. ZigBee协调器节点ZigBee协调器节点是整个网络的发起者,管理整个网络的规模,存储有网络中各个节点的信息,担当入网络中的协调器的角色,主要任务就是组建和维护一个网络,收集网络中各个节点发出的信息,通过串口把数据传到上位机。 4. RF遥控器RF遥控器采用标准对智能家居各个节点进行远程智能控制,通过发送命令集来实施双向通信。 5.上位机上位机主要用于接收协调器节点发来的数据信息。主要功能就是数据的存储、接收和显示,并作进一步处理和显示。2.2各部分功能设计2.2.1微控制器模块本课题用了 TI 公司的 CC2530 芯片作为核心处理器模块。CC2530 芯片釆用的是 2.4 GHz 的 SOC 片上系统,建立在基于标准协议的 IEEE802.15.4 之上的 Zig Bee 协议栈 Z-Stack。Z-Stack 采用模块化设计方法,是基于 Zig Bee 规范中的协议栈结构进行设计的,这样防止用户对协议找的关键部分误改的可能性,也避免了用户在开发过程中浪费大量时间去读一些与应用实现无关的代码,在一定程度上加速了应用程序的开发。它可以建立强大的网络节点,并且成本非常低。CC2530 结合了 RF 收发器的许多优良性能,具有业界标准的增强型 8051CPU,以及系统内可编程闪存,8k BRAM 和许多其它强大的功能。因为CC2530 共有四种不同的闪存版本,并具有不同的运行模式,所以它尤其适应超低功耗要求的系统,而且运行模式之间的转换时间短的特点进一步确保了非常的低能源消耗。CC2530 非常适用于智能窗帘控制系统,该微控制器模块是整个系统的核心部分,完成对各个模块的控制以及协调整个系统的正常运转,同时也是组建智能家居内部网络的关键。2.2.2 信号采集模块光敏二极管接口电路,主要由光敏二极管和PCF8591 组成,PCF8591 主要由总线接口电路、寄存器、逻辑控制电路、比较器和驱动电路等几部分组成。光敏二极管将光信号转换为模拟电信号输入到芯片 PCF8591 进行模数转换,通过 PCF8591 内部I2C 总线,将转换后的数字信号通过函数转换得到能代表光强度的量,由 PCF8591 的第 15 脚送出,通过总线送到 CC2530 控制电机正反转,达到对窗帘的开关控制。2.3本人设计部分 我主要负责完成ZigBee光照采集控制窗体界面功能实现。(1)MyWidget构造方法:当实例化MyWidget类对象时,执行MyWidget构造方法,在构造方法中,初始化各个状态变量。(2)打开串口方法:单击打开串口按钮时,执行打开串口方法。首先通过主界面上的下拉列表框,选择串口COM3,构建串口对象,打开串口,设置波特率115200,设置无奇偶校验位,设置数据位为8位,停止位1位,最后通过connect函数建立信号和槽函数关联,使得当串口缓冲区有数据时,进行readMyCom()读串口操作。(3)关闭串口方法:单击关闭串口按钮时,执行关闭串口方法。在该方法中首先将打开的串口对象进行关闭操作,然后将打开串口按钮变成可用状态,串口名称、波特率、奇偶校验、数据位和停止位的下拉列表框变成可用状态。其他如控制灯光和窗帘打开和关闭的按钮变成不可用状态。(4)读串口方法:当缓冲区有数据时,进行readMyCom()读串口操作。从串口读出数据之后,首先判断数据是否为空,当不为空时,在判断字符串是否以“0103”开始,如果成立,则取0103的后面两位字符表示光照度数据,在界面的控件中显示出来,同时发出光照度信号,等待setlightlot(int)方法处理。(5)setlightlot(int)方法:setlightlot信号一旦发出之后,setlightlot槽接受到光照度响应信号进行分析处理。首先判断收到的光照度的数值是否大于设定的初值,如果小于设定的光照度值,则通过串口向ZigBee协调器发出“297”指令,执行打开灯光和窗帘操作。如果大于设定的光照度值,则通过串口向ZigBee协调器发出“2A7”指令,执行关闭灯光和窗帘操作。三、课题的研究现状80年代初期,随着电子技术的不断发展,以家用电器为主导的住宅电子化概念被提出,开始出现了住宅电子化的概念。80年代中期,将家用电器、通讯设备与安防设备各自独立的功能集中到一个系统,形成了家居自动化概念。标志性事件就是世界第一幢智能大厦于年在美国康涅狄格州建成,次年日本东京也相继建成智能大厦。80年代末,由于计算机、通信与信息技术的发展,诸如美国的WISE HOME和欧洲的SMART HOME采用总线技术,出现了如下商用系统方案:监控、控制和管理家庭住宅内各种通信、家电、安防设备,其他国家也陆续开始广泛应用适应各自国家的智能家居系统。进入20世纪90年代,随着数字化技术和互联网技术的突飞猛进,智能化信息家电产品已经开始步入社会和家庭。美国、德国、日本、加拿大、澳大利亚、新加坡等国家的智能家居如雨后春笋般不断涌现。世纪相交之际,智能家居的脚步开始走进中国。随着人们观念的转变和现实的需求,国内主要智能家居品牌诸如安居宝、索博、海尔家居等也开发集成出了相应的产品方案,积累了很多经验,占据了一定的市场份额。年上海世博会的成功举办,是有史以来最大规模的智能家居宣传与推广活动。2010上海世博会展示的“城市让生活更美好”的智能家居场景到处都是,像日木馆的各种机器人,上海联合馆的机器人表演炒菜,城市未来馆展示的未来城市生活,思科馆展示的“智能互联生活”生活,国家电网馆展示的智能电网与智能家居生活,“天下一家”展示的未来低碳智能生活,山东馆展示海尔智慧家居生活等无一不在宣传智能家居的美好生活。四、研究的内容4.1 了解光敏传感器的基本原理以及硬件设计方法光敏传感器中最简单的电子器件是光敏电阻,它能感应光线的明暗变化,输出微弱的电信号,通过简单电子线路放大处理,可以控制LED灯具的自动开关。因此在自动控制、家用电器中得到广泛的应用,对于远程的照明灯具,例如:在电视机中作亮度自动调节,照相机种作自动曝光;另外,在路灯、航标等自动控制电路、卷带自停装置及防盗报警装置中等4.2 掌握光敏传感器的驱动方法4.3 了解步进电机的基本原理以及硬件设计方法步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。4.4 掌握步进电机的驱动设计方法4.5 掌握光敏传感器网络的搭建以及窗帘控制系统的程序设计方法4.6 掌握Zigbee光照采集、窗帘控制系统Qt人机界面实现方法上位机主程序主要完成一些变量和控件的初始化,然后等待窗口数据。数据的接受和发送都是中断程序完成的。上位机收到完整的数据包后,会根据数据包中的关键字进行不同的处理。发送数据时,根据保存的网络数据计算中转数据的路径,然后等待窗口数据。数据的接收和发送都是由中断程序完成的。通信串口设置主要用于设置机与网络控制器的串口通信参数,包括串口端口的选择,波特率,奇偶检验位,数据位和停止位等。通过向串口发送命令来控制每个节点,当有意外发生时,可以通过紧急按钮向控制中心求救。五、研究方法基于技术的智能家居采集控制系统主要由三部分构成,分别为远程用户监测、家庭控制器和家电控制节点。在无线智能家居系统中,采集和传输各种设备的数据和运行信息是保证智能家居系统正常运行的关键。整个系统采用的无线传感器星型拓扑网络结构,由一个协调器节点与多个终端节点组成,基于点对点的形式完成数据的采集和信息的无线收发控制通过触摸式工业平板电脑作为上位机向串口发送命令到协调器,协调器接收到命令信息后,分析并将命令再发送到受控的智能终端节点并控制其动作,最终完成任务并返回终端状态信息。各种设备可在信息交互的基础上实现互相操作,相互协作和远程控制的功能,因此系统具有万能联动的功能。本系统包括数据采集终端、终端节点、协调器节点、上位机四个部分。(1)数据采集终端主要完成家庭里的环境参数温度、湿度、光照等诸多模拟量的采集和智能家电以及灯具的开关量采集。各个采集模块均与终端节点相连接,集成到一个板子上。(2)Zigbee终端节点主要完成从数据采集终端接收数据,并通过无线通信方式发送接收到的数据,或者接收协调器节点发送的控制命令。(3)Zigbee协调器节点是整个网络的发起者,管理整个网络的规模,存储有网络中各个节点的信息,担当入网络中的协调器的角色,主要任务就是组建和维护一个网络,收集网络中各个节点发出的信息,通过串口把数据传到上位机。(4)上位机主要用于接收协调器节点发来的数据信息。主要功能就是数据的存储、接收和显示,并作进一步处理和显示。六、研究过程(1)系统总体设计智能窗帘控制系统主要由微处理器模块、光线感应模块、温度湿度感应模块、用户按键选择模块、信息 LED 显示模块、步进电机驱动模块六部分组成。通过 Zig Bee 网络,用户可以用按键对居室内的所有窗帘进行集中管理和控制。当系统没有接收到到用户的指令,处于默认工作状态时,可以通过光线采集,进行自动控制,完成窗帘的开放与闭合,保障居室的舒适度。(2)系统硬件设计微控制器模块:CC2530 非常适用于智能窗帘控制系统,该微控制器模块是整个系统的核心部分,完成对各个模块的控制以及协调整个系统的正常运转,同时也是组建智能家居内部网络的关键。光敏感应模块:光敏二极管接口电路,主要由光敏二极管和PCF8591 组成,PCF8591 主要由总线接口电路、寄存器、逻辑控制电路、比较器和驱动电路等几部分组成。光敏二极管将光信号转换为模拟电信号输入到芯片 PCF8591 进行模数转换,通过 PCF8591 内部I2C 总线,将转换后的数字信号通过函数转换得到能代表光强度的量,由 PCF8591 的第 15 脚送出,通过总线送到 CC2530 控制电机正反转,达到对窗帘的开关控制。(3)系统软件设计CC2530 微控制器模块主要完成对控制信号的接受与任务的执行,并完成了与Zig Bee 智能网关进行通信的功能。当程序初始化后进行对控制信号的检测,执行用户发来的命令,驱动电正反转进行窗帘的开关控制。若没有检测到用户或者来自智能网管的信号,则进入自动模式,根据光线自动调整窗帘的开放与闭合,确保环境的舒适性。 Zigbee光照采集控制系统窗体界面功能的实现方法:定义和使用类对象、Mywidget.cpp文件中方法的框架结构、方法说明(包括打开串口方法、关闭串口方法、读串口数据方法、setlightSlot方法、手动模式选项处理方法、联动模式选项处理方法、手动模式下灯光控制方法、手动模式下的窗帘控制方法)。七、系统调试在实验室环境下通过测试,系统实现了对于居室内窗帘的自动控制,根据温湿度自行调节窗帘的开关,光照强度强时,窗帘关起,反之,湿度低时,窗帘关起,反之开启,并完成了智能窗帘节点与 Zig Bee智能网关的通信,可以通过接受用户和智能网关的指令进行调节。八、总结及体会经过一个星期多的改进,本系统最终调试成功,从总体方案的确定直到最后调试通过,进行了相关的理论知识的学习,阅读了大量国内外相关领域的文献资料,从各个单独模块设计,到最后整体组合,前后经过了大量的实验,基本完成了方案的设计。本课题通过对智能家居数据采集控制系统的研究与开发,主要取得了以下的成果在详细分析了现有的各种家居数据采集控制系统的解决方案基础上,针对目前的需求以及系统的特点,提出了适合本系统的总体方案。分析了本系统应具有的功能,采用模块化的设计思想划分了系统的功能模块。分成数据采集部分,数据传输部分以及控制中心部分,各部分通过基于巧标准的网络无线连接,实现了对家具各种数据的采集、智能化控制以及各种数据的储存。系统采用了基于标准的智能遥控器,为整个系统的控制提供了巨大的便利,推动了智能家居远程控制的发展。本课程设计由于时间以个人水平的限制,加上随着研究工作的不断深入,越发感到许多艰巨而有意义的内容急需改进和完成,下一步的工作个人认为从以下几方面展开一是上位机界面不够智能化和直观化,系统实时性有待改进,今后准备采用基于的嵌入式系统的处理器控制协调器,采用触摸屏液晶屏作为人机界面。二是继续深入研究印照明灯具的调光系统,重点在于恒流驱动的设计。改善包括闪烁、发光不均匀、音频噪声以及闪动等调光过程中遇到的问题,为下一代照明系统应用于智能家居系统中作出努力。三是智能家居远程控制,继续深入研究基于标准的遥控器的设计,使得整套系统更加智能、高效和便携,为下一代遥控器应用于智能家居系统中作出努力。在建立这样一个平台后,我们便一可以依照研究目的的不同,更改传感器及应用程序,为进一步的摺能家居数据采集控制系统打下了坚实的基础,推动物联网技术的发展,真正的实现“物物相连,感知世界”。九、参考文献1.吴培亚;王钢;基于ZigBee的智能家居远程监控系统的设计与实现J;微型机与应用;2012年08期2.童晓渝;房秉毅;张云勇;物联网智能家居发展分析J;移动通信;2010年09期3.陈耿新;陈鸿彬;龚绿绿;基于物联网的人性化智能家居系统研究J;自动化与信息工程;2013年4.龚磊;刘向凤;冯婷婷;基于物联网技术的智能家居远程查询控制系统J;广东通信技术;2012年12期06期5. 夏军;唐民钦;基于ZigBee技术的智能窗帘控制器设计A;广西计算机学会2013年学术年会论文集C;2013年6. 李志方;钟洪声;CC2530的分布式无线数据采集系统设计J;单片机与嵌入式系统应用;2011年09期7. 吕芳芳;佟国香;谭健;基于CC2530的智能家居控制系统J;信息技术;2014年06期8. 沈星星;基于ZigBee的智能家居系统关键技术的研究D;南京邮电大学;2011年十、部分实验代码#include mydialog.h#include ui_mydialog.hMyDialog:MyDialog(QWidget *parent) : QDialog(parent), ui(new Ui:MyDialog) ui-setupUi(this); ui-closeMyComBtn-setEnabled(false); /开始“关闭串口”按钮不可用 ui-btnCurtain-setEnabled(false); ui-btnLed-setEnabled(false); ui-rbtAuto-setEnabled(false); ui-rbtshoudong-setEnabled(false); connect(this,SIGNAL(setLight(),this,SLOT(setLightStates(); IsAuto=false; IsCurtain_on=false; IsLed_on=false; ckLed=false; ckCurtain=false;MyDialog:MyDialog() delete ui;void MyDialog:on_openMyComBtn_clicked() QString portName = ui-portNameComboBox-currentText(); /获取串口名 myCom = new Win_QextSerialPort(portName,QextSerialBase:EventDriven); /定义串口对象,并传递参数,在构造函数里对其进行初始化 isOpen=myCom-open(QIODevice:ReadWrite); /打开串口 if(ui-baudRateComboBox-currentText()=tr(9600) /根据组合框内容对串口进行设置 myCom-setBaudRate(BAUD9600); else if(ui-baudRateComboBox-currentText()=tr(115200) myCom-setBaudRate(BAUD115200); if(ui-dataBitsComboBox-currentText()=tr(8) myCom-setDataBits(DATA_8); else if(ui-dataBitsComboBox-currentText()=tr(7) myCom-setDataBits(DATA_7); if(ui-parityComboBox-currentText()=tr(无) myCom-setParity(PAR_NONE); else if(ui-parityComboBox-currentText()=tr(奇) myCom-setParity(PAR_ODD); else if(ui-parityComboBox-currentText()=tr(偶) myCom-setParity(PAR_EVEN); if(ui-stopBitsComboBox-currentText()=tr(1) myCom-setStopBits(STOP_1); else if(ui-stopBitsComboBox-currentText()=tr(2) myCom-setStopBits(STOP_2); myCom-setFlowControl(FLOW_OFF); myCom-setTimeout(500); connect(myCom,SIGNAL(readyRead(),this,SLOT(readMyCom();/信号和槽函数关联,当串口缓冲区有数据时,进行读串口操作 ui-openMyComBtn-setEnabled(false); /打开串口后“打开串口”按钮不可用 ui-closeMyComBtn-setEnabled(true); /打开串口后“关闭串口”按钮可用 ui-btnCurtain-setEnabled(true); ui-btnLed-setEnabled(true); ui-rbtAuto-setEnabled(true); ui-rbtshoudong-setEnabled(true); ui-baudRateComboBox-setEnabled(false); /设置各个组合框不可用 ui-dataBitsComboBox-setEnabled(false); ui-parityComboBox-setEnabled(false); ui-stopBitsComboBox-setEnabled(false); ui-portNameComboBox-setEnabled(false);void MyDialog:on_closeMyComBtn_clicked() myCom-close(); ui-openMyComBtn-setEnabled(true); /关闭串口后“打开串口”按钮可用 ui-closeMyComBtn-setEnabled(false); /关闭串口后“关闭串口”按钮不可用 ui-baudRateComboBox-setEnabled(true); /设置各个组合框可用 ui-dataBitsComboBox-setEnabled(true); ui-parityComboBox-setEnabled(true); ui-stopBitsComboBox-setEnabled(true); ui-portNameComboBox-setEnabled(true); ui-btnCurtain-setEnabled(false); ui-btnLed-setEnabled(false); ui-rbtAuto-setEnabled(false); ui-rbtshoudong-setEnabled(false);/*作者:彭熙 滕玲 时间:2016年6月8号 功能:联动下窗帘灯光的自动控制*/void MyDialog:readMyCom() QString str; int gz;/光照度 int yz;/阈值 / char *zf; /myCom-flush(); QByteArray temp = myCom-readAll();/调用readAll()函数,读取串口中所有数据,在上面可以看到其返回值是QByteArray类型。 str=QString(temp); gz=str.toInt();/转换为int类型,便于比较 / zf=str.toLatin1.data(); yz=ui-lightspinBox-text().toInt();/获取阈值设置框中的阈值数据 if(!str.isEmpty()/修改过,加入了联动,下窗帘,灯光的分开控制。 /状态值,测试 ckLed=true; ckCurtain=true; if(gzbtnpic-setIcon(QPixmap(:/images/lightOn.png); ui-textBrowser-setPlainText(temp); if(IsAuto=true) if(ckLed=true) ui-btnLed-setIcon(QPixmap(:/images/ledOff.png); if(ckCurtain=true) ui-btnCurtain-setIcon(QPixmap(:/images/curtainOff.png); emit setLight(true); else ui-btnpic-setIcon(QPixmap(:/images/lightOff.png); ui-textBrowser-setPlainText(temp); if(IsAuto=true) if(ckLed=true) ui-btnLed-setIcon(QPixmap(:/images/ledOn.png); if(ckCurtain=true) ui-btnCurtain-setIcon(QPixmap(:/images/curtainOn.png); emit setLight(false); void MyDialog:on_btnLed_clicked() if(!IsAuto) char a=227;/开指令 char b=217;/关指令 if(!IsAuto) if(myCom-isOpen() if(!IsLed_on) myCom-write(a); ui-btnLed-setIcon(QPixmap(:/images/ledOn.png); IsLed_on = true; else myCom-write(a); ui-btnLed-setIcon(QPixmap(:/images/ledOff.png); IsLed_on = false; void MyDialog:on_btnCurtain_clicked() if(!IsAuto) char a=2A7;/开指令 char b=297;/关指令 if(!IsAuto) if(myCom-isOpen()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论