时间:2024-09-03
贵州健康职业学院 管融雪 于喜志 郭永强
随着智能化应用设备在家居环境下的应用,越来越智能化的智能电气接入互联网络。极大地促进了智能模块和系统的设计方案的实现。控制智能家居控制系统主要以中控设备为核心,以家具电器和家电设备为主要控制对象,这些控制对象统称为终端设备,中控设备和终端设备之间采用了无线通信技术,例如Zigbee、z-wave、RF等实现通信,在智能家居控制系统中,中控设备通常通过WIFI与云端服务器、手机APP相连,通过无线通信技术与终端设备相连。
目前用户更多的使用移动终端控制各类电器和电子设备的运行,每个只能电器都需要一个对应的控制应用软件,这样极大地浪费了运内存,同时也带来了极大地不方便。本文设计了一种基于STM32的终端控制系统,基于STM32控制系统能够有效的完成数据的检测上传和控制命令的下行。能够在上端的移动设备上实时监测各个地电器设备的运行状态,期间如果出现运行问题也能够及时地发现问题,从而快速地解决,这样能够保证用户家居环境在一个舒适的环境中生活。
此控制系统包括温度检测模块和温度控制模块,湿度检测模块和加湿模块,光照模块和光控模块,摄像监控模块,报警模块,无线传输模块和移动终端。集成功能能够实现温湿度,光照的数据的无线上传,实现远程控制相应的终端完升温,加湿和光照控制,报警等相应操作。
该系统STM32位终端控制器,外接温度,湿度和光照数据,通过ZigBee本地节点发送到ZigBee协调器传送到服务器,然后可以通过移动终端PC,手机等监测。如果某些数据局监测出异常控制终端通过相应的集成控制按钮对应的调节控制单元,再通过无线传输网络下传到控制终端解析命令,执行操作。
(1)SmartHomeActivity,主界面首先运行Activity。(2)NodeInfoActivity,进入主界面之后的Activity显示从下位机传上来的设备和数据信息,同时也能看到设备的控制选项的状态详细情况。(3)MainReadThread,为主线程主要用来读取数据,并且只是表现出Zigbee数据的传输给相应的进程,并不进行数据的处和分析等。(4)MainHandlerThread,接收硬件传进来的数据,此线程主要作用是对数据进行校验工作并转发。(5)NodeWriteThread,此为线程写线程主要处理设备的对应设备操作设置,简述线程类的类描述:① MainReadThread类。开启主线程MainReadThread,然后运行run,run要判断关于操作running事件是否执行相应的操作,当running变现为true时,对应的是设备动作,然后判断MainHandlerThread是否已经创建了该线程,如果没有创建,那么要对应创建,如果创建了则将读取的数据传送给线程未MainHandlerThread,开启想成,并且要以此循环进行执行程序。MainReadThread RUN的详细流程如图1所示。
图1 MainReadThread RUN的详细流程图
② MainHandlerThread类的运行描述。启用县城后的Main-ReadThread读取之前的数据然后将数据传给线程MainHandler-Thread,首先要对数据的是否正确有效进行一下验证,若出现错误则将要调用handler将信息传送给SmartHomeA ctivity也就是界面的主页线程UI做一下处理;若是传送的数据是准确无误的那么就要判断一下数据的相应类型然后handler进行传送,传送给SmartHomeActivity主要应用进行对数据做相应的处理。③ Node-WriteThread类的运行描述。此类只是主要控制相应设备的控制命令,线程的使用过程中可以使用多线程,也可以使用多次执行,可以消除影响使用线程可以使程。STN32发送数据类型如表1所示。
表1 STN32发送数据类型
数据传输格式:
传输数据的包头:STM32向s3c2410传输的数据对应的包头数据为0xAA
S3c2410向STM32传输的数据对应的包头数据为0x55
数据的类型:0x01对应启动机器监控设备
0x02对应的是湿度和光照数据
数据的长度:表示数据的字节数
校验采用标准:crc16校验
STM32所采数据的包装结构体
数据对应命令:
0x30 LED_ON(开灯)
0x31 LED_OFF(关灯)
0x32 Win_ON(开窗帘)
0x33 Win_OFF(关窗帘)
0x34 Fan_ON(开风扇)
0x35 Fan_OFF(关风扇)
0x36 Flohead_ON(开地暖)
0x37 Flohead_OFF(关地暖)
0x38 Aircd_ON(开数空调)
0x39 Aircd _OFF(关数空调)
0x40 Aircl_ON(开空气净化器)
0x41 Aircl _OFF(关空气净化器)
0x42 Camermotor(摄像头电机)
0x43 Speker_ON(报警器)
0x44 Speker_OFF(报警器)
终端的模块主要完成室内环境的数据采集以及执行上层返回的命令,采集的温度主要包括温湿度,光照,电压信号等,执行命令包含开关电器和电机转动。
控制器采用STM32,采用F103超低功耗,并且稳定可靠。无线通信模块使用的是CC2530的ZigBee模块。价格低成本小,能够成很强的网络节点。ZigBee与STM32采用Uart通信简洁快速。
(1)系统上电,初始化系统时钟,使能IO时钟,配置LED,报警器,电扇开关,空调开关,空气净化器开关、地暖开关等IO端口,初始化Uart。使能控制中心的滴答定时器,并设置对应的中断时间是1ms。并且做到处理中断函数时间为1S,并对形影的全局变量counter1,counter2进行积累加上1。(2)要向控制终端传输下发新的设备注册相应节点的信息。(3)接着要进行判断counter1是否已经大于4S,如果已经大于了就接受数据信息,然后通过协议下发给显影的终端版设备,并且此时要进行counter1置零。(4)进行判断counter1是否已经大于3S,如果已经大于则要进行对看门狗喂狗,此时也要对进行counter2清零。(5)最后要读取的是rbuf_1[],若其中有相应的数据,则精要把数据保存到也定的数组里面,接着就是看校验数据是否已经然后接收完成,如果是接受完成的状态,在界学者做数据的校验的工作,如果经过校验数据是正确的,就要依据相应的协议中的特定为进行判断是否要发送指令,若发送,就要求则执行对应的函数并执行指令;如果数据的接收没有完成,那么就要进行下一步的操作处理。STM32控制器完整工作流程如图2所示。
图2 STM32控制器完整工作流程图
DHT10作为一种数字温湿度传感器,磁传感器本身已经包含校准的数字信号温湿度传感器,DHT10因为兼具成本低,性能稳定,并且具有抗干扰能力强等特点,被广泛的采用。DHT10使用单总线通信非常的简介,只需要主机经过特定的时序进行一次扫描式的访问,其就会一次行的向主机传送40位数据,它的传送方式是高位先出,数据的传送格式为:8bit温度整数数据 + 8bit温度小数数据 + 8bit湿度整数数据 + 8bit湿度小数数据 + 8bit校验位;最后的8bit位表示的是校验之前4Byte数据和。
DHT10与主控板STM32的要接入一个上拉电阻,这样能够保证总线为空闲时,它的电平状态是高电平。
数据上传流程:
温湿度,关照,电压等传感器信息传给STM32,在STM32接受并检验封装好以后,传输给Zigbee,Zigbee传送给S3C2410,由2410发布到服务器,手机打开APP,通过数据解包,在手机上显示温湿度,光照,电压等信息。
命令下穿流程:
手机通过APP控键,发送命令,命令包装好以后,通过web,发送给控制平台S3C2410,S3C2410通过ZigBee传送到控制终端STM32,STM32通过解包命令,识别相对应的操作指令完成相应的动作。
结论:本文提供的此控制系统以STM32为控制终端,ZigBee以CC2530为内核,以S3c2410为终端控制平台的智能家居控制系统。基本能够完成对家居环境的温湿度,光照等数据的上传并时时检测也能够通过控制终端传输命令控制相应的设备有效运转,如加湿器,空调,地暖等功能。如果终端设备发现数据异常能够很迅速的发现异常并提醒用户及时查看。该系统的功能有待进一步的简化和完善,各功能和网络传输有待进一步强化,为后续的功能扩展和应用扩展奠定了基础。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!