標題: 基于STM32的土壤濕度實時監測器的制作 附源碼+原理圖 [打印本頁]
作者: 索局先生 時間: 2018-11-15 22:47
標題: 基于STM32的土壤濕度實時監測器的制作 附源碼+原理圖
本文設計的是基于單片機STM32F103CBT6的土壤濕度檢測系統,主要以廣泛應用的土壤濕度傳感器YL-69作為溫度和濕度的檢測,該儀器具有測量精度較高、硬件電路簡單、并能很好的進行顯示,可測試不同土壤環境濕度的特點。
單片機是系統的控制核心,所以單片機的性能關系到整個系統的好壞。因此單片機的選擇,對所設計系統的實現以及功能的擴展有著很大的影響。本次設計是以STM32F103CBT6單片機為核心,配合土壤濕度傳感器YL-69,IIC OLED顯示器以及按鍵和蜂鳴器組成的濕度檢測系統,通過傳感器檢測環境中的濕度的變化,可以接收所測土壤環境的濕度信號,并對采集到的數據進行處理和傳輸,再通過IIC OLED顯示器顯示濕度,實時監控環境的濕度數據。
硬件方面:
1、系統結構框圖
1.png (16.11 KB, 下載次數: 124)
下載附件
2018-11-16 04:10 上傳
2、土壤濕度傳感器簡介:濕度的采集可以用濕度傳感器來實現。將濕度傳感器看作可調變阻器,當濕度傳感器采集到濕度時,電阻值發生變化,濕度最小時的電阻值為 10K,濕度最大時為0.1Ω。 變化的幅度是根據濕度傳感器采集到的濕度大小而定。隨著電阻值的變化,電路的輸出電壓也跟著變化。調節電阻值的大小,可得到想要的電壓,滿足電路的需求。此次設計采用的是土壤濕度傳感器YL-69
2.png (63.84 KB, 下載次數: 100)
下載附件
2018-11-16 04:10 上傳
土壤濕度傳感器原理圖
3、土壤濕度傳感器特性:(1) 土壤濕度傳感器YL-69,表面采用鍍鎳處理,有加寬的感應面積,可以提高導電性能 ,防止接觸土壤容易生銹的問題,延長使用壽命;(2) 采用三線制,接線簡單,只需把VCC外接3.3V-5V電壓,GND外接數字地,AO“小板模擬量輸出接口”接到單片機即可;(3) 比較器采用LM393芯片,工作穩定。
軟件方面:
1、系統軟件流程框圖
3.png (10.39 KB, 下載次數: 118)
下載附件
2018-11-16 04:11 上傳
程序如下:- #include "delay.h"
- #include "stm32f10x.h"
- #include "OLED_I2C.h"
- #include "led.h"
- #include "usart.h"
- #include "string.h"
- #include "adc.h"
- #include "timer.h"
- #include "sys.h"
- #include "exti.h"
- #include "beep.h"
-
- float temp_avrg=0;
- int temp_LL=40;
- int shidu;
- int num;
- int num_adj=1;
- int j=0;
- int times;
- float total=0;
- void Hardware_Init(void)
- {
- Delay_Init();
-
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
-
- I2C_Configuration();
-
- OLED_Init();
-
- Led_Init();
-
- uart_init(9600);
- Adc_Init();
-
- EXTIX_Init();
-
- BEEP_Init();
- }
- void OLED_Show(void)
- {
- unsigned char i;
- extern const unsigned char BMP2[];
- OLED_CLS();
- OLED_DrawBMP(0,0,128,8,(unsigned char *)BMP2);
-
- for(i=10;i<14;i++)
- OLED_ShowCN(0,2*(i-10),i);
-
- for(i=14;i<18;i++)
- OLED_ShowCN(112,2*(i-14),i);
-
- DelayMs(2500);
- OLED_CLS();
-
- for(i=0;i<4;i++)
- OLED_ShowCN(31+i*16,1,i);
-
- for(i=18;i<21;i++)
- OLED_ShowCN(39+(i-18)*16,5,i);
-
- DelayMs(1500);
- OLED_CLS();
-
- for(i=4;i<10;i++)
- OLED_ShowCN(14+(i-4)*16,0,i);
-
- for(i=6;i<8;i++)
- OLED_ShowCN(0+(i-6)*16,3,i);
-
- OLED_ShowStr(36,4,":",1);
- OLED_ShowStr(90,4,"%",1);
-
- for(i=6;i<8;i++)
- OLED_ShowCN(0+(i-6)*16,6,i);
- for(i=21;i<23;i++)
- OLED_ShowCN(32+(i-21)*16,6,i);
-
- OLED_ShowStr(70,7,":",1);
- OLED_ShowStr(110,7,"%",1);
- OLED_ShowNum(75,7,temp_LL,1);
- int main(void)
- {
- num=50;
- Hardware_Init();
- printf("\r\n³õʼ»¯Íê³É\r\n");
- OLED_Show();
-
- while(1)
- {
- Get_Adc_Average(1,10);
- DelayMs(500);
-
- if(shidu>10000)
- shidu=10000;
-
- if(shidu<0)
- shidu=0;
-
- OLED_ShowNum(60,4,shidu%100,1);
- OLED_ShowNum(40,4,shidu/100,1);
- OLED_ShowStr(64,4,".",1);
-
- if(shidu/100<temp_LL)
- {
- BEEP=0;
- DelayMs(500);
- BEEP=1;
- DelayMs(500);
-
- }
- }
- }
- /*AD轉化處理*/
- u16 Get_Adc(u8 ch)
- {
-
- ADC_RegularChannelConfig(ADC1,ch,1, ADC_SampleTime_239Cycles5);
-
- ADC_SoftwareStartConvCmd(ADC1,ENABLE);
-
- while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));
-
- return ADC_GetConversionValue(ADC1);
- }
- u16 Get_Adc_Average(u8 ch,u8 times)
- {
- u32 temp_val=0;
- u8 t;
- for(t=0;t<times;t++)
- {
- temp_val+=Get_Adc(ch);
- DelayMs(1);
- }
- temp_avrg=temp_val/times;
- shidu=(4092-temp_avrg)/3292*10000;
-
-
-
- return temp_avrg;
- }
復制代碼
第一次發帖,多有不足,希望大家提出來和多多包涵,謝謝!
附件在一樓下載
-
-
土壤濕度傳感器模塊電路圖.pdf
2018-11-15 22:44 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
25.87 KB, 下載次數: 280, 下載積分: 黑幣 -5
作者: 1002464445 時間: 2018-11-18 15:50
請問我下載了這個壓縮包,用keil5 打開,里面沒有東西?
作者: hhhhhh111 時間: 2018-11-20 12:47
同問,我也是,路徑不對,不能用keil5打開編譯
作者: hhhhhh111 時間: 2018-11-20 12:51
可否把core等文件夾也發出來,否則不能用啊
作者: hhhhhh111 時間: 2018-11-20 13:01
可不可以把整個文件夾發出來,謝謝
作者: Poker_ 時間: 2018-11-20 16:40
怎么打開什么也沒有啊
作者: 51hei溫文爾雅 時間: 2018-11-20 20:59
我也是這么想的 路徑錯誤 這個東西真的不錯想法也好
作者: 51hei溫文爾雅 時間: 2018-11-20 21:01
那個題主的資料很好 但是一些庫函數沒發出來啊 我解壓后發現那個文件夾里 近乎是空的
作者: cq_1120 時間: 2018-11-28 17:44
樓主,能否把整個工程都發出來 我用keil5打開后 發現好多源文件都沒有
作者: 索局先生 時間: 2018-12-1 20:38
最近有點忙,現在才看到大家的評論,不好意思。整個工程文件都在這了,大家根據自己需求改吧。
-
-
土壤濕度傳感器Res式1.2.rar
2018-12-1 23:09 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
327.26 KB, 下載次數: 430, 下載積分: 黑幣 -5
工程文件
作者: yubo2007 時間: 2018-12-2 10:22
用keil5打開后 發現好多源文件都沒有
作者: lkfxy 時間: 2018-12-30 10:49
感謝分享,謝謝
作者: kxkxkxkxkxxkxkx 時間: 2019-4-19 10:55
土壤溫濕度傳感器
作者: 簡述 時間: 2019-6-3 20:44
你好 下載下來不是測土壤溫濕度的啊,能給詳細講解一下嗎
作者: changheng201314 時間: 2019-7-16 15:14
棒棒的
作者: lc9099 時間: 2019-7-17 16:56
借鑒一下。。
作者: lxj22 時間: 2019-8-2 10:00
能否把整個電路發出來?
作者: 紅劍琴心 時間: 2019-10-17 22:16
這個是超聲波測距吧
作者: thisiswang 時間: 2019-12-15 15:08
感謝樓主的分享
作者: 多米諾骨牌 時間: 2020-4-14 11:53
感謝作者!
作者: 歸刃 時間: 2022-1-11 17:42
請問(4092-temp_avrg)/3292*10000公式怎么得來的?
作者: 899 時間: 2022-4-4 20:27
同問,有理解的沒
作者: cc會努力 時間: 2022-12-30 16:13
請問有沒有代碼包和pro工程包
| 歡迎光臨 (http://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |