一种基于ZigBee和ST江南体育M32的室内智能照明系统的设计

  江南体育官网在人们的传统意识中,照明系统仅以照明为目的。传统的照明系统中主要的控制方式有手动控制方式和自动控制方式。其中手动控制方式简单、有效,但是过于依赖人工操作,并且控制相对分散,不能有效管理;自动控制方式主要是由时钟元件、光电元件或两者组合的方式来实现对照明设备的控制,这种控制方式减少了对人员的依赖性,管理相对集中,实现了照明控制的自动化,但却不能对照明系统进行调光控制。

  此外,随着生活水平的不断提高,人们对日常生活的无线化、网络化、智能化、节能化的需求越来越强烈,以上两种传统的照明控制系统已经无法满足人们对日常生活品质的需求。基于上述原因提出了一种基于ZigBee和STM32的室内智能照明系统的设计。

  本系统主要由终端节点、路由器节点和协调器节点组成。三个节点各司其职,终端节点主要负责消息的传输和允许共它节点通过它接入到网络中;协调器节点则主要负责网络的建立、维持和管理,以及整个网络数据信息的收集、处理和显示等。在这三个节点当中协调器节点是整个网络的核心。系统总体设计框图如图1所示。

  (1)采用带调光模块的LED灯具,通过程序控制可以实现灯光亮度的自动调节,利用室内灯光与自然光的相互补偿使室内照度保持在一个合适状态;

  (4)加入部分情景模式,在不同的室内环境需求时可以很方便地对灯光环境进行选择(如家人一起看电视时的影院模式,看书写字时的学习模式等)。

  除上述主要的功能外,本设计还预留了部分外围接口电路,可以加入一些相应的传感器实现更多的功能(如加入燃气传感器来预防厨房燃气泄漏,加入烟雾传感器防火灾等)

  系统硬件电路部分主要由协调器节点电路、系统照度采集节点电路、系统LED调光节点电路以及系统路由器节点电路四部分组成。

  照度采集节点由CC2530和光照度传感器(BH1750FVI)组成。本节点主要是对室内的照度进行实时的采集并通过ZigBee模块发送给协调器,协调器再对接收到的照度信息进行整合处理,然后在LCD上实时显示出室内的照度信息,并根据照度信息给LED照明节点发送相应的指令,对LED灯进行相应的亮度调节。

  BH1750FVI传感器是一个光电集成传感器,其主要有如下几个特点:1)可以输出对应亮度的数字值;2)广泛的输入光范围(相当于1-65535lx);3)通过降低功率功能,实现低电流化;4)无需外围部件;5)光源依赖性弱(白炽灯、荧光灯、卤素灯、白光LED、日光灯)。

  LED调光节点由CC2530和调光模块组成。调光模块可以根据ZigBee模块接收到的指令实时地对LED灯进行亮度的调节。调光的目的是为了使室内自然光跟LED灯光进行相互的补偿,使室内照度达到一个合适状态。

  路由器节点是在CC2530模块上扩展了一个CC2591模块,该模块是一个真正意义上精心设计的带PA+LNA无线收发模块。该节点主要负责接收终端节点信息并转发给协调器,或转发协调器的反馈信息给终端节点。

  在开阔的场地上,CC2530的传输距离可达100m,但在室内环境下由于有墙体的遮挡,存在路径损耗问题,实际传输距离大大缩短。在室内中间位置若仅放置一个由CC2530构成的路由节点,很可能造成数据传输错误甚至数据丢失。所以在实际设计电路时,路由器节点采用的是CC2591+CC2530组合的形式。CC2591是一个2.4GHz的射频前端芯片,它可以通过PA提高发射功率,从而延长通信距离。该芯片还可以通过LNA来改善接收机的灵敏度。通过以上两点可以很好地保证该系统数据传输的完整性。CC2591+CC2530硬件电路如图4所示。

  协调器节点由STM32F107、CC2530、12864LCD、矩阵键盘、DS18B20和DS1302模块组成。该节点是整个系统的核心,主要负责网络的组建、维护、控制终端节点的加入和删除,以及整个系统信息的处理和显示等。其中STM32F107是意法半导体推出的全新STM32互联型微,此芯片集成了各种高性能工业标准接口,且STM32不同型号产品在引脚和软件上具有完美的兼容性,可以适应多种应用。此外该芯片还可以嵌入μC/GUI系统,拥有独立的32位指令总线位Thumb指令等。

  矩阵键盘电路采用2×4的矩阵键盘,用于时钟的时间调整及不同情景模式的选择;显示电路采用12864 LCD,可以显示4行信息,每行显示16个字符,完全满足显示照度、时间和温度等要求。

  软件部分主要是完成对整个系统硬件电路的编程设计。其中终端节点程序主要完成信息的采集、上传和控制等。协调器节点程序用于实现整个网络的组建、维护和管理以及相应数据的收集、处理和显示等。3.1 协调器节点软件设计

  协调器节点首先判断是否有数据传送,若有,则选定信道建立网络,进行数据扫描和读取,并打包发送数据。由于电源损耗主要集中在无线数据的收发阶段,在没有接收到时钟信号的唤醒命令前,使其处于睡眠状态,以达到延长电池的使用寿命、减少功耗的效果。程序流程图如图6所示。

  终端节点数据采集的软件设计包括两部分,分别为单片机CC2530驱动程序设计和传感器收发数据程序设计。首先进行模块初始化,然后启动定时器,每隔一段时间进行信道扫描,查看是否有入网申请指令,若有,则首先判断启动哪一个传感器端口,然后向端口发送数据采集请求,采集完毕后使单片机处于休眠模式,将采集到的数据发送给CC2530作进一步处理。程序流程图如图7所示。

  程序中将设备类型设置为网络路由节点,在ZigBee协议栈中只需要更改应用层事件处理函数使其在接收到信息后调用程序把接收到的信息发送出去即可。

  为对系统进行功能的测试,特选择宿舍为实验场所,分别在宿舍的三个卧室各放置3个照明节点和一个照度采集节点,然后对系统的功能进行测试。通过测试,系统能够准确地实现无线控制功能。照度节点能够准确地采集环境的光照度信息,ZigBee模块能够正常地进行数据的相互传输,PWM调光器模块能够准确无误地对LED灯进行相应亮度的调节。此外各种情景模式,如室内温度和时钟信息都可以按照预定指标正常工作。

  此无线智能照明系统不仅可以用于室内照明的全自动控制,也可根据不同的需求进行手动的调节,这样既可以节约能源又可以使室内光照度达到适合人类活动的最佳状态。本系统具有体积小、功耗低、功能强和可灵活扩展等特点。此外本系统不仅可以用于家庭室内也可应用于学校教室、公司办公区、会议室和KTV等各种不同的场合,只需在运用时对相应模块和程序进行相应的调整即可。本系统在智能照明控制领域具有广阔的应用前景。

  ST 为开发者提供了非常方便的开发库:有标准外设库(SPL库)、HAL 库(Hardware Abstraction Layer,硬件抽象层库)、LL 库(Low-Layer,底层库)三种。前者是ST的老库已经停更了,后两者是ST现在主推的开发库。 相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。HAL库是ST未来主推的库,ST新出的芯片已经没有STD库了,比如F7系列。目前,HAL库已经支持STM32全线产品。 通过文字描述可以知道HAL库的几

  对STM32任何模块使用前都要对其初始化、首先就是初始化外设时钟,可以简单看系统时钟章节关于外设时钟,看数据手册如下: 看门狗由独立内部40M时钟驱动,所以不需要我们在初始化时钟配置寄存器。 读数据手册可以得知看门狗模块使用的系统LSI时钟,初始化配置之前要设置预分配寄存器IWDG_PR,以及设置IWDG_RLR两个寄存器的值,由于寄存器有写保护,根据数据手册可知: 所以在设置之前寄存器之前必须先对IWDG_KR(键寄存器)再写入0x5555,修改寄存器的值 。接下来看预分频寄存器 : 预分因子主要和看门狗的超时时间有关 看手册可知:

  使用 /

  SysTick_Config(SystemFrequency / 10) 函数的形参就是systick重装定时器的值。 systck计数频率为每秒72000000次,所以7200000次就是1/10秒,也就是100ms。 SysTick是1个24bit递减计数器,通过对SysTick控制与状态寄存器的设置,可选择HCLK时钟(72M)或HCLK的8分频(9M,缺省是这个)作为SysTick的时钟源。 SysTick的重装寄存器决定了定时器频率。 若SysTick的时钟源是72M, SystemFrequency = 72000000Hz 所以 SysTick_Config(SystemFrequency / 1

  如下图所示,STM32F103F103与四线电阻触摸屏直接通过自身的I/O口连接,实现触摸屏功能。其中PA8、PA9、PA10、 PA11分别作为四个三极管的控制端,通过控制三极管通断,来控制四线触摸屏的Y+、Y-、X+、X-.PA1,PA2是两个A/D转换通道,分别连接 Y+和X+用于计算触摸点的X和 Y坐标。PA3连接内部中断用于检测触摸屏是否有触摸动作。触摸屏平时运行时,令PA8、PA9、PA11输出0,PA10=1,即只让VT2导通。当有触摸动作时,D1导通给PA3一个中断信号,STM32F103接收到中断请求后立即置PA8=1,导通VT1,这样在Y+、Y-方向上就加上电压,同时启动A/D转换通道PA2,通过输入X+

  接口电路 /

  首先说说增量式PID的公式,这个关系到MCU算法公式的书写,实际上两个公式的写法是同一个公式变换来得,不同的是系数的差异。 资料上比较多的是: 还有一种是: 感觉第二种的Kp Ki Kd比较清楚,更好理解,下面介绍的就以第二种来吧。(比例、积分、微分三个环节的作用这里就详细展开,百度会有很多) 硬件部分: 控制系统的控制对象是4个空心杯直流电机,电机带光电编码器,可以反馈转速大小的波形。电机驱动模块是普通的L298N模块。 芯片型号,STM32F103ZET6 软件部分: PWM输出:TIM3,可以直接输出4路不通占空比的PWM波 PWM捕获:STM32除了TIM6 TIM

  当从虚拟串口到真实串口发数据时,没有错误,但发送一个稍微大一点的文件时(如1M),误码率很高。不知是为什么? 其中: int main(void) { #ifdef DEBUG debug(); #endif Set_System(); Set_USBClock(); USB_Interrupts_Config(); USB_Init(); while (1) { if (count_out != 0) { USB_To_USART_Send_Data(&buffer_out , count_out);//这句是发数据的函数,原型如下。 count_out = 0;

  有关推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入区别 有关推挽输出、开漏输出、复用开漏输出、复用推挽输出 以及上拉输入、下拉输入、浮空输入、模拟输入的区别 最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多: (1)GPIO_Mode_AIN模拟输入 (2)GPIO_Mode_IN_FLOATING浮空输入 (3)GPIO_Mode_IPD下拉输入 (4)GPIO_Mode_IPU上拉输入 (5)GPIO_Mode_Out_OD开漏输出 (6)GPIO_Mode_Out_PP推挽输出 (7)GPIO_Mod

  我们做STM32产品开发,最终是要将编写的程序代码写进芯片存储器,通常指Flash存储器【含可以映射到芯片存储空间的片外存储器】,让程序正常运行起来以实现相应的功能。 一般来讲,将我们准备好的机器代码HEX或BIN文件等写进片上FLASH可以有三种常用的烧写方式。【温馨提示:下面提到的烧写方式的术语或称谓不是绝对的,对于不同的器件可能有不同的表述甚至内涵,这里仅针对STM32,知道怎么回事就好】 第一种,ICP【In circuit programming】,即在电路编程或在线编程【注:不必太纠结该术语名字或称谓。平常称之为ICP也挺好】。一般是指利用调试器通过调试接口将程序代码写进芯片存储器的过程。调试器可以是ST官方的

  三种烧写方式对比 /

  篇 target=_blank

  设备案例实战 target=_blank

  有奖报名|TI MSPM0 在【电力输送和工厂自动化与控制系统】、【家用电器和电机控制】中的典型应用

  【直播】STM32H5系列:强大的ARM® CORTEX®-M33 MCU让高性能和安全性唾手可得

  【新品】STM32H5-Arm® Cortex®-M33 内核,主频高达250MHz,提升性能与信息安全性

  【新品】STM32MP13X-支持Linux、RTOS和Bare Metal应用,新一代通用工业级MPU

  【新品】Arm® Cortex®-M33处理器内核,运行频率160 MHz,基于Armv8-M架构并带有TrustZone®

  MCS-51系列单片机并行P2口也有两种功能,对于内部有程序存贮器的单片机(如定制的8051),P2口可以作为输入口或输出口使用,直接连接输入 ...

  在MCS一51单片机的控制系统中,它的四个并行8位输入输出端口P0一P3是我们经常使用的。在并行端口的编程学习中,“跑马灯”是单片机并行 ...

  随着单片机的使用日益频繁,用其作前置机进行采集和通信也常见于各种应用,一般是利用前置机采集各种终端数据后进行处理、存储,再主动或被 ...

  简介:太阳能路灯控制系统:51单片机练手项目,简单可复制。 带太阳能充电功能,oled显示, 白天根据光强判断开关灯晚上开灯,二级菜单可 ...

  单片机是什么,是在一个集成硅片中集成了一些部件,构成了一个微型的计算机系统的东西,这些只是对单片机的基础概念是简单了解江南体育,会用单片机 ...

  2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  站点相关:综合资讯51单片机PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程

 

TEL

400-123-4567
138-0000-0000