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

超聲波傳感器設(shè)置:
將傳感器放在冰箱側(cè)面,面向門。
傳感器持續(xù)監(jiān)控距離。如果門是關(guān)著的(50厘米),系統(tǒng)開始捕捉幀進(jìn)行分析。當(dāng)門移開(> 50厘米)時,它觸發(fā)更新傳輸。
PIR運動傳感器設(shè)置(可選):
?安裝傳感器,檢測冰箱附近的運動。
?運動檢測時,攝像機開始產(chǎn)品識別。如果5秒鐘內(nèi)沒有檢測到任何運動,將發(fā)送庫存更新。
如需詳細(xì)布線,請查看我們的Fritzing圖。
嵌入式深度學(xué)習(xí)和產(chǎn)品識別
我們系統(tǒng)的核心是一個使用定制訓(xùn)練的YOLOv8n網(wǎng)絡(luò)的人工智能攝像機。該模型經(jīng)過優(yōu)化,并通過Roboflow導(dǎo)出為IMX500兼容格式,可識別我們的主要產(chǎn)品,并區(qū)分“進(jìn)”一半(冰箱內(nèi))和“出”一半(被移除或缺失)的產(chǎn)品。
產(chǎn)品識別邏輯代碼片段
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通信
超聲波傳感器邏輯
超聲波傳感器測量傳感器和冰箱門之間的距離。當(dāng)門在50厘米以內(nèi)時,系統(tǒng)開始捕捉產(chǎn)品檢測幀。一旦門移開(距離超過50厘米),累積的“進(jìn)”和“出”列表被發(fā)送到服務(wù)器。
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秒內(nèi)沒有檢測到運動,則發(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服務(wù)器
我們的Flask服務(wù)器接收這些實時庫存更新,并將它們廣播給所有連接的客戶端,確保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服務(wù)器(通過ngrok公開)流向React儀表板。儀表板顯示兩個列表:冰箱中的產(chǎn)品和已取出的產(chǎn)品(用于補貨)。
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):
傳感器校準(zhǔn):
微調(diào)超聲波傳感器的閾值(50厘米),并確保PIR傳感器(如果使用)放置正確。
網(wǎng)絡(luò)穩(wěn)定性:
通過ngrok運行Flask服務(wù)器需要可靠的互聯(lián)網(wǎng)連接。監(jiān)控連接質(zhì)量和延遲。
模型優(yōu)化:
利用輕量級框架,并確保您的定制產(chǎn)品識別模型針對實時推理進(jìn)行了優(yōu)化。
記錄和監(jiān)控:
在傳感器環(huán)路和服務(wù)器中實施可靠的日志記錄,以快速診斷任何問題。
結(jié)論
該項目將嵌入式系統(tǒng)、深度學(xué)習(xí)和全棧開發(fā)結(jié)合在一起,創(chuàng)建了一個智能冰箱庫存管理解決方案。有了Raspberry Pi 5,一個使用定制YOLOv8n模型的人工智能攝像頭和傳感器觸發(fā)的檢測,你可以自動跟蹤你的冰箱里有什么,什么需要重新進(jìn)貨-所有這些都是實時的。
準(zhǔn)備好讓你的廚房自動化了嗎?分叉我們的存儲庫,設(shè)置您的Raspberry Pi,并開始以前所未有的方式管理您的冰箱庫存。祝您愉快,享受更智能、更有條理的廚房!
如有任何問題或反饋,請隨時聯(lián)系我們的GitHub知識庫或在上面提出問題。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
AI
+關(guān)注
關(guān)注
88
文章
35194
瀏覽量
280310
-
制冷系統(tǒng)
+關(guān)注
關(guān)注
8
文章
131
瀏覽量
19468
-
樹莓派
+關(guān)注
關(guān)注
121
文章
2016
瀏覽量
107517
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
樹莓派5,Raspberry Pi 5 評測
會觸發(fā)安全關(guān)機。這種關(guān)機更像是待機模式,樹莓派的功耗為1.4瓦。按下電源按鈕將啟動樹莓派5。你還
發(fā)表于 06-19 14:51
空調(diào)制冷系統(tǒng)原理圖
本帖最后由 eehome 于 2013-1-5 09:59 編輯
<p>空調(diào)制冷系統(tǒng)原理圖<br/></p>
發(fā)表于 06-28 11:23
制冷系統(tǒng)講座
制冷系統(tǒng)講座 一、制冷基本原理定義:制冷:從低于環(huán)境的物體中吸取熱量,并將其轉(zhuǎn)移給環(huán)境介質(zhì)的過程。制冷機:完成制冷循環(huán)所必需的機器和設(shè)備的總
發(fā)表于 10-19 16:01
[轉(zhuǎn)帖]冰箱制冷系統(tǒng)連接管道出現(xiàn)內(nèi)漏故障
案例描述:送修的故障冰箱是一臺揚子牌bcd-202直冷式平背型電冰箱,,制冷系統(tǒng)連接管道出現(xiàn)內(nèi)漏故障。本案例的故障部位是主蒸發(fā)器與副
發(fā)表于 03-02 16:46
[轉(zhuǎn)帖]排除冰箱制冷系統(tǒng)管道油堵故障
案例描述:送修冰箱是一臺萬寶bcd-188直冷式/風(fēng)冷式電冰箱,冰箱制冷系統(tǒng)管道出現(xiàn)油堵故障;本案例故障點在于
發(fā)表于 03-11 17:06
電冰箱不制冷的原因?電冰箱不制冷怎么解決?
電冰箱不制冷的原因分析1、壓縮機內(nèi)高壓輸出緩沖管斷裂,或固定此管的螺釘松動,造成高壓管不排氣,低壓管不吸氣,所以壓縮機雖運轉(zhuǎn),但不制冷。2、制冷系統(tǒng)泄漏,
發(fā)表于 06-15 16:54
基于AI和大數(shù)據(jù)技術(shù)的冷凍水制冷系統(tǒng)
中國聯(lián)通河南分公司基于AI和大數(shù)據(jù)技術(shù),針對數(shù)據(jù)中心的冷凍水制冷系統(tǒng)進(jìn)行優(yōu)化,重點解決數(shù)據(jù)中心高PUE、高能耗的問題,并結(jié)合實際情況制定了相應(yīng)的優(yōu)化方案?! ?.1數(shù)據(jù)中心能耗分析 網(wǎng)絡(luò)演進(jìn)
發(fā)表于 12-03 14:46
模糊控制的微型制冷系統(tǒng)
介紹一種利用半導(dǎo)體制冷片制成的微型制冷系統(tǒng),在實際應(yīng)用中可制成小型冰箱,在本系統(tǒng)中將采用模糊算法進(jìn)行控制,使系統(tǒng)更加智能化。關(guān)鍵詞:半導(dǎo)體
發(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.4w次閱讀
制冷系統(tǒng)的故障分析_制冷系統(tǒng)故障原因
本文從制冷運轉(zhuǎn)主機故障和制冷系統(tǒng)故障兩方面對制冷系統(tǒng)故障的原因進(jìn)行了分析。
發(fā)表于 08-02 17:33
?3595次閱讀
冷庫制冷系統(tǒng)的工作原理
冷庫制冷系統(tǒng)包括完整的蒸氣壓縮式制冷系統(tǒng)應(yīng)包括制冷劑循環(huán)系統(tǒng)、潤滑油循環(huán)系統(tǒng)、融霜系統(tǒng)、冷卻水循
制冷系統(tǒng)部件構(gòu)成有哪些類型 制冷系統(tǒng)部件檢查內(nèi)容有哪些
制冷系統(tǒng)通常由多個部件組成,每個部件承擔(dā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):
傳感器校準(zhǔn):
微調(diào)超聲波傳感器的閾值(50厘米),并確保PIR傳感器(如果使用)放置正確。
網(wǎng)絡(luò)穩(wěn)定性:
通過ngrok運行Flask服務(wù)器需要可靠的互聯(lián)網(wǎng)連接。監(jiān)控連接質(zhì)量和延遲。
模型優(yōu)化:
利用輕量級框架,并確保您的定制產(chǎn)品識別模型針對實時推理進(jìn)行了優(yōu)化。
記錄和監(jiān)控:
在傳感器環(huán)路和服務(wù)器中實施可靠的日志記錄,以快速診斷任何問題。
結(jié)論
該項目將嵌入式系統(tǒng)、深度學(xué)習(xí)和全棧開發(fā)結(jié)合在一起,創(chuàng)建了一個智能冰箱庫存管理解決方案。有了Raspberry Pi 5,一個使用定制YOLOv8n模型的人工智能攝像頭和傳感器觸發(fā)的檢測,你可以自動跟蹤你的冰箱里有什么,什么需要重新進(jìn)貨-所有這些都是實時的。
準(zhǔn)備好讓你的廚房自動化了嗎?分叉我們的存儲庫,設(shè)置您的Raspberry Pi,并開始以前所未有的方式管理您的冰箱庫存。祝您愉快,享受更智能、更有條理的廚房!
如有任何問題或反饋,請隨時聯(lián)系我們的GitHub知識庫或在上面提出問題。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
AI
+關(guān)注
關(guān)注
88
文章
35194
瀏覽量
280310
-
制冷系統(tǒng)
+關(guān)注
關(guān)注
8
文章
131
瀏覽量
19468
-
樹莓派
+關(guān)注
關(guān)注
121
文章
2016
瀏覽量
107517
Out for Restockingh3> {inventory.out.map((item, index) => ( - {item}li> ))} ul> div> div> );};exportdefaultFridgeInventory;
部署和故障排除
部署這樣的邊緣人工智能解決方案伴隨著挑戰(zhàn):
傳感器校準(zhǔn):
微調(diào)超聲波傳感器的閾值(50厘米),并確保PIR傳感器(如果使用)放置正確。
網(wǎng)絡(luò)穩(wěn)定性:
通過ngrok運行Flask服務(wù)器需要可靠的互聯(lián)網(wǎng)連接。監(jiān)控連接質(zhì)量和延遲。
模型優(yōu)化:
利用輕量級框架,并確保您的定制產(chǎn)品識別模型針對實時推理進(jìn)行了優(yōu)化。
記錄和監(jiān)控:
在傳感器環(huán)路和服務(wù)器中實施可靠的日志記錄,以快速診斷任何問題。
結(jié)論
該項目將嵌入式系統(tǒng)、深度學(xué)習(xí)和全棧開發(fā)結(jié)合在一起,創(chuàng)建了一個智能冰箱庫存管理解決方案。有了Raspberry Pi 5,一個使用定制YOLOv8n模型的人工智能攝像頭和傳感器觸發(fā)的檢測,你可以自動跟蹤你的冰箱里有什么,什么需要重新進(jìn)貨-所有這些都是實時的。
準(zhǔn)備好讓你的廚房自動化了嗎?分叉我們的存儲庫,設(shè)置您的Raspberry Pi,并開始以前所未有的方式管理您的冰箱庫存。祝您愉快,享受更智能、更有條理的廚房!
如有任何問題或反饋,請隨時聯(lián)系我們的GitHub知識庫或在上面提出問題。
部署和故障排除
部署這樣的邊緣人工智能解決方案伴隨著挑戰(zhàn):
傳感器校準(zhǔn):
微調(diào)超聲波傳感器的閾值(50厘米),并確保PIR傳感器(如果使用)放置正確。
網(wǎng)絡(luò)穩(wěn)定性:
通過ngrok運行Flask服務(wù)器需要可靠的互聯(lián)網(wǎng)連接。監(jiān)控連接質(zhì)量和延遲。
模型優(yōu)化:
利用輕量級框架,并確保您的定制產(chǎn)品識別模型針對實時推理進(jìn)行了優(yōu)化。
記錄和監(jiān)控:
在傳感器環(huán)路和服務(wù)器中實施可靠的日志記錄,以快速診斷任何問題。
結(jié)論
該項目將嵌入式系統(tǒng)、深度學(xué)習(xí)和全棧開發(fā)結(jié)合在一起,創(chuàng)建了一個智能冰箱庫存管理解決方案。有了Raspberry Pi 5,一個使用定制YOLOv8n模型的人工智能攝像頭和傳感器觸發(fā)的檢測,你可以自動跟蹤你的冰箱里有什么,什么需要重新進(jìn)貨-所有這些都是實時的。
準(zhǔn)備好讓你的廚房自動化了嗎?分叉我們的存儲庫,設(shè)置您的Raspberry Pi,并開始以前所未有的方式管理您的冰箱庫存。祝您愉快,享受更智能、更有條理的廚房!
如有任何問題或反饋,請隨時聯(lián)系我們的GitHub知識庫或在上面提出問題。
-
AI
+關(guān)注
關(guān)注
88文章
35194瀏覽量
280310 -
制冷系統(tǒng)
+關(guān)注
關(guān)注
8文章
131瀏覽量
19468 -
樹莓派
+關(guān)注
關(guān)注
121文章
2016瀏覽量
107517
發(fā)布評論請先 登錄
樹莓派5,Raspberry Pi 5 評測
空調(diào)制冷系統(tǒng)原理圖
制冷系統(tǒng)講座
[轉(zhuǎn)帖]冰箱制冷系統(tǒng)連接管道出現(xiàn)內(nèi)漏故障
[轉(zhuǎn)帖]排除冰箱制冷系統(tǒng)管道油堵故障
電冰箱不制冷的原因?電冰箱不制冷怎么解決?
基于AI和大數(shù)據(jù)技術(shù)的冷凍水制冷系統(tǒng)
模糊控制的微型制冷系統(tǒng)
樹莓派用什么語言編程_樹莓派python編程詳解
制冷系統(tǒng)的組成_制冷系統(tǒng)的工作原理

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

評論