0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

室內(nèi)空氣質(zhì)量檢測器的設(shè)計(jì)與實(shí)現(xiàn)

CHANBAEK ? 來源:木南創(chuàng)智 ? 作者:尹家軍 ? 2022-12-13 17:17 ? 次閱讀

冬天我們大多會(huì)關(guān)閉門窗,而依靠暖通空調(diào)設(shè)備來維持室內(nèi)溫度。而在保證居室溫度的同時(shí),我們也希望保持居室內(nèi)大氣環(huán)境的健康度。鑒于此,我們設(shè)計(jì)了一個(gè)簡單的室內(nèi)空氣質(zhì)量檢測器。

1、系統(tǒng)概述

??我們依靠暖通空調(diào)設(shè)備來維持室內(nèi)溫度、濕度和通風(fēng)水平,以保證居住者的健康和舒適。所以我們希望設(shè)計(jì)一個(gè)小巧的、簡單的、低成本室內(nèi)空氣質(zhì)量檢測器來隨時(shí)監(jiān)測我們居室內(nèi)的空氣質(zhì)量。

??一般來說,我們關(guān)心的居室環(huán)境的溫度、濕度、可吸入顆粒物濃度、揮發(fā)性有機(jī)物的濃度等。當(dāng)然還有二氧化炭濃度等其它一些參數(shù),不過這次我們只考慮溫度、濕度、可吸入顆粒物濃度、揮發(fā)性有機(jī)物的濃度。

??對于這個(gè)室內(nèi)空氣檢測器,我們的基本想法是設(shè)計(jì)一個(gè)可以快速成型、監(jiān)測溫度、濕度、可吸入顆粒物濃度、揮發(fā)性有機(jī)物濃度的手持設(shè)備。這臺(tái)室內(nèi)空氣質(zhì)量檢測器溫濕度、可吸入顆粒物濃度、揮發(fā)性有機(jī)物濃度并可以實(shí)時(shí)顯示出來,并可以將檢測出的數(shù)據(jù)向外傳送。

2、硬件設(shè)計(jì)

??根據(jù)前面的描述,我們使用一個(gè)溫濕度傳感器來監(jiān)測溫度和濕度、一個(gè)可吸入顆粒物激光檢測傳感器來檢測可吸入顆粒物濃度,一個(gè)VOC傳感器來檢測揮發(fā)性有機(jī)物濃度。

??為了快速實(shí)現(xiàn)一個(gè)室內(nèi)空氣質(zhì)量檢測器,我們采用我們所熟知的傳感器及其他相應(yīng)設(shè)備來實(shí)現(xiàn)。我們使用SHT20來實(shí)現(xiàn)溫濕度數(shù)據(jù)的檢測;使用SGP40來檢測VOC濃度;使用HLPM025K3激光PM2.5傳感器來檢測可吸入顆粒物濃度;使用OLED來顯示數(shù)據(jù);使用串口來實(shí)現(xiàn)數(shù)據(jù)的傳送。而處理器我們采用STM32F103C8T6來實(shí)現(xiàn)。

??HLPM025K3激光PM2.5傳感器數(shù)據(jù)接口為TTL串行口,所以我們采用USART1端口來與之通訊。SHT20傳感器的數(shù)據(jù)接口為I2C接口,我們使用I2C1來與之通訊。SGP40傳感器數(shù)據(jù)接口為I2C接口,我們使用I2C2來與之通訊。顯示屏我們采用了SPI接口的0.96寸OLED,所以我們使用SPI1端口來與之通訊。數(shù)據(jù)傳輸我們采用USART2端口來實(shí)現(xiàn)。所以我們設(shè)計(jì)室內(nèi)空氣質(zhì)量檢測器的組成結(jié)構(gòu)圖如下:

??根據(jù)上述分析及結(jié)構(gòu)示意圖,我們就能很容易的設(shè)計(jì)出室內(nèi)空氣質(zhì)量檢測器的控制板。

3、軟件實(shí)現(xiàn)

??我們已經(jīng)描述了室內(nèi)空氣質(zhì)量檢測器的控制板及各部分組件,接下來我們需要實(shí)現(xiàn)相應(yīng)的軟件功能。

3.1、數(shù)據(jù)采集

??數(shù)據(jù)的采集主要包括三個(gè)方面:一是使用SHT20采集溫濕度數(shù)據(jù);二是使用SGP40來采集VOC濃度數(shù)據(jù);三是使用HLPM025K3激光PM2.5傳感器來檢測可吸入顆粒物濃度數(shù)據(jù)。這些數(shù)據(jù)的采集并不麻煩,在以前的文章中我們已經(jīng)簡述多這些設(shè)備的驅(qū)動(dòng)程序的設(shè)計(jì)。在這里我們直接使用已經(jīng)封裝過的驅(qū)動(dòng)程序來實(shí)現(xiàn)就可以了。

