資料介紹
描述
當我非常專注于項目(比如這個項目)時,我經常會忘記我的環境。突然坐在黑暗中或沒有意識到需要新鮮空氣的情況并不少見。以前,我購買了一個知名品牌的智能傳感氣象站,我真的很喜歡它的傳感器。我喜歡他們提供的數據量。但是我意識到,我意識到,我沒有在一個該死的設備上本地訪問我的個人數據,而這個設備就在我旁邊。該設備僅適用于互聯網連接,我的所有數據都存儲在他們的服務器上。
將傳感器/設備連接到互聯網并不能使其變得智能!
作為一名修補匠,我認為我也可以做到這一點,甚至可能做得更好,獲得相同的傳感器數據,向其添加通知和統計數據,但略有不同的是,我的數據和邏輯將在本地存儲和處理。
所以這就是我所做的:我帶著我的 Raspberry Pi 并在上面安裝了傳感器,用于測量溫度、濕度、空氣質量、環境光和氣壓。我決定使用我最喜歡的物聯網中間件 nymea,并為傳感器編寫插件。Nymea 提供了一堆開箱即用的東西,例如日志記錄、統計信息、通知和規則,因此我可以輕松地在我的環境中添加一些實際的智能行為。
組件
我使用了幾個從亞馬遜購買的 I2C 傳感器。我一直在尋找 I2C 空氣質量傳感器,但找不到價格合理的傳感器,所以我將一個便宜的模擬空氣質量傳感器連接到模數轉換器(簡稱 ADC)。我使用的是 Raspberry Pi 3B+,但支持 I2C 接口的類似硬件平臺就可以了。
-
溫度和濕度傳感器:我發現傳感器最
SHT30
適合我的用例。它很便宜,并且注意濕度和溫度之間的物理影響。使用數據表讀取值非常簡單。 -
壓力傳感器:非常流行的壓力傳感器是
BMP180
。使用此傳感器,我還可以獲得溫度和濕度,因為正確測量需要這些值。傳感器在出廠時已經校準,校準數據存儲在芯片中,我覺得非常整潔。數據表為我提供了有關如何獲得壓力的所有必要步驟。如果你愿意,你也可以計算海拔高度,但我的用例并不需要它 -
光強度傳感器:有很多傳感器用于此目的。我一直在尋找一個適合測量可見光的傳感器,因為我想在我的客廳里使用這個傳感器。我選擇了
TSL2561
,它給我全光譜的光強度測量,此外,還單獨給我紅外光強度光譜。這真的很方便,因為它允許我從全光譜中減去紅外光譜測量,從而得到適合人類的光測量。 - 空氣質量傳感器。事實證明,在不花一大筆錢的情況下找到合適的空氣質量傳感器有點具有挑戰性。我最終得到了一個模擬 MQ-135 空氣質量傳感器。它測量空氣中的不同氣體,如 NH3、NOx、酒精、苯、煙霧和 CO2。挖掘有關此傳感器的更多信息表明,從傳感器中挑選出某種氣體并不是最簡單的事情。必須對每個單獨的傳感器(找到 R0)進行校準,并且傳感器需要至少 24 小時的“老化”階段才能提供任何有用的數據。可以在此處找到對傳感器的詳細描述和深入研究。其背后數學模型的代碼可以在這里找到. 我實施了該模型,結果在我的案例中提供的信息多于準確的信息,但稍后會詳細介紹。
連接傳感器
由于 I2C 是并行總線,每個 I2C 設備都有不同的默認寄存器地址,因此無需更改地址,所有設備都可以直接連接。空氣質量傳感器具有模擬輸出,因此需要一個 ADC。為此,我使用了ADS1115
ADC,它也連接到 I2C 總線,允許我讀取模擬值作為數字表示。仍然有三個免費輸入,將來我可能會用額外的傳感器擴展站點。我將溫度傳感器放置在盡可能遠離空氣質量傳感器的位置,因為空氣質量傳感器包含一個會變熱的加熱元件。
?
連接后,我檢查了i2c-detect
所有設備是否根據 Raspberry Pi 上的相應數據表正確顯示。
$ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- 39 -- -- -- -- -- --
40: -- -- -- -- 44 -- -- -- 48 -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- 77
軟件
作為我的 Raspberry Pi 的基本操作系統,我使用了最新的Raspbian 。使用蝕刻機將圖像閃存到 micro SD 卡后,我直接進行布線和開發。
首先,我從官方存儲庫安裝了nymea (我最喜歡的開源物聯網平臺)。
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key A1A19ED6
sudo apt update
sudo apt install nymea nymea-plugins nymea-cli libnymea1-dev git libi2c-dev
傳感器站的插件不適合主存儲庫,因為這是一個 DIY 項目,但您可以從我的github 帳戶獲取源代碼并為您的系統構建它:
# Clone the source code on the Raspberry Pi
git clone https://github.com/t-mon/nymea-sensorstation-plugin.git
cd nymea-sensorstation-plugin
# Build the plugin against the current libraries
mkdir build
cd build
qmake ../
make -j$(nproc)
# Finally install the plugin and restart nymea
sudo make install
sudo systemctrl restart nymead
在我的設置中,我有飛利浦 Hue燈、Kodi 媒體中心、LG 智能電視、我居住地的天氣信息以及一些其他集成的設備和服務。我還啟用了遠程連接,以便在我的手機上擁有推送通知服務(數據將保留在本地,我只使用云連接進行遠程連接并接收推送通知)。根據我從新傳感器站獲得的數據,這些是我想要控制的設備。
現在它還包含我的新傳感器站!
插件開發完成后,我在我的系統上安裝了插件,并通過使用nymea:app作為系統客戶端將傳感器站添加為“事物”。
?
?
讀取傳感器數據
在開發 I2C 傳感器讀取機制(不斷啟動線程以讀取循環中的數據)時,我意識到每個傳感器都會生成大量數據,并且信號中也有一些噪聲。為了防止大量數據被轉儲到日志數據庫、規則引擎和整體系統性能上,我必須進行一些過濾。在寫這篇文章的時候,系統的閱讀間隔是5分鐘。這似乎是讀取緩慢變化的傳感器(如溫度、濕度和壓力)的好時間間隔。當涉及到快速變化的傳感器數據時,例如光強度或空氣質量傳感器,系統反應緩慢。例如:我打開燈,在最壞的情況下,系統會在 5 分鐘后識別出燈光增加。不是很好。當前的光測量非常適合緩慢的日光變化,但在處理快速變化方面并不是最好的。問題在于數據中的巨大噪聲,這使得經典的低通/高通濾波或 PID 調節器變得無用,因為你必須進行如此強烈的濾波,以至于失去了快速響應的效果。
也許本文的讀者對此問題有解決方案?是否有一種濾波器模型/方法可以在嘈雜信號上實現平滑、良好的數據變化,但對強變化(如開燈)的響應時間快速?
數據解讀
我將傳感器站放在客廳沙發旁邊(因為這是我最想要舒適的興趣點),我讓系統收集數據幾天,以查看傳感器數據在我的房間中的表現如何環境
在應用程序概覽中,我看到了我的電臺的當前值。
早上,當我開始新的一天時,我會打開百葉窗和窗戶,因為我的公寓隔離得很好。來自我的新傳感器站的數據很好地代表了我的“起床”程序,如下圖所示(直接來自應用程序的屏幕截圖)。我在早上 8:30 打開窗戶 20 分鐘。
?
- 打開窗戶后,溫度下降了約3° C 。然后加熱將溫度調節回所需的 22.5°C。
- 開窗后濕度明顯下降。
- 今天壓力慢慢下降,這是一個陽光明媚的冬日。
- 光照強度在早上顯示出一個大的峰值。這是陽光直射通過窗戶到達傳感器,然后太陽升得更高。大約在 10 點 30 分,我打開了第二個百葉窗,在那里你可以看到臺階。中午前后房間的正常亮度約為 1100 勒克斯。然后價值慢慢下降,直到日落。
- 打開窗戶后,空氣質量測量值明顯下降。數值越低空氣越好。如果我將窗戶打開大約 2 小時,該值約為 300 ppm。再次關閉窗口后,該值緩慢上升。
下午,當外面天色越來越暗時,我再次檢查了傳感器數據,結果如下(我沒有打開窗戶,一個人在這里,我妻子在 16:30 左右下班回家)。
- 白天溫度升高了一點(天氣晴朗)。并在下午晚些時候下降(加熱再次打開)。
- 白天濕度上升,在 18 點 45 分左右達到頂峰,也就是我真正開始做飯的地方。
- 壓力變化非常小。還不確定如何處理這些數據。
- 光照強度隨太陽一起下降。今天的日落時間是 17:53。但是在我的客廳里,大約 17:00 時天已經黑了,那里的亮度約為 80 lux。那就是我要開燈的地方。在這里我們還可以看到我在 18:45 到 19:20 之間打開廚房的燈做飯的時間。
- 白天空氣質量測量值升高,在我妻子回家時約 16:30 有一個更大的峰值,因為房間里有兩個人在呼吸。我開始做飯時的另一個高峰。
定義規則
在對傳感器值有了良好的感覺之后,是時候根據這些數據定義一些規則和操作了。對于我的“問題”,我定義了兩個規則。
我調用的第一個規則Air quality notification
應該在空氣質量不好時通知我,這樣我就可以打開窗戶,讓我的頭腦保持清醒和清醒。根據白天收集的數據,我意識到,當 ppm 值高于 2000 ppm 時,我可以感覺到需要新鮮空氣(散步后回到房間)。如果這個值只代表 CO2,我可能會死于 2000 ppm,但傳感器正在檢測多種氣體,因此有很大的解釋空間。為了進行精確測量,我肯定會選擇另一個傳感器,但就我的需要而言,它可以勝任。
一旦該值超過 2000 ppm,該規則就會向我的手機和我的媒體中心發送通知。
我調用的第二條規則Light sensor rule
應該打開我的沙發背景燈,但前提是電視當前處于打開狀態。我可以通過兩種方式做到這一點,要么檢查 Kodi 當前是否正在播放(我使用Mythtv的Kodi PVR 插件看電視),要么通過檢測電視是否可訪問來使用智能電視插件。這兩種情況都適合我。我還可以使用存在傳感器插件,它檢查 LAN 中是否存在網絡設備。如果我的電話或我妻子的電話在網絡中,如果光強度低于 80 勒克斯,請打開燈。
結論
有用!使用室內傳感器站 2 個多星期后,我意識到我打開窗戶的頻率更高了,而且自從使用它以來,我從未突然坐在黑暗中。令我驚訝的是,我在傳感器數據中識別出了我的哪些日常行為。由于數據存儲在本地和我的,我對收集的數據沒有任何不好的感覺。該功能(電話通知除外)不依賴于我的互聯網連接。
下一步是什么?
我想用我的新傳感器站做幾件事。一些想法:
- 建立射頻室外站,使用 6LoWPAN 或 Zigbee 向系統發送數據。
- 添加更多傳感器以獲得更好的周圍信息。I2C 總線上仍有三個可用的模擬輸入和大量寄存器。更多數據、更多信息、更多自主行為。
- 在變暗的同時平滑地增加亮度也會非常好。nymea 中仍然缺少此功能,但希望此功能將很快實現。
- 對光強度和空氣質量進行更好的傳感器過濾,以檢測峰值,例如:將煙霧吹入傳感器或打開燈以獲得快速反應行為。也許有人可以幫我?:)
- 使用FFT檢測數據中的重復模式,例如開窗事件、烹飪、招待客人、飲酒。
?
?
?
- AquaPing超低功耗智能傳感器開源
- 車輛停車傳感器開源設計
- 接近傳感器開源分享
- 電視傳感器開源分享
- LDR傳感器開源案例
- 運動傳感器開源分享
- LDR傳感器開源分享
- 距離傳感器和OLED開源分享
- 傳感器器連接開源分享
- 光學傳感器開源分享
- 神經形態視覺傳感器在人工智能的應用綜述 21次下載
- 智能駕駛和多傳感器系統課件下載 20次下載
- 集成化智能傳感器原理與應用 0次下載
- 智能傳感器設計_張鼎譯 0次下載
- 智能傳感器的興起與發展動向
- 風速傳感器原理及應用 139次閱讀
- 如何使用兩個dht傳感器及HC12模塊制作遠程氣象站? 2792次閱讀
- 基于創建帶有空氣質量傳感器的室內氣象站 2186次閱讀
- 模糊傳感器的結構_模糊傳感器的應用 2528次閱讀
- 智能傳感器的原理框圖 9692次閱讀
- 多個3D智能傳感器組網的多傳感器網絡介紹 1972次閱讀
- 雨量傳感器的工作原理_雨量傳感器的種類 4w次閱讀
- 超聲波風速傳感器在生活環境中的各種應用 1864次閱讀
- 智能傳感器相比傳統傳感器具有哪些優點? 1.3w次閱讀
- 那些智能穿戴設備里的傳感器 2555次閱讀
- 最智能的傳感器是什么?納米傳感器的種類 6346次閱讀
- 智能傳感器的功能和未來應用 3531次閱讀
- 地磁傳感器工作原理_地磁傳感器應用_地磁傳感器的作用 4.1w次閱讀
- 扭矩傳感器作用_扭矩傳感器工作原理_扭矩傳感器的安裝 3.3w次閱讀
- 智能傳感器的概念,智能傳感器的結構、功能、特點及其應用 5541次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多