RM新时代网站-首页

電子發(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)>電子資料下載>電子資料>可確定大氣顆粒物的Raspberry Pi設(shè)備

可確定大氣顆粒物的Raspberry Pi設(shè)備

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

資料介紹

描述

什么

本指南介紹了一種 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è)備之間的模塊化和易用性,我更喜歡非永久性連接方法,例如公/母杜邦式接頭和連接器,這就是我在這里使用的方法。

?
poYBAGOuNLmAFiLbAA_M8xNex2Q839.jpg
構(gòu)建傳感器組件,顯示 BME280 分線和 JST ZH 5 針電纜組件。
?

所需的大部分結(jié)構(gòu)非常簡單:我將 BME280 焊接到一個(gè)小型永久原型板上,Raspberry Pi 的跳線進(jìn)入該板 - 攜帶 3V3 和 5V 分別滿足 BME280 和 SPS30 - 以及 ZH -5 組件(當(dāng)然只攜帶 5V 電源)連接到 SPS30。

?
poYBAGOuNLyAbtIQAAD54H5OoUU750.png
眼尖的讀者 ti-tipakorn 非常友善地提醒我這個(gè)圖中的 SPS30 連接是反向的!引腳 5(GROUND)在外邊緣,而不是它出現(xiàn)的引腳 1!請(qǐng)參閱數(shù)據(jù)表以了解最終的引腳輸出,而不是我的圖表。
?

(請(qǐng)注意上面標(biāo)題中的重要更正:非常感謝ti-tipakorn提醒我!有時(shí)間我會(huì)更新 Fritzing 圖。)

I2C 總線的主要優(yōu)點(diǎn)之一設(shè)備尋址,它允許許多設(shè)備共享同一條物理總線,在這里我只需要為這兩個(gè)設(shè)備將五個(gè)引線(5V3V3、GND、SDA& SCL)帶到我的板上。

以防圖表沒有完全清楚,Pi 的引腳連接如下(指向pinout.xyz的鏈接更多信息):

請(qǐng)務(wù)必注意,SPS30 是一種雙模式設(shè)備,因此可以在UART (串行)或 I2C 模式下運(yùn)行。因此,必須注意注意接口規(guī)范中突出顯示的注釋,正如我在上面通過將引腳45 連接到GND

?
poYBAGOuNL6AXv7WAAEbBhQD8sw491.png
請(qǐng)注意此評(píng)論,否則您將度過一段糟糕的時(shí)光!
?

我使用這塊直接暴露 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)扇罩下方)。

?
pYYBAGOuNMOAfM1GAAaRq85Jvew47.jpeg
從左起:MicroUSB 電源、SPS30 傳感器、分支電纜上的 BME280、RPi 零 W(“zed”)。
?

所有東西都塞進(jìn)了外殼,用一點(diǎn)管道和大猩猩膠帶“固定”,并掛在天花板平面以下幾英寸(或:“頭部水平”以上幾英尺)的墻上。

這種安裝策略以及外殼有助于確保傳感器盡可能少地受到外部環(huán)境短期變化的影響。

?
pYYBAGOuNMuAJ459AA2Djiied-c278.png
Zed 在墻上。
?

如何:軟件

作為一名接觸過大量硬件的軟件工程師,我一直很欣賞硬件,但我自己從來沒有做過太多的事情。今年,我開始著手改變這種狀況,從我閑置多年的備用 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í)啟用WiFiSSH很容易。

以下內(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)行rpisetup.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/

$ 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 還支持許多其他傳感器類型,包括一些不需要額外硬件的“虛擬”傳感器,例如SysNet 。試試看吧!

教訓(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 的集成還允許人們生成引人注目但有用的儀表板:

?
pYYBAGOuNM2AOQUWAADRITgwm5c931.png
空氣質(zhì)量儀表盤
?

?

?
pYYBAGOuNNCAU-TUAAHMbWcSquI634.png
SPS30 原始數(shù)據(jù)儀表板
?

(別擔(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)注!


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

評(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元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(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開關(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ì)》 溫德爾著
  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語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)
RM新时代网站-首页