色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

聚豐項目 > 觸摸型環境狀態波形顯示記錄儀

觸摸型環境狀態波形顯示記錄儀

通常的環境狀態裝置,多是只顯示檢測的數值卻并不提供波形顯示及數據記錄功能,本作品便是彌補這方面的不足。該作品以CH32V103為處理核心,通過數字式傳感器來獲取環境的溫度、濕度、光照強度、大氣壓等,轉換器與模擬量傳感器的配合可檢測土壤濕度等狀態,只是所用的傳感器存在差異而已,在結構上不存在其他方面的變化。為了便于標記檢測的時間點,所用的是片內的RTC計時器。為了突出該作品的波形顯示性能,故所用的顯示器件為7寸觸摸型串口顯示屏。此外,為記錄檢測數據,所采集的數據是以文件的形式存放到U盤內。作品所用的計時器為片內的RTC,并輔助數據的記錄。 在串口的使用方面,除了控制串口屏更新顯示外,還可控制MP3語音模塊來播報系統的工作狀態。

jennyzhaojie jennyzhaojie

分享
0 喜歡這個項目
團隊介紹

jennyzhaojie jennyzhaojie

團隊成員

jennyzhaojie 工程師

分享
項目簡介
通常的環境狀態裝置,多是只顯示檢測的數值卻并不提供波形顯示及數據記錄功能,本作品便是彌補這方面的不足。該作品以CH32V103為處理核心,通過數字式傳感器來獲取環境的溫度、濕度、光照強度、大氣壓等,轉換器與模擬量傳感器的配合可檢測土壤濕度等狀態,只是所用的傳感器存在差異而已,在結構上不存在其他方面的變化。為了便于標記檢測的時間點,所用的是片內的RTC計時器。為了突出該作品的波形顯示性能,故所用的顯示器件為7寸觸摸型串口顯示屏。此外,為記錄檢測數據,所采集的數據是以文件的形式存放到U盤內。作品所用的計時器為片內的RTC,并輔助數據的記錄。 在串口的使用方面,除了控制串口屏更新顯示外,還可控制MP3語音模塊來播報系統的工作狀態。
硬件說明

image.png

圖1 結構框圖


該作品在硬件方面主要由6個部分組成,其涉及數據的采集、顯示、波形繪制、設置、傳輸及記錄等,其具體內容如下:

1)串口觸摸

作品所選用的顯示屏是一款TJC8048X370_011R,其顯示分辨率為800*480像素,屬電阻式觸摸屏。

image.png

圖2 串口觸摸


2)溫濕度傳感器

進行溫濕度檢測的傳感器為DHT22,它較之DHT11其精度更高、檢測范圍更寬。該器件是單總線器件,故對時序的要求比較高,它所連接的引腳為PA4。


3)光強傳感器

BH1750是一種數字式的光照強度傳感器,該傳感器以I2C的方式工作 。

其引腳連接關系為:

SCL ---PA0

SDA ---PA1


4)氣壓傳感器

BMP085是一種數字式的溫度與大氣壓強傳感器,該傳感器以I2C的方式工作。

其引腳連接關系為:

SCL ---PA6

SDA ---PA7


5)MP3播放模塊

MP3播放模塊是一款即可以串口控制,也可用按鍵控制的器件,作品中是以它來播報系統所處的工作模式。

其引腳連接關系為:

RX ---PB10  

image.png

圖3 MP3播放模塊


6) U盤接口

其引腳連接關系為:

UD+     ----   PA12

UD-      ----   PA11




軟件說明

在硬件設計的基礎上,該項目的軟件部分主要涉及各功能模塊的函數設計。

軟件的處理流程為:

image.png

處理流程圖


1)溫濕度檢測

對溫濕度檢測是以GPIO口模擬單總線的方式來進行的,并以函數庫的方式來使用。

DHT22.h的內容為:

#ifndef __DHT22_H
#define __DHT22_H
// IO方向設置
#define DHT22_IO_IN()  {GPIOA->CFGLR&=0XFFFF0FFF;GPIOA->CFGLR|=8<<16;}
#define DHT22_IO_OUT() {GPIOA->CFGLR&=0XFFFF0FFF;GPIOA->CFGLR|=3<<16;}
// IO操作函數
#define DHT22_DQ_IN  GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4)   // 數據端口   PA4
u8 DHT22_Init(void);                     // 初始化DHT22
u8 DHT22_Read_Data(u16 *temp,u16 *humi); // 讀取溫濕度
u8 DHT22_Read_Byte(void);                // 讀出一個字節
u8 DHT22_Read_Bit(void);                 // 讀出一個位
u8 DHT22_Check(void);                    // 檢測是否存在DHT22
void DHT22_Rst(void);                    // 復位DHT22
#endif


DHT22讀取數據的程序為:

// temp:溫度值(范圍:0~50°)
// humi:濕度值(范圍:20%~90%)
// 返回值:0,正常;1,讀取失敗
u8 DHT22_Read_Data(u16 *temp,u16 *humi)
{
    u8 buf[5];
    u8 i;
    DHT22_Rst();
    if(DHT22_Check()==0)
    {
        for(i=0;i<5;i++)       // 讀取40位數據
        {
            buf[i]=DHT22_Read_Byte();
        }
        if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
        {
            *humi=buf[0]*256+buf[1];
            *temp=buf[2]*256+buf[3];
        }
    }
    else
        return 1;
    return 0;
}


