<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

室內空氣質量檢測器的設計與實現

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

冬天我們大多會關閉門窗,而依靠暖通空調設備來維持室內溫度。而在保證居室溫度的同時,我們也希望保持居室內大氣環境的健康度。鑒于此,我們設計了一個簡單的室內空氣質量檢測器。

1、系統概述

??我們依靠暖通空調設備來維持室內溫度、濕度和通風水平,以保證居住者的健康和舒適。所以我們希望設計一個小巧的、簡單的、低成本室內空氣質量檢測器來隨時監測我們居室內的空氣質量。

??一般來說,我們關心的居室環境的溫度、濕度、可吸入顆粒物濃度、揮發性有機物的濃度等。當然還有二氧化炭濃度等其它一些參數,不過這次我們只考慮溫度、濕度、可吸入顆粒物濃度、揮發性有機物的濃度。

??對于這個室內空氣檢測器,我們的基本想法是設計一個可以快速成型、監測溫度、濕度、可吸入顆粒物濃度、揮發性有機物濃度的手持設備。這臺室內空氣質量檢測器溫濕度、可吸入顆粒物濃度、揮發性有機物濃度并可以實時顯示出來,并可以將檢測出的數據向外傳送。

2、硬件設計

??根據前面的描述,我們使用一個溫濕度傳感器來監測溫度和濕度、一個可吸入顆粒物激光檢測傳感器來檢測可吸入顆粒物濃度,一個VOC傳感器來檢測揮發性有機物濃度。

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

??HLPM025K3激光PM2.5傳感器數據接口為TTL串行口,所以我們采用USART1端口來與之通訊。SHT20傳感器的數據接口為I2C接口,我們使用I2C1來與之通訊。SGP40傳感器數據接口為I2C接口,我們使用I2C2來與之通訊。顯示屏我們采用了SPI接口的0.96寸OLED,所以我們使用SPI1端口來與之通訊。數據傳輸我們采用USART2端口來實現。所以我們設計室內空氣質量檢測器的組成結構圖如下:

??根據上述分析及結構示意圖,我們就能很容易的設計出室內空氣質量檢測器的控制板。

3、軟件實現

??我們已經描述了室內空氣質量檢測器的控制板及各部分組件,接下來我們需要實現相應的軟件功能。

3.1、數據采集

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

??HLPM025K3激光PM2.5傳感器通過串口輸出數據,包括PM2.5和PM10的數據,我們使用封裝的驅動程序可以很方便的獲取和解析對應的數據。具體的實現程序如下:

HlpmObjectType hlpm; //聲明對象

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

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

??同樣測量其它的參數也是使用我們封裝的驅動程序,如使用SHT20溫濕度傳感器獲取溫濕度數據也是一樣的。

/* 溫濕度數據處理 */
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,   //電池結束狀態配置
             SHT2xHEATERDISABLE, //加熱器是否啟用配置
             SHT2xOTPDISABLE,  //是否加載OTP配置
             WriteToSHT2x,    //寫操作指針
             ReadFromSHT2x,   //讀操作指針
             HAL_Delay);     //毫秒延時指針
}

3.2、數據顯示

??前述我們已經提到了使用0.96寸的OLED來顯示相應的數據。我們選用的是SPI接口的OLED顯示屏。其實0.96寸的OLED驅動程序我們也是封裝過的,直接使用就好。具體實現代碼如下:

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顯示控制相關GPIO初始化配置 */
  Amoled_GPIO_Initialization();
 
  /* SPI1端口初始化 */
  SPI1_Init_Configuration();
 
  /*OLED顯示屏對象初始化*/
  OledInitialization(&oled,      //OLED對象
             OLED_SPI,       //通訊端口
             0xFF,        //I2C設備地址
             AmOledWrite,        //寫數據函數
             AmOledChipReset,       //復位信號操作函數指針
             AmOledDCSelcet,        //DC信號控制函數指針
             NULL,       //SPI片選信號函數指針
             HAL_Delay       //毫秒延時函數指針
               );
}

3.3 、數據傳送

??數據的傳輸我們使用RS485的接口方式,應用層協議采用Modbus RTU協議。因為我們已經封裝過Modbus協議棧,并且已經開源到GitHub,所以我們直接使用Modbus協議棧來實現我們的數據傳送。

/* 上位通訊處理函數 */
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;
     }
  }
}

??關于數據傳送這塊,我們使用串口接收中斷來接收數據請求。當然也可以直接使用定期上傳的方式發送數據,則根據實際需求修改。

4、驗證測試

