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

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

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

環境是我們重要的生存條件,因而對它的了解也就是一件十分必要的事情。該作品以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 )
主站蜘蛛池模板: 妇少水多18P蜜泬17P亚洲乱 | 男污女XO猛烈的动态图 | 国产欧美国产综合第一区 | 成年女人色毛片免费 | 1000部做羞羞事禁片免费视频网站 | 成人毛片大全 | 亚洲欧洲精品成人久久曰影片 | 玩弄放荡人妻一区二区三区 | 亚洲午夜久久影院 | 国产成人一区免费观看 | 色噜噜狠狠色综合欧洲 | 成年人免费观看的视频 | 久久天天躁狠狠躁夜夜躁 | 日韩亚洲国产中文字幕欧美 | 国产成人免费片在线观看 | 国产成人精品免费青青草原app | YELLOW在线观看高清视频免费 | 91avcom| 国产在线一区观看 | 亚洲精品AV一区午夜福利 | 嫩草影院久久国产精品 | 强壮的公次次弄得我高潮韩国电影 | 国产普通话精品久久 | 怪物高h粗暴无尽 | 久久精品视在线-2 | china男士同性视频tv | 么么哒日本影院 | 国产人妻人伦精品98 | adc高清在线观看 | 在线播放国产视频 | 被肉日常np高h | 久久综合九色 | 国产亚洲欧美在线中文BT天堂网 | 欧美精品AV精品一区视频 | 人妻中文字幕乱人伦在线 | 麻豆影视在线直播观看免费 | 日本又黄又爽又色又刺激的视频 | 男人插曲女人的视频 | 影音先锋av丝袜天堂 | 亚洲一卡二卡三卡四卡2021麻豆 | 久久www免费人成高清 |