資料介紹
描述
什么
本指南介紹了一種 Raspberry Pi 設(shè)備,該設(shè)備可確定大氣顆粒物(空氣污染的主要成分)在給定環(huán)境中的存在水平。
這里使用的傳感器足夠精確,可以根據(jù)公認(rèn)的機(jī)構(gòu)報(bào)告生成測(cè)量值。它還包括一個(gè)集成環(huán)境傳感器,可以測(cè)量溫度、濕度和氣壓 (T/H/P)。
該設(shè)備運(yùn)行以 Python 編寫的以傳感器為中心的定制數(shù)據(jù)流平臺(tái),可輕松用于任何類似 Debian 的 Linux 發(fā)行版。
該平臺(tái)包括一個(gè)庫和工具,用于配置和管理傳感器并發(fā)布它們的數(shù)據(jù),以及在數(shù)據(jù)基礎(chǔ)設(shè)施的其他地方(即不在傳感器設(shè)備上)使用的工具,以有用的方式轉(zhuǎn)換、解釋和保存生成的傳感器數(shù)據(jù)流.
如何:硬件
我不會(huì)詳細(xì)介紹如何設(shè)置 Raspberry Pi 、在其上安裝 Raspbian 、啟用 I2C 接口、在首次啟動(dòng)時(shí)啟用 WiFi 或在首次啟動(dòng)時(shí)啟用 SSH,因?yàn)槠渌艘呀?jīng)很好地完成了這項(xiàng)工作的確。但是,在本指南的其余部分,您將需要所有這些。
Sensirion SPS30顆粒物傳感器使用 JST 的ZH 型 1.5 毫米間距連接器(數(shù)據(jù)表),為此在美國采購預(yù)制電纜組件被證明是一項(xiàng)重大挑戰(zhàn)!
Sensirion 的支持團(tuán)隊(duì)竭盡全力提供幫助,但他們的建議只讓我找到了裸露的母連接器,我既沒有專業(yè)知識(shí)也沒有材料可以將其變成可用的組件。幸運(yùn)的是,我最終能夠找到我需要的東西。
我還想在設(shè)備中加入環(huán)境感應(yīng)功能,最近我剛好在漂亮的分線板上訂購了一些BME280傳感器。
為了促進(jìn)設(shè)備之間的模塊化和易用性,我更喜歡非永久性連接方法,例如公/母杜邦式接頭和連接器,這就是我在這里使用的方法。
所需的大部分結(jié)構(gòu)非常簡單:我將 BME280 焊接到一個(gè)小型永久原型板上,Raspberry Pi 的跳線進(jìn)入該板 - 攜帶 3V3 和 5V 分別滿足 BME280 和 SPS30 - 以及 ZH -5 組件(當(dāng)然只攜帶 5V 電源)連接到 SPS30。
(請(qǐng)注意上面標(biāo)題中的重要更正:非常感謝ti-tipakorn提醒我!有時(shí)間我會(huì)更新 Fritzing 圖。)
I2C 總線的主要優(yōu)點(diǎn)之一是設(shè)備尋址,它允許許多設(shè)備共享同一條物理總線,在這里我只需要為這兩個(gè)設(shè)備將五個(gè)引線(5V
、3V3
、GND
、SDA
& SCL
)帶到我的板上。
以防圖表沒有完全清楚,Pi 的引腳連接如下(指向pinout.xyz的鏈接更多信息):
-
5V
從引腳 2 -
3V3
從引腳 1 -
SDA
來自引腳 3(Broadcom 引腳 2) -
SCL
來自引腳 5(Broadcom 引腳 3) -
GND
從任何接地引腳。上圖顯示為引腳 14 以更好地適應(yīng)圖表,但“zed”實(shí)際上使用引腳 6,因?yàn)樗罱咏?I2C 引腳。
請(qǐng)務(wù)必注意,SPS30 是一種雙模式設(shè)備,因此可以在UART (串行)或 I2C 模式下運(yùn)行。因此,必須注意注意接口規(guī)范中突出顯示的注釋,正如我在上面通過將引腳4和5 連接到GND
:
我使用這塊直接暴露 MicroUSB 電源和接地的小板,這樣我就可以避免在 RPi 本身上使用 MicroUSB 電源連接器,這不會(huì)讓它以所需的方向安裝在外殼中。
(精明的讀者可能會(huì)注意到這是一個(gè)更新:最初的構(gòu)造使用的是 Adafruit Powerboost 1000C,因?yàn)槲疫€沒有可用的 MicroUSB 分線板。項(xiàng)目照片確實(shí)顯示了“zed”,而是使用了 Powerboost 1000C。好眼力!)
說到外殼:我發(fā)現(xiàn)我當(dāng)?shù)匚褰鸬甑膽敉怆娖鞑糠诸愃朴谥圃焐痰奶枪辏好看挝以谀莻€(gè)過道上徘徊時(shí)都能找到靈感。
在這種情況下,我選擇了一個(gè)2 出口防風(fēng)雨電氣導(dǎo)管盒,兩個(gè)出口彼此相對(duì)(180 度):我希望這會(huì)產(chǎn)生通過外殼的被動(dòng)氣流。我還沿著兩個(gè)出口之間的軸安裝了 SPS30,直接沿著氣流的路徑(SPS30 的入口是綠色部分中的白色小矩形,就在黑色風(fēng)扇罩下方)。
所有東西都塞進(jìn)了外殼,用一點(diǎn)管道和大猩猩膠帶“固定”,并掛在天花板平面以下幾英寸(或:“頭部水平”以上幾英尺)的墻上。
這種安裝策略以及外殼有助于確保傳感器盡可能少地受到外部環(huán)境短期變化的影響。
如何:軟件
作為一名接觸過大量硬件的軟件工程師,我一直很欣賞硬件,但我自己從來沒有做過太多的事情。今年,我開始著手改變這種狀況,從我閑置多年的備用 RPi 開始。
那次小小的探索逐漸失控,哪里有軟件可寫,我自然而然地傾向于寫它。這就是RPJiOS的由來。
您可能會(huì)注意到,我已經(jīng)省略了有關(guān)軟件本身的許多細(xì)節(jié):我正在雄心勃勃地計(jì)劃一個(gè)完全基于此的單獨(dú)項(xiàng)目指南!請(qǐng)繼續(xù)關(guān)注(祝我好運(yùn))...
進(jìn)入設(shè)置。以下所有命令都必須在 Raspberry Pi 本身上運(yùn)行。在首次啟動(dòng)時(shí)啟用WiFi和SSH很容易。
以下內(nèi)容已經(jīng)過測(cè)試可以正常工作 - 在William R確定并詳細(xì)說明了對(duì)過程的關(guān)鍵修復(fù)之后,非常感謝!- 在 Pi Zero W 上全新安裝Raspbian Stretch Lite 2018-11-13 。
-
你需要
git
這個(gè),所以如果你還沒有安裝它,請(qǐng)務(wù)必先安裝它:
$ sudo apt install -y git
- 克隆存儲(chǔ)庫:
$ git clone https://github.com/rpj/rpi.git
-
在克隆創(chuàng)建的新目錄中,運(yùn)行:
rpi
setup.sh
$ cd rpi/
$ ./setup.sh
請(qǐng)不要以超級(jí)用戶 (root) 身份調(diào)用。setup.sh
該腳本可能會(huì)請(qǐng)求sudo
您訪問所需實(shí)用程序的特定安裝,但總的來說您不想以超級(jí)用戶身份運(yùn)行該腳本。
安裝腳本可能需要一段時(shí)間,具體取決于安裝的干凈程度和設(shè)備的速度:在全新安裝操作系統(tǒng)的零 W 上大約需要 20 分鐘(標(biāo)準(zhǔn)住宅互聯(lián)網(wǎng)連接)。
一旦設(shè)置成功(如果不成功,請(qǐng)聯(lián)系并告訴我!):
-
創(chuàng)建一個(gè)
config.json
啟用 SPS30@0.5Hz 和 BME280@1Hz 的文件,如下所示:
{
"redis_config": { "host": "localhost" },
"sensors": [
{
"name": "BME280",
"config": { "frequency" : 1 }
},
{
"name": "SPS30",
"config": {
"frequency": 0.5,
"shared_object_path": "CHECKOUT_PATH/rpi/env/lib/python2.7/site-packages/rpjios/devices/libsps30.so"
}
}
]
}
(重要:您必須替換為您最初將 git 存儲(chǔ)庫克隆到CHECKOUT_PATH
的封閉路徑,例如。總有一天我會(huì)解決這個(gè)問題。) /home/pi
(config.json
還有許多未說明的其他選項(xiàng),請(qǐng)參見此處的示例。)
如果您在查找libsps30.so
驅(qū)動(dòng)程序庫時(shí)遇到問題(我聽說它可能沒有像應(yīng)該的那樣由setup.sh構(gòu)建),我已經(jīng)為最近的 Raspbian 操作系統(tǒng)發(fā)布了二進(jìn)制文件的預(yù)構(gòu)建版本。只需下載該文件并將其放置在您如上配置的目錄中(如果按照此示例進(jìn)行操作),您就大功告成了!shared_object_path
/home/pi/rpi/env/lib/python2.7/site-packages/rpjios/devices/
-
激活 python 虛擬環(huán)境,設(shè)置你的路徑
REDIS_URL
并bin/sensors-src
以你的config.json
路徑作為唯一參數(shù)運(yùn)行。您會(huì)看到正在初始化的傳感器:
$ source env/bin/activate
(rpjios venv) $ export REDIS_URL="redis://localhost"
(rpjios venv) $ ./bin/sensors-src config.json
* Loading configuration from config.json
* Using Redis configuration: {u'host': u'localhost'}
* Configured sensors: BME280, DS18S20 (disabled), NetInfo (disabled), SysInfo (disabled), TEPT5700 (disabled), LM335 (disabled), LM335 (disabled), Soil (disabled), DHTXX (disabled), SPS30
* Loaded 'BME280' type=BME280 channel=zed:sensor:BME280>:
{'name': 'BME280', 'hostname': 'zed', 'frequency': '1Hz', 'location': None, 'calibration_data': {'dig_H1': 75, 'dig_H3': 0, 'dig_H2': 332, 'dig_H5': 50, 'dig_H4': 400, 'dig_H6': 30, 'dig_P9': 5000, 'dig_P8': -12000, 'dig_T1': 27678, 'dig_T3': 50, 'dig_T2': 26477, 'dig_P1': 37060, 'dig_P3': 3024, 'dig_P2': -10666, 'dig_P5': -2, 'dig_P4': 6811, 'dig_P7': 12300, 'dig_P6': -7}, 'channel': 'zed:sensor:BME280', 'description': 'Bosch I2C low power pressure, temperature & humidity sensor'}
* Loaded 'SPS30' type=SPS30 channel=zed:sensor:SPS30>:
{'name': 'SPS30', 'hostname': 'zed', 'driver_version': '1.0.0-6-g836d5fc', 'frequency': '0.5Hz', 'location': None, 'serial_number': "'7B4242424242D1'", 'channel': 'zed:sensor:SPS30', 'description': 'Sensiron SPS30 particulate matter sensor'}
...
-
要輕松驗(yàn)證數(shù)據(jù)是否按預(yù)期流動(dòng),請(qǐng)
redis-cli
在本地使用:
$ redis-cli
127.0.0.1:6379> PSUBSCRIBE *
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "*"
3) (integer) 1
1) "pmessage"
2) "*"
3) "zed:sensor:BME280"
4) "{\"source\": \"zed:sensor:BME280\", \"type\": \"VALUE\", \"ts\": 1546035881.156941, \"value\": {\"temperature\": 82.04924976702895, \"timestamp\": 1546035881.0, \"humidity\": 35.60792598092815, \"pressure\": 1018.030467350658}}"
...
(您會(huì)在這里看到 RPJiOS 使用命名空間約定“ hostname:type:sensorname
”作為它發(fā)布的鍵名。)
-
要輕松地將發(fā)出的傳感器數(shù)據(jù)轉(zhuǎn)換和/或轉(zhuǎn)發(fā)到另一個(gè)
redis
實(shí)例,請(qǐng)使用該downsample
工具。 -
此示例僅將本地(選項(xiàng))SPS30 傳感器 ( ) 中的所有內(nèi)容轉(zhuǎn)發(fā)到
-i
名為“ frank” ( ) 的主機(jī)上,頻率為傳感器發(fā)送數(shù)據(jù) ( ) 的十分之一:-p
-o
-r
(rpjios venv) $ ./bin/downsample -i "redis://localhost" -o "redis://frank" -r 10 -p "*SPS30*"
(downsample
非常靈活,有多種使用模式,更多示例可以在 中找到README
。但最終,來源是您最好的信息來源。絕對(duì)是雙關(guān)語。)
- 當(dāng)然,您可能希望在虛擬環(huán)境之外運(yùn)行這些命令,例如在啟動(dòng)時(shí)。沒問題!虛擬環(huán)境中包含的 python 二進(jìn)制文件使這變得簡單:
(rpjios venv) $ which python
/home/pi/rpi/env/bin/python
使用此路徑而不是系統(tǒng) python 來調(diào)用上面討論的任何工具,您將準(zhǔn)備就緒。
守護(hù)進(jìn)程留給讀者作為另一個(gè)練習(xí),因?yàn)楦鶕?jù)您的需要,有多種方法可以實(shí)現(xiàn)它。
最后,稍后您會(huì)看到這些數(shù)據(jù)通過管道傳輸?shù)?/font>ThingSpeak以進(jìn)行聚合、可視化、分析和操作。
實(shí)現(xiàn)此目的的工具非常簡單,并且在大約一個(gè)小時(shí)內(nèi)完成編寫,說明了將新功能附加到數(shù)據(jù)流的輕松程度。
要運(yùn)行它,請(qǐng)確保您處于虛擬環(huán)境中(或使用適當(dāng)?shù)?python 二進(jìn)制文件)并使用通道 ID 和寫入 API 密鑰作為僅有的兩個(gè)命令行參數(shù):
(rpjios venv) $ ./bin/thingspeak CHANNEL_ID WRITE_API_KEY
您可能已經(jīng)注意到, RPJiOS 還支持許多其他傳感器類型,包括一些不需要額外硬件的“虛擬”傳感器,例如Sys和Net 。試試看吧!
教訓(xùn)
- SPS30 非常靈敏!盡管我盡最大努力將它與日常人類活動(dòng)隔離開來,但它非常清楚地知道我們何時(shí)忙碌和走動(dòng),無論我們?cè)诜孔拥哪膫€(gè)位置。非常令人印象深刻!
- 在我多年單獨(dú)使用 python 和 C 的過程中,我以前從未嘗試過直接將 C 共享庫與 python 集成。這非常容易!另一個(gè)喜歡 python 的原因。
- 您可能需要的一切都可以在 eBay 或 AliExpress 上以非常便宜的價(jià)格獲得,但您必須提前計(jì)劃!運(yùn)輸幾乎總是最便宜和最慢的品種,所以雖然它(到目前為止)對(duì)我來說非常可靠,但它們也與較長的運(yùn)輸時(shí)間相當(dāng)一致。
結(jié)果
RPJiOS.com將帶您到 ThingSpeak 儀表板,獲取由集成MATLAB 分析引擎生成的派生空氣質(zhì)量指數(shù)(基于此公式)。
此外,這是原始 SPS30 數(shù)據(jù)的通道和原始 BME280 環(huán)境數(shù)據(jù)的通道。
MATLAB 與 ThingSpeak 的集成還允許人們生成引人注目但有用的儀表板:
?
(別擔(dān)心,我已經(jīng)知道我的時(shí)間戳已關(guān)閉。)
此外,ThingSpeak 的 React 引擎支持觸發(fā)操作,例如當(dāng)空氣質(zhì)量達(dá)到閾值水平時(shí)在 Twitter 上發(fā)出警告。整潔的!
回饋
受到歡迎和鼓勵(lì)!請(qǐng)?jiān)谶@里發(fā)表評(píng)論或給我發(fā)消息,在 Twitter 上(也在這里)與我聯(lián)系或在 GitHub 上提交問題。社區(qū)讓創(chuàng)客變得如此有趣!感謝您的關(guān)注!
- 光子空氣顆粒物監(jiān)測(cè)儀
- 顆粒物傳感器開源分享
- 通過Raspberry Pi的物聯(lián)網(wǎng)有源蜂鳴器
- 從Alexa控制Raspberry Pi(Linux設(shè)備)
- 通過Raspberry Pi的簡單物聯(lián)網(wǎng)按鈕教程
- 可視頻直播的Raspberry Pi網(wǎng)絡(luò)控制機(jī)器人 14次下載
- 數(shù)字式通用顆粒物濃度傳感器PMS7003的數(shù)據(jù)手冊(cè)免費(fèi)下載 12次下載
- PMS5XXXST顆粒物傳感器中文數(shù)據(jù)手冊(cè)詳細(xì)資料免費(fèi)下載 15次下載
- 《愛上Raspberry Pi》中譯版-電子書籍.pdf 0次下載
- Instant Raspberry Pi Gaming 6次下載
- Raspberry_Pi詳解 15次下載
- 含有顆粒物混合液體密度計(jì)設(shè)計(jì)與實(shí)現(xiàn)_賀洪江 2次下載
- raspberry_pi各版本差別 0次下載
- 柴油發(fā)動(dòng)機(jī)尾氣顆粒物研究進(jìn)展
- 利用振動(dòng)原理實(shí)時(shí)檢測(cè)大氣顆粒物濃度的方法研究
- 基于Raspberry Pi 5的蜂窩物聯(lián)網(wǎng)項(xiàng)目 1027次閱讀
- 使用Raspberry Pi Pico W和MicroPython開發(fā)物聯(lián)網(wǎng)應(yīng)用 1673次閱讀
- 用于測(cè)試項(xiàng)目的4個(gè)最佳樹莓派Raspberry Pi模擬器 5985次閱讀
- 樹莓派之路:Arduino和Raspberry-Pi 1815次閱讀
- 基于樹莓派產(chǎn)品 Raspberry Pi微控制器板的優(yōu)缺點(diǎn) 2710次閱讀
- 基于Raspberry Pi Pico開發(fā)先進(jìn)的家庭自動(dòng)化系統(tǒng) 2849次閱讀
- 基于FONA通過UART與Raspberry Pi進(jìn)行通訊的方案介紹 2122次閱讀
- 微雪電子ZeroW| Raspberry Pi ZeroW主板簡介 2429次閱讀
- 微雪電子Raspberry Pi 3 Model主板簡介 2873次閱讀
- 微雪電子Raspberry Pi 3 Model擴(kuò)展板簡介 1512次閱讀
- 利用Raspberry Pi構(gòu)建存儲(chǔ)和虛擬化時(shí)間序列數(shù)據(jù) 884次閱讀
- 一文了解Raspberry Pi 4各項(xiàng)性能跑分 2.9w次閱讀
- 淺析空氣質(zhì)量監(jiān)測(cè)對(duì)氣體和顆粒物傳感器市場(chǎng)的影響 5702次閱讀
- 智慧工地?fù)P塵檢測(cè)設(shè)備,及自動(dòng)降塵噴淋設(shè)備原理介紹 6549次閱讀
- 使用樹莓派測(cè)定顆粒物的技巧分享 1054次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多