??我們已經設計了室內空氣質量檢測器的軟件和硬件,接下來我們運行看看其結果如何。我們將其運行起來,在我們的OLED軟件中設置為一次能顯示4行數據,具體結果如下圖:

??這只是一個小制作,實現了一些簡單的功能。在后續我們實際上可以將其功能擴展的更多。如將數據上傳到網絡實時查看居室內的大氣環境;根據PM2.5的情況控制空氣凈化器的工作等。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2529

    文章

    48452

    瀏覽量

    741698
  • 檢測器
    +關注

    關注

    1

    文章

    816

    瀏覽量

    47334
  • 硬件設計
    +關注

    關注

    18

    文章

    346

    瀏覽量

    44340
收藏 人收藏

    評論

    相關推薦

    【Tisan物聯網申請】室內空氣質量監測系統

    申請理由:監控室內空氣質量, 將傳感信息經由ESP8266處理后實時發送到服務,手機可以實時查看室內
    發表于 10-15 10:09

    Arduino檢測器:關注空氣質量

    Arduino檢測器:關注空氣質量
    發表于 05-10 06:56

    空氣質量傳感室內空氣清新機中的應用是什么?

    TGS2600空氣質量傳感有什么特點?空氣質量傳感室內空氣清新機中的應用是什么?
    發表于 06-16 08:35

    關于基于單片機的室內空氣質量檢測系統的設計

    前一段時間,做了一個關于基于單片機的室內空氣質量檢測系統的設計
    發表于 11-19 06:18

    怎樣去設計一個基于單片機的室內空氣質量檢測系統

    設計簡介:本設計是基于單片機的室內空氣質量檢測系統,主要實現以下功能:可通過LCD1602顯示當前甲烷和甲醛的值;可通過按鍵調整甲醛甲烷的最大值;可通過MS1100檢測甲醛的值;可通過
    發表于 02-18 06:10

    室內空氣質量檢測與傳感器的應用

    室內空氣品質對人的影響至關重要,利用傳感器檢測空氣質量是當今流行的一種方法,本文介紹了傳感器在空氣質量檢測方面的原理應用,分析了當前氣體傳感
    發表于 01-20 10:54 ?1897次閱讀

    GSM網絡的室內空氣質量監測系統設計_魏慶麗

    GSM網絡的室內空氣質量監測系統設計_魏慶麗
    發表于 03-19 18:58 ?2次下載

    室內空氣質量檢測系統設計

    室內空氣質量檢測
    發表于 06-19 16:20 ?35次下載

    空氣質量傳感器可以幫助我們有效改善室內空氣質量

    ,改善室內空氣質量同樣重要。空氣質量傳感器可幫助改善室內空氣質量。 什么是室內空氣質量 室內空氣質量(Indoor Air Quality,
    發表于 09-14 16:22 ?1079次閱讀

    如何用傳感器測量室內空氣質量與改善空氣質量

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

    室內空氣質量檢測設備

    室內空氣質量檢測設備是一種重要的室內空氣監測工具,它可以檢測室內空氣中的有害物質,從而保護人們免受空氣
    的頭像 發表于 04-17 16:55 ?1005次閱讀

    帶你了解室內空氣質量檢測設備的特點-歐森杰

    室內空氣質量檢測設備是一種用于監測室內空氣質量的儀器,它可以將測量到的室內空氣質量數據及時傳送給用戶,從而使用戶能夠更加全面地了解室內空氣
    的頭像 發表于 04-18 16:48 ?905次閱讀

    如何選擇合適的室內空氣質量檢測

    在市場上,各種品牌和型號的室內空氣質量檢測儀琳瑯滿目。那么,如何選擇一款合適的室內空氣質量檢測儀呢?本文將為您提供一些建議。 一、選擇檢測
    的頭像 發表于 06-28 09:44 ?883次閱讀

    室內空氣質量檢測儀的工作原理與應用

    隨著人們對健康的關注度日益提高,室內空氣質量檢測儀已成為越來越多家庭和企業關注的焦點。本文將介紹室內空氣質量檢測儀的工作原理和應用場景。 一、室內空
    的頭像 發表于 06-30 13:39 ?1720次閱讀

    如何使用空氣質量傳感器檢測新房室內空氣質量

    隨著人們對健康居住環境的日益關注,新房室內空氣質量成為了一個不可忽視的問題。室內空氣質量不僅關乎居住者的舒適度,更直接關系到人們的身體健康。因此,使用空氣質量傳感器來檢測新房
    的頭像 發表于 05-29 15:00 ?37次閱讀
    如何使用<b class='flag-5'>空氣質量</b>傳感器<b class='flag-5'>檢測</b>新房<b class='flag-5'>室內空氣質量</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>