0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

你的冰箱会编程?树莓派5打造AI制冷系统的疯狂实验

上海晶珩电子科技有限公司 2025-04-15 08:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在这篇文章中,我们详细介绍了我们构建智能冰箱库存管理系统的旅程,该系统由Raspberry Pi 5和AI摄像头提供支持。使用安装在冰箱一侧的超声波传感器,我们的系统可以确定何时开始产品检测以及何时发送更新。通过我们定制的YOLOv8n模型(通过Roboflow导出为IMX500格式),摄像机可以识别关键产品——奶酪、可乐、鸡蛋、番茄酱、牛奶、pittas和schnitzels——并根据它们在帧中的位置进行分类。生成的“进”和“出”列表通过带SocketIO的Flask服务器实时传输到React仪表板,帮助您了解哪些库存,哪些需要重新进货。

"井然有序的冰箱,是健康生活的第一步。"——匿名

简介

想象一下,打开你的冰箱,让一个人工智能系统立即告诉你什么是可用的,什么是缺失的。我们的项目通过使用传感器触发器自动跟踪冰箱库存。当超声波传感器检测到冰箱门在50厘米以内时,人工智能摄像头就会开始分析产品放置。或者,使用PIR运动传感器,摄像机在感应到运动时立即开始检测,并在静止5秒后发送更新。这种嵌入式AI和全栈开发的无缝集成,让库存管理变得毫不费力。

观看示例:


观察系统的运行,它会实时更新你的冰箱库存。

硬件设置

我们的配置利用了传感器和尖端人工智能的组合:

Raspberry Pi 5–加工中心。

AI摄像头模块——配备我们定制的YOLOv8n型号(出口到IMX500 ),用于检测奶酪、可乐、鸡蛋、番茄酱、牛奶、pittas和schnitzels等产品。

超声波传感器——安装在冰箱侧,测量到门的距离。当距离小于50厘米时,系统激活产品检测。

PIR运动传感器(备选)–当检测到运动时触发检测,并在5秒钟无运动后发送更新。

带SocketIO的Flask服务器–处理实时通信。

React仪表板–显示两个列表:当前在冰箱中的物品和已过期的物品(用于补货)。

连接示意图:

下面是我们的Fritzing图,说明传感器和摄像头的连接:

3fd19868-198d-11f0-9434-92fbcf53809c.jpg

超声波传感器设置:

将传感器放在冰箱侧面,面向门。

传感器持续监控距离。如果门是关着的(50厘米),系统开始捕捉帧进行分析。当门移开(> 50厘米)时,它触发更新传输。

PIR运动传感器设置(可选):

安装传感器,检测冰箱附近的运动。

运动检测时,摄像机开始产品识别。如果5秒钟内没有检测到任何运动,将发送库存更新。

如需详细布线,请查看我们的Fritzing图。

嵌入式深度学习和产品识别

我们系统的核心是一个使用定制训练的YOLOv8n网络的人工智能摄像机。该模型经过优化,并通过Roboflow导出为IMX500兼容格式,可识别我们的主要产品,并区分“进”一半(冰箱内)和“出”一半(被移除或缺失)的产品。

产品识别逻辑代码片段

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厘米以内时,系统开始捕捉产品检测帧。一旦门移开(距离超过50厘米),累积的“进”和“出”列表被发送到服务器。

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传感器的环境,摄像机在运动检测时激活,如果5秒内没有检测到运动,则发送库存更新。

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仪表板显示最新的数据。

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仪表盘)

