在這篇文章中,我們詳細介紹了我們構建智能冰箱庫存管理系統(tǒng)的旅程,該系統(tǒng)由Raspberry Pi 5和AI攝像頭提供支持。使用安裝在冰箱一側的超聲波傳感器,我們的系統(tǒng)可以確定何時開始產品檢測以及何時發(fā)送更新。通過我們定制的YOLOv8n模型(通過Roboflow導出為IMX500格式),攝像機可以識別關鍵產品——奶酪、可樂、雞蛋、番茄醬、牛奶、pittas和schnitzels——并根據(jù)它們在幀中的位置進行分類。生成的“進”和“出”列表通過帶SocketIO的Flask服務器實時傳輸?shù)絉eact儀表板,幫助您了解哪些庫存,哪些需要重新進貨。
"井然有序的冰箱,是健康生活的第一步。"——匿名
簡介
想象一下,打開你的冰箱,讓一個人工智能系統(tǒng)立即告訴你什么是可用的,什么是缺失的。我們的項目通過使用傳感器觸發(fā)器自動跟蹤冰箱庫存。當超聲波傳感器檢測到冰箱門在50厘米以內時,人工智能攝像頭就會開始分析產品放置。或者,使用PIR運動傳感器,攝像機在感應到運動時立即開始檢測,并在靜止5秒后發(fā)送更新。這種嵌入式AI和全棧開發(fā)的無縫集成,讓庫存管理變得毫不費力。
觀看示例:
觀察系統(tǒng)的運行,它會實時更新你的冰箱庫存。
硬件設置
我們的配置利用了傳感器和尖端人工智能的組合:
Raspberry Pi 5–加工中心。
AI攝像頭模塊——配備我們定制的YOLOv8n型號(出口到IMX500 ),用于檢測奶酪、可樂、雞蛋、番茄醬、牛奶、pittas和schnitzels等產品。
超聲波傳感器——安裝在冰箱側,測量到門的距離。當距離小于50厘米時,系統(tǒng)激活產品檢測。
PIR運動傳感器(備選)–當檢測到運動時觸發(fā)檢測,并在5秒鐘無運動后發(fā)送更新。
帶SocketIO的Flask服務器–處理實時通信。
React儀表板–顯示兩個列表:當前在冰箱中的物品和已過期的物品(用于補貨)。
連接示意圖:
下面是我們的Fritzing圖,說明傳感器和攝像頭的連接:

