通过拣选柜、温度监控系统和库存探测器构建一个系统来提高零售商店的顾客体验
扫描二维码
随时随地手机看文章
这个项目是关于什么的?这个项目是一个奉献和创新的劳动,结合智能技术,创造一个更好,更高效的零售体验。通过整合自动化和可持续性,它旨在解决商店的日常问题,同时提高顾客满意度。
我们为什么要创建这个项目?在我们的研究中,我们注意到顾客和店主都面临的几个问题:
智能零售储物柜:传统的店内取货/交换经常导致延迟、错放和长时间等待,在增加员工工作量的同时让客户感到沮丧。手动检索过程容易出现人为错误,因此很难提供无缝的购物体验。
•库存探测器:库存可能在高峰时段耗尽,员工可能没有意识到并补充库存。
•不舒适的商店环境:糟糕的空气质量或极端的温度会使购物体验不愉快。
我们意识到这些问题不仅给顾客带来了不便,也影响了店铺的效率和可持续性。这个项目将提供一个更好的购物体验的愿景。这不仅仅是关于自动化,而是关于负责任地使用技术来改善生活和节约资源。通过应对这些挑战,我们的目标是创造一个更智能、更愉快的购物环境,让每个人都受益。
它是如何工作的?
智能零售储物柜:一个自动化的自助服务系统,可以让顾客在没有工作人员帮助的情况下安全地在店内取货或交换订单。它使用物联网技术、RFID扫描和伺服电机作为锁,提高了效率,减少了等待时间,并简化了零售商店的购物体验。
•智能库存检测器:一种智能库存监控系统,使用TOF传感器来检测库存水平。
•智能环境监测:使用ENVII传感器跟踪空气质量和温度,以保持商店的舒适和欢迎。
功能及其工作原理。
功能1:智能Pick Locker
组件:RFID和伺服电机
工作原理:当RFID读取器检测到正确的拾取、交换或返回代码时,伺服电机解锁,LED变为绿色,并发出蜂鸣器。屏幕上显示了一个图像和“授权进入”的信息,允许顾客取回或退回他们的东西。在系统重置和储物柜关闭之前,客户有一定的时间。如果在计时器到期前按下按钮,锁柜关闭,机器重新启动。如果RFID码不正确,设备会显示“Access Denied, Try Again”,LED亮红色,并发出低鸣声。如果没有人与储物柜互动,LED就会变成蓝色,屏幕上显示一个带有“扫描这里”字样的图像,以提示下一个用户。
为什么重要:
•减少了挑选物品的等待时间
•通过避免手动错误来提高准确性。
•让顾客的购物体验更加无缝。
功能2:智能股票检测器
组件:TOF传感器和伺服电机
工作原理:TOF传感器测量自身与存储物品之间的距离。如果距离增加,系统更新库存。如果库存过低,伺服电机将转动货架,提醒工作人员补充库存。
为什么重要:
•TOF传感器提供实时库存水平更新,减少人工检查。
•防止短缺,确保库存的可用性。
•跟踪库存水平,防止库存过剩或短缺。
功能3:智能环境监测
组件:ENVII传感器
工作原理:ENVII传感器实时监测空气质量、温度和湿度。当温度低于或高于某一水平时,温度监控系统将显示一个图像,提醒商店经理调整温度以保持舒适。
为什么重要:
•确保一个愉快的购物环境。
•展示对客户福祉的承诺。
•帮助客户和员工保持理想的工作环境。
代码
from m5stack import *
from m5ui import *
from uiflow import *
import unit
setScreenColor(0x222222)
env2_0 = unit.get(unit.ENV2, unit.PAHUB0)
tof_0 = unit.get(unit.TOF, unit.PAHUB5)
pahub_0 = unit.get(unit.PAHUB, unit.PORTA)
servo_0 = unit.get(unit.SERVO, unit.PORTB)
Stock_Level = None
label0 = M5TextBox(13, 14, "Temperature:", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label2 = M5TextBox(121, 14, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label1 = M5TextBox(26, 42, "Humidity:", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label3 = M5TextBox(121, 42, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label4 = M5TextBox(25, 76, "Pressure:", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label5 = M5TextBox(121, 76, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
image0 = M5Img(189, 17, "res/coolTemp.png", True)
image1 = M5Img(189, 14, "res/Hightemp.png", True)
label12 = M5TextBox(13, 122, "Stock Level:", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label13 = M5TextBox(140, 122, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label14 = M5TextBox(13, 161, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
# Describe this function...
def Stock_level():
global Stock_Level
label12.setText('Stock level')
label13.setText(str(Stock_Level))
Stock_Level = tof_0.distance
if float(Stock_Level) < 130:
label14.setText('Stock is available. ')
servo_0.write_angle(180)
elif float(Stock_Level) >= 130:
label14.setText('Stock is empty')
servo_0.write_angle(0)
while True:
label2.setText(str(env2_0.temperature))
label3.setText(str(env2_0.humidity))
label5.setText(str(env2_0.pressure))
if (env2_0.temperature) <= 24:
rgb.setColorAll(0x3366ff)
speaker.tone(1800, 200)
image0.changeImg("res/default.jpg")
image0.show()
image1.hide()
elif (env2_0.temperature) > 24 and (env2_0.temperature) <= 26:
image0.hide()
image1.hide()
rgb.setColorAll(0x33cc00)
else:
rgb.setColorAll(0xcc0000)
image0.hide()
image1.changeImg("res/default.jpg")
image1.show()
Stock_level()
wait_ms(2)
本文编译自hackster.io