找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6532|回复: 5
打印 上一主题 下一主题
收起左侧

基于STM32多传感器数据采集及ESP8266数据传输程序

  [复制链接]
跳转到指定楼层
楼主
STM32读取DHT11温湿度值,通过ADC采集压力传感器的电压值根据公式转换为压力值,读取mpu6050加速度传感器xyz方向数据解算出当前加速器传感器的角度值,将这5个传感器数据按照,温度: 湿度: 压力1-3: 角度值: 的方式通过esp8266发送给手机,手机按照发送的形式显示数据。  加热铜丝的控制程序会设定默认值当低于默认值便控制加热(此处继电器线路开关)低于切断。做的时候采用模块连接设计。

主函数部分源码:
#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();                     //延时函数初始化         
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
  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]);//发送压力
                        delay_ms(100);
       if (sign)//接受到MPU6050数据
       {
                                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轴滚转角(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, 下载次数: 131)

程序.7z (224.86 KB, 下载次数: 193)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏13 分享淘帖 顶2 踩1
回复

使用道具 举报

沙发
ID:830316 发表于 2021-12-5 13:07 | 只看该作者
手机端如何接收吖。博主
回复

使用道具 举报

板凳
ID:327295 发表于 2022-4-6 22:47 | 只看该作者
电子电子小宅神 发表于 2021-12-5 13:07
手机端如何接收吖。博主

socket写个client端连接esp8266即可
回复

使用道具 举报

地板
ID:785370 发表于 2022-4-14 19:10 | 只看该作者
请问这个wifi模块是ESP8266-01S吗?
回复

使用道具 举报

5#
ID:914666 发表于 2022-4-15 10:19 | 只看该作者
51hei精彩你我他
回复

使用道具 举报

6#
ID:412508 发表于 2022-4-18 22:30 | 只看该作者
正式在下急需参考的,谢谢楼主
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表