注意:浇水由LED1的亮灭进行模拟
源码参考:
正点原子定时器中断实验
正点原子RTC实验
正点原子RTC实验
正点原子TFTLCD显示实验
正点原子按键实验
正点原子蜂鸣器实验
开发板:正点原子 STM32F103 精英版
语言:C语言
开发环境:Keil5
开发板使用了 LED KEY BEEP TFTLCD TIM3 RTC USART DHT11模块
程序仅供学习参考,会有一些bug(比如:报警时长、休息时长的问题)。
码云 [GitHub](https://github.com/Ikaros-521/ STM32_DHT11_Intelligent_watering_system_demo)
- LCD显示当前时间(时:分:秒)、当前温度(CEL)、当前湿度(%RH)、温度上限(CEL)、湿度上限(%RH)、湿度下限(%RH)、浇水时长(min)、休息时长(min)、报警时长(sec)。已经当前设备处于的工作模式(working浇水中 resting休息中 running正常运行中)。
- LED0约2秒反转一次。LED1亮表示浇水,灭表示关水(浇水由LED1来模拟)。
- 按键功能;KEY0 进入修改模式,分别针对当前时间、当前温度、当前湿度、温度上限、湿度上限、湿度下限、浇水时长、休息时长,报警时长的修改(处于修改下的数值会变红),最后退出修改模式。 在修改模式下:KEY1数值+1(封顶循环),KEY_UP数值-1(封底循环) 在普通模式下:KEY1进入休息,KEY_UP进入工作。(提供了手动控制)
- 当前湿度低于下限或湿度正常但温度高于上限时,报警设置的时长(这里时间<=设定),开始进入浇水(LED1点亮模拟浇水),浇水过程中如果湿度高于上限,可以打断浇水(直接进入休息,休息时长是工作时长+休息时长-已工作时长),否则浇水完毕后会进入休息(时长为休息时长)。休息完毕后会重新进行条件判断。
- 配置的数据存储于flash中(首地址0X08070000)
- 串口打印相应的信息,具体参考效果图。
- 不接入DHT11模块是不行的,会等待模块接入。
- TIM4对独立看门狗进行投食,(100ms一投食,125ms的等待投食)
DHT11 DATA —> PG11 3.3V供电
开始运行(我已经设置好了一些配置),现在温湿度都正常。(ps:时间不是很准)
漏拍LED1了,补充