在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

聚豐項目 > 多功能環境狀態檢測記錄儀

多功能環境狀態檢測記錄儀

環境是我們重要的生存條件,因而對它的了解也就是一件十分必要的事情。該作品以AB32VG1為處理核心,通過數字式傳感器的配合來獲取環境的溫度、光照強度、大氣壓等,除外通過A/D轉換器與模擬量傳感器的配合可檢測土壤濕度等狀態,只是所用的傳感器存在差異而已,在結構上不存在其他方面的變化。

jinglixixi jinglixixi

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

jinglixixi jinglixixi

團隊成員

李靜 實驗師

分享
項目簡介
環境是我們重要的生存條件,因而對它的了解也就是一件十分必要的事情。該作品以AB32VG1為處理核心,通過數字式傳感器的配合來獲取環境的溫度、光照強度、大氣壓等,除外通過A/D轉換器與模擬量傳感器的配合可檢測土壤濕度等狀態,只是所用的傳感器存在差異而已,在結構上不存在其他方面的變化。
硬件說明

該作品在硬件方面以AB32VG1為處理核心,并配以相應的功能模塊來實現設計要求,所涉及到的內容包括數據的采集、檢測、顯示、設置、傳輸及記錄等。

為了便于標記檢測的時間點,所用的是片內的RTC計時器。為了體現檢測儀器的便攜式特點,所用的顯示器件為0.96寸的彩色OLED屏,并實現圖標化的界面顯示。作為一個數據記錄儀,其采集的數據是以文件的形式存放到TF卡中,以便于數據的提取和交換。為了便于對RTC計時器進行時間的設置和校正,是以板載的紅外接收器與外部的紅外遙控器相配合來完成數值的輸入。

此外,為了更廣泛地突出數據共享的性能,該作品可利用串口為數據傳送的中介,以支持3種形式的應用,即:借助無線透傳模塊以進行數據的無線傳輸;與串口觸摸屏相連接以實現數據及波形的實時刷新;通過對數據進行協議的封裝,可上傳到電腦以實現界面的控件驅動顯示,如指針式表盤、刻度計及進度球等顯示形式。另外,還可控制MP3語音模塊來播報當前的功能處理等。


image.png

圖1 功能框圖


1.器件引腳分配


1)OLED顯示屏

該作品所選用的顯示屏是一款0.96寸的彩色OLED屏,它以SPI接口的方式來工作。驅動該顯示屏有2種方式,一種是采用硬件的方式,另一種則是以軟件的方式,這里上用的是軟件的方式。該顯示屏的顯示分辨率為80*160像素,在顯示數據的同時也能夠相應的圖標來美化界面。

image.png

圖2 OLED顯示屏

該顯示屏與開發板的連接關系為:

SCL--- PE3

SDA--- PE2

RES--- PA0

DC --- PA2

CS --- PA1

BLK--- PE4

所使用的引腳由Arduino擴展接口引出,見圖3所示。

image.png

圖3 所用 Arduino接口

2)TF卡

所用的TF卡接口是開發板自身所配備的,其接口如圖4所示。

image.png

圖4 TF卡接口

該接口所占用的引腳資源為:

SD_CMD--- PB0

SD_CLK--- PB1

SD_DAT--- PB2

SD_DET--- PE5

在作品中主要是通過在讀取圖片數據來繪制圖案,從而可以有效地減少對程序存儲空間的消耗;在存儲方面,則是通過TF卡將檢測數據寫入文件中進行保存,其形式如圖5所示。

image.png

圖5文件格式

3)IR接收

為減少引腳的占用,設置數據是以紅外遙控器的方式,板載的IR接收器接口如圖6所示,其占用的引腳為PE6,需短接來使用。

image.png


圖6 紅外接收接口

該接收器同遙控器相配合,可完成RTC校時處理及功能切換。


4)數字式傳感器

為進行環境檢測,所有的數字式傳感器為光強傳感器BH1750和溫度氣壓傳感器BMP085,這2個器件均以I2C接口的方式工作。

這2個傳感器所占用的引腳為:

BH1750

SCK--- PA6

SIN--- PE7

BMP085

SCL--- PF0

SDA--- PE0

5)串口顯示屏

TOPWAY智能TFT顯示模塊是一款可通過串口和RJ45網口控制的電容觸摸屏,其顯示分辨率為1024x600,通過串口可使其顯示檢測值并繪制出波形曲線。

6)MP3語音播放模塊

MP3音頻模塊是一種可以串口進行控制的器件,用該模塊可提高語音播放的并行性。

image.png

圖7 MP3引腳功能

7)串行通訊

板上可供數據傳送的串口為UART1,其引腳功能為:

TX1--- PA4

RX1--- PA3

8)A/D轉換及傳感器

板上可直接使用A/D轉換的引腳為ADC0所對應的PA5,用它連接外部的模擬量傳感器以檢測外部環境的狀態,如土壤濕度、所含的氣體和氣味等。

