STM32F103C8T6+溫濕度+土壤濕度+水泵,可通過設置土壤濕度閾值控制水泵
51hei.png (24.17 KB, 下載次數: 61)
下載附件
2021-11-25 00:12 上傳
單片機源程序如下:
- /*
- * 溫濕度 單片機 土壤 單片機 oled 單片機 繼電器(水泵) 單片機
- * VCC ---> VCC VCC VCC VCC VCC VCC VCC
- * GND GND GND GND GND GND GND GND
- out PB14 AO PA1 SCL PB8 IN PB12
- SDA PB9
- */
- #include "stm32f10x.h"
- #include "delay.h"
- #include "sys.h"
- #include "led.h"
- #include "beep.h"
- #include "math.h"
- #include "stdio.h"
- #include "usart.h"
- #include "timer.h"
- #include "stdlib.h"
- #include "string.h"
- #include "stm32f10x_tim.h"
- #include "stm32f10x_flash.h"
- #include "dht11.h"
- #include "adc.h"
- #include "oled_iic.h"
- int main(void)
- {
- u8 temperature;
- u8 humidity;
- int shidu;
- delay_init();
- TIM3_Int_Init(9999,7199); //10Khz的計數頻率,計數到5000為500ms
- NVIC_Configuration();
- LED_Init(); //LED燈初始化
- Relay_Init(); //繼電器初始化
- uart_init(9600); //串口1初始化為9600
- uart3_init(9600); //串口3初始化為9600
- DHT11_Init();
- Adc_Init();
- OLED_Init(); //OLED屏幕初始化
-
- OLED_Clear();
- while(1)
- {
- OLED_ShowCH(35,0,"1803hmt"); //1803hmt
-
- shidu=Get_Adc_Average(1,10);
- DHT11_Read_Data(&temperature,&humidity); //讀取溫濕度值
- printf("當前溫度:%d 當前濕度:%d 土壤濕度:%d\r\n",temperature,humidity,shidu);
- printf("\r\n");
- delay_ms(800);
- OLED_ShowNum(40,3,temperature,2,16); //顯示整數部分
- OLED_ShowNum(105,3,humidity,2,16); //顯示整數部分
- OLED_ShowNum(75,6,shidu,2,16); //顯示整數部分
- OLED_ShowCH(0,3,"溫度:");
- OLED_ShowCH(65,3,"濕度:");
- OLED_ShowCH(0,6,"土壤濕度:"); //顯示中文:溫度
-
- if(shidu<=20)
- {
- Pum_ON(); //開始抽水
- }
- else
- {
- Pum_OFF();
- }
- }
- }
復制代碼
所有資料51hei附件下載:
STM32C8T6+溫濕度+土壤+水泵+oled.7z
(1.8 MB, 下載次數: 358)
2021-11-25 00:12 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|