摘要
随着21世纪科学技术的不断发展,物联网日益得到越来越广泛的应用,智能家居作为物联网在家庭中的具体应用也开始进入普通家庭。家居在智能化方面发展的特别的快,在社会经济智能化等方向高速发展的今天,随着单片机技术和网络技术的普及,智能化家居照明系统也得到了长远的发展,本文主要针对于传统的家居的基础上集成了网络技术和智能化控制技术并根据当前社会人们的生活习惯和生活规律,对智能家居照明控制系统进行优化,力图既能提高人们的生活质量又能节能,在实际生活中具有十分重要的意义。
本文是在传统设备的基础上增加了智能化的控制方式,包括物联网远程控制技术,包括神经网络的语音识别技术,对于现有设备的缺点进行智能化的升级,对于灯光的研究包括远程控制,语音控制,亮度的调节,色温调节等具体技术细节。系统中的控制核心采用STM32单片机作为控制器,通过keil编程,用C语言,采用PWM方式进行亮度调节,控制不同发光二极管,来实现色温及不同颜色调节照明。使用MQTT主题订阅、发布控制和按键控制灯光调节。经过调试验证,表明系统完全能够满足设计要求。
关键词:STM32,MQTT,PWM控制,WIFI模块
With the continuous development of science and technology in the 21st century, our society has ushered in the era of electronization and intelligence. Home in the intelligent aspect of the development of the special fast, with the whole society in all aspects of the intelligent development of the booming rise and rapid development, in the intelligent development of the kind, home intelligent lighting has become an important direction of the development of lighting control technology. So, this temperature is under the premise that the existing intelligent lighting control system, summarizes the advantages and disadvantages of the current system, and according to the current social life habits and rules of life, will study intelligent household lighting control system, a optimization, to improve people's quality of life, as well as the study of energy saving and so on, has the very vital significance in the real life.
The research content of this paper, mainly from the lighting system control mode, and lighting control system design and other aspects of the research.In this paper, the existing intelligent lighting control mode, the control principle, as well as advantages and disadvantages, sorted out, designed a reasonable intelligent lighting system in the home environment, and the function of the system, software, hardware design methods are introduced. The control core of the system uses STM32 single chip microcomputer as the controller, through KEIL programming, using C language, using PWM brightness adjustment, and control different led, to achieve color temperature, as well as different color adjustment lighting. Use MQTT topic subscribe and publish controls and buttons to control lighting adjustments. In the specific hardware design, after debugging, this part can fully realize the function of the design system.
Keywords: STM32, MQTT,PWM Control, WIFI module
目 录
随着新时代的到来,智能化时代到来了,智能手机,互联网的普及,各种技术的发展[1]。许多人看来智能化家居设备生活还是遥不可及,觉得人工智能化设备还处在展会展览阶段,在日常家居生活中不太实用或是各大厂家向人们宣传技术和展示能力的家居装饰[2]。实际上,近年来智能家居产品如智能冰箱、新的互联网电视、智能窗帘等等,其实早就进入我们的生活了,只是很多家庭没有完整的一个智能系统而已。像一般空调和化妆镜,以及灯光照明等子系统的价格,已经是普通消费者可以接受的了,人们完全可以根据自己的需要选择各个智能化的子系统,来满足自己居家的各种不同的需求。
家居智能化经过不断发展,智能化家居系统应运而生,在家里安装一套智能家居系统[3],如今已经不再是一个不成熟的想法了,而是切切实实可以在生活中使用,并给予了人们便利的生活体验。在智能家居系统中,灯光控制系统就是其中一个重要组成部分。通过智能家居系统,用户可以通过手机APP、语音控制等方式控制灯光的开关、亮度、色温等参数。这不仅方便了用户的生活,还可以提高家庭安全性,比如可以通过设定定时开关灯来模拟有人在家的情况,防止入侵。智能家居系统还可以通过传感器、人体感应器等技术实现自动化控制,比如当用户进入房间时,灯光可以自动打开,当用户离开房间时,灯光可以自动关闭,大大提高了使用体验和能源利用效率。可以实现远程控制、定时开关、情景模式等多种智能化灯光控制方式,带来更加智能化、舒适和节能的家居生活体验。
灯光控制的历史可以追溯到19世纪末期,当时最早的灯光控制方式是使用手动开关控制灯光的开关,这种方式存在着人工操作不便、控制不精准等问题。随着电气技术的发展,出现了使用电动开关控制灯光的方式,但是这种方式的控制精度仍然较低,且需要人工操作。随着计算机技术的发展,出现了基于计算机控制的灯光控制系统。这种系统可以实现对灯光的远程控制、自动化控制和情景模式控制,提高了控制精度和控制灵活性,但是成本较高,应用范围较为有限。随着物联网技术的发展,智能灯光控制系统得到了广泛应用,通过无线通信技术和智能化算法,实现了对灯光的远程控制、自动化控制和情景模式控制等多种控制方式,大大提高了智能家居的便利性和舒适性。
智能化设备在国外的发展起源非常的早,在智能化设备发展初始阶段由于技术处于原始发展阶段,并且价格也是相对昂贵,因此在经济性和实用性能上来说是很难得倒发展的,在美国和欧洲等西方国家智能化照明系统最早起源于上个世纪80年代,这个阶段智能化灯光控制系统处于萌芽阶段,到了90年代的末期,由于单片机技术,计算机技术,物联网技术,人工智能化技术等新兴技术的蓬勃发展,随着技术的日趋成熟,智能化照明技术得到了新的发展机会,在灯光照明控制过程中引入了物联网技术,单片机技术,人工智能神经网络技术等,实现了灯光的远程操作和智能化控制操作,有许多新一代的智能照明产品在美国、德国、日本、新加坡和日本得到了广泛的应用[5]。目前看来以美国为主的西方世界是智能化照明系统的最大的研发中心和最大的应用中心,日本在智能化灯光照明系统中的发展也是非常迅速的,其中美国占有智能化照明系统全球市场的53.1%的用户数量,日本大约占有10%,新兴的发展中国家也表现出极大的潜力,其中中国在新世纪的改革开放的发展中智能化照明控制系统也在全球市场中举足轻重的地位。
随着智能化设备的大力发展,智能照明控制系统从应用于舞台,延展转向各种建筑和室内照明[6]。照明控制技术方法现在主要从以前的单一的控制方式转变为集中控制的方式,或分散控制以及分布式控制。特别是分布式控制技术的发展,使照明控制模式得到了更多的应用,也促进了楼道照明系统更完整的应用。与此同时,建筑照明,室内照明网络协议也百齐放,有自己的特点和优点和缺点。根据协议的开发背景,以及协议的功能和特征,大致可以把这些协议可以分为以下几种:第一个是一位著名的照明设备制造商开发,它是一个独立的发展厂家,如澳大利亚C -总线协议,如Dynalite Dynet协议,如美国LUTRON 照明控制技术领域的第二种是一起联合开发,专用调光系统专门制定的协议,最后一个是针对智能家居,扩展的照明控制协议的一部分,如欧洲X - 10系统,照明控制子系统等[7]。
在国内快速的发展期间,我们的科技水平发展日新月异,技术创造了财富,同时技术也丰富了人们的生活,其中在单片机技术,传感器技术,网络技术,智能化设备的应用上来说是得到了巨大的发展,人们在自动化生产生活,智能化生产生活有了十分丰富的经验,在这个背景下人们的工作生活习惯逐渐改变,对于传统的楼道灯光控制变得越来越不能满足生产生活所需,因此对于传统家居行业、照明行业提出了更多的要求,智能化丰富了人们的生活,对于社会的发展也有一些好处,家居智能化在这种环境下得以产生。
在中国智能化照明系统正在快速的发展,技术上也不断取得突破,改善了之前产品的缺点,包括易用性个稳定性以及高昂的市场价格等缺点,为智能化照明系统普及打下了坚实的基础,满足了人们对于智能化照明系统的需求,同时我们也要正视国内智能化灯光设备发展的缺点,虽然中国市场的量大,但是大部分产品是基于国外现有技术的基础上进行研发,对于底层技术研发能力不足,因此在现有的国家环境下,尤其是能源的缺乏成为制约中国发展的主要因素,因此智能化照明技术的研发需要快速的应用到人们日常生活中。
对于21世纪家居产品,智能化的家居是家居产业发展的必然趋势。在照明相关方面,我们现在的目的不和以前一样只是为了增加灯光的强度,尽量能在方便控制的同时,也可以让灯光丰富多彩,增加一定的内涵,衬托氛围,具有一定的艺术价值,智能化的照明系统就是在这样的社会需求的背景下产生的。现在的控制方式相较于传统控制方式而言更加复杂一些。如果使用的是传统控制方式,整个系统在完成后需要改动,往往需要很大的代价,而且非常麻烦。对比之后,智能家居系统就有安全、易控制、效率高、速度等特点,特性鲜明,不像传统照明一样难以变通,所以智能家居可以轻易获得人们的喜爱。在当今时代,人们更加需要的是即买即用的工具,适用于多种场合。智能化照明控制系统又是非常方便的,很符合当今社会的需求。智能照明系统的特点有,具有更高的效率的照明,能够充分利用自然光,自动调节照度,更加节约能源,能够利用最少的能源保证所需要的照度亮度。第二个特点是能够延长光源寿命,既然可以调节灯光的亮度,那么对于灯来说,它的寿命就可以相应的延长。另外一个特点就是提高照明质量。提前设置好亮度,照明到的地方会有不变的亮度,同时智能化照明能够根据使用者的要求进行照明。进一步地满足不同使用人群、不同层次的照明要求,充分提供个性化需求。总之,智能灯光控制系统作为智能家居的一部分,增加了家居的科技感和时尚度,体现了主人的生活品质和审美追求。通过智能化的灯光控制系统,可以实现远程控制、定时开关、情景模式等多种智能化灯光控制方式,使得家居的控制更加便捷、智能化,提高了家居的舒适性和便利性。智能灯光控制系统可以实现自动化控制,如定时开关、智能感应等,避免了人工操作不当所带来的安全隐患,提高了家居的安全性。智能灯光控制系统可以实现精确的控制和调光,避免了灯光的浪费和过度使用,从而达到节能环保的目的。
第一章 为基于STM32智能照明控制系统课题的研究背景以及目的、意义,在国外以及国内的发展现状。
第二章 表达研究内容及目标。介绍系统的基本功能和设计体系,以及系统各个功能部件的选取方案和如何验证此方案有效。
第三章 主要介绍系统的硬件框图和各个功能模块。
第四章 软件设计的流程图和主要代码。
第五章 主要对基于STM32智能照明控制系统课题的实物进行展示并对其所用到的各个传感器模块以及外设模块进行试验与调试。
- 系统总体方案设计
- 需求分析
现在的社会现状是人们工作时间相对以前更加长了,不再是那种日出而作,日落而归的时代了,人们的生活节奏很快,劳累了一天的人们回到家中,已经很疲惫,我们有时候自身都能发现,在回家的楼道要么灯光常亮,这样极大造成能源浪费,要么需要人们触摸打开或者开关打开,这样对于使用造成极大的不方便,对于楼道环境来说,而且常亮的灯光会对人的生物钟和睡眠质量产生负面影响,尤其对于那些需要在夜间休息的居民来说,这种情况更为明显。另一种做法是需要人们触摸或使用开关打开灯光,这种方式虽然可以节约能源,但对于使用者来说会造成极大的不便。在夜间进入楼道时需要先摸索着找到开关或者触摸感应区域,这不仅影响居民的感受,还可能存在安全隐患。因此,为了解决这个问题,可以采用一些新型的智能照明系统,例如使用人体红外感应技术,当有人靠近时才会自动开启灯光,而远离时则会自动关闭,这种方式既方便又节能,也不会对人的生物钟和睡眠产生负面影响。此外,还可以采用定时控制的方式,根据不同时段的人流量来控制灯光的开启和关闭,达到节能的目的。灯光照明是一个必要的东西,现在人们基本上在家的时间都是晚上或者很早的早上,基本都是需要灯光来进行照明。根据现在的社会现象,人们的生活工作规律和习惯,所以设计一个智能化的楼道灯光控制系统,使用我们很方便的对灯光就能控制,是很有必要的。同时,能够自动或者语音对灯光进行控制,使劳累一天的人们能够更加快捷和便利高效的对灯光进行控制。
对于不同的人群,对于光线的明亮需求不同,同时在不同的场景下,不同色调的灯光,能更好的烘托氛围,提升我们的美好感受,一些人可能喜欢在光线充足的环境下工作或学习,而另一些人可能更喜欢暗一些的环境。此外,不同的任务也需要不同程度的光线。例如,需要精细操作的任务可能需要更明亮的光线,而需要放松的任务可能需要更柔和的光线。因此,在选择光线明亮度时,应根据个人喜好和任务需求来决定。所以,设计一个能够调节光线亮度,光线色温,以及光线颜色的智能控制系统使很有必要的。这也正式本文设计方案的立足之本。
本次设计主要研究内容是通过STM32单片机的使用,设计一款一个基于STM32的智能灯光控制系统,包括对于灯光的控制,灯光亮度调节,色温调节,以及多个灯光系统的控制。
本次设计主要是设计一款基于stm32智能家居灯光控制系统,该系统可以通过wifi模块与互联网连接,通过与MQTT服务器连接,使用MQTT协议,同时使用单片机连接到该系统,使用该软件发送指令即可对该系统下的灯光色温和亮度进行调节。
采用的是C语言、使用keil5对stm32进行编程,编写对应的功能。主要功能有:
(1)使用wifi模块将整个系统接入互联网。
(2)使用mqtt物联网协议,与mqtt服务器通信。
(3)连接到mqtt服务器,对系统的灯光进行色温,亮度,开关调节。
(4)通过按键控制灯光,可以切换几种预设模式,以及亮度调节。
(5)使用语音控制灯光。
-
- 系统设计体系
本次设计选择stm32单片机为主控制器,esp8266作为物联网模块,通过连接wifi,即可使用电脑软件通过发布mqtt主题,对系统的灯光进行调节,主要包含了灯光色温的调节,灯光亮度调节,以及灯光关闭和打开调节等,灯光控制上主要使用的是pmos si2301控制RGB灯珠,通过pwm控制mos管的空占比,来调节灯珠平均功率,做到无级调节,系统框图如图2.1所示:
图2.1 系统设计体系图
通过以上设计方案的选择,最终完成了方案的设计,使用STM32F103C8T6作为主控制器,负责系统数据采集和数据处理,控制整个系统,使用离线语音模块模块SU-03T与物联网远程控制灯光的亮度调节,单色光照明,暖光,冷光,亮度切换等等。
本章主要介绍了整个系统的硬件和软件设计的具体实现过程。其中包括硬件部分的硬件设计框图,最终选择的硬件的参数介绍或者释放方法进行了详细的介绍,并列出了相关硬件的原理图,主要包含主控芯片、语音识别模块、物联网模块、继电器、电源开关及OLED模块的介绍,也包含软件部分实现的流程图和实现的分析。
-
- 主控芯片模块
方案一:可以选择比较常用的51单片机系列,51单片机在使用上来说是非常广泛的一款单片机,许多大学以此为课程培养电子方面工程师,以此在使用上来说资料齐全,其在抗干扰性和安全性能上来说是非常可靠的,STC公司生产的STC15F2K60S系列单片机其是相对传统的51内核单片机快了近10倍,而且可以宽幅电压输入,在低功耗上相对传统单片机更加优秀,其系统具备2K的运行内存,在一般项目上足够使用,但是其相对于ARM内核的单片机运行速度还是偏慢,外设也没有其丰富,也无相应的库函数编程,在使用上来说没有STM32的单片机便捷。
方案二: 这里采用的是ST公司的 STM32F103C8T6作为主控制器,STM32F103C8T6是一款M3内核的ARM系列单片机,其具备20K的运行内存,还拥有128K的程序存储器,对于常见应用足够应付,其次其开发拥有完整的标准库函数,还有Cubemx等系统初始化工具,能够快速的完成系统软件框架的搭建,开发者只需要设计功能而不需要过多关注底层驱动以及底层寄存器的配置等,同时其拥有的SWD模式的系统调试。能够轻松实现系统实时硬件仿真,快速定位系统的BUG,对于开发者能够最大程度的快速完成系统的调试和编程。
综合本次设计最终使用stm32系列芯片 STM32F103C8T6最为运算核心,以达到期望的功能,因此使用方案二。
方案一:使用数码管进行系统的显示,数码管具备价格便宜使用简单,对于环境的要求相对较低,适应各个环境下的显示,占用极少数的资源,但是其只能简单的显示数字部分字符,因此在一些相对大型的设计中不常用。
方案二: 使用LCD1602显示器,其是一种基于字符型的液晶显示器,可以显示包括字符,数字,标识符等一些常用的显示情况,故名使用LCD1602就是可以显示2行以及每行显示16个字符的显示器,使用5V电压供电,显示效果良好而且性能稳定,但是其在驱动上常用的并口驱动需要IO较多,同时实现多级显示无法提供更多的显示样式,所以不作为本次设计显示器。
方案三:选择OLED12864用来作为本设计与实现的系统显示,该显示器具有分辨率为128*64,在一般应用中已经能够清晰的显示文字、符号、图片等样式因此常被用来作为系统显示器,同时其驱动为IIC或者SPI串行驱动方式,更加的节约了系统的资源,能够快速的完成显示系统。
OLED12864可以很方便的显示多好信息,包括字符、汉字、数字等,因此这里选择OLED12864作为系统的显示方案。
方案一:使用三种颜色灯光组合,即使用蓝色,红色,绿色,三种颜色的灯,通过分辨控制三种颜色灯光,进而控制组合后形成的颜色,但是这种单色的灯珠,几乎都是圆头的,灯光聚集在一团,并且发光亮度较低,根本不适合家庭使用,需要泛光和一定亮度的要求,所以本设计不选择这种方案。
方案二:使用5050RGB贴片灯珠,该灯珠原理上也是分别控制三种不同颜色灯光发光,组合成需要的颜色,但是该灯珠是平面发光,发出的是泛光,且体积小,可大量使用提高照明亮度,所以在本设计家居使用情况下,非常理想,故本次设计选择该灯珠。
方案一:采用ZIGBEE技术实现智能化灯光控制系统的局域网内控制,其使用的2.4G频段是国内开发的无线射频频段,其在功耗上是非常的小的,因此在局域网控制的多设备应用中最为常见,其通信距离远,功耗低,成本便宜,但是对于远距离控制的应用中无法实现。
方案二:使用ESP8266连接阿里云物联网的系统,通过MQTT协议实现系统的远程控制和显示等功能,其内部集成完整的TCP/IP协议以及MQTT协议等,只需要MCU通过串口简单的配置即可完成与物联网系统的通信和连接。
综合功耗和体积还有价格多方面考虑,最终选择了方案二,esp8266作为本项目的通信模块。
本次设计使用的是ST公司生产的通用型的芯片STM32F103C8T6,其是ARM公司设计的32位的为控制器,在产品设计中应用的最为广泛,该芯片封装为LQFP-48,拥有48个引脚,其中包含有37个的通用IO控制口,他的程序存储器为128KB,运行内存有20KB,因此对于常见的绝大部分应用均能够完成设计,系统的时钟为72M因此能够实现包括操作系统在内的复杂控制系统,系统也内置了常见的ADC、IIC控制器、SPI控制其、串口控制器、定时器、看门狗、RTC等外设。系统使用5V供电,STM32F103C8T6最小系统如图3.1所示。
图3.1 STM32F103单片机
我们知道对于单片机来说其运行速度与震荡频率有关系,震荡频率越高单片机速度越快,但是更高的速度对于PCB设计和单片机各个外设要求更高,因此想要得到更高速度需要总体考虑单片机的CPU运算速度,存储器的存取速度,以及其他相应的外设的要求等,一般在STM32F1设计中我们选择8M或者12M的晶体,因为这两个晶体可以整数倍频到STM32F1要求的72MHZ的频率,这个相应的起震电容一般推荐20pf到100pf,通常设计中选用22PF即可,并且使用陶瓷封装的电容,因为其温度性能更好。典型电路如图3.2所示: