資料介紹
描述
使用 IR 傳感器檢測房間中的人員
您是否想遠程監控建筑物中的房間或空間,并確保房間在應有的使用時處于使用狀態?那么你來對地方了。在Helium ,我們經常被問到如何做到這一點的最佳方式。我們的建議(如下詳述)是構建能夠完成這項工作的傳感器和 Web 應用程序的快速 POC 版本。如果您想大規模部署這些,請致電我們。
雖然這絕不是一個完整的空間監控應用程序,但它是一個合適的、輕量級的版本,如果供應商將其作為一個打包的解決方案進行宣傳,您需要支付 50-100 倍以上的費用。
我們將涵蓋的內容
自行部署此傳感器系統應該相當簡單,不到 45 分鐘。以下是我們將介紹的內容:
- 使用 Grid-EYE 傳感器、Pi 和 Helium Atom 構建人員計數器原型。
- 使用 Helium、JSON、OpenCV 和 Matplotlib 庫在 Python 中對 Grid-EYE 進行編程。具體來說,我們將從 Grid-EYE 捕獲原始讀數并進行一些邊緣處理以將其轉換為簡單的 JSON。
這會很有趣。讓我們騎吧。
所需的硬件和軟件
要構建您自己的輕量級人數統計應用程序,您需要以下硬件和軟件:
- 氦氣開發套件 -我們在這里使用 Raspberry Pi 變體,但任何人都可以。您可以在此處購買一個(以及所有其他 Helium 硬件)。
- Grid-EYE紅外熱像儀傳感器 -特別是 AMG8833。該傳感器由 Panasonic 制造,但下面我們使用的是 Adafruit 銷售的分線板版本。
- 氦儀表板帳戶 -如果您還沒有訪問權限,請在此處免費獲得一個。
- AWS IoT 帳戶 -如果您是初學者,請在此處注冊。
- 一個監控空間——這個應該很容易。我們推薦您的辦公室,或者您最喜歡的炸玉米餅卡車的線路。或者也許你的貓住在哪里。
構建 Grid-EYE
首先,我們需要創建我們的傳感器。這就是您將要構建的內容:
您需要通過 將 Grid-EYE 連接到 Raspberry Pi I2C
。電壓線將5V
取決于3.3V
所選的 Grid-EYE 型號。引腳和I2C
Raspberry Pi 是04(SCL)
和06(SDA)
。對于這個項目,中斷引腳可以保持斷開狀態。
如果您使用的是 DigiKey Grid-EYE,則 Grid-EYE 的電源電壓應連接到 Raspberry Pi3.3V
引腳。如果您使用的是 Adafruit Grid-Eye,則 Grid-Eye 的電源電壓應連接到 5V 引腳。
在這里,我使用的是 Adafruit Grid-Eye:
作為參考,這里是完成板的整體示意圖。
完成此操作后,拍照,在 Twitter 上發布帶有創意標簽的照片,然后將其放在一邊。現在是時候使用 Helium 啟動您自己的分布式低功耗廣域網 (DLPWAN)。
部署您的氦元素網關
Helium Element Gateways 創建了一個(分布式低功耗廣域網(DLPWAN),負責物聯網設備和云之間的雙向傳感器數據路由。在此部署中,您的 Element 將為您的人員計數器路由數據,但它可用于未來所有基于 Helium 構建的傳感器——即使是不屬于你的傳感器。
部署氦元素既快速又簡單。這是一個關于如何做到這一點的快速視頻:
首先,只需將電源和提供的以太網電纜插入 Element 和一個接受出站流量的實時以太網端口。當正面的 LED 變為綠色表示以太網連接成功時,元素將被連接。如果 Element 是 Cellular 版本,它會在成功連接到 Cellular 時顯示藍色LED。
使用氦儀表板注冊您的元素和原子
現在您需要在Helium Dashboard 中注冊您的硬件。整個過程將花費您不到 120 秒的時間。Helium Dashboard 將是您管理和查看已連接設備以及管理云通道(如我們稍后將部署的AWS IoT 通道)的界面。
每個 Helium 設備在您收貨之前都已在 Helium 注冊。要使其運行,您只需在儀表板中將其分配給您自己。
您可以在此處找到有關 Helium Dashboard的完整文檔。
- 如果您還沒有這樣做,請先創建一個 Helium Dashboard 帳戶。
-
要注冊您的 Atom,首先選擇New Atom 。在 UI 中,添加一個名稱(例如Grid-EYE ),然后輸入其最后四位數字
MAC Address
及其四位數字HVV Code
。(如果需要,您可以在此處查看有關此過程的完整文檔。)
-
元素注冊以完全相同的方式完成。選擇新元素,然后提供名稱、其最后四位
MAC Address
及其四位數字HVV Code.
此外,請確保為您的元素輸入位置,以便儀表板可以在地圖上顯示它。(同樣,如果需要,請在此處查看完整文檔。)
好吧。激活和部署 Helium 硬件后,現在不是連接 Helium AWS IoT 通道并獲取從邊緣流向云的傳感器數據的時候了。
部署 AWS IoT 通道并驗證數據流
現在我們需要部署一個 AWS IoT 通道。可以在 Helium 開發人員文檔中找到有關如何執行此操作的完整說明。簡短摘要如下:
-
在您的 AWS IoT 組織中,找到您的 和
Access Key ID,
Secret Access,
Region.
- 當登錄到Helium Dashboard 中的 Channel 界面時,創建一個新的 AWS IoT Channel 并輸入上面列出的憑證。
- 將頻道代碼部署到您的設備。創建通道后,Helium Dashboard UI 將自動生成將數據從 Helium Atom 發送到 AWS IoT 所需的代碼。對于 Pi,它看起來像這樣:
from helium_client import Helium
helium = Helium("/dev/serial0")
helium.connect()
channel = helium.create_channel("aws_channel_name")
channel.send("hello from Python")
除了上面鏈接的 AWS IoT 頻道文檔之外,這里還有一個視頻,展示了如何將其端到端連接起來。
對 Grid-EYE 進行編程
現在我們已經在您的 Helium 傳感器和 AWS IoT 之間啟動并運行了數據流,我們可以加載 Python 程序以從 Grid-EYE 捕獲數據。(在此之后,我們將通過在 AWS Quicksight 中可視化數據來將它們放在一起。)
以下是接下來的步驟:
- 更新 Raspberry Pi 并安裝相關的庫。
- 通過運行每個電路板經銷商提供的測試示例來測試 Grid-EYE 的功能,以確保連接正確。
- 通過運行 Helium 庫中的示例設置代碼來測試 Helium Atom 和 Element 的功能。
- 確保兩個硬件設備的功能正常后,獲取下面的 Grid-EYE 代碼并在您的 Pi 上運行它。
使用以下命令在您的 Pi 上安裝 Grid-EYE 庫
cd ~
git clone https://github.com/adafruit/Adafruit_AMG88xx_python.git
cd Adafruit_AMG88xx_python
python setup.py install
//check setup success
python
import Adafruit_AMG88xx
如果import
語句沒有返回錯誤,則說明AMG88xx庫安裝成功。
使用以下命令安裝 OpenCV 和以下庫:
sudo apt-get install python-opencv
sudo pip install imutils
sudo apt-get install libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install libatlas-base-dev gfortran
sudo pip install numpy
sudo apt-get install python-matplotlib
通過運行以下命令檢查您的 OpenCV 安裝:
python
import cv2
cv2.__version__
從像素數組到 JSON
隨著我們的 Pi 準備就緒,我們現在可以開始從 Grid-EYE 捕獲數據并進行一些邊緣處理以將其轉換為 JSON,然后再將其發送到 Helium 網絡。
Python 實現中來自 Grid-EYE 的原始數據被采樣為原始 64 元素數組。然而,使用更復雜的 OpenCV 工具,這個數組被重新格式化為一個 8x8 數組,并被插值形成一個 32x32 的圖像。
然后將圖像轉換為灰度、反轉并使用斑點檢測工具掃描圓形斑點。OpenCV 計算在結果圖像中發現的 blob 數量,并且該變量通過 Helium 網絡無線發送到 AWS IoT。
在傳感器級別,從 Grid-EYE 傳輸到我們的 Raspberry Pi 的原始數據采用數組格式,通常遵循以下模式:
pixels = [num0, num1, num2, ..., num63]
該數據被重新格式化以適應 8x8 數組,如下所示:
pixels = [[num0, num1,..., num7],
[num8, num9,..., num13],
[...],
[num55, num56,..., num63]]
這 64 個數據點中的每一個都是由 Grid-EYE 返回的電壓,該電壓又對應于溫度讀數。從那里,可以將這些插值到 32x32 數組并保存為圖像。他們出來看起來像這樣?
這很好,但是我們可以消除通過空中傳輸此圖像的需要,而是通過在我們的 Pi 上運行的 Python 中的一些簡單邊緣處理(下面的代碼),我們可以估計空間中的人數并將其轉換到 JSON。
因此,通過設置閾值并在執行 blob 檢測的傳感器上運行一些代碼,我們可以識別 blob 的數量,并創建一個簡單的 JSON 表示,以通過空中發送到 Helium 和我們的可視化應用程序。
換句話說,這:
Pixel Output:
28.50 28.50 28.00 27.75 27.75 27.50 28.00 29.00
29.50 28.75 28.00 27.25 27.00 27.25 29.00 29.25
29.00 28.25 29.50 28.25 27.50 27.75 30.50 29.00
28.50 29.00 31.25 31.00 29.75 29.25 31.25 29.50
29.00 27.50 28.25 30.25 30.25 29.75 30.50 29.75
27.25 27.00 27.00 27.75 29.75 30.00 29.25 27.75
27.25 27.00 26.75 26.25 27.50 28.75 27.75 27.25
26.50 26.50 26.00 26.00 26.00 26.25 26.50 26.25
變成這樣:
{
"People" : "2"
}
在 Grid-EYE 的視野中用于定位人員的相對較大的圖像數據被解析為最小的有價值的形式,以便通過線路發送。例如,如果傳感器正在查看座位是否有人,則斑點檢測功能還將返回每個斑點圖像中的坐標。但是對于這個演示,我們只關心一個房間里有多少人。這是從我的辦公桌上看的樣子:
通過調整 Grid-EYE 溫度閾值的靈敏度,您可以將其放置在距離某個區域最大 15 英尺的地方以掃描熱特征。在此示例中,我將閾值設置為 30 攝氏度,這足以找到未覆蓋的人體。當您第一次部署此傳感器時,您很可能會注意到它需要一些調整。具體來說,您需要調整溫度閾值以適應 Grid-EYE 正在查看的區域。
在 AWS QuickSight 中可視化人員數據
現在我們正在捕獲空間中的人數,我們需要通過 Helium AWS IoT 通道將其傳輸到 Web 服務,并實時可視化空間利用率。公平警告:這個過程有點艱巨,但結果值得付出努力。閱讀這篇博文了解詳情。(另外,如果有人知道在不離開 AWS 的情況下可視化時間序列數據的更好方法,請告訴我。
這是回報。下面是 QuickSight UI 的屏幕截圖,顯示了在通過 Helium 網絡發送到 AWS IoT 后經過我辦公桌的人員:
小像素陣列和檢測多個對象存在固有問題。在這兩個代碼示例中,都會刪除低于人體溫度閾值的值以改進檢測。 此外,由于靠近身體的兩個特別溫暖的部分具有局部熱量最大值,因此變化的體溫會為某個區域的身體計數產生誤報(讀數2
而不是)。1
但是通過一些測試和調整,您可以開始對返回的數據的準確性感到非常滿意。
這是一篇關于在 AWS 中管理此設備狀態以向您的對象檢測器添加更多功能的博客文章。您可以更改采樣時間,并從云端激活/停用傳感器:
后續步驟和幫助
好工作!您現在擁有一個功能正常的 Grid-Eye,它具有基本的嵌入式對象檢測功能。如果您想了解有關 Helium 的更多信息、如何制作自己的物聯網項目原型,或了解有關此項目的更多信息,請在此處加入我們:
- 使用Raspberry PI和open CV進行圖像處理
- 使用Raspberry Pi和BluPants進行編碼
- 通過USB對Raspberry Pi進行編程
- Arduino和Raspberry Pi平臺進行編碼
- 使用ROS和Raspberry Pi進行Bittle遠程操作
- 使用Raspberry Pi進行汽車診斷
- Raspberry Pi和你的倉鼠進行股市交易
- 使用Raspberry Pi和Arduino進行花卉監測
- 可視頻直播的Raspberry Pi網絡控制機器人 14次下載
- 如何使用結合特征圖譜學習的方法進行人數統計詳細方法說明 3次下載
- 《愛上Raspberry Pi》中譯版-電子書籍.pdf 0次下載
- Instant Raspberry Pi Gaming 6次下載
- Raspberry_Pi詳解 15次下載
- raspberry_pi各版本差別 0次下載
- Learn Raspberry Pi Programming with python 0次下載
- 基于Raspberry Pi 5的蜂窩物聯網項目 1027次閱讀
- 使用Raspberry Pi Pico W和MicroPython開發物聯網應用 1671次閱讀
- 用于測試項目的4個最佳樹莓派Raspberry Pi模擬器 5985次閱讀
- 如何使用Raspberry Pi使熱水浴缸變得智能和遠程操作 1813次閱讀
- 如何通過Raspberry Pi設置CE電流監視器 2120次閱讀
- 基于樹莓派產品 Raspberry Pi微控制器板的優缺點 2710次閱讀
- 如何從Raspberry Pi Pico的模數轉換器捕獲數據計算? 2580次閱讀
- 基于Raspberry Pi Pico開發先進的家庭自動化系統 2849次閱讀
- 基于FONA通過UART與Raspberry Pi進行通訊的方案介紹 2122次閱讀
- 微雪電子ZeroW| Raspberry Pi ZeroW主板簡介 2429次閱讀
- 微雪電子Raspberry Pi 3 Model主板簡介 2873次閱讀
- 微雪電子Raspberry Pi 3 Model擴展板簡介 1512次閱讀
- 利用Raspberry Pi構建存儲和虛擬化時間序列數據 884次閱讀
- 一文了解Raspberry Pi 4各項性能跑分 2.9w次閱讀
- 視覺享受!用Raspberry Pi實現圣誕樹燈光秀 8127次閱讀
下載排行
本周
- 1開關電源設計原理手冊
- 1.83 MB | 14次下載 | 免費
- 2智能小車proteus仿真+C源程序
- 0.02 MB | 4次下載 | 免費
- 3PL4807單節鋰離子電池充電器中文手冊
- 1.36 MB | 3次下載 | 免費
- 4BQ769142技術參考手冊
- 2.99MB | 2次下載 | 免費
- 5BQ77207EVM用戶指南
- 865.23KB | 2次下載 | 免費
- 6TMR技術在電流傳感器中的應用
- 616.47 KB | 1次下載 | 免費
- 7CBM8605_8606_8608-運算放大器【中文排版】-202406271735
- 2.70 MB | 1次下載 | 免費
- 801-07-06-CBM8655_CBM8656精密運算放大器
- 4.49 MB | 1次下載 | 免費
本月
- 1XL4015+LM358恒壓恒流電路圖
- 0.38 MB | 155次下載 | 1 積分
- 2PCB布線和布局電路設計規則
- 0.40 MB | 52次下載 | 免費
- 3GB/T4706.1-2024 家用和類似用途電器的安全第1部分:通用要求
- 7.43 MB | 14次下載 | 1 積分
- 4智能門鎖原理圖
- 0.39 MB | 14次下載 | 免費
- 5開關電源設計原理手冊
- 1.83 MB | 14次下載 | 免費
- 6elmo直線電機驅動調試細則
- 4.76 MB | 9次下載 | 6 積分
- 7WIFI智能音箱原理圖完整版
- 0.09 MB | 7次下載 | 10 積分
- 8PC1013三合一快充數據線充電芯片介紹
- 1.03 MB | 7次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935115次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183333次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73806次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65985次下載 | 10 積分
評論
查看更多