??HLPM025K3激光PM2.5傳感器通過串口輸出數(shù)據(jù),包括PM2.5和PM10的數(shù)據(jù),我們使用封裝的驅(qū)動(dòng)程序可以很方便的獲取和解析對應(yīng)的數(shù)據(jù)。具體的實(shí)現(xiàn)程序如下:

HlpmObjectType hlpm; //聲明對象

/*PM25數(shù)據(jù)采集處理*/
void Ampm25DataProcess(void)
{
  /*解析PM2.5和PM10的數(shù)據(jù)*/
  ParsingPMData(&hlpm);
  
  aPara.phyPara.pm10Value=hlpm.pm100;
  aPara.phyPara.pm25Value=hlpm.pm25;
}
 
/*PM25數(shù)據(jù)采集配置*/
void Ampm25Configuration(void)
{
  /* PM25相關(guān)GPIO初始化配置 */
  Ampm25_GPIO_Initialization();
  
  /* USART1端口初始化配置 */
  USART1_Init_Configuration();
  
  /*允許數(shù)據(jù)發(fā)送*/
  AMPM25_RUNNING_ENABLE();
  
  /*HLPM對象初始化函數(shù)*/
  HlpmInitialization(&hlpm);
}

??需要注意的是HLPM025K3激光PM2.5傳感器有一個(gè)測量控制信號(hào),必須提供高電平才會(huì)工作。

??同樣測量其它的參數(shù)也是使用我們封裝的驅(qū)動(dòng)程序,如使用SHT20溫濕度傳感器獲取溫濕度數(shù)據(jù)也是一樣的。

/* 溫濕度數(shù)據(jù)處理 */
void AmShtDataProcess(void)
{
  aPara.phyPara.temperature=GetSHT2xTemperatureValue(&sht,MEASURE_T_COMMAND_NOHOST);
  aPara.phyPara.humidity=GetSHT2xHumidityValue(&sht,MEASURE_RH_COMMAND_NOHOST);
}
 
/* 溫濕度配置 */
void AmShtConfiguration(void)
{
  /* I2C1端口初始化 */
  I2C1_Init_Configuration();
  
  /* 初始化配置SHT2x */
  SHT2xInitialization(&sht,        //SHT2X對象變量
             SHT2x_DPI_RH8_T12, //測量分辨率配置
             SHT2x_End_High,   //電池結(jié)束狀態(tài)配置
             SHT2xHEATERDISABLE, //加熱器是否啟用配置
             SHT2xOTPDISABLE,  //是否加載OTP配置
             WriteToSHT2x,    //寫操作指針
             ReadFromSHT2x,   //讀操作指針
             HAL_Delay);     //毫秒延時(shí)指針
}

3.2、數(shù)據(jù)顯示

??前述我們已經(jīng)提到了使用0.96寸的OLED來顯示相應(yīng)的數(shù)據(jù)。我們選用的是SPI接口的OLED顯示屏。其實(shí)0.96寸的OLED驅(qū)動(dòng)程序我們也是封裝過的,直接使用就好。具體實(shí)現(xiàn)代碼如下:

OledObjectType oled;  //聲明OLED對象

/*OLED顯示處理*/
void AmoledDisplayProcess(void)
{
  char temp[]="temp=%.2f";
  char humi[]="humi=%.2f";
  char pm25[]="PM2.5=%.2f";
  char pm10[]="PM10=%.2f";
  
  OledShowString(&oled,OLED_FONT_8x16,0,0,temp,aPara.phyPara.temperature);
  OledShowString(&oled,OLED_FONT_8x16,2,0,humi,aPara.phyPara.humidity);
  OledShowString(&oled,OLED_FONT_8x16,4,0,pm25,aPara.phyPara.pm25Value);
  OledShowString(&oled,OLED_FONT_8x16,6,0,pm10,aPara.phyPara.pm10Value);
  
}
 
/*OLED初始化配置*/
void AmoledConfiguration(void)
{
  /* OLED顯示控制相關(guān)GPIO初始化配置 */
  Amoled_GPIO_Initialization();
 
  /* SPI1端口初始化 */
  SPI1_Init_Configuration();
 
  /*OLED顯示屏對象初始化*/
  OledInitialization(&oled,      //OLED對象
             OLED_SPI,       //通訊端口
             0xFF,        //I2C設(shè)備地址
             AmOledWrite,        //寫數(shù)據(jù)函數(shù)
             AmOledChipReset,       //復(fù)位信號(hào)操作函數(shù)指針
             AmOledDCSelcet,        //DC信號(hào)控制函數(shù)指針
             NULL,       //SPI片選信號(hào)函數(shù)指針
             HAL_Delay       //毫秒延時(shí)函數(shù)指針
               );
}

