当前位置: 首页 > news >正文

哪些网站适合新手编程做项目优秀网页设计赏析

哪些网站适合新手编程做项目,优秀网页设计赏析,广东备案网站,响应式模板网站建设哪家好#x1f91e;#x1f91e;大家好#xff0c;这里是5132单片机毕设设计项目分享#xff0c;今天给大家分享的是智能鱼缸水质净化系统。 目录 1、设计要求 2、系统功能 3、演示视频和实物 4、系统设计框图 5、软件设计流程图 6、原理图 7、主程序 8、总结 1、设计要求… 大家好这里是5132单片机毕设设计项目分享今天给大家分享的是智能鱼缸水质净化系统。 目录 1、设计要求 2、系统功能 3、演示视频和实物 4、系统设计框图 5、软件设计流程图 6、原理图 7、主程序 8、总结 1、设计要求 本毕业设计以单片机作为控制核心芯片设计出一款具有监测鱼缸水的温度、水位、浊度和PH值等参数并且通过WIFI模块连接云平台用来实现数据上传和下发 2、系统功能 1基于STM32F103C8T6为主控制器的智能鱼缸的设计与实现。其中包括基于STM32F103C8T6单片机的最小系统的搭建温度传感器、浑浊度传感器、水位传感器等相关器件模块的选型和原理图设计在上述原理图的基础上搭建硬件平台并验证其功能的完善性。 1ESP8266-01Wifi模块。通过本模块单片机系统可以连接到机智云手机APP就可以远程控制鱼缸的开关。 2水位传感器器。水位传感器用来检测鱼缸内的水位是鱼缸的水位保持在一定的范围内通过比较水位和水位的阈值来控制补水泵和排水泵。 3温度传感器温度传感器用来检测鱼缸内的水温使鱼缸保持恒温。 4PH传感器用来检测鱼缸内的PH值。 5水泵继电器模块用继电器来驱动两个水泵。 6时钟模块。利用时钟振荡电路产生时钟信号。单片机时钟可以提供一个固定的时钟频率用于同步和控制各个模块的操作。通过时钟信号的控制可以确保单片机系统中各个模块按照一定的时间序列进行操作从而实现定时功能。 7OLED显示模块。OLED显示模块采用0.96寸液晶显示屏该模块用来实时显示传感器数据及鱼缸工作状态 8按键模块。按键模块用来控制模式选择和控制鱼缸的开启与关闭。 9蜂鸣器模块。设备出现故障用来报警。 10舵机用来控制净水系统的开关。 3、演示视频和实物 基于STM32的鱼缸水质净化系统 4、系统设计框图 5、软件设计流程图 6、原理图 7、主程序 #include sys.h //有定制和购买的可以联系VXlwfw123456789 #include delay.h #include usart.h #include led.h #include timer.h #include usart3.h #include gizwits_product.h #include Key.h #include Buzzer.h #include OLED.h #include AD.h #include MyRTC.h #include Servo.h #include ds18b20.h /*********************************************************************************************** 同学好我们是5132单片机设计定制单片机设计实物和说明书均可定制欢迎大家咨询。VXlwfw123456789 其他项目演示视频和说明请大家移步哔哩哔哩、CSDN和公众号等。 哔哩哔哩5132单片机设计 CSDN 5132单片机设计 公众号 5132单片机设计 抖音 5132单片机设计 小红书 5132单片机设计 咸鱼 5132单片机设计 ************************************************************************************************/uint8_t KeyNum; //存储按键值 uint32_t bufe[10]; //存储传感器采集的数据 uint16_t AD0, AD1, AD2, AD3; //存储5路ADC值uint32_t TempYu 25; uint32_t ShuiWeiYu_Xia 10; uint32_t ShuiWeiYu_Shang 70; uint32_t ZhuoYu 70; uint32_t PHYu 5; short temperature; //存放温湿度 u8 state, state2 2, state2_1, state2_2, state3; //按键状态标志 u8 t 0; //传感器读取时间间隔 u8 flag; //远程控制标志 u8 flag2 0, flag1, flag3; uint16_t RTC_Time[] {0, 0, 0}; uint16_t RTC_Time1[] {7, 0, 0}; //定时时间---开 uint16_t RTC_Time2[] {19, 0, 0}; //定时时间---关 u8 T_state, T_state1, qingping 1, state_dingshi_yu_guan, state_dingshi_yu_kai, state_dingshi_yu_switch, state3_1; float PH; extern void TimeSet(void); extern void TimeRead(void); extern void DingShiMoShi(void); extern void YuZhiSet(void); extern void ChuangGan(void);void MY_Gizwits_Init(void) //机智云初始化函数 {TIM3_Int_Init(9, 7199); //1MS系统定时usart3_init(9600);//WIFI初始化memset((uint8_t *)currentDataPoint, 0, sizeof(dataPoint_t)); //设备状态结构体初始化gizwitsInit();//环形缓冲区初始化gizwitsSetMode(2); //设置模式userInit(); } u16 Get_Adc_Average(u8 ADC_CHx, u8 times) {u32 temp_val 0;u8 t;for (t 0; t times; t){temp_val AD_GetValue(ADC_CHx);//SYSTICK_DelayMs(5);}return temp_val / times; }void shoudong() {TimeRead();if (KeyNum 2) //按键{delay_ms(20);if (KeyNum 2){state2;if (state2 1){state2 0;}}}if (state2 0){Servo_SetAngle(90);//外设操作}if (state2 1){Servo_SetAngle(0);//外设操作}if (KeyNum 3) //按键{delay_ms(20);if (KeyNum 3){state2_1;if (state2_1 2){state2_1 0;}}}if (state2_1 1){BuShuiBen_ON();//外设操作PaiShuiBen_OFF();}if (state2_1 0){BuShuiBen_OFF();//外设操作PaiShuiBen_OFF();}if (state2_1 2){BuShuiBen_OFF();//外设操作PaiShuiBen_ON();}if (KeyNum 4) //按键{delay_ms(20);if (KeyNum 4){state2_2;if (state2_2 1){state2_2 0;}}}if (state2_2 1){JiaRe_ON();//外设操作}if (state2_2 0){JiaRe_OFF();//外设操作}} void zhidong() {if (bufe[0] ShuiWeiYu_Xia){BuShuiBen_ON();PaiShuiBen_OFF();}else if (bufe[0] ShuiWeiYu_Shang){PaiShuiBen_ON();BuShuiBen_OFF();}else{ PaiShuiBen_OFF();BuShuiBen_OFF();}if (bufe[3]/10 TempYu){JiaRe_ON();}else{JiaRe_OFF();}if ((bufe[1]/10 PHYu) || (bufe[2] ZhuoYu)){Buzzer_Turn();}else{Buzzer_OFF();}}int main(void) {NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级2位响应优先级uart_init(9600); //串口初始化为9600delay_init(); //延时函数初始化LED_Init(); //初始化与LED连接的硬件接口Buzzer_Init(); //下面为外设初始化OLED_Init();Key_Init();AD_Init();MyRTC_Init();Servo_Init(); //舵机初始化并设置舵机初始角度while (DS18B20_Init()) //DS18B20初始化{printf(ds18b20 success!);delay_ms(200);}MY_Gizwits_Init(); //机智云初始化while (1){userHandle(); //数据上传gizwitsHandle((dataPoint_t *)currentDataPoint); //后台处理必须放在while里if (t % 10 0){AD0 AD_GetValue(ADC_Channel_0); //水位传感器 PA0if (AD0 4000)AD0 4000;bufe[0] (u8)(AD0 / 40);AD2 Get_Adc_Average(ADC_Channel_2, 10);PH (float)AD2 * (3.3 / 4096); //读取ADC通道4的值PH -5.7541 * PH 16.654; //输出电压范围0~3V3 因为STM32的ADC参考电压是3.3V//将ADC的原始值adcx转换为电压值。这里假设ADC的参考电压是3.3V并且ADC的位数是12位即最大值为4096。bufe[1] PH * 10;AD3 AD_GetValue(ADC_Channel_3); //浊度传感器 PA3if (AD3 4000)AD3 4000;bufe[2] (u8)(100 - (AD3 / 40));temperature DS18B20_Get_Temp();bufe[3] temperature;}t;KeyNum Key_GetNum();if (KeyNum 1){qingping 0;state2 2,delay_ms(20);if (KeyNum 1){state;if (state 3){state 0;}}}if (state 0) //远程模式{if (qingping 0){OLED_Clear();qingping 1;} TimeRead();ChuangGan();OLED_ShowChinese(1, 7, 49);OLED_ShowChinese(1, 8, 50);}if (state 2) //自动模式{OLED_ShowChinese(1, 7, 51);OLED_ShowChinese(1, 8, 52);TimeRead();zhidong();ChuangGan();}if (state 1) //手动模式{OLED_ShowChinese(1, 7, 18);OLED_ShowChinese(1, 8, 52);ChuangGan();shoudong();}if (state 3) //阈值设置{if (qingping 0){OLED_Clear();qingping 1;}YuZhiSet();}} }void TimeSet() //设置时间 {if (KeyNum 2) //PB10{delay_ms(20);if (KeyNum 2){T_state;if (T_state 2){T_state 0;}}}if (T_state 0) //时间显示模式{MyRTC_ReadTime();OLED_ShowNum(1, 5, MyRTC_Time[3], 2); //时OLED_ShowString(1, 7, :);OLED_ShowNum(1, 8, MyRTC_Time[4], 2); //分OLED_ShowString(1, 10, :);OLED_ShowNum(1, 11, MyRTC_Time[5], 2); //秒RTC_Time[0] MyRTC_Time[3];RTC_Time[1] MyRTC_Time[4];RTC_Time[2] MyRTC_Time[5];}if (T_state 1) //修改时间{if (KeyNum 5){delay_ms(20);if (KeyNum 5){T_state1;if (T_state1 2){T_state1 0;}}}if (T_state1 0) //修改时{if (KeyNum 4)RTC_Time[0];if (KeyNum 3)RTC_Time[0]--;if (RTC_Time[0] 23 RTC_Time[0] 100)RTC_Time[0] 0;if (RTC_Time[0] 100)RTC_Time[0] 23;OLED_ShowNum(1, 5, RTC_Time[0], 2); //时}if (T_state1 1) //修改分{if (KeyNum 4)RTC_Time[1];if (KeyNum 3)RTC_Time[1]--;if (RTC_Time[1] 59 RTC_Time[1] 100)RTC_Time[1] 0;if (RTC_Time[1] 100)RTC_Time[1] 59;OLED_ShowNum(1, 8, RTC_Time[1], 2); //时}if (T_state1 2) //修改秒{if (KeyNum 4)RTC_Time[2];if (KeyNum 3)RTC_Time[2]--;if (RTC_Time[2] 59)RTC_Time[2] 0;if (RTC_Time[2] 59 RTC_Time[2] 100)RTC_Time[2] 0;if (RTC_Time[2] 100)RTC_Time[2] 59;OLED_ShowNum(1, 11, RTC_Time[2], 2); //时}}if (T_state 2){MyRTC_Time[3] RTC_Time[0];MyRTC_Time[4] RTC_Time[1];MyRTC_Time[5] RTC_Time[2];MyRTC_SetTime();T_state 0;} }void TimeRead() {MyRTC_ReadTime();OLED_ShowNum(1, 5, MyRTC_Time[3], 2); //时OLED_ShowString(1, 7, :);OLED_ShowNum(1, 8, MyRTC_Time[4], 2); //分OLED_ShowString(1, 10, :);OLED_ShowNum(1, 11, MyRTC_Time[5], 2); //秒 }void DingShiMoShi() {TimeRead();//...............................定时模式..................................../if ((MyRTC_Time[3] RTC_Time1[0]) (MyRTC_Time[4] RTC_Time1[1]) (MyRTC_Time[5] RTC_Time1[2])){//外设操作}if ((MyRTC_Time[3] RTC_Time2[0]) (MyRTC_Time[4] RTC_Time2[1]) (MyRTC_Time[5] RTC_Time2[2])){//外设操作}//...............................修改定时时间..................................../OLED_ShowChinese(3, 1, 31);OLED_ShowString(3, 3, :);OLED_ShowNum(3, 5, RTC_Time1[0], 2);OLED_ShowString(3, 7, :);OLED_ShowNum(3, 8, RTC_Time1[1], 2);OLED_ShowString(3, 10, :);OLED_ShowNum(3, 11, RTC_Time1[2], 2);OLED_ShowChinese(4, 1, 32);OLED_ShowString(4, 3, :);OLED_ShowNum(4, 5, RTC_Time2[0], 2);OLED_ShowString(4, 7, :);OLED_ShowNum(4, 8, RTC_Time2[1], 2);OLED_ShowString(4, 10, :);OLED_ShowNum(4, 11, RTC_Time2[2], 2);if (KeyNum 5){delay_ms(20);if (KeyNum 5){state_dingshi_yu_switch;if (state_dingshi_yu_switch 2){state_dingshi_yu_switch 0;}}}if (state_dingshi_yu_switch 1) //设置阈值开的时间{if (KeyNum 2){delay_ms(20);if (KeyNum 2){state_dingshi_yu_kai;if (state_dingshi_yu_kai 2){state_dingshi_yu_kai 0;}}}if (state_dingshi_yu_kai 0) //时{if (KeyNum 3) RTC_Time2[0];if (KeyNum 4) RTC_Time2[0]--;}if (state_dingshi_yu_kai 1)//分{if (KeyNum 3) RTC_Time2[1];if (KeyNum 4) RTC_Time2[1]--;}if (state_dingshi_yu_kai 2)//秒{if (KeyNum 3) RTC_Time2[2];if (KeyNum 4) RTC_Time2[2]--;}}else{if (KeyNum 2){delay_ms(20);if (KeyNum 2){state_dingshi_yu_guan;if (state_dingshi_yu_guan 2){state_dingshi_yu_guan 0;}}}if (state_dingshi_yu_guan 0) //时{if (KeyNum 3) RTC_Time1[0];if (KeyNum 4) RTC_Time1[0]--;}if (state_dingshi_yu_guan 1)//分{if (KeyNum 3) RTC_Time1[1];if (KeyNum 4) RTC_Time1[1]--;}if (state_dingshi_yu_guan 2)//秒{if (KeyNum 3) RTC_Time1[2];if (KeyNum 4) RTC_Time1[2]--;}}if (state3_1 0) //时{if (KeyNum 5) RTC_Time1[0];if (KeyNum 6) RTC_Time1[0]--;}if (state3_1 1)//分{if (KeyNum 5) RTC_Time1[1];if (KeyNum 6) RTC_Time1[1]--;}if (state3_1 2)//秒{if (KeyNum 5) RTC_Time1[2];if (KeyNum 6) RTC_Time1[2]--;} }void YuZhiSet() {zhidong();OLED_ShowChinese(1, 3, 72); //显示“阈值设置”OLED_ShowChinese(1, 4, 73);OLED_ShowChinese(1, 5, 74);OLED_ShowChinese(1, 6, 75);OLED_ShowString(2, 1, S_W_X:);OLED_ShowNum(2, 7, ShuiWeiYu_Xia, 2);OLED_ShowString(3, 1, S_W_S:);OLED_ShowNum(3, 7, ShuiWeiYu_Shang, 2); OLED_ShowString(4, 10, PH:);OLED_ShowNum(4, 13, PHYu, 2);OLED_ShowString(2, 10, Temp:);OLED_ShowNum(2, 15, TempYu, 2);OLED_ShowString(3, 10, Z_D:);OLED_ShowNum(3, 14, ZhuoYu, 2);if (KeyNum 2) //自动模式下PB0按键控制阈值切换{delay_ms(20);if (KeyNum 2){state3;if (state3 4){state3 0;}}}if (state3 0){if (KeyNum 3)ShuiWeiYu_Xia;if (KeyNum 4)ShuiWeiYu_Xia--;}if (state3 1){if (KeyNum 3)ShuiWeiYu_Shang;if (KeyNum 4)ShuiWeiYu_Shang--;}if (state3 4){if (KeyNum 3)PHYu;if (KeyNum 4)PHYu--;}if (state3 2){if (KeyNum 3)TempYu ;if (KeyNum 4)TempYu --;}if (state3 3){if (KeyNum 3)ZhuoYu ;if (KeyNum 4)ZhuoYu --;} }void ChuangGan() {OLED_ShowChinese(2, 1, 39);OLED_ShowChinese(2, 2, 40);OLED_ShowString(2, 5, :);OLED_ShowNum(2, 6, bufe[0], 2);OLED_ShowString(2, 8, %);OLED_ShowString(4, 8, %);OLED_ShowString(2, 11, PH:);OLED_ShowNum(2, 14, bufe[1] / 10, 1);OLED_ShowString(2, 15, .);OLED_ShowNum(2, 16, bufe[1] % 10, 1);OLED_ShowChinese(3, 1, 26);OLED_ShowChinese(3, 2, 28);OLED_ShowString(3, 5, :);if (temperature 0){OLED_ShowString(3, 6, -); //显示负号temperature -temperature; //转为正数}else OLED_ShowString(3, 6, ); //去掉负号OLED_ShowNum(3, 7, temperature / 10, 2);OLED_ShowString(3, 9, .);OLED_ShowNum(3, 10, temperature % 10, 1);OLED_ShowChinese(4, 1, 78);OLED_ShowChinese(4, 2, 79);OLED_ShowString(4, 5, :);OLED_ShowNum(4, 6, bufe[2], 2); }8、总结 本设计以单片机作为控制核心芯片设计出一款具有监测鱼缸水的温度、水位、浊度和PH值等参数并且通过WIFI模块连接云平台用来实现数据上传和下发。
http://www.w-s-a.com/news/768825/

