国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

可視化信息 網站個人如何在百度做廣告

可視化信息 網站,個人如何在百度做廣告,wordpress自動添加視頻播放器,廣東網站建設多少錢文章目錄 一、熱帶魚缸控制系統(tǒng)1.題目要求2.思路3.電路仿真3.1 未仿真3.2 開始仿真,顯示屏顯示水溫、渾濁度、光照強度等值3.3 當水溫低于閾值,開啟加熱并聲光報警3.4 當渾濁度高于閾值,開啟自動換水并聲光報警3.5 當光照低于閾值&#xff0c…

文章目錄

  • 一、熱帶魚缸控制系統(tǒng)
    • 1.題目要求
    • 2.思路
    • 3.電路仿真
      • 3.1 未仿真
      • 3.2 開始仿真,顯示屏顯示水溫、渾濁度、光照強度等值
      • 3.3 當水溫低于閾值,開啟加熱并聲光報警
      • 3.4 當渾濁度高于閾值,開啟自動換水并聲光報警
      • 3.5 當光照低于閾值,開啟補光并聲光報警
      • 3.6 手動開啟增氧和喂食
      • 3.7 遠程監(jiān)控水溫等數據,遠程控制增氧喂食以及修改溫度閾值等
    • 4.仿真程序
      • 4.1 程序說明
      • 4.2 主程序
      • 4.3 OLED顯示程序
      • 4.4 串口指令程序
  • 二、總結



一、熱帶魚缸控制系統(tǒng)

1.題目要求

部件:
主控:STM32
顯示:OLED
溫度:防水型DS18B20
渾濁度:TSW-30
光照:光敏電阻
無線通信:藍牙
繼電器5(換水、加熱、增氧、喂食、補光)
聲光報警:蜂鳴器+LED
按鍵
5

主要功能需求:

1、實時監(jiān)測水溫、水體渾濁度、光照強度,并顯示在OLED屏幕上。

2、通過藍牙模塊將監(jiān)測到的各項數據傳輸到手機APP,實現遠程監(jiān)控,同時可以通過手機進行遠程控制。

3、水溫、光照低于閾值或渾濁度高于閾值開啟聲光報警。當渾濁度超過閾值,自動開啟換水;光照低于閾值,開啟補光;水溫低于閾值,開啟加熱。

4、通過按鍵可以開啟增氧、喂食,以及修改溫度、渾濁度和光照強度的閾值。

2.思路

主控是STM32,這里我們選擇常用的STM32F103C8T6單片機

在這里插入圖片描述

顯示:OLED

顯示的內容比較多1個界面可能不夠顯示,所以用多個界面,界面切換選擇按鍵切換

在這里插入圖片描述

溫度:防水型DS18B20

在這里插入圖片描述

渾濁度:TSW-30(proteus仿真沒有該傳感器,所以采用滑動變阻器模擬)

在這里插入圖片描述

光照:光敏電阻

在這里插入圖片描述

無線通信:藍牙

在這里插入圖片描述

繼電器*5(換水、加熱、增氧、喂食、補光)和 聲光報警:蜂鳴器+LED

在這里插入圖片描述

按鍵*5

通過按鍵手動開啟/關閉增氧,手動開啟/關閉喂食,這里兩個按鍵
要修改溫度,渾濁度,光照強度的閾值,一共3個閾值,選擇用1個按鍵來切換選擇的閾值,另外2個按鍵增大/減小閾值,這里三個按鍵。

在這里插入圖片描述

3.電路仿真

3.1 未仿真

在這里插入圖片描述

3.2 開始仿真,顯示屏顯示水溫、渾濁度、光照強度等值

在這里插入圖片描述

3.3 當水溫低于閾值,開啟加熱并聲光報警

在這里插入圖片描述

3.4 當渾濁度高于閾值,開啟自動換水并聲光報警

在這里插入圖片描述

3.5 當光照低于閾值,開啟補光并聲光報警

在這里插入圖片描述

3.6 手動開啟增氧和喂食

在這里插入圖片描述

3.7 遠程監(jiān)控水溫等數據,遠程控制增氧喂食以及修改溫度閾值等

遠程監(jiān)控水溫,渾濁度,光照強度等數據

遠程控制打開增氧,關閉增氧

遠程控制打開喂食,關閉喂食

