使用Adafruit的SSD1306庫(kù)與XIAO SAMD21, BME680傳感器和12864 OLED制作一個(gè)室內(nèi)空氣質(zhì)量監(jiān)測(cè)儀
建立顯示室內(nèi)空氣質(zhì)素的空氣質(zhì)素監(jiān)測(cè)系統(tǒng)!
本項(xiàng)目為使用廉價(jià)組件的室內(nèi)空氣質(zhì)量監(jiān)測(cè)系統(tǒng)。家用室內(nèi)空氣質(zhì)量檢測(cè)儀的售價(jià)為50美元,但大多數(shù)設(shè)備的價(jià)格都在100美元以上。本項(xiàng)目向您展示了如何構(gòu)建一個(gè)設(shè)備,該設(shè)備將根據(jù)室內(nèi)環(huán)境中存在的總揮發(fā)性有機(jī)化合物(TVOCs)顯示室內(nèi)空氣質(zhì)量讀數(shù)。
BME680傳感器專為測(cè)量靜態(tài)室內(nèi)空氣質(zhì)量而設(shè)計(jì),也可高度精確地測(cè)量氣壓變化。為了提高能見度,選擇了一個(gè)小的OLED。XIAO SAMD21的DAC、QT Touch和板載LED功能允許該項(xiàng)目在未來(lái)的版本中添加更多的交互功能。
本設(shè)計(jì)采用0.96英寸128x64 OLED顯示屏,傳感器和顯示屏均通過I2C連接到XIAO SAMD21上。
組件列表| DIY-AIQ項(xiàng)目
MCU: Seeed Studio XIAO SAMD21 (Seeeduino)
傳感器:BME680
屏幕:0.96“藍(lán)/黃128x64像素OLED
XIAO SAMD21單片機(jī)|價(jià)格小,功能大
Seeed Studio的XIAO SAMD21采用ARM Cortex M0+設(shè)計(jì),具有“多個(gè)開發(fā)接口:11個(gè)數(shù)字/模擬引腳,10個(gè)PWM引腳,1個(gè)DAC輸出,1個(gè)SWD Bonding pad接口,1個(gè)I2C接口,1個(gè)UART接口,1個(gè)SPI接口”。
XIAO SAMD21也有4個(gè)板載led !DAC, QT Touch和led的組合似乎非常適合將聲音,觸覺和視覺提示結(jié)合在一個(gè)負(fù)擔(dān)得起的包中的項(xiàng)目。進(jìn)入引導(dǎo)加載程序模式需要手動(dòng)縮短下圖中可見的兩個(gè)pad(上面鏈接中的指南)。
在使用更強(qiáng)大的XIAO ESP32-S芯片后,我選擇嘗試XIAO SAMD21,并欣賞整個(gè)XIAO陣容的功能范圍。
BME680傳感器- TVOCs和氣壓
博世BSEC算法測(cè)量揮發(fā)性有機(jī)化合物,根據(jù)uThing文檔中這篇文章中描述的“呼吸揮發(fā)性有機(jī)化合物”。靜態(tài)室內(nèi)空氣質(zhì)量指標(biāo)是基于TVOC水平博世文檔中指出,iaqAccuracy功能將在校準(zhǔn)后顯示“2”,但我還沒有看到這一點(diǎn)。調(diào)諧有這篇很棒的文章,其中有關(guān)于由于tvoc導(dǎo)致的室內(nèi)空氣質(zhì)量差的風(fēng)險(xiǎn)的進(jìn)一步信息。通風(fēng)是室內(nèi)空氣質(zhì)量的重要組成部分,測(cè)量TVOC水平可以衡量暖通空調(diào)系統(tǒng)是否有效。
事實(shí)上,在校準(zhǔn)期后,iaaqaccuracy指標(biāo)并沒有顯示“2”,這導(dǎo)致這個(gè)帖子在Adafruit的論壇上陷入了一場(chǎng)小而活躍的火焰之戰(zhàn)。用戶snurt實(shí)際上指責(zé)Adafruit損壞了傳感器,并得到了適當(dāng)?shù)幕貞?yīng)。我的觀點(diǎn)是iaqAccuracy度量是有缺陷的,我計(jì)劃在博世論壇上發(fā)表這一觀點(diǎn)。
BME680傳感器提供高度精確的氣壓讀數(shù),可用于創(chuàng)建天氣預(yù)報(bào)指標(biāo)。自9月底以來(lái),我一直在使用本教程中展示的DIY-IAQ監(jiān)視器,并且對(duì)其性能非常滿意。
網(wǎng)上有人批評(píng)該傳感器給出的溫度讀數(shù)比預(yù)期的高1攝氏度。雖然超出了本教程的范圍,但如果您希望在顯示讀數(shù)之前調(diào)整讀數(shù),則似乎可以優(yōu)化傳感器庫(kù)中的算法。
0.96英寸128x64 OLED顯示屏
我選擇了一個(gè)藍(lán)色/黃色像素的版本,任何版本都可以。這是一個(gè)相當(dāng)常見的4引腳I2C顯示器,制造商之間可能存在差異。我從亞馬遜采購(gòu)了這個(gè)項(xiàng)目的顯示器,每個(gè)單位成本不到3美元。我在這個(gè)Arduino項(xiàng)目中使用了Adafruit_SSD1306庫(kù),它工作得很好。該庫(kù)中包含許多文件,這就是為什么repo代碼庫(kù)目前只包含sketch和bsech。
博世代碼和文檔的挑戰(zhàn)
我沒有充分考慮代碼許可就購(gòu)買了BME680傳感器。BSD-3-Clause許可證很好,因?yàn)橹灰谌魏伟l(fā)行版中包含大約40行的頭文件,它就是開源的。
到這里查看博世Sensortec關(guān)于BME680的所有文檔和代碼,您需要簽署一份聲明。我的存儲(chǔ)庫(kù)包括bsech和兩個(gè)參考文檔。博世包括60pp的BSEC集成指南,作為zip文件的一部分,該文件描述了對(duì)傳感器的粒度控制和數(shù)據(jù)結(jié)構(gòu)示例。
匯編說明|第一次構(gòu)建
DIY-IAQ監(jiān)視器的第一個(gè)構(gòu)建使用半面包板來(lái)容納XIAO SAMD21 MCU, BME680傳感器和0.96“128 × 64 OLED顯示器。如上所述,將XIAO的A4/A5引腳連接到BME680的SDA/SCL引腳。從面包板上的顯示器直接連接BME680的SDA/SCL引腳后面的SDA/SCL引腳。
將XIAO的GND和3v3引腳連接到面包板導(dǎo)軌上。將顯示器和傳感器的VCC和GND引腳連接到導(dǎo)軌上,以便它們由XIAO供電。將USB- c電纜插入XIAO,然后插入U(xiǎn)SB端口或移動(dòng)電源。初次使用時(shí),BME680通過加熱傳感器48-72小時(shí)來(lái)校準(zhǔn)自身。校準(zhǔn)后,“iaqAccuracy”度量從“0”移動(dòng)到“1”大約5分鐘后,XIAO插入電源。
數(shù)據(jù)收集和其他功能
我現(xiàn)在正在學(xué)習(xí)MQTT,使用在線平臺(tái)記錄環(huán)境數(shù)據(jù)。我的目標(biāo)是創(chuàng)建一個(gè)小的功能列表,以改進(jìn)顯示并添加天氣預(yù)報(bào)指標(biāo)。XIAO SAMD21可以作為DAC,為項(xiàng)目添加音頻功能。
當(dāng)我使用Anycubic樹脂打印機(jī)時(shí),diy室內(nèi)空氣質(zhì)量顯示室內(nèi)空氣質(zhì)量讀數(shù)升高。室內(nèi)空氣質(zhì)量水平顯示,水溶性樹脂的結(jié)果比紫外線樹脂低,我在室內(nèi)使用紫外線樹脂很舒服,因?yàn)槭覂?nèi)空氣質(zhì)量不超過110。這一證據(jù)加強(qiáng)了等待打印其他材料如ASA和ABS的重要性,直到我安裝排氣和/或過濾器。我相信BME680傳感器總體上是準(zhǔn)確的。
我創(chuàng)建了一個(gè)基本的enclosure,在修改USB-C Port后會(huì)將STL文件添加到這個(gè)項(xiàng)目中。我正在設(shè)計(jì)一個(gè)頂部的外殼,可以在清晰的PLA或切割出丙烯酸打印。請(qǐng)注意,XIAO SAMD21沒有電源調(diào)節(jié)功能,因此添加電池并通過XIAO上的USB-C端口充電是不安全的。
本文編譯自hackster.io