image.png

圖8土壤濕度傳感器

image.png

圖9土壤濕度傳感器、MP3語音模塊及紅外遙控器的使用

image.png

圖10 智能顯示模塊的使用

軟件說明

軟件的程序處理流程為:


image.png                                               

圖11處理流程

image.png

圖12功能狀態切換流程

image.png

圖13 RTC設置與校時流程圖


圍繞著硬件的設計,在軟件方面也配以相應的函數來實現對應的功能。

1)OLED 屏顯示

void LCD_ShowChar(u16 x,u16 y,u8 num,u8 mode,u16 color)
{
   u8 temp;
   u8 pos,t;
   u16 x0=x;
   if(x>LCD_W-16||y>LCD_H-16) return;
   num=num-' ';
   LCD_Address_Set(x,y,x+8-1,y+16-1);
   if(!mode)
   {
        for(pos=0;pos<16;pos++)
        {
           temp=asc2_1608[(u16)num*16+pos];
           for(t=0;t<8;t++)
           {
              if(temp&0x01)LCD_WR_DATA(color);
              else LCD_WR_DATA(BACK_COLOR);
              temp>>=1;
               x++;
           }
           x=x0;
           y++;
       }
   }
   else
   {
        for(pos=0;pos<16;pos++)
        {
            temp=asc2_1608[(u16)num*16+pos];
            for(t=0;t<8;t++)
            {
                if(temp&0x01)LCD_DrawPoint(x+t,y+pos,color);
                temp>>=1;
            }
        }
    }
}
 
void LCD_ShowString(u16 x,u16 y,const u8 *p,u16 color)
{
    while(*p!='\0')
   {
        if(x>LCD_W-16){x=0;y+=16;}
        if(y>LCD_H-16){y=x=0;LCD_Clear(RED);}
        LCD_ShowChar(x,y,*p,0,color);
        x+=8;
        p++;
    }
}

為顯示漢字,需提取相應的字模,作品所用的字模由工具軟件PCtoLCD2002提取。

為顯示圖片,所用的圖片制備工具為Image2Lcd。

2)RTC計時

使用片內RTC顯示計時值得格式為:

Sun Sep 12 21:24:36 2021

為便于觀察,實現RTC電子時鐘顯示效果的程序為:

void LCD_ShowStringk(u16 x,u16 y,const u8 *p,u16 color)
{
        int j=0;
        x=84;
        y=56;
        while(j<24)
        {
            if(j==4)
            {
                y=20;
                x=84;
            }
            if(j==11)
            {
                y=40;
                x=84;
            }
            if(j==20)
            {
                y=4;
                x=84;
            }
            LCD_ShowChar(x,y,*p,0,color);
            x+=8;
            p++;
            j++;
        }
}


3)紅外遙控

在使用電視遙控器的情況下,以遙控器設置RTC的程序為:

  LCD_ShowString(4,4,"2000-00-00",WHITE);
  i=0;
  f=0;
  while(f<3)
  {
      test_irda();
      if(cs<11)
      {
        if(cs==0x0a)
        {
           LCD_ShowString(20,60,"OK",YELLOW);
           if(f==0) yy=2000+i;
           if(f==1) mm=i;
           if(f==2) dd=i;
           i=0;
           f++;
        }
        else
        {
           i=(i%10)*10+cs;
           LCD_ShowNum(20+f*24,4,i,2,WHITE);
           LCD_ShowString(20,60,"  ",YELLOW);
        }
        cs=12;
        rt_thread_mdelay(100);
    }  
  }

  ret = set_date(yy, mm, dd);


4)數字式傳感器檢測

讀取光照強度檢測值的函數為:

void Get_Sunlight_Value()
{
    int dis_data=0;
    float temp;
    char i=0;
    unsigned int sd;
    Single_Write_BH1750(0x01);
    Single_Write_BH1750(0x10);
    rt_thread_mdelay(180);
    Multiple_Read_BH1750();
    for(i=0;i<3;i++)   dis_data=BUF[0];
    dis_data=(dis_data <<8)+BUF[1];
    temp=(float)dis_data/1.2;
    sd=temp;
    OLED_ShowString(0,2,"Sunlight=     lx",16);
    OLED_ShowNum(72,2,sd,5,16);
}


讀取溫度與氣壓的函數為:

long bmp085ReadTemp(void)
{
      BMP085_Start();
      BMP085_Send_Byte(BMP085_SlaveAddress);
      while(BMP085_Wait_Ack()){}
      BMP085_Send_Byte(0xF4);
      while(BMP085_Wait_Ack()){}
      BMP085_Send_Byte(0x2E);
      while(BMP085_Wait_Ack()){}
      BMP085_Stop();
      rt_thread_mdelay(10);
      return (long) Multiple_read(0xF6);
}
 