3.3 、數(shù)據(jù)傳送

??數(shù)據(jù)的傳輸我們使用RS485的接口方式,應(yīng)用層協(xié)議采用Modbus RTU協(xié)議。因?yàn)槲覀円呀?jīng)封裝過Modbus協(xié)議棧,并且已經(jīng)開源到GitHub,所以我們直接使用Modbus協(xié)議棧來實(shí)現(xiàn)我們的數(shù)據(jù)傳送。

/* 上位通訊處理函數(shù) */
void AmUpperCommunication(void)
{
  uint16_t respondLength=0;
  if(amupcRxLength>=8)
  {
     uint8_t respondBytes[AMUPCRECEIVELENGTH];

      respondLength=ParsingMasterAccessCommand(amupcRxBuffer,respondBytes,amupcRxLength,aPara.phyPara.activeAddress);
     if(respondLength!=65535)
     {
       if(respondLength > 0)
       {
          AmupcSendByte(respondBytes,respondLength);
       }
       
       amupcRxLength=0;
     }
  }
}

??關(guān)于數(shù)據(jù)傳送這塊,我們使用串口接收中斷來接收數(shù)據(jù)請求。當(dāng)然也可以直接使用定期上傳的方式發(fā)送數(shù)據(jù),則根據(jù)實(shí)際需求修改。

4、驗(yàn)證測試

??我們已經(jīng)設(shè)計(jì)了室內(nèi)空氣質(zhì)量檢測器的軟件和硬件,接下來我們運(yùn)行看看其結(jié)果如何。我們將其運(yùn)行起來,在我們的OLED軟件中設(shè)置為一次能顯示4行數(shù)據(jù),具體結(jié)果如下圖:

