系統功能:
系統上電后顯示“歡迎使用水質檢測系統請稍后”兩秒后進入正常顯示頁面。
第一頁面第一行顯示“系統狀態信息”,第二行顯示溫度和PH值信息,第三行顯示
渾濁度信息,第四行顯示TDS值信息。
第一頁面下的按鍵操作:
短按B4按鍵可切換到第二頁面。
第二頁面第一行顯示“水溫閾值設定”,第二行顯示獲取到的溫度值,第三行
顯示設置的溫度值,第四行顯示溫度狀態(水溫過低或正常)。
第二頁面下的按鍵操作:
短按B4按鍵可切換到第三頁面。
短按B5按鍵增加溫度設定閾值。
短按B6按鍵減小溫度設定閾值。
第三頁面第一行顯示“濁度閾值設定”,第二行顯示獲取到的濁度值,第三行
顯示設置的濁度值,第四行顯示濁度狀態(超標或正常)。
第三頁面下的按鍵操作:
短按B4按鍵可切換到第四頁面。
短按B5按鍵增加濁度設定閾值。
短按B6按鍵減小濁度設定閾值。
第四頁面第一行顯示“酸堿閾值設定”,第二行顯示獲取到的PH值,第三行
顯示設置的PH值,第四行顯示PH值狀態(超標或正常)。
第四頁面下的按鍵操作:
短按B4按鍵可切換到第五頁面。
短按B5按鍵增加PH設定閾值。
短按B6按鍵減小PH設定閾值。
第五頁面第一行顯示“水質閾值設定”,第二行顯示獲取到的TDS值,第三行
顯示設置的TDS值,第四行顯示水質值狀態(超標或正常)。
第五頁面下的按鍵操作:
短按B4按鍵可切換到第一頁面。
短按B5按鍵增加TDS設定閾值。
短按B6按鍵減小TDS設定閾值。
手機APP連接到藍牙模塊可以收到系統上報的傳感器數據。
主要功能模塊原理圖:
電源時鐘燒錄接口:
單片機和按鍵輸入電路:
傳感器采集電路:
資料獲取地址
系統主要功能模塊代碼
初始化代碼:
/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init */InitVar();/* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_USART1_UART_Init();MX_ADC1_Init();/* USER CODE BEGIN 2 *///在HAL庫初始化串口1后調用HAL_Delay(100);SetUart1RxToInput();HAL_Delay(50);//uart1打開接收中斷HAL_UART_Receive_IT(&huart1, (uint8_t*)&uart1RecBuff, 1);InitOled();InitOledDisp();if(InitDS18B20()==0){// printf("%s", "DS18B20初始化成功");//DS18B20在上電第一次讀取時顯示溫度為85℃,這是正常的。//85℃是DS18B20在上電復位后在溫度寄存器內的對應數字量,//這里DS18B20初始化成功后讀一次值,避免出現85℃DS18B20GetTemp_SkipRom();}/* USER CODE END 2 */
系統控制代碼;
//系統信息更新void SystemControl(void){static uint8_t updateCnt = 0;updateCnt++; if(updateCnt>=SYSTEM_UPDATE_INTER){updateCnt = 0;ds18b20Temp = DS18B20GetTemp_SkipRom();UpdateBleData();}ReadSensorVal();}
藍牙模塊上報系統數據:
//更新BLE數據void UpdateBleData(void){printf("Temp:%02d\r\n", getTempVal); printf("PH:%3.1f\r\n", getPhVal);printf("Thick:%04d\r\n", getThickVal); printf("TDS:%04d\r\n", getTdsVal);}
此設計提供的資料包含原理圖PCB(包含PDF,AD,立創EDA三個版本),源代碼,系統框圖,主程序流程圖,物料清單(包含使用到的器件手冊),功能操作說明等。
各功能模塊資料: