通過揀選柜、溫度監(jiān)控系統(tǒng)和庫存探測器構(gòu)建一個系統(tǒng)來提高零售商店的顧客體驗
這個項目是關(guān)于什么的?這個項目是一個奉獻(xiàn)和創(chuàng)新的勞動,結(jié)合智能技術(shù),創(chuàng)造一個更好,更高效的零售體驗。通過整合自動化和可持續(xù)性,它旨在解決商店的日常問題,同時提高顧客滿意度。
我們?yōu)槭裁匆獎?chuàng)建這個項目?在我們的研究中,我們注意到顧客和店主都面臨的幾個問題:
智能零售儲物柜:傳統(tǒng)的店內(nèi)取貨/交換經(jīng)常導(dǎo)致延遲、錯放和長時間等待,在增加員工工作量的同時讓客戶感到沮喪。手動檢索過程容易出現(xiàn)人為錯誤,因此很難提供無縫的購物體驗。
?庫存探測器:庫存可能在高峰時段耗盡,員工可能沒有意識到并補(bǔ)充庫存。
?不舒適的商店環(huán)境:糟糕的空氣質(zhì)量或極端的溫度會使購物體驗不愉快。
我們意識到這些問題不僅給顧客帶來了不便,也影響了店鋪的效率和可持續(xù)性。這個項目將提供一個更好的購物體驗的愿景。這不僅僅是關(guān)于自動化,而是關(guān)于負(fù)責(zé)任地使用技術(shù)來改善生活和節(jié)約資源。通過應(yīng)對這些挑戰(zhàn),我們的目標(biāo)是創(chuàng)造一個更智能、更愉快的購物環(huán)境,讓每個人都受益。
它是如何工作的?
智能零售儲物柜:一個自動化的自助服務(wù)系統(tǒng),可以讓顧客在沒有工作人員幫助的情況下安全地在店內(nèi)取貨或交換訂單。它使用物聯(lián)網(wǎng)技術(shù)、RFID掃描和伺服電機(jī)作為鎖,提高了效率,減少了等待時間,并簡化了零售商店的購物體驗。
?智能庫存檢測器:一種智能庫存監(jiān)控系統(tǒng),使用TOF傳感器來檢測庫存水平。
?智能環(huán)境監(jiān)測:使用ENVII傳感器跟蹤空氣質(zhì)量和溫度,以保持商店的舒適和歡迎。
功能及其工作原理。
功能1:智能Pick Locker
組件:RFID和伺服電機(jī)
工作原理:當(dāng)RFID讀取器檢測到正確的拾取、交換或返回代碼時,伺服電機(jī)解鎖,LED變?yōu)榫G色,并發(fā)出蜂鳴器。屏幕上顯示了一個圖像和“授權(quán)進(jìn)入”的信息,允許顧客取回或退回他們的東西。在系統(tǒng)重置和儲物柜關(guān)閉之前,客戶有一定的時間。如果在計時器到期前按下按鈕,鎖柜關(guān)閉,機(jī)器重新啟動。如果RFID碼不正確,設(shè)備會顯示“Access Denied, Try Again”,LED亮紅色,并發(fā)出低鳴聲。如果沒有人與儲物柜互動,LED就會變成藍(lán)色,屏幕上顯示一個帶有“掃描這里”字樣的圖像,以提示下一個用戶。
為什么重要:
?減少了挑選物品的等待時間
?通過避免手動錯誤來提高準(zhǔn)確性。
?讓顧客的購物體驗更加無縫。
功能2:智能股票檢測器
組件:TOF傳感器和伺服電機(jī)
工作原理:TOF傳感器測量自身與存儲物品之間的距離。如果距離增加,系統(tǒng)更新庫存。如果庫存過低,伺服電機(jī)將轉(zhuǎn)動貨架,提醒工作人員補(bǔ)充庫存。
為什么重要:
?TOF傳感器提供實時庫存水平更新,減少人工檢查。
?防止短缺,確保庫存的可用性。
?跟蹤庫存水平,防止庫存過?;蚨倘薄?
功能3:智能環(huán)境監(jiān)測
組件:ENVII傳感器
工作原理:ENVII傳感器實時監(jiān)測空氣質(zhì)量、溫度和濕度。當(dāng)溫度低于或高于某一水平時,溫度監(jiān)控系統(tǒng)將顯示一個圖像,提醒商店經(jīng)理調(diào)整溫度以保持舒適。
為什么重要:
?確保一個愉快的購物環(huán)境。
?展示對客戶福祉的承諾。
?幫助客戶和員工保持理想的工作環(huán)境。
代碼
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