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