Zigbee无线传感器网络平台的设计与实现

试验二:MicaZ-TinyOS2.x平台下LED试验:Blink 参考www.tinyos.net : 试验二:MicaZ-TinyOS2.x平台下LED试验:Blink ——TinyOS编程的“Hello World”程序   -------------------------------------------------------------------------------------------- date: 2011-06-24 阅读详情
    无线传感器网络是集信息采集、信息传输、信息处理于一体的综合智能信息系统,具有低成本、低功耗、低数据速率、自组织网络等特点。而Zigbee技术是为低速率传感器和控制网络设计的标准无线网络协议栈,是最适合无线传感器网络的标准。Zigbee无线传感器网络是基于Zigbee技术的无线传感器网络。在许多行业有巨大的应用潜力,如环境监控、物流管理、医疗监控、交通管理和军事侦察等方面的应用[1-2]。
    目前普遍使用的无线传感器网络平台主要有Crossbow公司的Mica2/MicaZ和Microchip公司的PICDEMZ等。MicaZ虽然具有Tinyos操作系统,但是没有结合Zigbee技术;PICDEMZ的Zigbee协议栈不完全符合Zigbee的定义,而且功能简单。因此,设计一种Zigbee无线传感器网络平台,可以更好地开发无线传感器网络的应用和Zigbee技术。
    本文在分析Zigbee无线传感器网络的特点和关键技术的基础上,提出Zigbee无线传感器网络平台的设计实现方案,采用模块化的方法实现了Zigbee协议栈,并且使用该无线传感器网络平台进行了温度监测的实验。结果表明,该平台实现了Zigbee无线传感器网络的基本功能,可以更好地开发Zigbee技术。
1 Zigbee无线传感器网络
1.1 无线传感器网络
    一个典型的无线传感器网络至少要由无线传感器节点、网络协调器和中央控制点组成。大量传感器节点随机部署在监测区域内部或附近,能够通过自组织方式形成网络。传感器节点监测的数据沿着其他传感器节点逐跳地进行传输,在传输过程中监测数据可能被多个节点处理,经过多跳后路由到网络协调器,最后到达中央控制点。在这个过程中,传感器节点既充当感知节点,又充当转发数据的路由器,用户通过中央控制点对无线传感器网络进行配置和管理,发布监测任务以及收集监测数据[3]。图1给出了一个典型的无线传感器网络的结构。

                    
1.2 Zigbee技术
    Zigbee技术是一种具有统一技术标准的短距离无线通信技术。完整的Zigbee协议栈由物理层、介质访问控制层、网络层、安全层和应用层组成。其物理层和介质访问控制层协议为IEEE802.15.4协议标准[4],网络层和安全层由Zigbee联盟制定,应用层的开发应根据用户自己的需要,对其进行开发利用[1,5]。
    在无线通信技术上,采用免冲突多载波信道接入(CSMA-CA)方式,有效地避免了无线电载波之间的冲突。此外,为保证传输数据的可靠性,建立了完整的应答通信协议。
    Zigbee设备为低功耗设备,其发射输出功率为0~3.6dBm,通信距离为30~70m,具有能量检测和链路质量指示能力,根据这些检测结果,设备可以自动调整发射功率,在保证通信链路质量的条件下,最低限度地消耗设备能量。
    在组网性能上,Zigbee可以构造为星形网络或者点对点对等网络。在每一个Zigbee组成的无线网络中,连接地址码分为16bit短地址码或者64bit长地址码,具有较大的网络容量。
2 Zigbee无线传感器网络平台的硬件设计
2.1 设计目标
    Zigbee无线传感器网络平台在各种应用系统中存在一些现实的约束[3,6]:
    (1)外形尽量小。芯片的尺寸决定了整个节点的尺寸。
    (2)集成度尽量高。各种传感器节点通常需要程序存储器、静态存储器、A/D转换器、定时器和计数器等多种硬件资源。特别是要有足够大的ROM空间存储Zigbee协议栈。
    (3)功耗低而且支持休眠模式。是否具有休眠机制直接关系到节点生命周期的长短,所以芯片必须支持低功耗的休眠状态。
    (4)运行速度尽量快。系统应在最短时间内完成工作,从而快速进入休眠状态,以节省系统能源。
    (5)工作在免费的ISM(Industial Scientific Medical)频段,2.4GHz它是免付费、免申请的无线电频段,在该频段上,数据传输速率为250Kb/s。
    (6)成本要尽量低。芯片在传感器节点成本中占很大的比例。
