欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
基于STM32的工地環(huán)境檢測程序
[打印本頁]
作者:
yyqxly
時間:
2020-4-21 16:08
標題:
基于STM32的工地環(huán)境檢測程序
里面包括DTH11溫濕度采集、PM2.5濃度采集等模塊,程序詳細
單片機源程序如下:
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd.h"
#include "key.h"
#include "sram.h"
#include "malloc.h"
#include "sdio_sdcard.h"
#include "malloc.h"
#include "w25qxx.h"
#include "ff.h"
#include "exfuns.h"
#include "fontupd.h"
#include "text.h"
#include "string.h"
#include "math.h"
#include "gp2y1014au.h"
#include "dht11.h"
#include "beep.h"
#include "blu.h"
#include "fan.h"
#include "rtc.h"
#include "sound.h"
#include "adc.h"
void Home_page_masage(void)
{
Show_Str(35,1,240,24,"Based on STM32",24,0);
Show_Str(30,26,240,24,"Site environmen",24,0);
Show_Str(12,51,240,24,"monitorting system",24,0);
Show_Str(60,130,240,16,"TEMP:",16,0);
Show_Str(150,130,240,16,"C",16,0);
Show_Str(60,170,240,16,"HUMI:",16,0);
Show_Str(150,170,240,16,"RH",16,0);
Show_Str(60,210,240,16,"PM2.5:",16,0);
Show_Str(150,210,240,16,"um",16,0);
Show_Str(60,250,240,16,"NOISE:",16,0);
Show_Str(60,290,240,16,"FAN:",16,0);
}
int main(void)
{
u8 key; //鍵值
u32 temp;
u32 humi;
u16 PM_data;
char temp_data[64] = {0};
char humi_data[64] = {0};
char pm_data[64] = {0};
char zs_data[64] = {0};
char fs_data[64] = {0};
u8 timbuf[40];
u8 daybuf[40];
u8 weekbuf[40];
u8 tbuf[40];
RTC_TimeTypeDef RTC_TimeStruct;
RTC_DateTypeDef RTC_DateStruct;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);//使能GPIOA時鐘
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級分組2
delay_init(168); //初始化延時函數(shù)
uart_init(115200); //初始化串口波特率為115200
LED_Init(); //初始化LED
LCD_Init(); //LCD初始化
KEY_Init(); //按鍵初始化
W25QXX_Init(); //初始化W25Q128
my_mem_init(SRAMIN); //初始化內(nèi)部內(nèi)存池
my_mem_init(SRAMCCM); //初始化CCM內(nèi)存池
exfuns_init(); //為fatfs相關(guān)變量申請內(nèi)存
f_mount(fs[0],"0:",1); //掛載SD卡
f_mount(fs[1],"1:",1); //掛載FLASH.
POINT_COLOR=BLUE;
init_dht11(); //溫濕度初始化
Adc_Init(); //PM2.5初始化
USART3_Init(9600); //初始化藍牙
Fan_Init(); //風(fēng)扇初始化
Adc_Sound_Init(); //噪聲傳感器初始化
My_RTC_Init(); //初始化RTC
RTC_Set_WakeUp(RTC_WakeUpClock_CK_SPRE_16bits,0); //配置WAKE UP中斷,1秒鐘中斷一次
/*
//注意事項:
//第一次請將時間改為當前的正常時間,編譯后下載到開發(fā)板上,下次修改代碼時必須將這兩句屏蔽掉,以后開發(fā)板即使斷電后也會自動同步時間
// RTC_Set_Time(15,10,00,RTC_H12_PM); //設(shè)置時間
// RTC_Set_Date(19,1,13,7); //設(shè)置日期
*/
//GPIOF9,F10初始化設(shè)置
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;//LED0和LED1對應(yīng)IO口
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通輸出模式
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIO
GPIO_SetBits(GPIOB,GPIO_Pin_15);
Home_page_masage();
POINT_COLOR=RED;
while(1)
{
key=KEY_Scan(0); //掃描按鍵
RTC_GetTime(RTC_Format_BIN,&RTC_TimeStruct);
sprintf((char*)timbuf,"%02d:%02d:%02d",RTC_TimeStruct.RTC_Hours,RTC_TimeStruct.RTC_Minutes,RTC_TimeStruct.RTC_Seconds);
//LCD_ShowString(30,75,210,16,16,tbuf);
RTC_GetDate(RTC_Format_BIN, &RTC_DateStruct);
sprintf((char*)daybuf,"20%02d-%02d-%02d",RTC_DateStruct.RTC_Year,RTC_DateStruct.RTC_Month,RTC_DateStruct.RTC_Date);
//LCD_ShowString(30,95,210,16,16,tbuf);
sprintf((char*)weekbuf,"%d",RTC_DateStruct.RTC_WeekDay);
//LCD_ShowString(30,115,210,16,16,tbuf);
sprintf((char*)tbuf,"%s/%s/%s",daybuf,timbuf,weekbuf);
LCD_ShowString(30,95,210,16,16,tbuf);
LCD_ShowxNum(110,250,Get_Adc_Average_Sound(5,18),6,16,0);//聲音傳感器
PM_data = Get_GP2Y_Average(10);//PM2.5的值的獲取
LCD_ShowxNum(100,210,PM_data,6,16,0);
if(PM_data >300)
Fan_Deflect(1);//風(fēng)扇正
if(PM_data < 300)
Fan_Deflect(0);//風(fēng)扇ting
if(Get_Adc_Average_Sound(5,18) > 1300 || PM_data > 300)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_15);//設(shè)置高,燈滅
delay_ms(200);
GPIO_SetBits(GPIOB,GPIO_Pin_15);//設(shè)置高,燈滅
delay_ms(200);
}
get_temp_humi(&temp,&humi);//溫濕度的獲取
if(temp > 0 && humi > 0)
{
LCD_ShowxNum(100,130,temp,6,16,0);
LCD_ShowxNum(100,170,humi,6,16,0);
switch(data)
{
case'T':
{
sprintf(temp_data, "%s %d\r\n", "temp:",temp);
usart3_send_str(temp_data);
data =2;
};break;
case'H':
{
sprintf(humi_data, "%s %d\r\n", "humi:",humi);
usart3_send_str(humi_data);
data =2;
};break;
case'P':
{
sprintf(pm_data, "%s %d\r\n", "pm2.5:",PM_data);
usart3_send_str(pm_data);
data =2;
};break;
}
if(temp > 30 || humi >90)
Fan_Deflect(1);//風(fēng)扇正
if(temp < 20 || humi < 40)
Fan_Deflect(2);//風(fēng)扇反
if((humi > 50 && humi < 90) || (temp < 30 && temp > 20))
Fan_Deflect(0);//風(fēng)扇ting
if(temp > 38 || humi > 90)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_15);//設(shè)置高,燈滅
delay_ms(500);
GPIO_SetBits(GPIOB,GPIO_Pin_15);//設(shè)置高,燈滅
delay_ms(500);
}
}
}
}
復(fù)制代碼
所有資料51hei提供下載:
Detection.7z
(264.03 KB, 下載次數(shù): 10)
2020-4-22 02:34 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
51hei截圖20200421155132.png
(78.54 KB, 下載次數(shù): 28)
下載附件
2020-4-21 16:06 上傳
作者:
admin
時間:
2020-4-22 02:35
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1