找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2910|回復(fù): 1
收起左側(cè)

基于STM32的小型氣象站源程序

[復(fù)制鏈接]
ID:501195 發(fā)表于 2020-3-8 23:37 | 顯示全部樓層 |閱讀模式
功能:實(shí)現(xiàn)溫濕度采集 GSM模塊發(fā)送數(shù)據(jù) 通過手機(jī)發(fā)送指定命令 返回環(huán)境參數(shù)
          若1分鐘無人為操作將會(huì)進(jìn)入休眠模式,實(shí)現(xiàn)低功耗
          2.6寸屏幕實(shí)時(shí)顯示環(huán)境數(shù)據(jù)
使用到的模塊:
         DHT11,DS18B20,有毒氣體傳感器,GSM模塊

#include "stm32f10x.h"
#include "led.h"  
#include "usart.h"  
#include "lcd_2.6ips.h"
#include "capture.h"
#include "stdio.h"
#include "delay.h"
#include "key.h"  
#include "adc.h"
#include "bsp_dht11.h"
#include "bsp_ds18b20.h"
#include "usart4.h"
#include "stdlib.h"
#include "string.h"
#include "simxx.h"
#include "SimUi.h"
int main(void)
{
    u8 Hum[20]={0},Temp[20]={0},WATER_TEMP[10]={0};
    u8 MQ[20]={0},vcc[20]={20};
    u8 send_flag=0;
    DHT11_Data_TypeDef data;
    u8 led_flag=0;
    Delay_init();
    LED_Init();        // LED初始化
    LCD_Init();        // LCD初始化
    time7_init();
    time7_set_timeout(10);
    Usart_Config();// 串口初始化
    DHT11_Init();
    DS18B20_Init();
    USART2_Config();
    Adc_Init();
    SimUi_InIt();
    USART2_printf(USART2,"串口二測試\r\n");
    USART2_printf(USART2,"初始化中..............\r\n");
    LCD_Clear();    // 清屏
    while(1)
    {   
   
        if(sigRun[0]>sigRun[1])
        {
            if(Simxx_Signal())
            {
                LCD_DisplayString( 0,200 ,(u8 *)"            ");  
                LCD_DisplayString( 0,200 ,(u8 *)"Signal: Strong");
            
            }
            else
            {
                LCD_DisplayString( 0,200 ,(u8 *)"            ");
                LCD_DisplayString( 0,200 ,(u8 *)"Signal: Weak");
            }
            sigRun[0]=0;
        }
        
        
        if(MQ_9Run[0]>MQ_9Run[1])
        {
            sprintf((char *)MQ,"harmful=%d%%",(Get_Adc(1)*100/4096));//獲得某個(gè)通道值
            LCD_DisplayString( 0,120 ,MQ);
            sprintf((char *)vcc,"WorkVcc=%.2fV",Get_Adc(4)*(3.3/4096));//獲得某個(gè)通道值
            LCD_DisplayString( 0,80 ,vcc);
            MQ_9Run[0]=0;
        }   
        
        if(Dht11_Run[0]>Dht11_Run[1])
        {
            DHT11_Read_TempAndHumidity (&data);
            sprintf((char *)Hum,"Hum=%d.%d%%",data.humi_int,data.humi_deci);
            sprintf((char *)Temp,"Temp=%d.%dC",data.temp_int,data.temp_deci);
            LCD_DisplayString( 0,0 ,Hum);
            LCD_DisplayString( 0,40 ,Temp);
            Dht11_Run[0]=0;
        }
        if(DS18B20_Run[0]>DS18B20_Run[1])
        {
          sprintf((char *)WATER_TEMP,"WaterTemp=%.2fC",DS18B20_GetTemp_SkipRom ());
            LCD_DisplayString( 0,160 ,WATER_TEMP);
            DS18B20_Run[0]=0;
        }
        if(LED_Run[0]>LED_Run[1])
        {
            
            led_flag^=1;
            LED1_ST(led_flag);
            LED_Run[0]=0;
        }
        if(Simxx_Read_Nes())
        {
            send_flag=0;
            if(send_flag==0)
            {
                USART2_printf(USART2,"發(fā)送數(shù)據(jù)\r\n");
                send_flag=1;
                send_data(data.humi_int,data.humi_deci,data.temp_int,\
                data.temp_deci,DS18B20_GetTemp_SkipRom(),(Get_Adc(1)*100/4096));
            }
        }
        
        if(IrRun[0]>IrRun[1])
        {
            USART2_printf(USART2,"進(jìn)入休眠\(yùn)r\n");
            GPIO_ResetBits(LCD_BL_PORT,LCD_BL_PIN);
            if(KEY_Scan())
            {
                USART2_printf(USART2,"退出\r\n");
                IrRun[0]=0;
                GPIO_SetBits(LCD_BL_PORT,LCD_BL_PIN);            //開啟LCD背光   
            }
        }
        
        
        Delay_ms(10);            
    }
}


6.簡單發(fā)信息測試 -簡單接收指令返回?cái)?shù)據(jù) - 獲取信號(hào)強(qiáng)度.7z

251.06 KB, 下載次數(shù): 19, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

ID:700459 發(fā)表于 2020-3-9 07:35 | 顯示全部樓層
i need more explain plz
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表