2.2 基于CC2430的硬件设计
    目前,常见的Zigbee无线传感器平台都是由一个8位或16位的单片机和Zigbee射频芯片组成。随着芯片设计的发展,目前出现了无线单片机,即将处理器模块和射频模块集成在同一个芯片中。Ti-Chipcon公司的CC2430就是其中的代表,其典型应用如图2所示。

                    
    CC2430集成了Zigbee 射频前端、ROM和8051微控制器在一个芯片内,而且大小仅为7mm×7mm,这样就使得设备集成度高、外围器件很少、外形很小;在接收和发射模式下,电流损耗分别低于27mA或25mA,并且支持四种休眠机制,可以大大地降低功耗;CC2430工作在2.4GHz的免费频段,而且芯片价格仅为5美元左右,使用成本很低。所以CC2430很符合Zigbee无线传感器网络平台的设计要求[2]。
3 Zigbee无线传感器网络平台的软件设计
3.1 软件结构

    Zigbee无线传感器网络设备上的软件主要由嵌入式操作系统、Zigbee协议栈和应用程序组成,嵌入式操作系统内核提供了简单高效的任务调动、中断处理和时间队列管理等,还包括所有硬件的底层驱动。应用程序包括串口通信、射频通信和信号强度检测等。采用模块化的设计协议栈,使得整个系统层次清楚、扩展性好、有利于Zigbee技术的二次开发。
3.2 协议栈设计
    Zigbee协议栈能够确保无线设备在低成本、低功耗和低速率网络中的互操作性。Zigbee协议栈的不同层通过服务接入点进行通信,大多数层有两个接口:数据实体接口和管理实体接口。数据实体接口的目标是向上层提供所需的常规数据服务。管理实体接口的目标是向上层提供访问内部层参数、配置和管理数据的机制[1]。其基本结构如表1所示。

                    
    PHY层由射频收发器以及底层的控制模块组成,定义了物理无线信道和MAC层之间的接口。主要功能是启动和关闭无线收发器、能量监测、链路质量监测、信道选择、清除信道评估以及通过物理介质对数据包进行发送和接收。
    MAC 层为高层访问物理信道提供了点到点通信的服务接口,具体功能是信标管理、信道接入、时隙管理、发送确认帧、发送连接及断开连接请求。此外,MAC层还为应用合适的安全机制提供了一些方法。
    网络层主要用于建立和维护网络连接。它独立处理传入数据的请求、关联、解除关联和孤立通知请求。
应用层主要为Zigbee技术的实际应用提供一些应用框架模型等,以便对Zigbee技术进行开发应用。
    由于Zigbee技术已经定义了物理层、介质链路层和网络层的标准规范,因此这三层的实现通常是类似的。无线传感器网络的不同应用都是由基本应用组成,如加入网络、脱离网络、发送数据等。本文使用IAR Embedded Workbench for 8051软件编写了本网络平台的物理层、介质链路层和网络层程序代码,其中每层的头文件定义了该层所支持的服务与应用程序接口。同时该平台还提供了一些应用接口,如aplFormNetwork()、aplJoinNetwork()、aplSendMSG()等,用户可以通过调用这些函数来实现自己的开发与应用。
3.3 代码示例
    Zigbee无线传感器网络协调器在进行一些初始化之后,调用aplFormNetwork()来建立网络。协调器通过扫描一个空信道来建立一个新的网络,然后选择一个随机的PAN ID并开始监听此信道。同时协调器还有一个目前连接设备的列表,以支持其他设备加入网络。
    main( ) {
    halInit( );                              //硬件初始化

    aplInit( );                              // 初始化协议栈模块
    ENABLE_GLOBAL_INTERRUPT( );              //打开全局中断
    aplFormNetwork( );                       //建立网络
    while(apsBusy( )) {apsFSM( );}           //等待网络建立成功
    while(1) {apsFSM( );}                    //运行协议栈
    }
    同样,Zigbee路由器和终端设备通过aplJoinNetwork()加入协调器建立的网络中。终端设备扫描信道找到协调器并申请加入网络,获取协调器的地址,同时将本设备的地址发送给协调器。网络加入成功后,终端设备则进入休眠状态,直到有数据发送时才被唤醒。
    main( ) {
    halInit( );                               //硬件初始化
    aplInit( );                               //初始化协议栈模块
    ENABLE_GLOBAL_INTERRUPT( );               //打开全局中断
    do {
    aplJoinNetwork( );                        //加入网络
    while(apsBusy)( )){apsFSM( );}            //等待加入网络成功
   }while (aplGetStatus( ) !=LRWPAN_SUCCESS);
    while(1) {apsFSM( );}                      //运行协议栈
    }
