基于STM32的智能家居测控系统设计关键技术
作者: 来源: 2021-08-18 21:30:12
该系统通过STM32单片机系统实现对家用设备的直接控制。单片机系统通过接收以不同方式传输的命令来决定做什么样的控制动作。系统中有多种控制方式,其中局域网控制方式不同于普通用户,因此不同的控制终端被赋予不同的优先级。
1供应链管理选项
STM32采用3.3V电源,本次设计使用的WiFi模块也采用3.3V电源,省略了电平匹配电路。同时,本设计需要同时使用两个串口,51单片机只有一个串口,因此采用STM32单片机控制系统。
2网络建设方案选择
上位机和下位机同时连接到路由器,形成局域网。有两种选择。
在第一种方案中,下位机是服务器,上位机是客户端。每个用户都可以通过特定的客户端连接到服务器,并向服务器发送指令。该方案使得多个用户可以通过多个客户端独立控制家用设备。
方案二,下位机为客户端,上位机为服务器。每个下位机模块作为客户端,接收上位机服务器发送的指令。该方案仅用一台主机就可以直接控制大量设备。
在这个网络中,只有一个服务器,可以有多个客户端。方案一适用于一个家庭多个成员控制自己的家用设备,但存在一定安全问题的情况。第二种方案中,每台下位机可以独立控制一定数量的设备,因此可以控制大量的设备,但是家用设备数量少,可以由一台下位机控制,下位机数量的增加也会增加成本。服务器程序的开发也比客户端更难。方案一综合考虑后采用。
3实时温度采集方案
实时温度曲线绘制需要实时温度采集来更新数据进行曲线绘制。利用上位机的定时器控制,以1s为周期向下位机发送请求,利用下位机的串口中断获得实时温度值。
4硬件系统设计
一、单片机的最小系统
包括电源、时钟和复位电路。STM32F1xx系列采用低功耗工作,供电范围为2.0 ~ 3.6v,常规设计一般采用3.3V电源。时钟是微处理器最重要的部分,而时钟源是振荡器。在STM32F1xx系列产品中,芯片内置了一个8MHz RC振荡器。芯片上电复位后,RC振荡器开始振动,为系统提供时钟源。该系统需要异步通信,因此需要外部振荡器来提供高精度时钟。系统的主时钟可以是内部RC振荡器,也可以是外部时钟源。该系统采用外部8MHz晶体振荡器代替内部RC振荡器作为系统时钟的时钟源,提高了精度。
二、温度采集
该系统使用的温度传感器为DS18B20,是一种常见的高集成度温度传感器,具有体积小、精度高的优点。接收单片机的指令,并将测得的温度值返回给单片机。
第三,LED驱动
在这个设计中,总共使用了两个发光二极管。LED1是一个LED,有三种工作模式。LED0和风扇由输入/输出端口控制,指示风扇的工作功率。发光二极管连接公共阳极,阳极连接上拉电阻,阴极连接输入输出端口。LED的工作电压和电流较小,可以直接由MCU的IO口驱动,无需额外的驱动电路。
第四,无线模块
在实现局域网控制功能时,下位机需要通过局域网与上位机进行数据交换。上位机可以通过编程驱动无线网卡来实现,而下位机没有用于网络通信的硬件,因此需要一个从Wi-Fi到串口的外部模块来实现发送和接收数据的功能。本次设计使用的Wi-Fi模块为usr-wifi 232-t,是一款集成式低功耗嵌入式Wi-Fi模块,可以将用户的物理设备连接到Wi-Fi无线网络,用户c
5系统软件设计
软件系统分为上位机程序和下位机程序。上位机程序用C#编写,方便用户通过事件触发的方式进行操作。它的主要功能是向下位机发送各种命令,接收下位机返回的信息,并以某种方式显示出来。下位机程序用C语言编写,主要包括各设备的驱动程序和处理控制命令的串行中断服务程序。
上位机软件主要分为两部分:主窗口和子窗体。大部分工作由主窗口完成,子窗体主要用于绘制温度曲线。当按下主窗口中用于控制下位机的按钮时,将触发已注册的点击事件,并向下位机发送根据通信协议预设的控制命令。此外,当主窗体接收数据时,不同的信息会被拦截并进行相应的处理。当需要绘制温度曲线时,主窗口生成一个子窗口,然后下位机不断采集温度值,并发送到子窗口进行绘制。
- 上一篇:居家养老模式下厨房智能家居产品设计的思考
- 下一篇:基于安卓操作系统的智能家居系统