色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美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 )
主站蜘蛛池模板: 女同给老师下媚药 | 成人天堂婷婷青青视频在线观看 | 国产真实强被迫伦姧女在线观看 | 伊人久久精品99热超碰 | 强开少妇嫩苞又嫩又紧九色 | 国产永久免费视频 | 孕妇高潮抽搐喷水30分钟 | 亚洲狠狠97婷婷综合久久久久 | 超污视频带污疼免费视频 | xxx性欧美在线 | 韩国甜性涩爱 | 性色AV一区二区三区咪爱四虎 | 成年人在线免费观看视频网站 | 好硬好湿好大再深一点动态图 | 亚洲 日本 天堂 国产 在线 | 99re热有精品国产 | 国产高清美女一级a毛片久久w | 一区二区三区内射美女毛片 | 久久青草免费91线频观看站街 | 在线中文字幕网站 | 57PAO强力打造高清免费 | 无码欧美XXXXX在线观看裸 | 国产WW久久久久久久久久 | 2020精品极品国产色在线 | 无码丰满人妻熟妇区 | 国产在线精品一区二区网站免费 | 麻豆天美国产一区在线播放 | 丫鬟粗大狠狠贯穿h | 亚洲精品无码不卡在线播放he | yellow免费观看完整版直播 | 国产九九熟女在线视频 | 琪琪的色原网站 | 本庄优花aⅴ全部在线影片 被滋润的艳妇疯狂呻吟白洁老七 | 国精产品一区一区三区有限 | 成人无码国产AV免费看 | xhameter中国| 九九夜夜妹子 | 小妇人电影免费完整观看2021 | 亚洲欧洲免费三级网站 | 亚洲成人99 | 亚洲视频在线观看地址 |