4 应用
    Zigbee无线传感器网络是具有低成本、低功耗、低速率的短距离的无线通信网,在实际应用中,通常应满足以下条件:设备成本低、体积小;使用一次性电池;通信覆盖范围大、传输的数据量很小。使用该无线传感器网络平台方便地利用Zigbee技术开发应用。下面重点介绍基于该平台的温度监测的实验。
    无线温度监测系统由多个独立的终端节点、一个网络协调器和一台PC机组成星形网络。其中,传感器节点分布于需要检测的区域,负责对数据的感知和处理,并通过无线射频信号发射出去;协调器接收各个传感器节点发出的无线射频信号,通过RS-232的串口线送入PC主机;PC主机负责存储及对数据的进一步处理。
   只要在该平台的基础上设计应用层的程序就能实现无线温度监测,无需设计物理层、MAC层和网络层的代码。每隔10秒进行一次温度采集,两次温度采集期间节点进入休眠状态,以减少功耗。某一时刻对节点1加热,从图3可以看出,在60秒左右时,采集的数据明显地增大。而节点2在时刻采集环境温度,可以看出,采集到的数据基本为一直线。实验结果表明,该温度监控可以很好地实现功能,而且具有低功耗、低速率的特点,布置起来摆脱了线缆的限制。

                   
    本文使用CC2430芯片设计并实现了Zigbee无线传感器网络平台,以低成本、低功耗等为目标设计终端节点,采用模块化的方法设计了Zigbee协议栈,使得该平台具有通用性和易开发性,解决了从系统设计到产品设计中的典型问题,加快了Zigbee无线传感器网络的开发和应用。

ZigBee温湿度采集系统设计 一 、温湿度度采囊系统的总体设计 协调器上电后,能够建立ZigBee无线网络,接着终端节点能查找并自动加入该ZigBee数传网络中,这时就建立起了协调器和终端节点的通信。 终端节点能够定时进行ZigBee数据采集温湿度数据,并将其通过ZigBee无线... 阅读详情

相关推荐

ZigBee在智慧农业中的应用

电子技术、传感器技术及网络技术的发展促进了农业信息化水平的提高,以信息网络为中心的智慧农业、精准农业等一系列新的农业生产模式已成为当前研究的热点。通过大量遍布于农田、温室大棚等目标区域的传感器,实时采集诸如温度、湿度、光照、有害气体浓度、土壤水分及pH 值等信息并汇总到控制中心,由专家决策系统及时、准确地发现问题,根据需要控制相关设备进行调温、调光、浇灌、换气,实现农作物生长环境的智能化控制,从而

liqingkk的专栏 4077

Zigbee组网及基于WiFi的传感器数据获取

一、基本说明 中国北方某高校16级课程设计硬件部分设计的基本思路: 本次课设使用的是开发箱的Zigbee模块(屏幕左面的6个模块)和arm板(右上角屏幕做WiFi数据传输)实现Zigbee组建网状网络,采集传感器数据并通过arm板外接usb无线网卡将数据传到pc,最后对url中的json格式传感器数据进行解析得到我们想要的数据并存入数据库。 二、Zigbee组建网状网络 使用IAR对对应模块烧写...

qq_43923588的博客 4165

基于Zigbee的智慧温室大棚系统(云平台版)

基于Zigbee无线传感器网络的智慧农业大棚监测系统,采用CC2530单片机为核心控制器,构建了协调器+双终端的Zigbee网络架构。终端节点搭载温湿度传感器、土壤湿度传感器和光照传感器,实时采集环境数据并通过Zigbee无线传输至协调器。协调器通过GPIO控制风扇执行器实现智能调控,并借助WiFi模块将数据上传至ONENET云平台,实现远程监控与数据可视化。系统软件基于Zigbee协议栈开发,封装了点对点通信函数实现数据传输。

Stanford_sun的博客 1061

基于ZigBee通用无线传感器网络硬件平台的设计

 引言  无线传感器网络作为一种新兴技术,已经成为国内外研究的热点,其在军事、环境、健康、家庭、商业、空间探索和救灾等领域展现出广阔的应用前景[1]。国内外很多单位都开展了相关领域的研究,但大部分工作仍处在无线网络协议性能仿真和硬件节点小规模实验设计阶段。无线传感器网络并不需要较高的传输带宽,但却要求极低的功率消耗,以使无线传感器网络中的设备可工作更长的时间,同时低成本也是无线传感器普及应用的

李兰俊的技术专栏 2273

ZigBee无线传感器网络设计与实现:从基础到应用

