电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于NFC的智能家居环境监测系统设计和实现 计算机专业

21页
  • 卖家[上传人]:hs****ma
  • 文档编号:483029839
  • 上传时间:2022-10-13
  • 文档格式:DOCX
  • 文档大小:261.19KB
  • / 21 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、4.5.3 概念设计分析概念设计主要是讲需求分析得到的结果抽象为信息结构的概念模型,根据设计需求把系统分为若干对象和对应的关系,再将所有实体和实体的属性模块化,进而组成一个整体,通过概念设计分析,数据库的模型清晰明了,对后期维护和修改有很大帮助。根据设计需求,传感器数据库系统的E-R图如下所示:图4.12 传感器数据库E-R图Fig 4.12 E-R diagram of sensor databaseE-R图中各个实体的对应结构为:主板标签:MainBoard(mno,mname,mcompany);传感器:Sensor(sensor_id,sensor_name,sensor_range);测量结果:Record(mno,sensor_id,record).4.5.4 逻辑设计阶段在概念设计完成后需要进行逻辑设计,即完成概念内容到符合数据库管理系统的逻辑结构,数据组织和数据处理是这一阶段的两个要点,通过这一阶段可以理清实体与实体、实体与属性之间的关系,这对建立关系型数据库来说是不可或缺的条件。上述E-R图中描述的关系模型种实体与属性的关系为:主板标签:属性有(标签编号, 标签名称,

      2、 生产厂家);传感器:属性有(传感器编号, 传感器名称, 传感器量程);测量结果:属性有(标签编号, 传感器编号, 测量数值).这三个实体之间的联系如下:一个主板标签有且仅有一个唯一编号,一个主板可配备多个传感器,一种传感器可供多个主板使用,因此,主板与传感器之间具有多对多的关系;一个主板标签可以有多个传感器的测量结果,一种传感器的测量结果可以是多个主板标签,因此主板标签和传感器测量结果是多对多的关系;一个传感器对应一个测量结果,一个测量结果对应一个传感器,因此传感器与传感器测量结果具有一对一的联系。4.5.5 物理设计阶段物理设计阶段是将逻辑数据模型应用为物理结构的过程,要保证数据库在存储数据时有较好的存储结构和存取方法,同时还有注重存取时的时间效率和空间效率。在查询表格时,为数据表建立索引可提高查询速率,本系统中存在较多的查询操作和较少的插入操作,非常适合在数据表中建立索引以提高查询效率,本数据库中建立索引如下:1、 主板标签表的主键mno和传感器表的主键sensor_id存在且唯一,查询主板数据和传感器数据时中经常以此为查询条件,故分别在该属性上建立唯一性索引;2、 测量结果表中

      3、的属性mno和sensor_id分别是主板标签表和传感器表中的外键,也是此表中的联合主键,查询时这两个属性通常成对出现,故在这两个属性上建立复合索引;4.5.6 建立数据表使用SQL语句建立设计出的数据表,主要代码如下:(1)主板标签信息表:CREATE TABLE mainboard ( mno CHAR(10) NOT NULL AUTO INCREMENT, mname CHAR (20) NULL, mcompany CHAR (10) NULL, PRIMARY KEY (mno) )(2)传感器信息表:CREATE TABLE sensor ( sensor_id CHAR(10) NOT NULL AUTO INCREMENT, sensor_name CHAR (20) NULL, sensor_range CHAR (10) NULL, PRIMARY KEY (sensor_id) ) (3)测量结果信息表:CREATE TABLE record ( record_id INT(10) NOT NULL AUTO INCREMENT,mno CHAR(10) NOT

      4、 NULL, sensor_id CHAR (10) NOT NULL, record CHAR (10) NULL, PRIMARY KEY (mno,sensor_id),FOREIGN KEY (mno) references mainboard (mno),FOREIGN KEY (sensor_id) references sensor (sensor_id), ) 4.6 服务器程序设计4.6.1 服务器socket通信程序设计Socket通信和生活中拨打电话的场景类似,打电话之前需要拨通电话号码,对方听到电话铃声后拿起电话,此时通话连接就建立起来,等到电话结束,挂断电话连接也随之结束。Socket通信过程需要在创建前配置好IP地址和监听端口号,本机测试时使用的IP地址为192.168.1.106,端口号为8087,这里需要注意端口号尽量选择空闲端口以免与其它软件发生冲突导致接收不到数据。配置好IP地址和端口号之后,调用socket()函数创建一个socket进程,然后将IP地址和端口号绑定到这个socket会话进程上,对目标端口号进行监听listen(),accept()

      5、方法会进行阻塞知道接收一个socket连接,此时就可以调用read()函数读取接收到的数据。最后关闭连接,完成一次socket通信的会话过程,其程序设计流程图如下图所示:图4.13 Socket通信程序流程图Fig 4.13 Program flow diagram of socket communication程序中socket通信的前面配置部分是固定模式语句,只要按照操作步骤调取相应方法即可,因此本文不做具体介绍。建立起Socket通讯后便可通过read()方法获取到上传来的数据,程序需要对其进行解析以还原本身的传感器数据,这才是本程序的重点。因为在主办发送数据环节将数据打包时按照高位在前,低位在后的顺序排列,并且小数向前进一位相当于扩大十倍,所以解析时高位*256+低位,带小数位除10还原原始数据,最后关闭socket通信,具体的数据解析代码如下:/配置本机IP地址和端口号$ip = 192.168.1.106;$port = 8087;/发送到客户端$buf = socket_read($msgsock,100);$talkback = $buf;$data=str_split

      6、(bin2hex($talkback);$str=sizeof($data);for($i=0;$i$str/2;$i+) $data1$i=hexdec($data$i*2.$data$i*2+1);$data20=$data12*256+$data13; $data21=($data16*256+$data17)+($data18*256+$data19)/10; $data22=($data111*256+$data112)+($data113*256+$data114)/10;$data23=$data115/10;$data24=$data116;print_r($data2);socket_close($msgsock);4.6.2 增删改查程序设计数据库建立后,由服务器程序来完成对数据库各表的增删改查操作,这部分的软件开发工作是基于php语言,thinkPHP框架编写。在使用时,首先配置好框架需要的数据库基本信息配置,包括数据库类型,数据库名称密码等,配置好使用参数后,即可测试使用,具体配置文件config.php内容如下:配置值 /mysql全局定义 DB_TYPE =

      7、 mysql, / 数据库类型 DB_HOST = localhost, / 服务器地址 DB_NAME = bui, / 数据库名 DB_USER = multisensor, / 用户名 DB_PWD = 123456, / 密码 DB_PORT = 3306, / 端口 DB_PREFIX = , / 数据库表前缀/ SHOW_PAGE_TRACE = true,);增删改查的服务器程序设计如下图所示:图4.14 服务器程序流程图Fig 4.14 Program flow diagram of server module1、新增数据表信息初始建立数据库系统时,要录入主板标签、传感器等表格的名称、编号等基本信息。程序首先获取用户输入的数据,然后组成目标数组,使得数据表字段与数据内容一一对应,再调用thinkPHP框架中add()或addAll()方法即可完成对数据库中各数据表的增加信息操作,也可以使用SQL语句在数据库端直接添加数据,具体的SQL语句举例:在sensor表中新增一条传感器数据的值为(温度传感器,100):INSERT INTO sensor VALUES(温度传感器

      8、,100)PHP程序添加传感器数据add_sensor_data()程序如下: if (IS_POST) $data = array( sensor_id = $_POSTsensor_id, sensor_name = $_POSTsensor_name, sensor_range = $_POSTsensor_range, ); $user = M(sensor); $flag = $user-add($data); if(!$flag) $this-ajaxReturn(0); $this-error(新建传感器信息失败!); else $this-ajaxReturn(1); echo 新建传感器信息成功,ID = $flag; 2、删除数据表信息当数据表中的数据不再需要时,要对垃圾信息进行删除操作,保留仍具有价值的数据,清除不必要占用空间的数据,这里调用thinkPHP框架中where()-delete()方法即可完成对数据表中信息的删除操作,也可以使用SQL语句在数据库端直接更新数据,具体的SQL语句举例:在sensor表中删除传感器id为1的数据:DELETE FROM sensor WHERE sensor_id = 1;PHP程序删除传感器数据delete_sensor_data()程序如下:if (IS_POST) $ids=$_POSTids; $user = M(sensor);/ 按获取的传感器id删除整条传感器数据记录 $flag = $user-where(sensor_id=$ids)-dele

      《基于NFC的智能家居环境监测系统设计和实现 计算机专业》由会员hs****ma分享,可在线阅读,更多相关《基于NFC的智能家居环境监测系统设计和实现 计算机专业》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.