实时数据管道从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;

      部署和故障排除

      部署这样的边缘人工智能解决方案伴随着挑战:

      传感器校准:

      微调超声波传感器的阈值(50厘米),并确保PIR传感器(如果使用)放置正确。

      网络稳定性:

      通过ngrok运行Flask服务器需要可靠的互联网连接。监控连接质量和延迟。

      模型优化:

      利用轻量级框架,并确保您的定制产品识别模型针对实时推理进行了优化。

      记录和监控:

      在传感器环路和服务器中实施可靠的日志记录,以快速诊断任何问题。

      结论

      该项目将嵌入式系统、深度学习和全栈开发结合在一起,创建了一个智能冰箱库存管理解决方案。有了Raspberry Pi 5,一个使用定制YOLOv8n模型的人工智能摄像头和传感器触发的检测,你可以自动跟踪你的冰箱里有什么,什么需要重新进货-所有这些都是实时的。

      准备好让你的厨房自动化了吗?分叉我们的存储库,设置您的Raspberry Pi,并开始以前所未有的方式管理您的冰箱库存。祝您愉快,享受更智能、更有条理的厨房!

      如有任何问题或反馈,请随时联系我们的GitHub知识库或在上面提出问题。

    声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
    • AI
      AI
      +关注

      关注

      89

      文章

      38121

      浏览量

      296676
    • 制冷系统
      +关注

      关注

      8

      文章

      131

      浏览量

      19681
    • 树莓派
      +关注

      关注

      122

      文章

      2069

      浏览量

      109713

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    树莓5,Raspberry Pi 5 评测

    会触发安全关机。这种关机更像是待机模式,树莓的功耗为1.4瓦。按下电源按钮将启动树莓5
    发表于 06-19 14:51

    空调制冷系统原理图

    本帖最后由 eehome 于 2013-1-5 09:59 编辑 <p>空调制冷系统原理图<br/></p>
    发表于 06-28 11:23

    制冷系统讲座

    制冷系统讲座 一、制冷基本原理定义:制冷:从低于环境的物体中吸取热量,并将其转移给环境介质的过程。制冷机:完成制冷循环所必需的机器和设备的总
    发表于 10-19 16:01

    [转帖]冰箱制冷系统连接管道出现内漏故障

        案例描述:送修的故障冰箱是一台扬子牌bcd-202直冷式平背型电冰箱,,制冷系统连接管道出现内漏故障。本案例的故障部位是主蒸发器与副
    发表于 03-02 16:46

    [转帖]排除冰箱制冷系统管道油堵故障

        案例描述:送修冰箱是一台万宝bcd-188直冷式/风冷式电冰箱冰箱制冷系统管道出现油堵故障;本案例故障点在于
    发表于 03-11 17:06

    冰箱制冷的原因?电冰箱制冷怎么解决?

    冰箱制冷的原因分析1、压缩机内高压输出缓冲管断裂,或固定此管的螺钉松动,造成高压管不排气,低压管不吸气,所以压缩机虽运转,但不制冷。2、制冷系统泄漏,
    发表于 06-15 16:54

    基于AI和大数据技术的冷冻水制冷系统

      中国联通河南分公司基于AI和大数据技术,针对数据中心的冷冻水制冷系统进行优化,重点解决数据中心高PUE、高能耗的问题,并结合实际情况制定了相应的优化方案。  1.1数据中心能耗分析  网络演进
    发表于 12-03 14:46

    树莓能做什么

    第一课:什么是树莓第二课:树莓能做什么第三课:购买您的第一个树莓第四课:如何安装
    发表于 09-10 07:28

    制冷系统原理图

    制冷系统原理图
    发表于 06-28 11:25 908次下载
    <b class='flag-5'>制冷系统</b>原理图

    模糊控制的微型制冷系统

    介绍一种利用半导体制冷片制成的微型制冷系统,在实际应用中可制成小型冰箱,在本系统中将采用模糊算法进行控制,使系统更加智能化。关键词:半导体
    发表于 05-31 16:22 44次下载

    树莓用什么语言编程_树莓python编程详解

    树莓是一个非常廉价的、只有手掌大小的完全可编程的计算机。虽然树莓的体积小,但是它的潜力无限。
    发表于 01-15 17:00 4w次阅读

    制冷系统的组成_制冷系统的工作原理

    本文首先说明了制冷系统主要部件组成,然后分别介绍了制冷系统的四大机件,最后分析了制冷系统的工作原理。
    发表于 08-02 15:49 2.8w次阅读
    <b class='flag-5'>制冷系统</b>的组成_<b class='flag-5'>制冷系统</b>的工作原理

    制冷系统的故障分析_制冷系统故障原因

    本文从制冷运转主机故障和制冷系统故障两方面对制冷系统故障的原因进行了分析。
    发表于 08-02 17:33 3826次阅读

    冷库制冷系统的工作原理

    冷库制冷系统包括完整的蒸气压缩式制冷系统应包括制冷剂循环系统、润滑油循环系统、融霜系统、冷却水循
    的头像 发表于 04-05 15:16 6.3w次阅读
    冷库<b class='flag-5'>制冷系统</b>的工作原理

    制冷系统部件构成有哪些类型 制冷系统部件检查内容有哪些

    制冷系统通常由多个部件组成,每个部件承担着不同的功能。以下是常见的制冷系统部件类型。
    的头像 发表于 08-14 15:52 3208次阅读