ZigBee是一种基于IEEE 802.15.4标准的高级通信协议,专为低功耗的个人区域网络设计。它支持短距离、低数据速率的无线通信,非常适合于传感器网络和控制网络。ZigBee技术广泛应用于家居自动化、工业控制和医疗监测等领域。

weixin_36296444的博客 1141

安卓游戏存档修改全攻略:以《英雄迷宫冒险》为例(附避坑指南)

本文详细介绍了安卓游戏存档修改的全过程,以《英雄迷宫冒险》为例,涵盖基础认知、工具选择、实战修改及风险控制。通过十六进制编辑和UTF-8编码解析,玩家可以修改金钱、角色属性和物品数量等数据,同时提供了避坑指南和伦理考量,帮助玩家在享受修改乐趣的同时保持游戏体验的平衡。

weixin_29209801的博客 392

Mantis OS+Micaz节点收发数据

最近在测试基于Mantis OS 传感器操作系统的Micaz节点中的cc2420收发器的收发性能。 实验环境如下: MOS程序编译运行环境:VMwara虚拟机ubuntu 11.04 MOS程序测试环境Win7烧写器一个烧写软件AVR STudio 4.18串口调试工具by金思软件之夫 首先测试两个节点之间的数据传送,没有采用任何路由协议,数据是通过广播发送到其他节点的。数据

sinpard的专栏 523

基于立创EDA的8口全千兆POE交换机设计详解:RTL8370N芯片与90W大功率供电方案

本文详细解析了基于立创EDA设计的8口全千兆POE交换机方案,核心采用RTL8370N交换芯片与支持90W大功率供电的IEEE 802.3bt标准PD芯片。文章深入探讨了PSE/PD供电管理、电源架构设计、电路细节及关键散热方案,为DIY或学习POE交换机硬件设计提供了完整的开源实践指南。

weixin_29050829的博客 1万+

基于无线传感器网络的边坡安全监测系统设计

在系统的传感器节点由MSP430F2618处理器芯片和CC2530ZigBee芯片组成,处理器用于对传感器数据采集处理,其与ZigBee通过串口连接,ZigBee节点之间通信以自己设定的通信数据帧发送,ZigBee在传感器节点中只负责数据传输,对于数据不作处理,因此MSP430对传感器检测到的数据进行处理打包后,从串口输出的数据帧格式与ZigBee网络中一致,在对MSP430F2618处理器进行测试时,直接通过串口与电脑相连,电脑作为ZigBee节点,通过串口调试助手可以检测处理器的功能执行情况。

毕业设计区博客 973

Telegram AI Bot自动化实战:5步用Make搭建业务工作台

Telegram Bot 是一种轻量级、高抵达率的消息自动化载体,其核心价值在于将结构化消息(如text、photo、callback_query)转化为可编程的事件流。基于 Bot API 的简洁设计与 Webhook 机制,开发者无需复杂鉴权即可实现毫秒级响应。结合低代码平台 Make,可快速构建具备上下文识别、条件路由、多系统分发与错误熔断能力的自动化流程。该方案特别适用于客服分发、数据同步、IoT告警等高频、规则明确、需即时反馈的业务场景,显著降低对 Python/Node.js 编程与 DevOp

weixin_33158887的博客 300

Shopee滑块验证码太刁钻?手把手教你用Python+Playwright绕过弧形验证(附影刀RPA接入代码)

本文详细介绍了如何使用Python和Playwright结合SadCaptcha第三方服务高效破解Shopee平台的弧形滑块验证码,并集成到影刀RPA工作流中。该方案开发周期短、准确率高(>90%),特别适合跨境电商自动化操作,已在实际项目中验证成功。

weixin_29284657的博客 567

ZigBee协议

转载地址http://www.feibit.com/bbs/viewthread.php?tid=140&extra=page%3D1 WSN/Zigbee开源协议栈1. msstatePAN http://www.ece.msstate.edu/~reese/msstatePAN/ Last Updated: Mar 6, 2007 较为简单...

weixin_30781631的博客 162

【第六届起重机创意大赛国一作品——资料分享】

文章目录前言一、比赛内容分析二、确定方案与作品模型1.方案简图2.作品模型三、电控部分控制思路单片机选择与资源分配拓展板的设计接线与走线代码分享总结

qq_19308801的博客 7781

如何用WSN设计一套智能家居安防系统

人们对生活品质的追求越来越高,更加向往安全、智能和健康的家居环境。传统智能家居安防系统功能单一、效率低下、误报率较高、维护成本大、不能很好地与快速发展的互联网技术相融合,已经难以满足市场及大众对家居安防系统的要求。现代无线传感器网络技术(WSN)和物联网技术的发展使得网络化的智能家居安防系统具备了安全、智能、便捷、环保的特性,同时保证系统的实时性、高可靠性、低误报率、低功耗及低成本维护。为此,本文

