收藏 分销(赏)

物联网智能家居系统实训报告.doc

上传人:二*** 文档编号:4535264 上传时间:2024-09-27 格式:DOC 页数:29 大小:109.54KB 下载积分:5 金币
下载 相关
物联网智能家居系统实训报告.doc_第1页
第1页 / 共29页
本文档共29页,全文阅读请下载到手机保存,查看更方便
资源描述
天津电子信息职业技术学院 综合实训报告 课题名称 智能家居整体设计 姓 名 学 号 班 级 物联S14-1 专 业 物联网应用技术 所 在 系 网络技术系 指导教师 完毕日期 2023.12.2 实习时间:2023-11------2023-4 实习地点:天津圣象网络科技有限公司  摘要:在上世纪90年代物联网概念雏形已基本形成,至今通过2023的发展物联网技术已逐步进一步到我们的生活当中,物联网技术是以运用计算机、通信、网络、电力自动化、信息、结构化布线、无线等技术将所有不同的设备应用和综合功能互联为一体的系统。然而智能家居在物联网技术的背景下又得到了进一步发展,它是以住宅为平台,兼备网络建筑、网络家电、通信、家电设备自动化、远程医疗、家庭办公、娱乐等功能,集系统、结构、服务、管理为一体的安全、便利、舒适、节能、娱乐、高效环保的居住环境。其从控制层次上来分一般有中央控制中心、家居智能控制终端、社区智能控制系统、家庭网关和外部网络几个部分组成。 关键字:物联网 智能家居 安全 控制 目录 一、方案背景 2 二、总体结构和功能特点 2 1、 智能家居系统总体结构 2 2、 智能家居系统总体功能 2 三、智能家居给生活带来的便利 3 四、技术介绍 3 五、实训内容 6 六、实习心得 18 一、方案背景  智能家居概念的起源很早,但一直未有具体的建筑案例出现;直到1984年美国联合科技公司(United  Techno1ogies Building System)将建筑设备信息化、整合化概念应用于美国康乃迪克州(Conneticut)哈特佛市(Hartford)的CityPlaceBuilding时,才出现了首栋的“智能型建筑”,从此也揭开了全世界争相建造智能家居的序幕。通过数年的需求累积,目前通常把智能家居定义为运用计算机、网络和综合布线技术,通过家庭信息管理平台将与家居生活有关的各种子系统有机地组合成一个系统。具体来说,就是一方面在一个家居中建立一个通讯网络,为家庭信息提供必要的通路,在家庭网络操作系统的控制下,通过相应的硬件和执行机构,实现对所有家庭网络上的家电和设备的控制和监测。另一方面,它们都要通过一定的网络平台,构成与外界的通讯通道,以实现与家庭以外的世界沟通信息,满足远程控制、监测和互换信息的需求。最终达成满足人们对安全、舒适、方便和绿色环保的需求。 二、总体结构和功能特点  1、 智能家居系统总体结构  重要有智能安防监控、智能家电控制、智能娱乐服务、智能灯光控制、可视对讲系统、远程监控系远程医疗监护、网络教育等模块 2、 智能家居系统总体功能  (1)安防监控:涉及各种报警探测器的讯息采集,开关门报警等如无线门磁、无线紧急按钮、无线红外动作探测器、无线煤气探测、无线火警探测等,并完毕与住宅社区物业管理和110报警的联网。  (2)家电控制:运用计算机、移动电话、PDA通过高速宽带接入Internet,并对灯具、窗帘、空调、冰箱、电视、洗衣机等家用电器进行远程控制、定期控制。  (3)家居商务和办公:实现网上购物、网上商务联系、视频会议。    基于Internet的电子商务使天天的工作事务变得更加容易和简朴。网上娱乐同样简朴方便。如:家庭影院、无线视频传输系统、在线视频点播、交互式电子游戏等,在智能家居中,你可以和家庭成员或其它游戏爱好者一   起通过计算机、电视、甚至可以用PDA在线玩各种网络游戏。  (4)背景音乐:在居室的任何一间房里,涉及厨房、卫生间和阳台,均安装背景音乐线,通过多个音源,可以让每个房间都听到美妙的背景音乐。  (5)家庭医疗保健和监护:运用Internet,实现家庭的远程医疗和监护。Internet在智能家居医疗保健中的作用有很大的潜力,不仅助您身心更加健康,并且会减少医疗保健成本。天天,你都可以在家中将测量的血压、体温、脉搏、葡萄糖含量等参数传递给医疗保健专家,并和医疗保健专家在线征询和讨论,省去了许多在医院排队等候的麻烦。而对于家有老人和孩子的家庭,配备求助系统(按键),保障家人的健康和安全。  (7)讯息服务:通过Internet可在任何时间任何地点获得和互换讯息,讯息传输可以以多种形式,从静态文本、图形到动态的音频、视频讯息。同时,Internet改变了人们的通讯交流方式,使人们能通过文本、图形、多媒体迅速地沟通讯息。E-mail、短讯息、聊天室等通讯方式对生活产生了很大影响;在旅行中父母可使用聊天工具和视频会议工具保持和孩子联系。在智能家居中,您还可以用手提电话或PDA通过无线网络收发E-mail,接受最新的股市行情。  (8)网络教育。网络教学将课堂带进了家庭,可帮助老师巩固课程,激发孩子们的好奇心。现在学校和 家长通过家居中的基于Internet的教育工具可以合作得更加紧密,并在家庭和课堂之间建立了桥梁。 同时,在智能家居中,不管那个年龄段的人都可以享受教育资源,可进行终生教育和学习。 三、智能家居给生活带来的便利   1、省费用:不需要时,家中能源消耗设备可以自动关闭,这样可以减少您的生活费用。    2、 用方便:智能化系统提供远程遥控接口,在您外出时,还可以通过电话或上网来调整和控制家电设备。    3、全性高:套家庭智能化系统在紧急情况时可以防御坏人侵入并及时报警,有效保证您的家居安全。  4、 变生活方式:你可以在家办公,在家炒股、炒汇、做期货以及进行远程会议、在家购物、在家培训等。 四、技术介绍 随着社会、经济水平的发展,人们对家居品质的规定也越来越高,规定居住环境舒适化、安全化,家居生活人性化、智能化。智能家居是3C技术(即)向传统家电产业渗透发展的必然结果。从社会背景的层面来看,近年来信息化的高度进展,通讯的自由化与高层次化、业务量的急速增长与人类对工作环境的安全性、舒适性、效率性规定的提高,导致家居智能化的需求大为增长;此外在科学技术方面,由于计算机控制技术的发展与电子信息通讯技术的成长,促成了智能家居的诞生。现在的中国正迎来一个"数字城市"、"数字社区"建设与发展的热潮,3G技术和互联网应用对智能家居的发展也起到很重要的推动作用,智能家居的日渐兴起影响到人们生活的方方面面,改变了人们的生活习惯,提高了人们的生活质量,促使家庭实现了生活现代化,给人们的家居生活带来了全新的感受,它必将成为一种发展趋势。 目前市场上出现得智能家居控制系统重要有: (1)X-10系统(美国),该系统是运用电力线作为网络平台,采用集中控制方式实现。这套系统的功能较为强大,与其它家居控制系统如ABB、C_BUS等比起来更容易接受,使用也相对简朴。由于实现同样的功能,X-10家居控制系统是运用220v电力线将发射器发出的X-10信号传送给接受器从而实现智能化的控制,因此采用这套系统不需要额外的布线,这也是这套系统的最大的一个优势,由于其它系统基本上都需要布低压线,在墙上或地面开槽、钻孔,施工难度大、费用高、工期长。但由于缺少在国内市场推广的条件且价格昂贵,该系统在国内应用很少。 (2)EIB系统(德国),该系统采用预埋总线及中央控制方式实现控制功能。但由于其工程规定复杂严苛,并且价格较高,因此一直无法打开国内市场。 (3)8X系统(新加坡),该系统采用预解决总线跟集中控制方式来实现功能。它的优点在于运用的产品对系统进行扩展,系统较为成熟,比较适合中国国情。但是由于系统架构、灵活性及产品价格等方面还难以达成规定,所以目前在国内还较少应用。 对于我国的智能家居进展目前,重要采用国外的一些技术产品,但也有一些公司推出了自己的产品, 重要有: (1)e家庭(海尔),该系列产品以海尔电脑作为控制中心,各种网络家电作为终端设备,海尔移动电话作为移动数字控制中心。海尔在技术上同微软合作,运用微软的Windows Me技术和海尔的网络家电,使“e家庭”已具雏形,已推出了网络洗衣机、网络冰箱、网络空调、网络微波炉等一系列网络家电。 (2)e-home数字家园(清华同方),该智能家居控制系统是专门针对中国家庭设计的,遵 循国际技术标准,采用嵌入式软、硬件技术,提供网络、网络节点及末端设备。产品以功能模块开发为主,基于国外成熟的智能家居标准之上。其智能家居控制系统重要有以下三个部分: A系列:遵循EIB协议的家庭控制产品,合用于中高档住宅区。 B系列:遵循X-10协议的家庭控制产品,合用于中档住宅区。 易家三代:配电箱集中安装式家庭控制产品。 国内各大软、硬件机构正在积极的研制、开发更为符合市场的智能化家居设备,以解决当前智能化产品实用性差、使用复杂及产品价格昂贵等缺陷,而技术创新性也逐步向国际先进水平靠拢,这样的未来值得期待。 4、存在的局限性或有待进一步研究解决的问题; ①局限性之处:由于我国的智能家居相对于国外起步较晚, 还缺少统一明确的国际标准,许多公司开发出的产品都是基于自己组的网络和信息互换协议,很多产品是针对特定的组网环境开发的,部分核心技术没有对外公布,技术复杂,直接导致了使用范围的局限性。再者,缺少相应的第三方产品,各个接入设备之间不能兼容,互操作性差,不利于产品的扩充,因而进一步局限了产品的发展。再加上,有的系统成本过高,严重影响了产品的普及。因此设计一个符合国家国情和规范的集远程控制和本地控制为一体的智能家居控制系统是非常具有现实意义的,且势在必行。 ②重要问题:根据前面提到的一些调查结果及数据可以看出,虽然目前智能家居系统有了一定的发展,并且市场上也开始出现相应的产品,但从总体的发展来看,不容乐观,特别是统一标准和权威产品的缺少严重影响了家居智能化的发展。随着科技的提高,经济的发展,人们的物质生活水平的提高,对家居环境的规定也越来越高,作为家居智能化的核心部分——智能家居控制系统也越发显得重要。家居智能化控制的开发和建设是未来国家、经济发展的必然趋势。 智能家居控制器可认为系统提供智能控制方案,使住户的控制更便捷,更高效,更能为家庭的平常活动节约不必要的能耗。并且在现在这个注重绿色环保的世界里,智能的为住户控制好空气的湿度、温度等,检查分析空气成分,让住户安心入住。同时,智能家居控制器可以根据住户的规定调整方案,加强紧急解决,危机救护等急救控制,充足达成只要是“用户想要的,就是我们追求的”宗旨。 通过2023年的哥本哈根会议,我国更加明确了节能减排,绿色建筑的目的,这就使住宅智能化凸显出了其合理规划,最大限度的节约能源的优势。假如我国大力推广绿色建筑,仅在铺设智能化系统上所需的新设备的生产上就有2023亿到3000亿人民币的新市场。而中国“智能家居网络”必在“智能化住宅”的框架下形成一个新型IT产业,而这一切必将对未来几十年我国房地产的健康有效发展起着深远的影响。 作为智能家居的核心系统的智能家居的控制系统,它的设计功能的完善必将推动住宅智能化的发展。而系统功能的集成化、用户使用的傻瓜化以及市场的平民化将是智能家居控制器的发展趋势,系统也将逐步迈向绿色化。最终,我想全人类的梦想是智能家居控制系统将囊括所有的家事杂物,让我们真正的享受舒适温馨的家庭生活。 五、实训内容 嵌入式单片机智能家居实训代码内容: #include <stdio.h> #include <string.h> #include "lpc11xx.h" #include "clkconfig.h" #include "gpio.h" #include "uart.h" #include "timer32.h" #include "ssp.h" #include "i2c.h" #include "wdt.h" #include "adc.h" #include "rom_drivers.h" #include "seg7led.h" #include "oled2864.h" #include "light.h" #include "acc.h" #include "key.h" #include "rfid.h" #include "tools.h" #include "spi_uart.h" #include "temp_hum.h" #include "collect_data.h" #include "led_spk_fan.h" #include "menu.h" extern void LED_Test(void); extern void Speaker_Test(void); extern void Fan_Test(void); extern void ADC_Test(void); extern void CAN_Test_ROM(void); extern void CAN_Test(void); #define ID_NUM 2 #define ntype 1 #define itype 2 #define rtype 4 #define transhead 0xaa #define LED_ON '0' #define LED_OFF '1' #define FAN_ON '2' #define FAN_OFF '3' #define LED7_ON '4' #define LED7_OFF '5' #define SPEAKER_ON '6' #define SPEAKER_OFF '7' #define ANSWER '8' volatile uint32_t counter1 = 0; volatile uint32_t counter2 = 0; static const unsigned char aucCRCHi[] = { 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40 }; static const unsigned char aucCRCLo[] = { 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80, 0x40 }; typedef struct //数据封装 { uint8_t head; //数据头 uint8_t dev_no; //房间号 uint8_t type; //数据类型 uint8_t len; //数据长度 uint8_t ndata; uint8_t temp[2]; uint8_t hum[2]; uint8_t light[2]; uint8_t adc[2]; uint8_t acc[3]; uint8_t rfid[4]; uint_least16_t check; }transdata; int32_t xoff = 0; //初始化三轴信息 int32_t yoff = 0; int32_t zoff = 0; int8_t x = 0; int8_t y = 0; int8_t z = 0; //初始化三轴信息 void SysTick_Handler(void) //线程 { static uint32_t Tick=0; static uint8_t cnt=0; Tick ++; if(Tick == 500) { cnt ++; cnt &= 0x1f; } else if(Tick >= 1000) { counter1++; counter2++; Tick = 0; } } void collect_data(uint8_t *temp,uint8_t *hum,uint8_t *light) //显示温湿度和亮度函数 { uint8_t i; char buf[16]; uint32_t light_data; i = Read_Temp_Hum(temp, hum); //采集温湿度 I2CInit(I2CMASTER, 0); //初始化亮度函数 light_init(); light_enable(); light_setRange(LIGHT_RANGE_4000); //初始化亮度函数 light_data = light_read(); //采集亮度 light[0] = (light_data >> 8); //左移八位,使光亮度值在整数位上 light[1] = (light_data & 0xff); if(i != 0) { OLED_ClearScreen(); //清屏 snprintf(buf, 16, "Temp: %d.%d ", temp[0], temp[1]); OLED_DisStrLine(1, 0, (uint8_t *)buf); //显示温度 snprintf(buf, 16, "Hum: %d.%d ", hum[0], hum[1]); OLED_DisStrLine(2, 0, (uint8_t *)buf); //显示湿度 snprintf(buf, 20, "Light: %d ", light_data); OLED_DisStrLine(3, 0, (uint8_t *)buf); //显示亮度 if((temp[0]>30)) //判断温度高位是否超过阀值 { GPIOSetValue(PORT3, 0, 0); //Turn on led1 speaker_op(1); //Turn on speaker GPIOSetValue(PORT0, 2, 0); // Turn on Fan } if((temp[0]<30)) { GPIOSetValue(PORT0, 2, 1); // Turn off Fan GPIOSetValue(PORT3, 0, 1); //Turn off led1 speaker_op(0); //Turn off speaker } if(light_data < 100) //判断是否需要开灯 { GPIOSetValue(PORT3, 1, 0); //turn on led2 } else { GPIOSetValue(PORT3, 1, 1); //turn off led2 } } } void adc_set(uint8_t *adc) //显示电压信息函数 { char buf[16]; uint32_t adv; float vol; ADCInit(ADC_CLK); //初始化电压函数 adv = ADCRead(0); //获得电压信息 vol = adv*3.3/1023; //转化电压信息 adv = vol*10; snprintf(buf, 21, "ADC: %d.%dV ", adv/10, adv%10); adc[0] = adv/10; adc[1] = adv%10; OLED_DisStrLine(4, 0, (uint8_t *)buf); //显示电压信息 } void acc_set_init(void) //初始化三轴函数 { I2CInit(I2CMASTER, 0); acc_init(); acc_read(&x, &y, &z); xoff = 0-x; yoff = 0-y; zoff = 0-z; } void acc_set(uint8_t *abc) //显示三轴信息函数 { char buf[16]; acc_read(&x, &y, &z); //获得三轴信息 x = x+xoff; //转化三轴信息 y = y+yoff; z = z+zoff; //转化三轴信息 abc[0] = x; abc[1] = y; abc[2] = z; snprintf(buf, 20, "Acc x: %d ", x); OLED_DisStrLine(5, 0, (uint8_t *)buf); // 显示X轴信息 snprintf(buf, 20, "Acc y: %d ", y); OLED_DisStrLine(6, 0, (uint8_t *)buf); // 显示Y轴信息 snprintf(buf, 20, "Acc z: %d ", z); OLED_DisStrLine(7,0,(uint8_t*)buf); // 显示Z轴信息 if(x > 30 || x < -30 || y > 30 || y < -30 || z > 30 || z < -30) //判断是否超过设定的阀值 { speaker_op(1); //turn on spear GPIOSetValue(PORT3, 0, 0); //Turn on led1 } else { speaker_op(0); //Turn off speaker GPIOSetValue(PORT3, 0, 1); //Turn off led1 } } void send_data(uint8_t *data, uint8_t len) //发送信息函数 { uint8_t i = 0,buf[16]; for(i = 0;i<len;i++) { ZigBee_PutChar(data[i]); //运用zigbee发送数据 } } void send_zigbee(uint8_t *data) { ZigBee_PutString(data); return; } uint_least16_t usMBCRC16( uint8_t * pucFrame,uint8_t usLen ) //CRC检查函数 { uint8_t ucCRCHi = 0x0; uint8_t ucCRCLo = 0x0; int iIndex; while( usLen-- ) { iIndex = ucCRCLo ^ *( pucFrame++ ); ucCRCLo = (uint8_t)( ucCRCHi ^ aucCRCHi[iIndex] ); ucCRCHi = aucCRCLo[iIndex]; } return (uint_least16_t)( ucCRCHi << 8 | ucCRCLo ); } void data_pakget_trans(transdata data) //发送M0板信息的中间函数 { uint8_t buf[64] = {0}; buf[0] = data.head; buf[1] = data.dev_no; if(data.type == itype) { buf[2] = data.type; buf[3] = 11; buf[4] = data.temp[0]; buf[5] = data.temp[1]; buf[6] = data.hum[0]; buf[7] = data.hum[1]; buf[8] = data.light[0]; buf[9] = data.light[1]; buf[10] = data.adc[0]; buf[11] = data.adc[1]; buf[12] = data.acc[0]; buf[13] = data.acc[1]; buf[14] = data.acc[2]; data.check = usMBCRC16(buf,15); //根据发送数据设立CRC检查位 buf[15] = data.check >> 8; buf[16] = data.check & 0xff; send_data(buf,17); //发送信息和CRC检查位 } if(data.type == rtype) { buf[2] = data.type; buf[3] = 4; buf[4] = data.rfid[0]; buf[5] = data.rfid[1]; buf[6] = data.rfid[2]; buf[7] = data.rfid[3]; data.check = usMBCRC16(buf,8); //根据发送数据设立CRC检查位 buf[8] = data.check >> 8; buf[9] = data.check & 0xff; send_data(buf,10); //发送信息和CRC检查位 } if(data.type == ntype) { buf[2] = data.type; buf[3] = 1; buf[4] = data.ndata; data.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 报告/总结

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服