|
STM32讀取DHT11溫濕度值,通過(guò)ADC采集壓力傳感器的電壓值根據(jù)公式轉(zhuǎn)換為壓力值,讀取mpu6050加速度傳感器xyz方向數(shù)據(jù)解算出當(dāng)前加速器傳感器的角度值,將這5個(gè)傳感器數(shù)據(jù)按照,溫度: 濕度: 壓力1-3: 角度值: 的方式通過(guò)esp8266發(fā)送給手機(jī),手機(jī)按照發(fā)送的形式顯示數(shù)據(jù)。 加熱銅絲的控制程序會(huì)設(shè)定默認(rèn)值當(dāng)?shù)陀谀J(rèn)值便控制加熱(此處繼電器線(xiàn)路開(kāi)關(guān))低于切斷。做的時(shí)候采用模塊連接設(shè)計(jì)。
主函數(shù)部分源碼:
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "dht11.h"
#include "adc.h"
#include "common.h"
#include "usart2.h"
#include "usart3.h"
#include <string.h>
float angle[3];
extern u8 USART3_RX_BUF[USART3_MAX_RECV_LEN];
extern u8 sign;
int main(void)
{
u8 t=0;
u8 temperature;
u8 humidity;
u16 adcx[3];
u8 Temp[11];
u8 sz[3]= {0x51,0x61,0x71};
delay_init(); //延時(shí)函數(shù)初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷優(yōu)先級(jí)分組為組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
DHT11_Init();
RELAY_Init();
uart_init(115200); //串口初始化為115200
usart2_init(115200);
usart3_init(9600);
Adc_Init(); //ADC初始化
esp8266_wifi_init_all();
// while(DHT11_Init()) //DHT11初始化
// {
// delay_ms(200);
// }
while(1)
{
if(t==199) //每2000ms讀取一次
{
DHT11_Read_Data(&temperature,&humidity); //讀取溫濕度值
SD_wifi_send_data(10);
u2_printf("T:%d H:%d\r\n",temperature,humidity);
if (temperature > 24)//溫度判斷控制繼電器
{
GPIO_SetBits(GPIOB,GPIO_Pin_9);
}
else
{
GPIO_ResetBits(GPIOB,GPIO_Pin_9);
}
delay_ms(100);
//printf("T:%d H:%d\r\n",temperature,humidity);
adcx[0]=Get_Adc_Average(ADC_Channel_0,10);//ADC采集
adcx[1]=Get_Adc_Average(ADC_Channel_1,10);
adcx[2]=Get_Adc_Average(ADC_Channel_4,10);
SD_wifi_send_data(23);
u2_printf("N1:%d N2:%d N3:%d", adcx[0],adcx[1],adcx[2]);//發(fā)送壓力
delay_ms(100);
if (sign)//接受到MPU6050數(shù)據(jù)
{
memcpy(Temp,USART3_RX_BUF,11);
sign=0;
if (USART3_RX_BUF[0] == 0x55 && USART3_RX_BUF[1] == 0x53)
angle[0] = ((short)(Temp[3]<<8| Temp[2]))/32768.0*180; //X軸滾轉(zhuǎn)角(x 軸)
angle[1] = ((short)(Temp[5]<<8| Temp[4]))/32768.0*180; //Y軸俯仰角(y 軸)
angle[2] = ((short)(Temp[7]<<8| Temp[6]))/32768.0*180; //Z軸偏航角(z 軸)
SD_wifi_send_data(25);
u2_printf("X:%.2f Y:%.2f Z:%.2f",angle[0],angle[1],angle[2]);
printf("X:%.2f Y:%.2f Z:%.2f",angle[0],angle[1],angle[2]);
u2_printf(" ");
}
}
delay_ms(20);
t++;
if(t==200)
{
t=0;
}
}
}
模塊間接線(xiàn)原理圖:
51hei截圖20210222163304.png (100.12 KB, 下載次數(shù): 152)
下載附件
模塊連接原理圖
2021-2-22 16:33 上傳
原理圖.zip
(295.01 KB, 下載次數(shù): 133)
2021-2-22 16:35 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
程序.7z
(224.86 KB, 下載次數(shù): 205)
2021-2-23 01:31 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|