微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > 基于STM32智能家居系统的设计与实现

基于STM32智能家居系统的设计与实现

时间:02-12 来源:21IC 点击:

上位机界面上,由于人眼的视觉暂留效益(Persistence of vision),这些连续的图像可以被看成是达到了流畅的视频效果。

NetStream部分则主要是解决上位机与下位机通信的问题。智能家居系统的安全是一个很重要的问题,建立一个稳定安全的连接就显得尤为重要。本系统采用一种SSL加密的TCP/IP协议。SSL又叫"安全套接层(Secure Sockets Layer)协议",是一种在客户端和服务器端之间建立安全通道的协议,充分保证了系统通信过程的安全。

4智能家电网络的构建

为了实现对智能家电控制的目的,就必须要将各个家电进行联网,本系统的下位机家电网络包括CAN总线网络,2.4G射频无线网络以及视距红外无线网络。同时应用了这3种通信网络,同时具备了智能家居网络的可靠性好,连接方便,通用性强等优点,弥补了单一通信方式的局限性,若能合理安排组建网络,将会有效地降低系统成本。

下位机软件部分最重要的一个功能,就是接收到上位机发送过来的带有加密的数据后进行处理。数据解密后,是一个带有功能描述与对应参数的字符串,为了方便程序的编写,需要将字符串中的参数部分由连续且未知长度的数字转化为整形变量储存在内存中,实现的代码如下:

这段函数调用了IAR Embedded公司提供的标准库函数stdlib.h中的atoi函数,atoi函数功能的描述是/*convert string to int*/,即把字符串直接强制转成整形数据。本系统上位机与下位机之间的通信协议由我们专门针对性地设计,其中字符串头部带有长度不能预知的命令字节,因此调用atoi函数前还需要判断该数据包之中的参数是从字符串的第几位开始的,得到正确的指向字符串参数位置的指针。

如图3是智能家居下位机主控芯片的流程图,主控芯片上运行了μC/OS轻量级嵌入式实时操作系统,采用的是可剥夺型实时多任务内核,意味着处理器在任何时候都是运行优先级最高的任务,这样就很方便地实现了整个下位机各种任务的调度,同时也保证了系统的实时性。主控芯片启动μC/OS后,分别建立语音识别任务、串口接收任务、液晶显示任务、入侵检测任务4个任务。在语音识别中,首先查询LD3320状态寄存器的识别完成位是否置位,然后做出应答,执行相应的动作,语音播报执行结果,并发送一个信号量表明屋内电器状态有变化,需要更新显示;串口接收任务的工作是对上位机发送过来的数据准确无误地接收,解密解码,并根据指令对电器进行相应操作;液晶显示屏显示任务会一直检测是否有更新显示的信号量,若有信号量则执行整屏刷新,同时对应的信号量自动清空;启动安防系统后,便会运行实时监控,根据数量密集的传感器网络状态判断家中的安全指数,智能的软件决定何时应该发出警报信号。



图3 下位机软件设计流程

图4 PC端上位机控制软件

5上位机控制软件,PC端以及安卓手机端的设计

服务器(一台运行openwrt系统的路由器)运行起来后,USB摄像头自动挂载,在PC端上的位机设置窗口设置好IP与密码信息后,上位机通过TCP连接到服务器,获取视频/图片信息,显示在上位机的GUI界面上。界面中的其他控件同样是利用TCP连接到服务器上,发送或者获取信息,服务器接收到请求后则通过ser2net进程,将tcpserver的信息转发到串口上,与下位机进行通信。手机端上位机设计得比较简单,如图4所示,大按钮方便控制家庭中各种电器。

6结束语

文中设计了一种基于STM32F1系列的智能家居系统,详细地介绍了系统的整体架构并给出了几种重要的硬件装置和服务器软件的实现方法。

实现了室内实时功率、室内温度、天气的监测,和内/外网远程控制家中的电器,远程视频监控功能以及安防设施,语音识别正确率达88%,网络服务器部分采用了路由器代替PC机的方案,系统整体待机功耗≤5 W.手机控制端的设计按键清晰易操作,可以方便地控制部分家电的工作状态。最终实现了智能家居需求的功能。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top