long bmp085ReadPressure(void)
{
    long pressure = 0;
    BMP085_Start();
    BMP085_Send_Byte(BMP085_SlaveAddress);
    while(BMP085_Wait_Ack()){}
    BMP085_Send_Byte(0xF4);
    while(BMP085_Wait_Ack()){}
    BMP085_Send_Byte(0x34);
    while(BMP085_Wait_Ack()){}
    BMP085_Stop();
    rt_thread_mdelay(10);
    pressure = Multiple_read(0xF6);
    pressure&= 0x0000FFFF;
    return pressure;
}


5)模擬量采集

實現模擬量采集的程序為:

    adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME);
    if (adc_dev == RT_NULL)
    {
        while(1);
    }
    else{
    ret = rt_adc_enable(adc_dev, ADC_DEV_CHANNEL);
    }

    while(k==2)
    {
            value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL);
            LCD_ShowString(80,12, "value=",RED);
            LCD_ShowNum(128,12,value,5,RED);
            vol = value * REFER_VOLTAGE /CONVERT_BITS;
            LCD_ShowString(80,32, "U = . V",RED);
            LCD_ShowNum(104,32,vol/10,1,RED);
            LCD_ShowNum(120,32,vol%10,1,RED);
            rt_thread_mdelay(800);
            if(rt_pin_read(S2)==PIN_LOW) k=3;
            while(rt_pin_read(S2)==PIN_LOW);
            test_irda();
            if(cs==0x0b) k=3;

    }


6)TF卡讀寫

當前TF卡的圖片文件,實現圖片再現的顯示函數為:

 void LCD_Picturea(void)
 {
      int i;
      LCD_Address_Set(0,0,79,79);
      for(i=0;i<6400;i++)
      {
            LCD_WR_DATA8(gImage_cgq[i*2]);
            LCD_WR_DATA8(gImage_cgq[i*2+1]);
      }
}

7)串口通訊

在串口通信方面所用的是UART1,其接口如圖14所示。

image.png

圖14 串口引腳

通過對數據的協議封裝,可驅動MicroLab界面內的控件。

image.png

圖15 驅動控件

實現控件驅動的程序為:

    while(1)
    {
           xy(1,0,75); //濕度
           rt_thread_mdelay(50);
           x=vol*100/33;
           xy(2,0,80); //電壓
           rt_thread_mdelay(50);
           x=temperature/10;
           xy(0,0,x); //溫度
           rt_thread_mdelay(50);
           x=82;
           xy(0,1,x); //濕度
           rt_thread_mdelay(50);
           x=sd;
           xy(3,0,x); //光強
           rt_thread_mdelay(1000);
           x=pressure/100;
           xy(3,1,x); //氣壓
           rt_thread_mdelay(1000);
           Get_Sunlight_Value(0);
           value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL);
           vol = value * REFER_VOLTAGE /CONVERT_BITS;
           bmp085Convert();
    }


另外,使用串口可控制MP3語音模塊對當前所執行的功能進行語音提示。

此外,還可利用串口來控制智能顯示模塊來顯示檢測值及漢字數據波形。

image.png

圖16 智能顯示模塊界面

image.png

圖17 智能顯示模塊控制

演示效果

image.png

圖18主界面

image.png

圖19 RTC校時

image.png

圖20 電子時鐘

image.png

圖21 環境檢測

image.png

圖22 模擬量檢測

image.png

圖23 數據記錄

image.png

圖24 串口屏數據傳輸

image.png

圖25 語音提示

image.png

圖26 無線數據透傳


視頻:


附件

(10.36 MB)下載

評論區(0 )
主站蜘蛛池模板: 操操操干干干 | 婷婷在线网 | 女人张开腿男人猛桶视频 | 国产色啪午夜免费视频 | 成人午夜网站 | 美女张开大腿让男人捅 | 免费视频色 | 49pao强力免费打造在线高清 | 国产三级日本三级韩国三级在线观看 | 国产黄色高清视频 | 小屁孩cao大人免费网站 | 黑人破乌克兰美女处 | 天天操天天爽天天射 | 涩涩色中文综合亚洲 | 四虎影院美女 | 久久久久久久成人午夜精品福利 | 1024国产手机视频基地 | 五月停停 | 久久婷婷丁香七月色综合 | 日本视频一区二区三区 | 四虎影院一区二区 | 色精品一区二区三区 | 57pao强力打造免费高清高速 | 午夜视频免费在线播放 | 午夜精品视频在线 | 性xxxx黑人与亚洲 | 簧片免费视频 | 一级免费视频 | 神马午夜嘿嘿 | 午夜国产 | 午夜影院毛片 | 天天干夜夜看 | 在线观看886影院成人影院 | 美女视频黄又黄又免费高清 | 美女免费黄 | 日本不卡视频在线 | 特黄一级真人毛片 | 黄色大片在线免费观看 | 日本免费精品视频 | 干一干操一操 | 欧美社区|