電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>空氣質(zhì)量分析儀開(kāi)源分享

空氣質(zhì)量分析儀開(kāi)源分享

2022-12-20 | zip | 0.15 MB | 次下載 | 免費(fèi)

資料介紹

描述

我們呼吸的空氣質(zhì)量對(duì)我們的健康非常重要。該設(shè)備分析我們家中的空氣質(zhì)量,并將數(shù)值記錄在 SD 卡中。通過(guò)分析存儲(chǔ)的值,我們知道參數(shù)隨時(shí)間的變化情況。

我將使用足夠便宜的溫度、濕度和空氣質(zhì)量傳感器用于此類項(xiàng)目,而不會(huì)犧牲太多精度。該項(xiàng)目背后的主要思想是了解空氣是否可呼吸。

選出的傳感器是:

  • DTH11 溫濕度傳感器,約。5.00 美元(不是很準(zhǔn)確但足夠好);
  • CCS811 空氣質(zhì)量傳感器模塊,約 19.95 美元。

平臺(tái):

之前用過(guò)Arduino Uno,感覺(jué)有些內(nèi)存限制,所以這次決定換一塊板子。由于我需要一張 SD 卡來(lái)記錄這些值,因此Adafruit Feather M0 Adalogger是價(jià)格合理的完美選擇(19.95 美元):

  • 256KB 閃存 + 32KB 內(nèi)存
  • 內(nèi)置 100mA 鋰聚合物充電器,帶充電狀態(tài) LED 指示燈
  • MicroSD 卡夾
  • 輕(5.3 克)
  • 小(51 毫米 x 23 毫米 x 8 毫米)

建造:

我首先從 https://www.arduino.cc/en/Main/Software下載最新版本的 Arduino IDE,選擇 Windows 安裝程序。安裝完成后,請(qǐng)務(wù)必仔細(xì)閱讀Adafruit Feather M0 Adalogger用戶手冊(cè)。

為了能夠在該板上使用 Arduino IDE,我們必須按照Adafruit Feather M0 Adalogger 用戶手冊(cè)中的描述配置 IDE 。需要將 URL 添加到新的 Additional Boards Manager URLs 選項(xiàng)。還需要其他簡(jiǎn)單的操作,所有操作都在手冊(cè)中進(jìn)行了描述,

配置好一切后,(不要忘記在 IDE 上選擇正確的板和端口)讓我們做一些簡(jiǎn)單的測(cè)試來(lái)檢查一切是否正常。我使用了這段代碼:

void setup() {
 pinMode(13, OUTPUT);// initialize digital pin 13 as an output.
}
void loop() {
 digitalWrite(13, !digitalRead(13)); // flash the LED with inverse value
 delay(500); // wait for a half a second
}

將此代碼發(fā)送到 FEATHER M0 ADALOGGER 后,我沒(méi)有發(fā)現(xiàn)任何錯(cuò)誤,電路板上的紅色 LED(連接到端口 13)開(kāi)始閃爍。一切都很好。

連接顯示器:

我連接到板上的第一件事是 OLED 顯示屏。

我以這種方式將顯示引腳連接到處理器板:

  • 顯示->板
  • GND 接地
  • Vin 變?yōu)?3V
  • DATA轉(zhuǎn)數(shù)字6
  • CLK轉(zhuǎn)數(shù)字10
  • D/C轉(zhuǎn)數(shù)字11
  • RST 轉(zhuǎn)數(shù)字 5
  • CS轉(zhuǎn)數(shù)字12

使用 OLED 顯示器文檔,安裝 Adafruit SSD1306 和 Adafruit GFX 庫(kù)。重新啟動(dòng) Arduino IDE。

最后你可以運(yùn)行 File→Sketchbook →Libraries→ Adafruit_SSD1306→ SSD1306_128x64_spi example

我有一個(gè)編譯錯(cuò)誤,抱怨顯示高度不正確。這是因?yàn)閹?kù)文件SSD1306.h是通用的,我必須對(duì)其進(jìn)行編輯,以選擇正確的顯示器高度 (64)。找到相關(guān)行并通過(guò)注釋不正確的行來(lái)選擇正確的值。

//   #define SSD1306_128_64
  #define SSD1306_128_32
//   #define SSD1306_96_16

由于一些沖突,我更改了默認(rèn)引腳。因此,我不得不更改示例代碼中的默認(rèn)代碼定義,以匹配我使用的引腳:

#define OLED_MOSI   6
#define OLED_CLK   10
#define OLED_DC    11
#define OLED_CS    12
#define OLED_RESET 5
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

注意:如果您打算在 A7 中使用電池電壓監(jiān)控,請(qǐng)勿使用引腳數(shù)字 9。數(shù)字9A7共用一個(gè)引腳。經(jīng)過(guò)幾個(gè)小時(shí)的糟糕 Vbat讀數(shù)和糟糕的顯示行為,我發(fā)現(xiàn)這很困難。

?
poYBAGOSf2SAI2I5AAFIY501hb4337.png
D9 使用與 A7 相同的引腳
?

當(dāng)顯示正常工作時(shí),您可以繼續(xù)下一節(jié):

連接傳感器:

根據(jù)示意圖連接DHT 11 。不要用板子上的D13來(lái)讀取DHT11的數(shù)據(jù),D13腳有一個(gè)LED常接,呈低阻抗,不適合這種用途)。

?
pYYBAGOhGNuARvRKAAAH2oTO4NE539.png
PIN D13 有一個(gè)永久連接的 LED
?