實現溫濕度顯示的程序為:

         if(DHT22_Init())
         {
             OLED_ShowString(0,0,"DHT22 NO!",16);
             Delay_Ms(10);
         }
         else
         {
             OLED_ShowString(0,0,"DHT22 OK!",16);
             OLED_ShowString(0,2,"T=  . C H=  . %",16);
             while(1)
             {
                 if(t%100==0)   // 每100ms讀取一次
                 {
                     DHT22_Read_Data(&temperature,&humidity);    //讀取溫濕度值
                     OLED_ShowNum(16,2,temperature/10,2,16);
                     OLED_ShowNum(80,2,humidity/10,2,16);
                     OLED_ShowNum(40,2,temperature%10,1,16);
                     OLED_ShowNum(104,2,humidity%10,1,16);
                 }
                 Delay_Ms(100);
                 t++;
             }
         }


DHT22測試效果如圖4所示

image.png

圖4 溫度檢測


2)光強檢測

測試光強檢測與顯示的程序為:

int main(void)
{
   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    Delay_Init();
    Init_config();
    OLED_Init();
    OLED_Clear();
    OLED_ShowString(0,0,"CH32V103 TEST",16);
    OLED_ShowString(0,2,"OLED & BH1750",16);
    BH1750_Init();
    Delay_Ms(2000);
    OLED_Clear();
    OLED_ShowString(0,0,"Sunlight:(lx)",16);
    while(1)
    {
     Get_Sunlight_Value();
     Delay_Ms(500);
    }
}


BH1750測試的效果如圖5所示

image.png

圖5 BH1750測試效果


3)氣壓檢測

測試氣壓檢測與顯示的程序為:

int main(void)
{
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    Delay_Init();
    Init_config();
    OLED_Init();
    OLED_Clear();
    OLED_ShowString(0,0,"CH32V103 TEST",16);
    OLED_ShowString(0,2,"OLED & BMP085",16);
    BMP085_Init();
    Init_BMP085();
    Delay_Ms(2000);
    OLED_Clear();
    OLED_ShowString(0,0,"t=     C",16);
    OLED_ShowString(0,2,"p=       KPa",16);
    while(1)
    {
        bmp085Convert();
        OLED_ShowNum(24,0,temperature/10,3,16);
        OLED_ShowNum(24,2,pressure/100,5,16);
        Delay_Ms(500);
    }
}


BMP085測試的效果如圖6所示: 

image.png

圖6 BMP085測試效果


4)RTC計時

使用RTC進行計時的測試程序為:

int main(void)
{
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    Delay_Init();
    RTC_Init();
    Init_config();
    OLED_Init();
    OLED_Clear();
    OLED_ShowString(0,0,"CH32V103 TEST",16);
    OLED_ShowString(0,2,"OLED & RTC",16);
    Delay_Ms(2000);
    OLED_Clear();
    OLED_ShowString(10,0,"RTC TEST",16);
    OLED_ShowString(10,2,"  :   :",16);
    while(1)
    {
        RTC_Get();
        OLED_ShowNum(10,2,calendar.hour,2,16);
        OLED_ShowNum(40,2,calendar.min,2,16);
        OLED_ShowNum(70,2,calendar.sec,2,16);
        Delay_Ms(1000);
    }
}


RTC計時效果如圖7所示:

image.png

圖7 RTC計時效果


5)MP3播放控制

生成按音樂文件順序播放指令的函數為:

void playn(uint16_t index) 
{
         int i;
         uint8_t checksum = 0;
         cmd3[5] = (uint8_t)(index >> 8);
         cmd3[6] = (uint8_t)(index);
         for (i=2; i<8; i++)
         {
                   checksum += cmd3[i];
         }
         cmd3[8] = (uint8_t)~checksum;
}

以播放第2個語音文件為例,其程序為:

playn(2);
for(i=0;i<10;i++)
{
          while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
          USART_SendData(USART1, cmd3[i]);
}

 

6)界面設計

串口觸摸屏的界面設計采用工具軟件USART HMI,主界面的設計如圖8所示。此外,為進行參數的設置還設計了設置界面,見圖9所示。

image.png

圖8主界面設計

image.png

圖9 設置界面設計

演示效果

image.png

圖10 主界面

image.png

圖11 設置界面

image.png

圖12 指令測試


視頻:https://v.youku.com/v_show/id_XNTgyNjk3NjYzNg==.html




附件

(0.85 MB)下載

評論區(0 )
主站蜘蛛池模板: 99精彩免费观看| 人人听力网mp3下载| 国产精品资源在线观看网站| 国产精品久久久久婷婷五月色| 国产精品人妻无码久久久2022| 国语自产视频在线不卡| 久久成人a毛片免费观看网站| 免费国产精品视频| 骚浪插深些好烫喷了| 亚洲色欲色欲WWW在线丝| CHINESE熟女老女人HD视频| 国产精品99久久久精品无码| 精品一品国产午夜福利视频 | 色欲AV精品一区二区入口| 亚洲免费每日在线观看| Zoofilivideo人馿交| 国产一区二区无码蜜芽精品| 男人叼女人| 中文无码在线观| 国产精品人妻99一区二| 欧美激情性AAAAA片欧美| 伊人热| 国产精品美女WWW爽爽爽视频| 乱亲女H秽乱长久久久| 亚洲午夜无码久久久久蜜臀av| 光棍天堂在线a| 日韩影院久久| SM双性精跪趴灌憋尿调教H| 你的欲梦裸身在线播放| 91综合久久久久婷婷| 美女搞鸡网站| 用震蛋调教女性下面视频| 国产在线精品一区二区网站免费| 日本一本在线播放| 成人1000部免费观看视频| 青青久久网| 动漫美女被到爽了流漫画| 神马电影dy888午夜我不卡| 国产成人在线视频播放| 乌克兰xxxxx| 精品久久综合1区2区3区激情|