相关文章:

  • 永州网站seo德阳网站建设优化
  • 网站建设高端网站本地建设网站软件下载
  • 网站后台账号密码破解杭州酒店网站设计公司推荐
  • 和县网站开发秦皇岛建设工程信息网站
  • 国外网站用什么dns好建一个下载网站要什么cms系统
  • 礼品工艺品网站建设手机做网站哪家好
  • 泉州网站建设方案维护怎样选择网站建设
  • 江苏建站速度忿先进的网站建设
  • 广州天河建站公司com域名注册多少钱
  • 成都网站建设推广好vs2013如何做网站
  • 茶叶网站建设模板企业网站备案要多少钱
  • 怎么查网站找谁做的win主机伪静态规则 wordpress
  • 轻云服务器菁英版 多个网站北京it外包服务商
  • 售后服务 网站建设阳江seo优化
  • 网站建设后怎么赚钱wordpress调用导航栏
  • 特产网站设计六色网站
  • 服务器网站备案做网站公司如何赚钱
  • 怎样进行站点优化荣成市有做网站的吗
  • 合肥建设工会网站芜湖做网站建设公司
  • 玉林市住房和城乡建设局网站网站开发百灵鸟
  • 网站怎么做双机房切换建设部网站2015年第158号
  • 郑州服务设计公司网站色块的网站
  • 网站设计所用到的技术做网站添加mp3
  • 凡科做的微网站怎样连接公众号seo李守洪排名大师
  • 温州网站开发网站的制作东莞寮步伟易达电子厂
  • 北京网站设计制作关键词优化微信小程序开发推广网站建设优化规划书
  • 杭州临平网站建设开发公司将购房款划给总公司的法律责任
  • 广东外贸网站推广分类wordpress
  • 聚美优品网站建设方案商城和营销型网站建设
  • 比较著名的seo网站如何建设网站?