超聲波傳感器設置:
將傳感器放在冰箱側面,面向門。
傳感器持續(xù)監(jiān)控距離。如果門是關著的(50厘米),系統(tǒng)開始捕捉幀進行分析。當門移開(> 50厘米)時,它觸發(fā)更新傳輸。
PIR運動傳感器設置(可選):
?安裝傳感器,檢測冰箱附近的運動。
?運動檢測時,攝像機開始產品識別。如果5秒鐘內沒有檢測到任何運動,將發(fā)送庫存更新。
如需詳細布線,請查看我們的Fritzing圖。
嵌入式深度學習和產品識別
我們系統(tǒng)的核心是一個使用定制訓練的YOLOv8n網絡的人工智能攝像機。該模型經過優(yōu)化,并通過Roboflow導出為IMX500兼容格式,可識別我們的主要產品,并區(qū)分“進”一半(冰箱內)和“出”一半(被移除或缺失)的產品。
產品識別邏輯代碼片段
importcv2importnumpyasnp# Load the custom product detection model (YOLOv8n exported to IMX500)model = load_model('path_to_imx500_model')defdetect_products(frame): # Preprocess the frame for the model processed_frame = preprocess_frame(frame) # Run inference detections = model(processed_frame) # Parse detections and categorize into 'in' and 'out' in_products = [] out_products = [] fordetindetections: label = det['label'] x, y, w, h = det['bbox'] # Assume the frame is split vertically: left half is "IN", right half is "OUT" ifx + w /2< frame.shape[1] //?2:? ? ? ? ? ? in_products.append(label)? ? ? ? else:? ? ? ? ? ? out_products.append(label)? ? return?in_products, out_products# Helper functions: preprocess_frame() and load_model() are implemented elsewhere.
傳感器集成和socket通信
超聲波傳感器邏輯
超聲波傳感器測量傳感器和冰箱門之間的距離。當門在50厘米以內時,系統(tǒng)開始捕捉產品檢測幀。一旦門移開(距離超過50厘米),累積的“進”和“出”列表被發(fā)送到服務器。
importtimeimportsocketio# Initialize SocketIO clientsio = socketio.Client()sio.connect('http://your-ngrok-url')THRESHOLD =50 # Distance threshold in cmdefread_ultrasonic_sensor(): # Simulated sensor reading; replace with actual sensor logic. returnget_distance()defsensor_loop(): detecting =False in_list = [] out_list = [] whileTrue: distance = read_ultrasonic_sensor() ifdistance < THRESHOLD?and?not?detecting:? ? ? ? ? ? print("Fridge door detected! Starting inventory check...")? ? ? ? ? ? detecting =?True? ? ? ? ? ? # Capture frame for product detection (simulate camera capture)? ? ? ? ? ? frame = capture_frame() ?# Replace with actual camera capture logic? ? ? ? ? ? in_list, out_list = detect_products(frame)? ? ? ? elif?distance >= THRESHOLDanddetecting: print("Fridge door closed. Sending inventory data to server.") sio.emit('inventory_update', {'in': in_list,'out': out_list}) detecting =False in_list, out_list = [], [] time.sleep(0.5) # Adjust sensor polling interval# Run sensor_loop() on the Raspberry Pi to continuously monitor door status.
PIR運動傳感器(替代)邏輯
對于使用PIR傳感器的環(huán)境,攝像機在運動檢測時激活,如果5秒內沒有檢測到運動,則發(fā)送庫存更新。
defpir_sensor_loop(): detecting =False last_motion_time = time.time() in_list = [] out_list = [] whileTrue: motion_detected = read_pir_sensor() # Replace with actual sensor reading logic ifmotion_detected: last_motion_time = time.time() ifnotdetecting: print("Motion detected! Initiating product recognition...") detecting =True frame = capture_frame() # Capture frame using the AI camera in_list, out_list = detect_products(frame) elifdetectingand(time.time() - last_motion_time) >5: print("No motion for 5 seconds. Transmitting inventory update.") sio.emit('inventory_update', {'in': in_list,'out': out_list}) detecting =False in_list, out_list = [], [] time.sleep(0.5)
Flask+SocketIO服務器
我們的Flask服務器接收這些實時庫存更新,并將它們廣播給所有連接的客戶端,確保React儀表板顯示最新的數(shù)據(jù)。
fromflaskimportFlaskfromflask_socketioimportSocketIOapp = Flask(__name__)socketio = SocketIO(app, cors_allowed_origins="*")@socketio.on('inventory_update')defhandle_inventory_update(data): print("Received inventory update:", data) # Broadcast the update to connected dashboard clients socketio.emit('dashboard_update', data)if__name__ =='__main__': socketio.run(app, host='0.0.0.0', port=5000)
全棧集成(React儀表盤)
實時數(shù)據(jù)管道從Raspberry Pi通過我們的Flask服務器(通過ngrok公開)流向React儀表板。儀表板顯示兩個列表:冰箱中的產品和已取出的產品(用于補貨)。
React儀表板代碼片段
importReact, { useEffect, useState }from"react";importiofrom"socket.io-client";constsocket =io("http://your-ngrok-url");constFridgeInventory= () => { const[inventory, setInventory] =useState({in: [],out: [] }); useEffect(() =>{ socket.on("dashboard_update",(data) =>{ setInventory(data); }); return() =>{ socket.off("dashboard_update"); }; }, []); return(
Fridge Inventoryh2> In Fridgeh3> {inventory.in.map((item, index) => ( - {item}li> ))} ul> div>
Out for Restockingh3> {inventory.out.map((item, index) => ( - {item}li> ))} ul> div> div> );};exportdefaultFridgeInventory;
部署和故障排除
部署這樣的邊緣人工智能解決方案伴隨著挑戰(zhàn):
傳感器校準:
微調超聲波傳感器的閾值(50厘米),并確保PIR傳感器(如果使用)放置正確。
網絡穩(wěn)定性:
通過ngrok運行Flask服務器需要可靠的互聯(lián)網連接。監(jiān)控連接質量和延遲。
模型優(yōu)化:
利用輕量級框架,并確保您的定制產品識別模型針對實時推理進行了優(yōu)化。
記錄和監(jiān)控:
在傳感器環(huán)路和服務器中實施可靠的日志記錄,以快速診斷任何問題。
結論
該項目將嵌入式系統(tǒng)、深度學習和全棧開發(fā)結合在一起,創(chuàng)建了一個智能冰箱庫存管理解決方案。有了Raspberry Pi 5,一個使用定制YOLOv8n模型的人工智能攝像頭和傳感器觸發(fā)的檢測,你可以自動跟蹤你的冰箱里有什么,什么需要重新進貨-所有這些都是實時的。
準備好讓你的廚房自動化了嗎?分叉我們的存儲庫,設置您的Raspberry Pi,并開始以前所未有的方式管理您的冰箱庫存。祝您愉快,享受更智能、更有條理的廚房!
如有任何問題或反饋,請隨時聯(lián)系我們的GitHub知識庫或在上面提出問題。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
AI
+關注
關注
87
文章
33351
瀏覽量
273781
-
制冷系統(tǒng)
+關注
關注
8
文章
131
瀏覽量
19335
-
樹莓派
+關注
關注
118
文章
1900
瀏覽量
106504
發(fā)布評論請先 登錄
相關推薦
制冷系統(tǒng)講座
制冷系統(tǒng)講座 一、制冷基本原理定義:制冷:從低于環(huán)境的物體中吸取熱量,并將其轉移給環(huán)境介質的過程。制冷機:完成制冷循環(huán)所必需的機器和設備的總
發(fā)表于 10-19 16:01
[轉帖]冰箱制冷系統(tǒng)連接管道出現(xiàn)內漏故障
案例描述:送修的故障冰箱是一臺揚子牌bcd-202直冷式平背型電冰箱,,制冷系統(tǒng)連接管道出現(xiàn)內漏故障。本案例的故障部位是主蒸發(fā)器與副
發(fā)表于 03-02 16:46
[轉帖]排除冰箱制冷系統(tǒng)管道油堵故障
案例描述:送修冰箱是一臺萬寶bcd-188直冷式/風冷式電冰箱,冰箱制冷系統(tǒng)管道出現(xiàn)油堵故障;本案例故障點在于
發(fā)表于 03-11 17:06
電冰箱不制冷的原因?電冰箱不制冷怎么解決?
電冰箱不制冷的原因分析1、壓縮機內高壓輸出緩沖管斷裂,或固定此管的螺釘松動,造成高壓管不排氣,低壓管不吸氣,所以壓縮機雖運轉,但不制冷。2、制冷系統(tǒng)泄漏,
發(fā)表于 06-15 16:54
基于AI和大數(shù)據(jù)技術的冷凍水制冷系統(tǒng)
中國聯(lián)通河南分公司基于AI和大數(shù)據(jù)技術,針對數(shù)據(jù)中心的冷凍水制冷系統(tǒng)進行優(yōu)化,重點解決數(shù)據(jù)中心高PUE、高能耗的問題,并結合實際情況制定了相應的優(yōu)化方案。 1.1數(shù)據(jù)中心能耗分析 網絡演進
發(fā)表于 12-03 14:46
模糊控制的微型制冷系統(tǒng)
介紹一種利用半導體制冷片制成的微型制冷系統(tǒng),在實際應用中可制成小型冰箱,在本系統(tǒng)中將采用模糊算法進行控制,使系統(tǒng)更加智能化。關鍵詞:半導體
發(fā)表于 05-31 16:22
?44次下載
樹莓派用什么語言編程_樹莓派python編程詳解
樹莓派是一個非常廉價的、只有手掌大小的完全可編程的計算機。雖然樹莓派的體積小,但是它的潛力無限。你
發(fā)表于 01-15 17:00
?3.9w次閱讀
制冷系統(tǒng)的組成_制冷系統(tǒng)的工作原理
本文首先說明了制冷系統(tǒng)主要部件組成,然后分別介紹了制冷系統(tǒng)的四大機件,最后分析了制冷系統(tǒng)的工作原理。
發(fā)表于 08-02 15:49
?2.1w次閱讀
制冷系統(tǒng)的故障分析_制冷系統(tǒng)故障原因
本文從制冷運轉主機故障和制冷系統(tǒng)故障兩方面對制冷系統(tǒng)故障的原因進行了分析。
發(fā)表于 08-02 17:33
?3444次閱讀
冷庫制冷系統(tǒng)的工作原理
冷庫制冷系統(tǒng)包括完整的蒸氣壓縮式制冷系統(tǒng)應包括制冷劑循環(huán)系統(tǒng)、潤滑油循環(huán)系統(tǒng)、融霜系統(tǒng)、冷卻水循
制冷系統(tǒng)部件構成有哪些類型 制冷系統(tǒng)部件檢查內容有哪些
制冷系統(tǒng)通常由多個部件組成,每個部件承擔著不同的功能。以下是常見的制冷系統(tǒng)部件類型。
5款制冷系統(tǒng)原理的動態(tài)圖解 制冷系統(tǒng)原理圖的重要作用
制冷系統(tǒng)原理圖提供了設計師在制冷系統(tǒng)架構和布局上的指導。它顯示了各個組件之間的連接和排列方式,以及系統(tǒng)的流體循環(huán)路徑。這使設計師能夠更好地理解整個系統(tǒng)的結構和功能,并確保
In Fridgeh3> {inventory.in.map((item, index) => ( - {item}li> ))} ul> div>
Out for Restockingh3> {inventory.out.map((item, index) => ( - {item}li> ))} ul> div> div> );};exportdefaultFridgeInventory;
部署和故障排除
部署這樣的邊緣人工智能解決方案伴隨著挑戰(zhàn):
傳感器校準:
微調超聲波傳感器的閾值(50厘米),并確保PIR傳感器(如果使用)放置正確。
網絡穩(wěn)定性:
通過ngrok運行Flask服務器需要可靠的互聯(lián)網連接。監(jiān)控連接質量和延遲。
模型優(yōu)化:
利用輕量級框架,并確保您的定制產品識別模型針對實時推理進行了優(yōu)化。
記錄和監(jiān)控:
在傳感器環(huán)路和服務器中實施可靠的日志記錄,以快速診斷任何問題。
結論
該項目將嵌入式系統(tǒng)、深度學習和全棧開發(fā)結合在一起,創(chuàng)建了一個智能冰箱庫存管理解決方案。有了Raspberry Pi 5,一個使用定制YOLOv8n模型的人工智能攝像頭和傳感器觸發(fā)的檢測,你可以自動跟蹤你的冰箱里有什么,什么需要重新進貨-所有這些都是實時的。
準備好讓你的廚房自動化了嗎?分叉我們的存儲庫,設置您的Raspberry Pi,并開始以前所未有的方式管理您的冰箱庫存。祝您愉快,享受更智能、更有條理的廚房!
如有任何問題或反饋,請隨時聯(lián)系我們的GitHub知識庫或在上面提出問題。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
AI
+關注
關注
87
文章
33351
瀏覽量
273781
-
制冷系統(tǒng)
+關注
關注
8
文章
131
瀏覽量
19335
-
樹莓派
+關注
關注
118
文章
1900
瀏覽量
106504
Out for Restockingh3> {inventory.out.map((item, index) => ( - {item}li> ))} ul> div> div> );};exportdefaultFridgeInventory;
部署和故障排除
部署這樣的邊緣人工智能解決方案伴隨著挑戰(zhàn):
傳感器校準:
微調超聲波傳感器的閾值(50厘米),并確保PIR傳感器(如果使用)放置正確。
網絡穩(wěn)定性:
通過ngrok運行Flask服務器需要可靠的互聯(lián)網連接。監(jiān)控連接質量和延遲。
模型優(yōu)化:
利用輕量級框架,并確保您的定制產品識別模型針對實時推理進行了優(yōu)化。
記錄和監(jiān)控:
在傳感器環(huán)路和服務器中實施可靠的日志記錄,以快速診斷任何問題。
結論
該項目將嵌入式系統(tǒng)、深度學習和全棧開發(fā)結合在一起,創(chuàng)建了一個智能冰箱庫存管理解決方案。有了Raspberry Pi 5,一個使用定制YOLOv8n模型的人工智能攝像頭和傳感器觸發(fā)的檢測,你可以自動跟蹤你的冰箱里有什么,什么需要重新進貨-所有這些都是實時的。
準備好讓你的廚房自動化了嗎?分叉我們的存儲庫,設置您的Raspberry Pi,并開始以前所未有的方式管理您的冰箱庫存。祝您愉快,享受更智能、更有條理的廚房!
如有任何問題或反饋,請隨時聯(lián)系我們的GitHub知識庫或在上面提出問題。
部署和故障排除
部署這樣的邊緣人工智能解決方案伴隨著挑戰(zhàn):
傳感器校準:
微調超聲波傳感器的閾值(50厘米),并確保PIR傳感器(如果使用)放置正確。
網絡穩(wěn)定性:
通過ngrok運行Flask服務器需要可靠的互聯(lián)網連接。監(jiān)控連接質量和延遲。
模型優(yōu)化:
利用輕量級框架,并確保您的定制產品識別模型針對實時推理進行了優(yōu)化。
記錄和監(jiān)控:
在傳感器環(huán)路和服務器中實施可靠的日志記錄,以快速診斷任何問題。
結論
該項目將嵌入式系統(tǒng)、深度學習和全棧開發(fā)結合在一起,創(chuàng)建了一個智能冰箱庫存管理解決方案。有了Raspberry Pi 5,一個使用定制YOLOv8n模型的人工智能攝像頭和傳感器觸發(fā)的檢測,你可以自動跟蹤你的冰箱里有什么,什么需要重新進貨-所有這些都是實時的。
準備好讓你的廚房自動化了嗎?分叉我們的存儲庫,設置您的Raspberry Pi,并開始以前所未有的方式管理您的冰箱庫存。祝您愉快,享受更智能、更有條理的廚房!
如有任何問題或反饋,請隨時聯(lián)系我們的GitHub知識庫或在上面提出問題。
-
AI
+關注
關注
87文章
33351瀏覽量
273781 -
制冷系統(tǒng)
+關注
關注
8文章
131瀏覽量
19335 -
樹莓派
+關注
關注
118文章
1900瀏覽量
106504
發(fā)布評論請先 登錄
相關推薦
制冷系統(tǒng)講座
[轉帖]冰箱制冷系統(tǒng)連接管道出現(xiàn)內漏故障
[轉帖]排除冰箱制冷系統(tǒng)管道油堵故障
電冰箱不制冷的原因?電冰箱不制冷怎么解決?
基于AI和大數(shù)據(jù)技術的冷凍水制冷系統(tǒng)
模糊控制的微型制冷系統(tǒng)
樹莓派用什么語言編程_樹莓派python編程詳解
制冷系統(tǒng)的組成_制冷系統(tǒng)的工作原理

制冷系統(tǒng)的故障分析_制冷系統(tǒng)故障原因
冷庫制冷系統(tǒng)的工作原理

制冷系統(tǒng)部件構成有哪些類型 制冷系統(tǒng)部件檢查內容有哪些
5款制冷系統(tǒng)原理的動態(tài)圖解 制冷系統(tǒng)原理圖的重要作用

評論