您好, 访客   登录/注册

基于STM32的智能家居检测控制系统设计

来源:用户上传      作者:

  摘要:随着互联网的发展,家居智能化的控制越来越多地应用在人们的日常生活中。本文较为详细地论述了基于STM32的智能家居检测控制系统的构建意义、开发思路,并对系统设计的部分关键技术进行论述,从而实现智能家居检测控制系统的构建,该系统可以实现对多种设备的控制以及对家居环境的检测。
  关键词:STM32;设备控制;局域网;远程控制
  中图分类号:TP311 文献标识码:A
  文章编号:1009-3044(2019)12-0170-02
  1 绪论
  1.1 研究背景
  智能家居的发展分为三个阶段,首先是家庭电子化阶段。该阶段面向单个电器,家庭电器并未通过网络相连,相互之间没有联系,仅仅只是通过特定的方式来控制某个电器按要求进行工作。第二个阶段是住宅自动化阶段,该阶段的智能家居系统面向功能进行设计,一部分家庭电器通过简单的网络进行互联从而实现某些特定的功能。最后是家居智能化阶段,该阶段是面向系统设计的阶段,该系统的重要基础是各设备的互联网络。智能家居系统把住宅内各种与信息相关的设备连接到网络节点中进行集中的监控、管理,从而保持家电与家居环境的协调,为用户提供生活、工作、学习以及娱乐的各种优质服务。智能家居以电子技术、自动化技术及通信技术为技术基础。另外,发展迅速的远程管理技术、云计算技术、物联网技术等新兴技术也与智能家居相结合,进一步促进了智能家居技术的发展。
  1.2 研究意义
  通过对智能家居检测控制系统的研究,能够大幅提高人们生活质量、工作效率,丰富人们的物质与精神生活。随着计算机技术、通信技术、信息技术的发展以及电脑的普及,家居实现智能检测控制,将给人类生活带来全新的变化。
  2基于STM32的智能家居检测控制系统设计的关键技术
  本系统对家居设备的直接控制由STM32单片机系统实现,单片机系统通过接收不同途径传递过来的命令以决定做出什么样的控制动作。系统中有多种控制方式,其中的局域网控制方式又有管理员与普通用户的区别,因此为不同控制终端分配了不同的优先级。
  2.1单片机方案选择
  STM32使用3.3V电压供电,本设计采用的WiFi模块也使用3.3V供电,省去了电平匹配电路,同时本设计需要同时使用两个串口,51单片机只有一个串口,因此采用STM32单片机控制系统。
  2.2网络构建方案选择
  上位机与下位机同时连接路由器,构成局域网,其方案选择有以下两种。
  方案一,下位机做服务器,上位机做客户端。每个用户都能通过一个特定的客户端连接上服务器向服务器发送指令。该方案能使多个用户通过多个客户端实现对家居设备进行独立控制。
  方案二,下位机做客户端,上位机做服务器。每一个下位机模块作为一个客户端,接收上位机服务器发送过来的指令。该方案能仅使用一个上位机来对大量设备进行直接控制。
  在该网络中服务器只有一个,客户端可以有多个。方案一适用于一个家庭中多个成员各自对家居设备进行控制的情况,但存在一定的安全问题。方案二中每个下位机都能独立控制一定数量的设备,因此能实现对大量设备的控制,但家居设备数量较少,可由一个下位机进行控制,而且下位机数量的增加也会增加成本。服务器程序的开发难度也大于客户端的开发。综合考虑采用方案一。
  2.3 实时温度采集方案
  上位机实时温度曲线的绘制需要实时采集温度以更新用于绘制曲线的数据。使用上位机的timer控件,以1s为周期向下位机发送请求,利用下位机的串口中断获取实时温度值。
  2.4硬件系统设计
  2.4.1单片机最小系统
  包括电源、时钟和复位电路。STM32F1xx系列采用低电源工作,电源工作范围是2.0~3.6V,常规设计一般选用3.3V电源。时钟是微处理器最重要的部分,时钟的来源是振荡器。在STM32F1xx系列产品中,其芯片内嵌一个8MHz的RC振荡器,在芯片上电复位以后,这个RC振荡器首先起振,为系统提供时钟源。本系统中需要实现异步通信,因此需要外接振荡器以提供高精度时钟。系统主时钟既可以选内部RC振荡器作为时钟源,也可以外部接一个时钟源。本系统中使用外部8MHz的晶振作为系统时钟的时钟源而不使用内部RC振荡器,目的是提高精度。
  2.4.2温度采集
  本系统采用的温度传感器是DS18B20,DS18B20是常用的高度集成温度传感器,具有体积小,精度高等优点。接收单片机的指令并向单片机返回所测温度值。
  2.4.3 LED驱动
  本设计总共用到了两个LED。LED1即具有三种工作模式的LED,LED0与风扇共同受一个IO口控制,用以指示风扇的工作功率。LED采用共阳连接,LED正极与上拉电阻相连,负极与IO口相连。LED的工作电压和电流均较小,无须另外的驱动电路,可以通过单片机的IO口直接驱动。
  2.4.4 Wi-Fi模块
  在实现局域网控制功能时下位机需要通过局域网与上位机进行数据交换。上位机可以通过编程驱动无线网卡来实现,而下位机不具备网络通信的硬件,因此需要外接Wi-Fi转串口的模块来实现收发数据的功能。本设计采用的Wi-Fi模块是USR-WIFI232-T。这是一款一体化的低功耗嵌入式Wi-Fi模块,能够将用户的物理设备连接到Wi-Fi无线网络上,而用户只需使用UART数据串口便可以方便地向Wi-Fi无线网络中发送数据或者从中接收数据。通过该模块,下位机系统便可以使用串口通过局域网与上位机交换数据。
  2.4.5 GSM模块
  在實现远程控制功能时下位机需要通过移动基站与手机进行数据交换。手机可以直接无线连接到基站,通过发送短信的方式将数据发送到基站,而下位机必须通过外接的GSM模块将串口发出的数据传到基站和将从基站接收到的数据转发至串口。本设计采用的GSM模块是USR-GPRS232-7S3。该模块内置一张SIM卡,并通过指令设置指定手机号。指定手机号发送给模块的短信会通过串口输出,单片机通过串口输出到GSM模块的数据会以手机短信的方式发送到指定手机上。该模块通过stm32的串口2与stm32通信。
  2.5 系统软件设计
  软件系统分为上位机程序和下位机程序两个部分。上位机程序用C#编写,采用事件触发的方式以便于用户操作,主要功能是向下位机发送各种命令,并接受下位机的返回信息以一定方式显示出来。下位机程序用C语言编写,主要包括各个设备的驱动程序以及用于处理控制命令的串口中断服务程序。
  上位机软件主要分为主窗体和子窗体两部分,大部分工作由主窗体完成,子窗体主要用于温度曲线的绘制。当主窗体中用于控制下位机的按钮被按下后,其注册的单击事件便会被触发,从而向下位机发送根据通信协议预设的控制命令。另外,当主窗体接收到数据后会从中截取出不同的信息并进行相应的处理。当需要绘制温度曲线时,主窗体生成子窗体,然后通过下位机连续采集温度值,并通过窗体间传值将温度值传递给子窗体进行绘图。
  3 结论
  本系统有三种控制方式,适用于现场、局域网、远程这三种不同控制距离的要求,分别是与STM32直接相连的硬件触摸屏控制;局域网内电脑上位机与下位机无线互联控制;远程手机短信控制。这三种控制方式可根据实际需要进行切换或多种方式同时使用。系统的主要功能是使用户能够以某一种控制方式来实现对小功率设备的开关、工作模式的设置,对大功率设备的开关和工作功率的设定,以及实时数据的检测。经测试,该系统能够通过三种控制方式实现对设备的准确控制,从而实现智能家居检测控制系统的设计。
  参考文献:
  [1] 邢袖迪.智能家居产品从设计到运营[M].北京:人民邮电出版社,2015(10).
  [2] 刘火良.STM32库开发实战指南[M].北京:机械工业出版社,2017(2).
  [3] 李玉.基于STM32的低端无线智能家居控制系统探索[J].信息通信,2015(3).
  【通联编辑:唐一东】
转载注明来源:https://www.xzbu.com/8/view-14789205.htm