在這里插入圖片描述

按下切換按鍵,切換為設置溫度閾值界面,更改溫度閾值為50

在這里插入圖片描述

按下切換按鍵,切換為設置渾濁度閾值界面,更改溫度閾值為66

在這里插入圖片描述
按下切換按鍵,切換為設置光照閾值界面,更改溫度閾值為80
在這里插入圖片描述

4.仿真程序

4.1 程序說明

主控芯片:STM32F103C8
HSI:64MHZ
Systick: 1ms

渾濁度傳感器:ADC(PA0)

光照傳感器:LDR(PA2)

DS18B20溫度傳感器:DAT(PA4)

模擬藍牙模塊(Uart1):9600(PA9:tx1,PA10:rx1)

聲光報警:BUZZER(PA15)

按鍵:
KEY1(PB0)
KEY2(PB1)
KEY3(PB2)
KEY2(PB3)
KEY5(PB4)

換水:RELAY1(PB6)
加熱:RELAY2(PB7)
增氧:RELAY3(PB8)
喂食:RELAY4(PB9)
補光:RELAY5(PB10)

OLED顯示屏:SCL(PB14),SDA(PB15)

在這里插入圖片描述

串口協(xié)議
舉例如發(fā)送*Temp50,即設置溫度閾值位50度
*TempXX 設置溫度閾值 XX取值為0-99
*MuddXX 設置渾濁度閾值 XX取值為0-99
*IlluXX 設置光照閾值 XX取值為0-99
*oxygX 開啟/關閉增氧 X取值為0-1
*feedX 開啟/關閉喂食 X取值為0-1
*Read 遠程監(jiān)控水溫、水體渾濁度、光照強度等數據,

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* 調用  :需要時調用* 備注  :舉例如發(fā)送*Temp50,即設置溫度閾值位50度*******************************************************************************/
void Send_Cmd1(void)
{uint8_t i = 0; variable1 = (AsciiToHex(uart1_rx_buf[i+5])*10+AsciiToHex(uart1_rx_buf[i+6]));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[i+5])*10+AsciiToHex(uart1_rx_buf[i+6]));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[i+5])*10+AsciiToHex(uart1_rx_buf[i+6]));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[i+5]);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[i+5]);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[i+1]){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的熱帶魚缸控制系統(tǒng)的設計。

感謝你的觀看!

在這里插入圖片描述

http://aloenet.com.cn/news/43000.html

相關文章:

  • 網站網站制作400多少錢百度app大全
  • 網站如何留住用戶關鍵詞代發(fā)排名首頁
  • 自己制作wordpress主題成都網站seo性價比高
  • 儋州網站建設網站查詢域名解析
  • node.js 做網站全媒體運營師報名費多少錢
  • 建站公司網站用什么好色目人
  • 天津網站建設報價登錄百度app
  • 做淘寶的批發(fā)網站有哪些百度sem
  • 日語網站建設需要注意什么seo快速排名網站優(yōu)化
  • 安徽省建設法治協(xié)會網站google play官網入口
  • 自然志wordpress百度網盤seo優(yōu)化
  • 網絡營銷推廣方法結論紹興網站快速排名優(yōu)化
  • 門戶網站做壓力測試搜索引擎的工作原理是什么?
  • python做網站入門寧波網站建設
  • 做網頁一個頁面多少錢重慶seo職位
  • 網站交互功能萬網是什么網站
  • 旅游電商網站建設方案優(yōu)速網站建設優(yōu)化seo
  • wordpress 菜單 圖片汕頭網站建設方案優(yōu)化
  • 建設網站前期準備工作河南品牌網絡推廣外包
  • wordpress 主題設計百度seo自動優(yōu)化
  • 網站建設經驗總結百度今日小說搜索風云榜
  • 湘潭企業(yè)網站建設微信推廣多少錢一次
  • 靜態(tài)網站開發(fā)預期效果經典軟文
  • 怎么幫公司做網站建設如何創(chuàng)建公司網站
  • 找工程承包app排名優(yōu)化seo
  • 建設銀行個人官方網站百度應用app下載
  • 多語言網站怎么實現的推廣公眾號的9種方法
  • 網站的內連接如何做天津百度推廣公司
  • 網站域名備案seo網址大全
  • 在日本怎樣做網站網站建設詳細方案