??這只是一個(gè)小制作,實(shí)現(xiàn)了一些簡單的功能。在后續(xù)我們實(shí)際上可以將其功能擴(kuò)展的更多。如將數(shù)據(jù)上傳到網(wǎng)絡(luò)實(shí)時(shí)查看居室內(nèi)的大氣環(huán)境;根據(jù)PM2.5的情況控制空氣凈化器的工作等。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2542

    文章

    50241

    瀏覽量

    750074
  • 檢測器
    +關(guān)注

    關(guān)注

    1

    文章

    854

    瀏覽量

    47599
  • 硬件設(shè)計(jì)
    +關(guān)注

    關(guān)注

    18

    文章

    389

    瀏覽量

    44502
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Arduino檢測器:關(guān)注空氣質(zhì)量

    Arduino檢測器:關(guān)注空氣質(zhì)量
    發(fā)表于 05-10 06:56

    空氣質(zhì)量傳感室內(nèi)空氣清新機(jī)中的應(yīng)用是什么?

    TGS2600空氣質(zhì)量傳感有什么特點(diǎn)?空氣質(zhì)量傳感室內(nèi)空氣清新機(jī)中的應(yīng)用是什么?
    發(fā)表于 06-16 08:35

    關(guān)于基于單片機(jī)的室內(nèi)空氣質(zhì)量檢測系統(tǒng)的設(shè)計(jì)

    前一段時(shí)間,做了一個(gè)關(guān)于基于單片機(jī)的室內(nèi)空氣質(zhì)量檢測系統(tǒng)的設(shè)計(jì)
    發(fā)表于 11-19 06:18

    怎樣去設(shè)計(jì)一個(gè)基于單片機(jī)的室內(nèi)空氣質(zhì)量檢測系統(tǒng)

    設(shè)計(jì)簡介:本設(shè)計(jì)是基于單片機(jī)的室內(nèi)空氣質(zhì)量檢測系統(tǒng),主要實(shí)現(xiàn)以下功能:可通過LCD1602顯示當(dāng)前甲烷和甲醛的值;可通過按鍵調(diào)整甲醛甲烷的最大值;可通過MS1100檢測甲醛的值;可通過
    發(fā)表于 02-18 06:10

    室內(nèi)空氣質(zhì)量檢測與傳感的應(yīng)用

    室內(nèi)空氣品質(zhì)對人的影響至關(guān)重要,利用傳感檢測空氣質(zhì)量是當(dāng)今流行的一種方法,本文介紹了傳感空氣質(zhì)量
    發(fā)表于 01-20 10:54 ?2030次閱讀

    FPGA的室內(nèi)空氣質(zhì)量檢測與調(diào)節(jié)系統(tǒng)_王媛媛

    FPGA的室內(nèi)空氣質(zhì)量檢測與調(diào)節(jié)系統(tǒng)_王媛媛
    發(fā)表于 03-19 18:58 ?2次下載

    室內(nèi)空氣質(zhì)量檢測系統(tǒng)設(shè)計(jì)

    室內(nèi)空氣質(zhì)量檢測
    發(fā)表于 06-19 16:20 ?35次下載

    空氣質(zhì)量傳感可以幫助我們有效改善室內(nèi)空氣質(zhì)量

    ,改善室內(nèi)空氣質(zhì)量同樣重要。空氣質(zhì)量傳感可幫助改善室內(nèi)空氣質(zhì)量。 什么是室內(nèi)空氣質(zhì)量 室內(nèi)空氣質(zhì)量
    發(fā)表于 09-14 16:22 ?1176次閱讀

    CN0395:適用于室內(nèi)空氣質(zhì)量監(jiān)測的揮發(fā)性有機(jī)化合物檢測器

    CN0395:適用于室內(nèi)空氣質(zhì)量監(jiān)測的揮發(fā)性有機(jī)化合物檢測器
    發(fā)表于 03-20 14:49 ?8次下載
    CN0395:適用于<b class='flag-5'>室內(nèi)空氣質(zhì)量</b>監(jiān)測的揮發(fā)性有機(jī)化合物<b class='flag-5'>檢測器</b>

    如何用傳感測量室內(nèi)空氣質(zhì)量與改善空氣質(zhì)量

    據(jù)能源與清潔空氣研究中心 (CREA) 和綠色和平組織統(tǒng)計(jì)報(bào)告,空氣污染每年導(dǎo)致全球 450 萬人過早死亡。建筑材料、儲(chǔ)存的化學(xué)品、冷凝水、灰塵和油漆等各種來源都會(huì)影響室內(nèi)空氣質(zhì)量。這些污染物進(jìn)入
    的頭像 發(fā)表于 11-03 11:10 ?1093次閱讀
    如何用傳感<b class='flag-5'>器</b>測量<b class='flag-5'>室內(nèi)空氣質(zhì)量</b>與改善<b class='flag-5'>空氣質(zhì)量</b>

    室內(nèi)空氣質(zhì)量監(jiān)測開源分享

    電子發(fā)燒友網(wǎng)站提供《室內(nèi)空氣質(zhì)量監(jiān)測開源分享.zip》資料免費(fèi)下載
    發(fā)表于 02-06 14:24 ?2次下載
    <b class='flag-5'>室內(nèi)空氣質(zhì)量</b>監(jiān)測<b class='flag-5'>器</b>開源分享

    室內(nèi)空氣質(zhì)量檢測設(shè)備

    室內(nèi)空氣質(zhì)量檢測設(shè)備是一種重要的室內(nèi)空氣監(jiān)測工具,它可以檢測室內(nèi)空氣中的有害物質(zhì),從而保護(hù)人們免受空氣
    的頭像 發(fā)表于 04-17 16:55 ?2068次閱讀

    帶你了解室內(nèi)空氣質(zhì)量檢測設(shè)備的特點(diǎn)-歐森杰

    室內(nèi)空氣質(zhì)量檢測設(shè)備是一種用于監(jiān)測室內(nèi)空氣質(zhì)量的儀器,它可以將測量到的室內(nèi)空氣質(zhì)量數(shù)據(jù)及時(shí)傳送給用戶,從而使用戶能夠更加全面地了解室內(nèi)空氣
    的頭像 發(fā)表于 04-18 16:48 ?1574次閱讀

    室內(nèi)空氣質(zhì)量檢測儀的工作原理與應(yīng)用

    儀的主要功能是檢測室內(nèi)空氣中的有害物質(zhì),如甲醛、苯、TVOC、PM2.5等,以及環(huán)境參數(shù)如溫度、濕度、二氧化碳濃度等。它們通常采用以下幾種傳感: 1. 甲醛傳感:采用電化學(xué)傳感
    的頭像 發(fā)表于 06-30 13:39 ?2646次閱讀

    如何使用空氣質(zhì)量傳感檢測新房室內(nèi)空氣質(zhì)量

    隨著人們對健康居住環(huán)境的日益關(guān)注,新房室內(nèi)空氣質(zhì)量成為了一個(gè)不可忽視的問題。室內(nèi)空氣質(zhì)量不僅關(guān)乎居住者的舒適度,更直接關(guān)系到人們的身體健康。因此,使用空氣質(zhì)量傳感
    的頭像 發(fā)表于 05-29 15:00 ?308次閱讀
    如何使用<b class='flag-5'>空氣質(zhì)量</b>傳感<b class='flag-5'>器</b><b class='flag-5'>檢測</b>新房<b class='flag-5'>室內(nèi)空氣質(zhì)量</b>