一.系统简述
本系统核心采用STM32微控制器作为主控单元,提供三种操作方式:蓝牙遥控、手动操作以及自动模式。在蓝牙控制模式下,用户可通过蓝牙设备远程开启或关闭窗帘。而在手动模式下,用户可通过物理按键直接操作窗帘的开闭。自动模式则依据环境温度和光线强度来自动调节窗帘的状态,是否需要开启或关闭。
二.仿真介绍
- 启动仿真后,通过串口助手发送命令,即可收到系统的连接确认信息"OK",表明连接已成功建立。串口助手界面如下:
- 发送数值"1"到串口助手,用以控制窗帘向上拉动。在显示屏上,"001"的显示表示窗帘正在上拉。
- 通过输入数字"2",我们能够指示窗帘下放。此时,显示屏上"002"的显示表明窗帘正在下放。
- 系统提供了设置键,用于调整环境中温度和光线强度阈值。此外,切换键能够使我们于手动和自动模式间自由转换。在手动模式下,无需任何通讯设备便可直接操控窗帘的开关。
- 利用模式切换键,显示屏会显示"Au"字样,提示用户目前系统处于自动控制模式。在此模式下,系统会依据预设的环境温度和光线强度阈值自动调节窗帘的开启和关闭状态,以实现最优的室内环境。
三.程序设计
#include <main.h>
//
u8 Rxdat;
u8 adc,t,h,m=0,c=0,set=0,th=30,tl=15,hh=30,hl=20;
//
//
void UserDispiayControl(void);
void SetDisplay(void);
void Set(void);
//
int main(void)
{
//Init Star
Usart1_Init(9600);//pa9-10
Lcd1602_Init();//pc0-7 pb0-2
Key_Init();//pa12-15
PCF8591_Init();//pb10-11
Motor_Init();//pb12-15
DHT11_Init();//pa0
//Init End
//display star
Usart1_TxString("ok");
//display end
while(1)
{
//get dat
DHT11_Read_Data(&t,&h);
adc=PCF8591_ADC_Input(0x90,1);
//串口收数据
if(Usart1_GetRxFlag() ==1) //判断是否收到数据
{
Rxdat=Usart1_GetRxDat(); //存数据
Usart1_TxByte(Rxdat); //回传显示
Lcd1602_Write_Num8(0xc0,Rxdat); //显示屏显示
}
//get dat
//key
if(Key4==0)
{
m=~m;
while(Key4 != 0);
}
if(Key3==0)
{
Lcd1602_Write_CD(CMD,0X01);
set++;
if(set==5) set=0;
}
//key
//user+set
Set();
//
}
}
24-32f-35