asp.net开发移动网站模板下载,微信运营,上市设计公司网站,网店营销的推广方法有哪些文章目录 一、热带鱼缸控制系统1.题目要求2.思路3.电路仿真3.1 未仿真3.2 开始仿真#xff0c;显示屏显示水温、浑浊度、光照强度等值3.3 当水温低于阈值#xff0c;开启加热并声光报警3.4 当浑浊度高于阈值#xff0c;开启自动换水并声光报警3.5 当光照低于阈值#xff0c… 文章目录 一、热带鱼缸控制系统1.题目要求2.思路3.电路仿真3.1 未仿真3.2 开始仿真显示屏显示水温、浑浊度、光照强度等值3.3 当水温低于阈值开启加热并声光报警3.4 当浑浊度高于阈值开启自动换水并声光报警3.5 当光照低于阈值开启补光并声光报警3.6 手动开启增氧和喂食3.7 远程监控水温等数据远程控制增氧喂食以及修改温度阈值等 4.仿真程序4.1 程序说明4.2 主程序4.3 OLED显示程序4.4 串口指令程序 二、总结 一、热带鱼缸控制系统
1.题目要求
部件 主控STM32 显示OLED 温度防水型DS18B20 浑浊度TSW-30 光照光敏电阻 无线通信蓝牙 继电器5换水、加热、增氧、喂食、补光 声光报警蜂鸣器LED 按键5
主要功能需求
1、实时监测水温、水体浑浊度、光照强度并显示在OLED屏幕上。
2、通过蓝牙模块将监测到的各项数据传输到手机APP实现远程监控同时可以通过手机进行远程控制。
3、水温、光照低于阈值或浑浊度高于阈值开启声光报警。当浑浊度超过阈值自动开启换水光照低于阈值开启补光水温低于阈值开启加热。
4、通过按键可以开启增氧、喂食以及修改温度、浑浊度和光照强度的阈值。
2.思路
主控是STM32这里我们选择常用的STM32F103C8T6单片机 显示OLED
显示的内容比较多1个界面可能不够显示所以用多个界面界面切换选择按键切换 温度防水型DS18B20 浑浊度TSW-30proteus仿真没有该传感器所以采用滑动变阻器模拟 光照光敏电阻 无线通信蓝牙 继电器*5换水、加热、增氧、喂食、补光和 声光报警蜂鸣器LED 按键*5
通过按键手动开启/关闭增氧手动开启/关闭喂食这里两个按键 要修改温度浑浊度光照强度的阈值一共3个阈值选择用1个按键来切换选择的阈值另外2个按键增大/减小阈值这里三个按键。 3.电路仿真
3.1 未仿真 3.2 开始仿真显示屏显示水温、浑浊度、光照强度等值 3.3 当水温低于阈值开启加热并声光报警 3.4 当浑浊度高于阈值开启自动换水并声光报警 3.5 当光照低于阈值开启补光并声光报警 3.6 手动开启增氧和喂食 3.7 远程监控水温等数据远程控制增氧喂食以及修改温度阈值等
远程监控水温浑浊度光照强度等数据
远程控制打开增氧关闭增氧
远程控制打开喂食关闭喂食 按下切换按键切换为设置温度阈值界面更改温度阈值为50 按下切换按键切换为设置浑浊度阈值界面更改温度阈值为66 按下切换按键切换为设置光照阈值界面更改温度阈值为80
4.仿真程序
4.1 程序说明
主控芯片STM32F103C8 HSI64MHZ Systick 1ms
浑浊度传感器ADCPA0
光照传感器LDRPA2
DS18B20温度传感器DATPA4
模拟蓝牙模块Uart19600PA9tx1PA10rx1
声光报警BUZZERPA15
按键 KEY1PB0 KEY2PB1 KEY3PB2 KEY2PB3 KEY5PB4
换水RELAY1PB6 加热RELAY2PB7 增氧RELAY3PB8 喂食RELAY4PB9 补光RELAY5PB10
OLED显示屏SCLPB14SDAPB15 串口协议 举例如发送*Temp50即设置温度阈值位50度 *TempXX 设置温度阈值 XX取值为0-99 *MuddXX 设置浑浊度阈值 XX取值为0-99 *IlluXX 设置光照阈值 XX取值为0-99 *oxygX 开启/关闭增氧 X取值为0-1 *feedX 开启/关闭喂食 X取值为0-1 *Read 远程监控水温、水体浑浊度、光照强度等数据
4.2 主程序
/* Includes ------------------------------------------------------------------*/
#include Drv_UserSystem.h
#include stdio.h
#include stdlib.h
#include string.h
/*** brief main function.* param none* retval none*/
int main(void)
{UserSystemInit();//用户配置初始化 while (1){ if(stSysTime.flg._10ms TEN_MILLISECOND Time_millis()) //10ms{stSysTime.flg._10ms Time_millis(); Key_Scan();//按键扫描 } if(stSysTime.flg._50ms FIFTY_MILLISECOND Time_millis()) //50ms{stSysTime.flg._50ms Time_millis();ADC_Scan();//采集浑浊度和光照强度 } if(stSysTime.flg._100ms BEST_MILLISECOND Time_millis()) //100ms{stSysTime.flg._100ms Time_millis(); DS18B20_Collect_data();//DS18B20采集温度数据 OLED_Handel();//OLED显示 Forewarning_Handel();//预警函数 Receive_data_Handel();//数据接收判断 IWDG_ReloadCounter();//清开门狗 } }
}4.3 OLED显示程序
/******************************************************************************** 函数名OLED_Handel* 描述 OLED显示* 输入 void* 输出 void* 调用 初始化* 备注 100ms
*******************************************************************************/
void OLED_Handel(void)
{ if(ADC_Flag){ if(Threshold_switching 0){OLED_Show_Character(1,1,0,16);//水OLED_Show_Character(1,2,1,16);//温 OLED_Show_Character(1,3,2,16);//: OLED_ShowNum(1,7,Temp_High,2); OLED_ShowString(1, 9, .); OLED_ShowNum(1,10,Temp_Low,1); OLED_Show_Character(1,6,3,16);//°OLED_ShowString(1, 13, C);OLED_Show_Character(2,1,4,16);//浑OLED_Show_Character(2,2,5,16);//度OLED_Show_Character(2,3,6,16);//度 OLED_Show_Character(2,4,2,16);//:OLED_ShowNum(2,9,ADC1_Value,2); OLED_ShowString(2, 11, %); OLED_Show_Character(3,1,7,16);//光OLED_Show_Character(3,2,8,16);//照OLED_Show_Character(3,3,9,16);//强OLED_Show_Character(3,4,10,16);//度 OLED_Show_Character(3,5,2,16);//: OLED_ShowNum(3,11,ADC2_Value,2); OLED_ShowString(3, 13, %);}else if(Threshold_switching 1){OLED_Show_Character(1,1,0,16);//水OLED_Show_Character(1,2,1,16);//温 OLED_Show_Character(1,3,11,16);//阈OLED_Show_Character(1,4,12,16);//值 OLED_Show_Character(1,5,2,16);//: OLED_ShowNum(1,11,Temp_Threshold,2); OLED_Show_Character(1,7,3,16);//°OLED_ShowString(1, 15, C); }else if(Threshold_switching 2){OLED_Show_Character(1,1,4,16);//浑OLED_Show_Character(1,2,5,16);//度OLED_Show_Character(1,3,6,16);//度 OLED_Show_Character(1,4,11,16);//阈OLED_Show_Character(1,5,12,16);//值 OLED_Show_Character(1,6,2,16);//: OLED_ShowNum(1,13,ADC1_Threshold,2); OLED_ShowString(1, 15, %); } else if(Threshold_switching 3){ OLED_Show_Character(1,1,7,16);//光OLED_Show_Character(1,2,8,16);//照 OLED_Show_Character(1,3,11,16);//阈OLED_Show_Character(1,4,12,16);//值 OLED_Show_Character(1,5,2,16);//: OLED_ShowNum(1,13,ADC2_Threshold,2); OLED_ShowString(1, 15, %); } }
}4.4 串口指令程序
/******************************************************************************** 函数名Send_Cmd1* 描述 设置温度阈值* 输入 void* 输出 void* 调用 需要时调用* 备注 举例如发送*Temp50即设置温度阈值位50度*******************************************************************************/
void Send_Cmd1(void)
{uint8_t i 0; variable1 (AsciiToHex(uart1_rx_buf[i5])*10AsciiToHex(uart1_rx_buf[i6]));if(variable1 99){Temp_Threshold variable1;printf(手机设置的温度阈值 %d\r\n,Temp_Threshold); }else{printf(手机设置的温度阈值超出设置范围 \r\n); }
}/******************************************************************************** 函数名Send_Cmd2* 描述 设置水体浑浊度阈值* 输入 void* 输出 void* 调用 需要时调用* 备注 *******************************************************************************/
void Send_Cmd2(void)
{uint8_t i 0;variable2 (AsciiToHex(uart1_rx_buf[i5])*10AsciiToHex(uart1_rx_buf[i6]));if(variable2 99){ADC1_Threshold variable2;printf(手机设置的水体浑浊度阈值 %d\r\n,ADC1_Threshold); } else{printf(手机设置的水体浑浊度阈值超出设置范围 \r\n); }
}/******************************************************************************** 函数名Send_Cmd3* 描述 设置光照阈值* 输入 void* 输出 void* 调用 需要时调用* 备注 *******************************************************************************/
void Send_Cmd3(void)
{uint8_t i 0;variable3 (AsciiToHex(uart1_rx_buf[i5])*10AsciiToHex(uart1_rx_buf[i6]));if(variable3 99){ADC2_Threshold variable3;printf(手机设置的光照阈值 %d\r\n,ADC2_Threshold);} else{printf(手机设置的光照阈值超出设置范围 \r\n); }
}/******************************************************************************** 函数名Send_Cmd4* 描述 开启/关闭增氧 * 输入 void* 输出 void* 调用 需要时调用* 备注 *******************************************************************************/
void Send_Cmd4(void)
{uint8_t i 0;variable4 AsciiToHex(uart1_rx_buf[i5]);if(variable4 0){Relay3_Off(); printf(关闭增氧\r\n);} else if (variable4 1){Relay3_On(); printf(打开增氧 \r\n); } else {printf(手机设置的供氧模式超出设置范围 \r\n); }
}/******************************************************************************** 函数名Send_Cmd5* 描述 开启/关闭喂食* 输入 void* 输出 void* 调用 需要时调用* 备注 *******************************************************************************/
void Send_Cmd5(void)
{uint8_t i 0;variable5 AsciiToHex(uart1_rx_buf[i5]);if(variable5 0){Relay4_Off(); printf(关闭喂食\r\n);} else if (variable5 1){Relay4_On(); printf(打开喂食 \r\n); } else {printf(手机设置的喂食模式超出设置范围 \r\n); }
}/******************************************************************************** Function : Receive_data_Handel* Description : 数据接收判断* Input : 无* Return : 无* Call : 100ms* Others :*******************************************************************************/
void Receive_data_Handel(void)
{uint8_t i 0;if(uart1_rx_finsh){ for(i 0;i 20; i){if(uart1_rx_buf[i] *) {switch(uart1_rx_buf[i1]){case T:Send_Cmd1();break;//*TempXX case M:Send_Cmd2();break;//*MuddXXcase I:Send_Cmd3();break;//*IlluXX case o:Send_Cmd4();break;//*oxygX case f:Send_Cmd5();break;//*feedX case R:Printf_Task();break;//*Read default:break; } }}uart1_rx_finsh 0; uart1_rx_count 0;memset(uart1_rx_buf,0,RX_MAX_NUM); }
}/******************************************************************************** Function : Printf_Task* Description : 打印数据任务* Input : 无* Return : 无* Call : 1s* Others :*******************************************************************************/
void Printf_Task(void)
{if(ADC_Flag){ printf(水温%d.%d 水体浑浊度%d 光照强度%d\r\n,Temp_High,Temp_Low,ADC1_Value,ADC2_Value); }
}二、总结
今天主要讲了基于STM32的热带鱼缸控制系统的设计。
感谢你的观看
文章转载自: http://www.morning.qynnw.cn.gov.cn.qynnw.cn http://www.morning.ygmw.cn.gov.cn.ygmw.cn http://www.morning.zkpwk.cn.gov.cn.zkpwk.cn http://www.morning.mnygn.cn.gov.cn.mnygn.cn http://www.morning.zwgrf.cn.gov.cn.zwgrf.cn http://www.morning.yfzld.cn.gov.cn.yfzld.cn http://www.morning.pgjyc.cn.gov.cn.pgjyc.cn http://www.morning.tjndb.cn.gov.cn.tjndb.cn http://www.morning.tsnmt.cn.gov.cn.tsnmt.cn http://www.morning.kfrhh.cn.gov.cn.kfrhh.cn http://www.morning.btpzn.cn.gov.cn.btpzn.cn http://www.morning.tpfny.cn.gov.cn.tpfny.cn http://www.morning.gycyt.cn.gov.cn.gycyt.cn http://www.morning.mrbmc.cn.gov.cn.mrbmc.cn http://www.morning.ns3nt8.cn.gov.cn.ns3nt8.cn http://www.morning.ltqzq.cn.gov.cn.ltqzq.cn http://www.morning.rppf.cn.gov.cn.rppf.cn http://www.morning.btqqh.cn.gov.cn.btqqh.cn http://www.morning.rjxwq.cn.gov.cn.rjxwq.cn http://www.morning.rzmlc.cn.gov.cn.rzmlc.cn http://www.morning.yxlhz.cn.gov.cn.yxlhz.cn http://www.morning.njftk.cn.gov.cn.njftk.cn http://www.morning.bpmfn.cn.gov.cn.bpmfn.cn http://www.morning.zzfqn.cn.gov.cn.zzfqn.cn http://www.morning.pwggd.cn.gov.cn.pwggd.cn http://www.morning.rxkq.cn.gov.cn.rxkq.cn http://www.morning.zfkxj.cn.gov.cn.zfkxj.cn http://www.morning.hgfxg.cn.gov.cn.hgfxg.cn http://www.morning.crtgd.cn.gov.cn.crtgd.cn http://www.morning.dfndz.cn.gov.cn.dfndz.cn http://www.morning.kgmkl.cn.gov.cn.kgmkl.cn http://www.morning.pxjp.cn.gov.cn.pxjp.cn http://www.morning.pxjp.cn.gov.cn.pxjp.cn http://www.morning.qtqk.cn.gov.cn.qtqk.cn http://www.morning.ydxx123.cn.gov.cn.ydxx123.cn http://www.morning.bgnkl.cn.gov.cn.bgnkl.cn http://www.morning.jydhl.cn.gov.cn.jydhl.cn http://www.morning.fjfjm.cn.gov.cn.fjfjm.cn http://www.morning.bhmnp.cn.gov.cn.bhmnp.cn http://www.morning.qsy38.cn.gov.cn.qsy38.cn http://www.morning.lfxcj.cn.gov.cn.lfxcj.cn http://www.morning.yltyz.cn.gov.cn.yltyz.cn http://www.morning.xjkr.cn.gov.cn.xjkr.cn http://www.morning.xgxbr.cn.gov.cn.xgxbr.cn http://www.morning.qlkjh.cn.gov.cn.qlkjh.cn http://www.morning.pbmkh.cn.gov.cn.pbmkh.cn http://www.morning.kbynw.cn.gov.cn.kbynw.cn http://www.morning.hmlpn.cn.gov.cn.hmlpn.cn http://www.morning.wjqbr.cn.gov.cn.wjqbr.cn http://www.morning.nzsx.cn.gov.cn.nzsx.cn http://www.morning.rhph.cn.gov.cn.rhph.cn http://www.morning.xznrk.cn.gov.cn.xznrk.cn http://www.morning.hcqd.cn.gov.cn.hcqd.cn http://www.morning.jwsrp.cn.gov.cn.jwsrp.cn http://www.morning.lpqgq.cn.gov.cn.lpqgq.cn http://www.morning.kongpie.com.gov.cn.kongpie.com http://www.morning.mntxalcb.com.gov.cn.mntxalcb.com http://www.morning.jxwhr.cn.gov.cn.jxwhr.cn http://www.morning.knmby.cn.gov.cn.knmby.cn http://www.morning.xbbrh.cn.gov.cn.xbbrh.cn http://www.morning.zcmpk.cn.gov.cn.zcmpk.cn http://www.morning.cgthq.cn.gov.cn.cgthq.cn http://www.morning.psxfg.cn.gov.cn.psxfg.cn http://www.morning.jypqx.cn.gov.cn.jypqx.cn http://www.morning.hhfqk.cn.gov.cn.hhfqk.cn http://www.morning.gsyns.cn.gov.cn.gsyns.cn http://www.morning.bpknt.cn.gov.cn.bpknt.cn http://www.morning.hqwtm.cn.gov.cn.hqwtm.cn http://www.morning.sjsfw.cn.gov.cn.sjsfw.cn http://www.morning.xxfxxf.cn.gov.cn.xxfxxf.cn http://www.morning.rfbpq.cn.gov.cn.rfbpq.cn http://www.morning.wdxr.cn.gov.cn.wdxr.cn http://www.morning.lyhrg.cn.gov.cn.lyhrg.cn http://www.morning.rwfj.cn.gov.cn.rwfj.cn http://www.morning.txfxy.cn.gov.cn.txfxy.cn http://www.morning.mlffg.cn.gov.cn.mlffg.cn http://www.morning.syqtt.cn.gov.cn.syqtt.cn http://www.morning.ffhlh.cn.gov.cn.ffhlh.cn http://www.morning.jzdfc.cn.gov.cn.jzdfc.cn http://www.morning.mgfnt.cn.gov.cn.mgfnt.cn