(某宝:化作尘电子
某鱼:化作尘my)
哔哩哔哩视频链接: https://www.bilibili.com/video/BV1Ki421i76p/?spm_id_from=333.999.0.0
1、设计一个触摸屏作为人机交互
2、通过触摸屏设置时间定时喂食喂水通风
3、获取当前水槽的水位并显示
4、获取环境温湿度并显示
5、宠物在喂食器附近记录
1、触摸屏采用2.8寸电阻触摸屏
2、单片机采用STM32F407ZGT6
3、喂水使用直流水泵
4、喂食使用舵机
5、通风使用风扇
6、控制开关使用继电器
7、温湿度获取使用DHT11
8、水位检测使用水位传感器
9、检测宠物在附近使用红外传感器
1、UI使用LVGL
2、UI设计环境使用SquareLine Studio
3、生成代码导入到vsCode进行仿真运行,编译比较快
4、调试UI界面比较满意后导入UI代码到keil5下载到单片机运行
1、STM32F407ZGT6最小系统设计
2、继电器控制电路设计
3、水泵和舵机电路设计
1、移植正点原子LVGL最小工程
2、导入生成的UI代码
3、编写IO控制程序,舵机控制程序,系统时间、定时喂食喂水程序、事件记录程序
void scan_timeout(void) { int32_t remain_time[SCAN_TIME_NUM]; static int32_t p_time = 0x7fffffff; static uint8_t p_num; TimeTypeDef remain_time_min = {0}; char sprbuff[64]; int32_t n_num = 0; char buff[SCAN_TIME_NUM][8] = {"喂食","喂食","喂水","喂水","通风","通风"}; char * pbuf = NULL;get_sys_date_time();//获取系统时间 remain_time[0] = time_compare(&System.para.systime,&System.para.feed.time1 );//计算时间差 remain_time[1] = time_compare(&System.para.systime,&System.para.feed.time2 );//计算时间差 remain_time[2] = time_compare(&System.para.systime,&System.para.feedwater.time1);//计算时间差 remain_time[3] = time_compare(&System.para.systime,&System.para.feedwater.time2);//计算时间差 remain_time[4] = time_compare(&System.para.systime,&System.para.ventilate.time1);//计算时间差 remain_time[5] = time_compare(&System.para.systime,&System.para.ventilate.time2);//计算时间差 for(int i=0; i<SCAN_TIME_NUM; i++) //看看时间差哪个短 找到最短那个任务优先执行 { if(p_time > remain_time[i] && remain_time[i] >= 0) { remain_time_min.hour = remain_time[i] / 3600; remain_time_min.min = remain_time[i] % 3600 /60; remain_time_min.sec = remain_time[i] % 60; p_time = remain_time[i]; pbuf = buff[i]; p_num = i; if(p_time == 0)p_time = 0x7fffffff; printf("i = %d, remain_time[i]=%drn",i,remain_time[i]); } if(remain_time[i] < 0) { n_num ++; } } if(n_num != SCAN_TIME_NUM) //今天任务做完了吗? 哦 没有就进去 {if(p_time < 30) //如果距离任务还不到 XXX秒了,就进来运行任务{switch(p_num){case 0:sprintf(sprbuff,"喂食时间到! %02d:%02d", System.para.feed.time1.hour,System.para.feed.time1.min);SW1_ON();break;case 1:sprintf(sprbuff,"喂食时间到! %02d:%02d", System.para.feed.time2.hour,System.para.feed.time2.min);SW1_ON();break;case 2:sprintf(sprbuff,"喂水时间到! %02d:%02d", System.para.feedwater.time1.hour,System.para.feedwater.time1.min);SW2_ON();break;case 3:sprintf(sprbuff,"喂水时间到! %02d:%02d", System.para.feedwater.time2.hour,System.para.feedwater.time2.min);SW2_ON();break;case 4:sprintf(sprbuff,"通风时间到! %02d:%02d", System.para.ventilate.time1.hour,System.para.ventilate.time1.min);SW3_ON();break;case 5:sprintf(sprbuff,"通风时间到! %02d:%02d", System.para.ventilate.time2.hour,System.para.ventilate.time2.min);SW3_ON();break;}lv_label_set_text(ui_MainInfoLabel7,sprbuff);}else if(pbuf != NULL){sprintf(sprbuff,"主线任务 - %s %02d:%02d:%02d",pbuf,remain_time_min.hour,remain_time_min.min,remain_time_min.sec); printf("%srn",sprbuff);lv_label_set_text(ui_MainInfoLabel7,sprbuff);switch_all_off();}}else { lv_label_set_text(ui_MainInfoLabel7,"今日暂无任务"); } }
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
相关知识
基于单片机的智能宠物喂食器设计
智能宠物喂食器解决方案
宠物自动喂食器,省心养宠好帮手!喂食定时准,再也不怕忘记喂啦
宠物自动喂食器设计
智能宠物喂食器方案开发 18
51单片机项目设计:智能宠物小屋(自动喂食喂水、自动通风换气、自动清洁)制作教程
宠物自动喂食器哪个牌子性价比高?热销品牌推荐,定时喂食更省心
养宠必备!这几款宠物自动喂食器品牌很赞,定时喂食超省心!
2021【小米有品】宠物智能喂食器汇总
4L自动喂食器猫咪定时定量智能宠物猫粮狗粮投喂机远程控制批发
网址: 基于stm32F4的智能宠物喂食器的设计:LVGL界面、定时喂食喂水通风 https://m.mcbbbk.com/newsview156746.html
上一篇: 基于YOLOv8/YOLOv7/ |
下一篇: 宠物饲养与管理 |