我們必須使用其中一個(gè)免費(fèi)的數(shù)字引腳。我們排除了 D9,因?yàn)樗c用于讀取 Vbat 的 A7 沖突,而 D13 則因?yàn)?LED 電路。我將使用 D19 連接到 DHT11 引腳 2,并通過(guò)其單線協(xié)議讀取溫度和濕度。D19在板子上標(biāo)為A5,但也可以作為Digital 19使用。不要忘記在軟件上定義DHTpin:

#define DHTPIN 19
?
poYBAGOhGOKAW5RhAAA18mvHnzo465.png
Adalogger 模擬引腳也可以用作數(shù)字
?

CCS811連接:

  • Vin 變?yōu)?3.3V 線,
  • GND去GND線,
  • SDA 轉(zhuǎn)到 Adalogger SDA
  • SCL 轉(zhuǎn)到 Adalogger SCL
  • /WAKE 到 GND

我使用了 Adafruit_CCS811 庫(kù) version=1.0.0 并且一切正常。

SD卡

為了能夠記錄整個(gè)時(shí)間的值,我使用了一張舊的 512MB 美元卡。這個(gè) Adalogger 板非常棒,因?yàn)樗呀?jīng)有一個(gè)美元卡插槽。我在這里使用 Arduino 庫(kù)版本 1.2.2。和引腳 D4 作為 SD 的 CS 引腳。在下圖中,我展示了 SD 卡中數(shù)據(jù)的格式。逗號(hào)分隔,方便電子表格軟件打開(kāi)分析。

?
pYYBAGOhGO6AOS1pAAFO5n-w0K0384.png
由軟件 v 2.0 創(chuàng)建的 SD 文件
?

在此示例中,每 5 分鐘(300 秒)記錄一次數(shù)據(jù)。這個(gè)時(shí)間值很容易在軟件中改變,通過(guò)改變行:

#define SD_write_interval 300 //seconds between SD writes

將 300 替換為您希望 SD 寫入之間的秒數(shù)。就這么簡(jiǎn)單。

?
pYYBAGOhGPiARHgAAAEy9iILVgs368.png
電子表格導(dǎo)入后的SD數(shù)據(jù)
?

該文件采用 csv 格式(逗號(hào)分隔值),這意味著所有值均以逗號(hào)分隔。它可以通過(guò)電子表格輕松導(dǎo)入以進(jìn)行進(jìn)一步分析。

實(shí)時(shí)時(shí)鐘

時(shí)間戳對(duì)于數(shù)據(jù)記錄器來(lái)說(shuō)是必不可少的。目前,我正在使用和評(píng)估帶有 RTCZero 庫(kù)的內(nèi)部 RTC。

#include  //author=Arduino version=1.5.2
#include  //author=Adafruit version=1.2.1

但是我使用 RTClib 作為補(bǔ)充。對(duì)于 RTC 初始化,我使用以下代碼:

 //RTC initialization
 DateTime now;
 now = (DateTime(F(__DATE__), F(__TIME__))); //compile time
 now=now+20; //20s compensation for Compile + Reset time
 rtc.begin(); // initialize RTCZero
 rtc.setTime(now.hour(), now.minute(), now.second());
 rtc.setDate(now.day(), now.month(), now.year()-2000); 

接下來(lái)要做的就是想辦法調(diào)整時(shí)間。敬請(qǐng)關(guān)注!

LED

如果用戶不知道所有這些空氣質(zhì)量參數(shù)的限制是什么,并且不關(guān)心這些數(shù)字,最好只告訴他它們是否安全。使用 3 個(gè) LED 是一個(gè)更簡(jiǎn)單的界面,如果用戶只想知道他/她是否可以呼吸那種空氣,則更有用。這就是我決定使用這 3 個(gè)具有不同警報(bào)級(jí)別的 LED 的原因:綠色、黃色或紅色。觸發(fā)每個(gè)警報(bào)的級(jí)別可根據(jù)當(dāng)?shù)胤ㄒ?guī)進(jìn)行編程。要更改級(jí)別,只需編輯以下代碼行:

//Levels
//temp levels
#define low_temp_level_1 18
#define low_temp_level_2 12
#define low_temp_level_3 8
#define high_temp_level_1 29
#define high_temp_level_2 35
#define high_temp_level_3 40
//rh levels
#define low_rh_level_1 40
#define low_rh_level_2 30
#define low_rh_level_3 20
#define high_rh_level_1 70
#define high_rh_level_2 80
#define high_rh_level_3 90
//co2 levels
#define co2_level_1 1000
#define co2_level_2 1500
#define co2_level_3 3000
//TVOC levels
#define tvoc_level_1 100
#define tvoc_level_2 500
#define tvoc_level_3 1000

顯示的值只是指示性的,我使用它們只是為了測(cè)試目的

去!

好吧,我仍處于評(píng)估階段,希望有人愿意構(gòu)建一個(gè)類似的電路來(lái)幫助我改進(jìn)這個(gè)有用的數(shù)據(jù)記錄器。

讓我們下載代碼并享受樂(lè)趣,閱讀那些二氧化碳值。我不得不打開(kāi)一些窗戶來(lái)改善空氣質(zhì)量:)

不要忘記在開(kāi)機(jī)后等待 20 分鐘,以獲得良好的 CCS811 讀數(shù)。(CCS811 在首次使用前也需要 48 小時(shí)的老化時(shí)間。)

玩得開(kāi)心


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開(kāi)發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)