u011526056的博客 4382

SpringBoot 中 @RequestMapping 及衍生注解的全面解析与实践

本文全面解析Spring Boot中@RequestMapping及其衍生注解的使用,涵盖核心功能、HTTP方法特定注解(@GetMapping/@PostMapping等)、属性详解(路径/参数/头信息等)以及路径变量处理。文章详细介绍了注解的组合使用、继承特性、版本控制策略等高级应用,并针对405/404等常见错误提供解决方案。通过学习这些注解的规范用法,开发者能够构建符合RESTful风格的API接口,提升代码可读性和可维护性。建议优先使用HTTP方法特定注解,合理规划URL结构,并注意避免路径冲突。

Java&AI小吕布的博客 2037

第8章 - 异构系统的协同控制及最优控制 --> 最优控制

异构系统的协同控制及最优控制 --> 协同控制

赵继超的笔记 2259

C语言指数退避算法,基于无线传感器网络的大监控系统.doc

基于无线传感器网络的大监控系统《无线传感器网络》基于温湿度传感器物联网应用实时数据处理 系 别 专 业 班 级 学 号 组 次 姓 名 ...

weixin_30597089的博客 174

基于YOLOv11的工业零件表面缺陷检测系统:从原理到实现

工业质量控制是制造业的核心环节,表面缺陷检测作为其中重要组成部分,直接关系到产品质量和企业效益。本文详细介绍了一种基于YOLOv11深度学习算法的工业零件表面缺陷检测系统,包含完整的算法原理分析、数据集构建方法、模型训练策略以及用户界面设计。通过大量实验验证,该系统能够高效准确地检测零件表面的划痕、凹陷、锈蚀等多种缺陷,检测精度达到96.2%,满足工业实时检测需求。本文还提供了完整的代码实现和详细的技术文档,为相关领域的研究者和工程师提供参考。关键词:表面缺陷检测;YOLOv11;深度学习;工业视觉;

YOLO 567

【WSN定位】基于zigbee的无线传感器网络定位附Matlab代码

摘要: 无线传感器网络(WSN)在环境监测、智能家居、精准农业等领域得到了广泛应用,其节点的精确定位是许多应用的关键。本文重点探讨基于Zigbee技术的无线传感器网络定位方法。Zigbee凭借其低功耗、低成本和自组织网络的特点,成为WSN定位的理想选择。文章将对Zigbee技术的特点、WSN定位的常用算法以及基于Zigbee的WSN定位系统的设计与实现进行深入分析,并探讨其优缺点及未来发展趋势。关键词: 无线传感器网络;Zigbee;定位算法;节点定位;系统设计一、引言。

m0_57702748的博客 1077

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Day2 : zigbee无线传感器网络

Day2 : zigbee无线传感器网络TI Z-Stack协议栈安装Zigbee应用开发 - 串口通信 2020年5月16日 09:26:20,休息了四天,在正确是时间做正确的事。 参考链接:https://blog.youkuaiyun.com/weixin_39148042/article/details/81437042 TI Z-Stack协议栈安装 双击即可完成安装 协议栈目录 Components - 存放开源代码,包括硬件接口层,mac层,操作系统层等。 Documents - TI公司提供

MCU-51王的博客 2186

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

基于Zigbee技术的隧道灯光控制系统设计

Zigbee是一种基于IEEE 802.15.4标准的低功耗局域网协议,具有近距离、低复杂度、自组织、低功耗、低数据速率等特点,非常适合用于自动控制和远程控制领域。Zigbee网络由协调器、路由器和终端节点组成,通过无线方式实现数据的采集和传输。

3254968421的博客 1895

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

无线传感器网络笔记

一无线传感器网络简介 短距离无线通信特点:通信距离短,覆盖距离一般为10~200m。无线发射器的发射功率较低,发射功率一般小于100mW。工作频率多为免付费、免申请的全球通用的工业、科学、医疗频段。 短距离无线通信技术的概念:指集信息采集、信息传输、信息处理于一体的综合型智能信息系统,并且其传输距离限制在一个较短的范围内。 低成本、低功耗和对等通信是短距离无线通信技术的三个重要特征和优势。 常见的无线通信技术有IrDA技术、蓝牙技术、WIFI技术、RFID技术、UWB技术、Zigbee技术。 以.

i_Crave的博客 1万+
上一篇: Symbol-level Network Coding for Wireless Mesh Networks
下一篇: 基于ZigBee的无线串口集线器的研究与设计
lanjunlee
博客等级 码龄19年 12粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值