STM32项目分享:智能温室大棚(APP版)
目录
一、前言
二、项目简介
1.功能详解
2.主要器件
三、原理图设计
四、PCB硬件设计
PCB图
五、程序设计
六、实验效果
七、包含内容
项目分享
一、前言
项目成品图片:
哔哩哔哩视频链接:
STM32智能温室大棚(APP版)
(资料分享见文末)
二、项目简介
1.功能详解
基于STM32的智能温室大棚APP版
功能如下:
- STM32F103C8T6单片机系统板作为主控单元
- DHT11温湿度传感器采集温湿度
- 土壤湿度传感器采集土壤湿度数据
- 光敏传感器采集环境光照数据
- OLED显示屏显示实时环境数据
- 根据阈值控制风扇、水泵和照明灯的开关
- 按键可调节阈值范围,蜂鸣器异常报警
- 手机APP通过WiFi连接板子,远程接收环境数据、
- 手机APP可控制调节阈值范围
2.主要器件
- STM32F103C8T6最小系统板
- OLED 屏幕
- DHT11温湿度传感器
- ESP8266-01S WiFi模块
- 土壤湿度传感器
- 光敏传感器
- 继电器
- 风扇模块
- 水泵模块
- 大功率LED灯模块
- 有源蜂鸣器
三、原理图设计
四、PCB硬件设计
PCB图
五、程序设计
int main(void)
{
delay_init(); //延时函数初始化
NVIC_Configuration(); //中断优先级配置
I2C_Configuration(); //IIC初始化
OLED_Init(); //OLED液晶初始化
Adc_Init();
OLED_CLS(); //清屏
KEY_GPIO_Init(); //按键引脚初始化
OLED_ShowStr(0, 2, " loading... ", 2,0);//显示加载中
ESP8266_Init(); //ESP8266初始化
MOTOR_GPIO_Init();
while(DHT11_Init())
{
OLED_ShowStr(0, 2, " DHT11 Error! ", 2,0);//显示DHT11错误!
delay_ms(500);
}
OLED_CLS(); //清屏
InitDisplay();
TIM3_Init(99,719); //定时器初始化,定时1ms
//Tout = ((arr+1)*(psc+1))/Tclk ;
//Tclk:定时器输入频率(单位MHZ)
//Tout:定时器溢出时间(单位us)
while(1)
{
keyscan(); //按键扫描
if(setn == 0) //不在设置状态下
{
if(shuaxin == 1) //大概500ms刷新一下
{
shuaxin = 0;
displayDHT11TempAndHumi();
displaySoilMoisture();
displayLight();
if(light<=setLightValue)LED=1;else LED=0; //光线暗开,光线强关
if(soilMoisture<=setSoilMoisture)RELAY=1;else RELAY=0; //开启水泵
if(temperature>=setTempValue)MOTOR=1;else MOTOR=0; //开风扇
if(light<=setLightValue || soilMoisture<=setSoilMoisture || temperature>=setTempValue)BEEP=1; else BEEP=0;
}
}
UsartSendReceiveData(); //串口发送接收数据
delay_ms(20);
}
}