298【畢設課設】基於51微控制器的灌溉系統設計
阿新 • • 發佈:2020-12-15
【資源下載】下載地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl
51灌溉系統設計-土壤-PCF8591-光敏-藍芽
本設計由STC89C52微控制器電路+2路土壤溼度感測器電路+藍芽模組電路+PCF8591 AD模組電路+水泵控制電路+光敏電阻模組電路+電源電路組成。
1、實時檢測2路土壤溼度,取平均值通過藍芽顯示在手機APP上。
2、通過手機發送指令(具體指令賣家自行確定)可以設定平均的土壤溼度值的上限和下限,噹噹前檢測到的平均土壤溼度低於下限,則水泵不啟動,如果大於下限,但是沒超過上限,則水泵啟動。超過上限,水泵也不啟動。
3、白天水泵不啟動,晚上可以水泵啟動。且光照閾值可以通過光敏電阻模組上的電位器調節。(備註:光照條件的優先順序是最高的)
接收命令:
Now:50 10-80 //表示當前50溼度 10為下限 80為上線
傳送命令:
*S10-80#
* //起始標誌
S10-80 //設定命令 設定值可以是0-99
# //結束標誌
#include<reg52.h> //包含標頭檔案,一般情況不需要改動,標頭檔案包含特殊功能暫存器的定義 #include<stdio.h> #include "delay.h" #include "i2c.h" sbit shuibeng=P1^1; //水泵介面 sbit ligh=P1^0; //光照介面 unsigned char dis0[16]; //列印陣列初始化 unsigned long time_20ms=0; //定時器計數 unsigned char firstin =0; //首次接收到標誌 unsigned char tab[10]; //串列埠資料暫存 unsigned char Count=0; //串列埠接收計數 unsigned char uartbusy =0; //串列埠判忙 unsigned char reportFlag = 0; //資料上報標誌 unsigned char setFlag = 0; //資料上報標誌 unsigned int shiduVal =0; unsigned char doSetNum = 20;//下限 unsigned char upSetNum = 70;//上限 void Init_Timer0(void); //函式宣告 void uartSendStr(unsigned char *s,unsigned char length); void UART_Init(void); void uartSendByte(unsigned char dat); void main (void) { unsigned char mid01,mid02; Init_Timer0(); //定時器0初始化 UART_Init();