標(biāo)題: 基于STM32多傳感器數(shù)據(jù)采集及ESP8266數(shù)據(jù)傳輸程序 [打印本頁]

作者: JAMES123    時(shí)間: 2021-2-22 16:38
標(biāo)題: 基于STM32多傳感器數(shù)據(jù)采集及ESP8266數(shù)據(jù)傳輸程序
STM32讀取DHT11溫濕度值,通過ADC采集壓力傳感器的電壓值根據(jù)公式轉(zhuǎn)換為壓力值,讀取mpu6050加速度傳感器xyz方向數(shù)據(jù)解算出當(dāng)前加速器傳感器的角度值,將這5個(gè)傳感器數(shù)據(jù)按照,溫度: 濕度: 壓力1-3: 角度值: 的方式通過esp8266發(fā)送給手機(jī),手機(jī)按照發(fā)送的形式顯示數(shù)據(jù)。  加熱銅絲的控制程序會(huì)設(shè)定默認(rèn)值當(dāng)?shù)陀谀J(rèn)值便控制加熱(此處繼電器線路開關(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;
                }
        }
}
模塊間接線原理圖:


原理圖.zip (295.01 KB, 下載次數(shù): 133)

程序.7z (224.86 KB, 下載次數(shù): 205)

作者: 電子電子小宅神    時(shí)間: 2021-12-5 13:07
手機(jī)端如何接收吖。博主
作者: JAMES123    時(shí)間: 2022-4-6 22:47
電子電子小宅神 發(fā)表于 2021-12-5 13:07
手機(jī)端如何接收吖。博主

socket寫個(gè)client端連接esp8266即可
作者: 梨子李子    時(shí)間: 2022-4-14 19:10
請(qǐng)問這個(gè)wifi模塊是ESP8266-01S嗎?
作者: yinds5092    時(shí)間: 2022-4-15 10:19
51hei精彩你我他
作者: tc234    時(shí)間: 2022-4-18 22:30
正式在下急需參考的,謝謝樓主




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1