基于物聯(lián)網(wǎng)的餐廳菜單訂購(gòu)系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
基于物聯(lián)網(wǎng)的訂餐系統(tǒng)正在取代餐館的傳統(tǒng)訂餐系統(tǒng)。餐館現(xiàn)在不再使用紙質(zhì)菜單卡,而是在桌子上安裝觸摸屏顯示器,這樣顧客就可以直接從屏幕上選擇食物,輕松點(diǎn)餐。
在這個(gè)項(xiàng)目中,我們正在使用Arduino構(gòu)建一個(gè)基于物聯(lián)網(wǎng)的智能餐廳項(xiàng)目。這里使用TFT觸摸顯示器進(jìn)行訂購(gòu),并使用HC-05藍(lán)牙模塊將數(shù)據(jù)發(fā)送到Arduino。Blynk應(yīng)用程序被用作物聯(lián)網(wǎng)平臺(tái),所有數(shù)據(jù)都被上傳,可以從世界任何地方進(jìn)行監(jiān)控。
組件的要求
?Arduino Uno
?2.4 " TFT液晶顯示屏
?HC-05藍(lán)牙模塊
餐廳菜單點(diǎn)單系統(tǒng)電路圖
這個(gè)智能點(diǎn)餐系統(tǒng)的電路圖非常簡(jiǎn)單,我們只需要用Arduino連接TFT顯示器和藍(lán)牙模塊。藍(lán)牙模塊的Vcc和GND引腳連接到Arduino的5V和GND引腳,TX和RX引腳連接到Arduino的數(shù)字引腳11和12。
2.4英寸TFT液晶屏是Arduino Shield,可以直接安裝在Arduino Uno上,如下圖所示。TFT顯示器有28個(gè)引腳,完全適合Arduino Uno,所以我必須在Arduino的背面焊接藍(lán)牙模塊。
為智能餐廳項(xiàng)目配置Blynk應(yīng)用程序
從Google Play商店下載Blynk應(yīng)用程序并創(chuàng)建一個(gè)新帳戶或登錄到您現(xiàn)有的帳戶。通過(guò)各種基于Blynk的物聯(lián)網(wǎng)項(xiàng)目了解更多關(guān)于使用Blynk的信息。
登錄后,首先點(diǎn)擊“New Project”啟動(dòng)一個(gè)新項(xiàng)目。
然后給你的項(xiàng)目起一個(gè)名字。在CHOOSE DEVICE選項(xiàng)中選擇“Arduino Uno”,在CONNECTION TYPE中選擇“Bluetooth”。然后點(diǎn)擊“創(chuàng)建”。
在此之后,Blynk將向注冊(cè)的電子郵件id發(fā)送授權(quán)。記下認(rèn)證令牌代碼。它將在程序中使用。
現(xiàn)在轉(zhuǎn)到Widget框,選擇“Bluetooth”小部件。點(diǎn)擊藍(lán)牙,然后點(diǎn)擊“連接藍(lán)牙設(shè)備”。在此之前,打開(kāi)手機(jī)的藍(lán)牙,選擇“HC-05”,如果要求輸入密碼,就輸入1234。
然后,再次轉(zhuǎn)到Widget框并選擇“Table”小部件。單擊Table小部件并選擇虛擬引腳‘ V0 ’作為輸入。
現(xiàn)在點(diǎn)擊“Play”按鈕來(lái)運(yùn)行項(xiàng)目。
代碼的解釋
完整的代碼為這個(gè)智能餐廳項(xiàng)目使用Arduino給出在頁(yè)面的末尾。這段代碼有三個(gè)部分。一個(gè)是創(chuàng)建餐廳菜單的UI,第二個(gè)是檢測(cè)觸摸,第三個(gè)是根據(jù)用戶觸摸的按鈕將數(shù)據(jù)發(fā)送給Blynk應(yīng)用。這里我們將解釋所有重要的功能。
通過(guò)包含所有必需的庫(kù)開(kāi)始編寫(xiě)代碼。這里我們使用的是SPFD5408庫(kù),它是原始Adafruit庫(kù)的修改版本。除了SPFD庫(kù)之外,還使用了Blynk和Software Serial庫(kù)。因此,在繼續(xù)之前,請(qǐng)?jiān)贏rduino IDE中安裝所有三個(gè)庫(kù)。
之后,定義X和y軸的校準(zhǔn)值。這里使用的是庫(kù)中給出的默認(rèn)值。如果你認(rèn)為你的屏幕觸摸不能正常工作,你可以使用你的校準(zhǔn)值。
在包含庫(kù)并定義一些重要參數(shù)之后,是時(shí)候創(chuàng)建餐廳菜單的UI了。這里我們創(chuàng)建了一個(gè)簡(jiǎn)單的UI,總共有9個(gè)按鈕。在9個(gè)按鈕中,6個(gè)按鈕是用來(lái)點(diǎn)不同的菜,其余3個(gè)按鈕是用來(lái)叫服務(wù)員、要水和結(jié)賬的。
這里fillRoundRect和drawRoundRect函數(shù)用于繪制按鈕。您可以使用可用的函數(shù)繪制線條,矩形,圓圈,字符,字符串和更多。tft的語(yǔ)法和解釋。drawwroundrect函數(shù)如下:
地點(diǎn):
x0=矩形起始點(diǎn)的X坐標(biāo)
y0=矩形起始點(diǎn)的Y坐標(biāo)
w =矩形的寬度
h =矩形的高度
半徑=圓角的半徑
color =矩形的顏色。
創(chuàng)建按鈕后,使用tft為它們命名。setCursor和tft。打印功能。
最后,餐廳菜單UI看起來(lái)像這樣:
現(xiàn)在,在代碼的第二部分中,我們將檢測(cè)按鈕觸摸。為此,為每個(gè)按鈕定義精確的X和Y坐標(biāo),并使用ts.getPoint函數(shù)讀取原始ADC值,然后使用map函數(shù)將原始ADC值轉(zhuǎn)換為像素坐標(biāo)。您可以使用Serial Monitor獲取每個(gè)按鈕的X和Y坐標(biāo),還可以使用屏幕布局預(yù)測(cè)每個(gè)按鈕的位置。
在獲得每個(gè)按鈕的X和Y坐標(biāo)后,使用這些值來(lái)預(yù)測(cè)用戶觸摸屏幕的位置。
現(xiàn)在,在代碼的最后一部分,使用HC-05藍(lán)牙模塊將數(shù)據(jù)發(fā)送到Blynk應(yīng)用程序。
智能點(diǎn)餐系統(tǒng)在餐廳的測(cè)試
連接TFT顯示器和藍(lán)牙模塊后,在Arduino Uno中上傳給定的代碼,打開(kāi)Blynk應(yīng)用程序。在Blynk應(yīng)用程序中打開(kāi)項(xiàng)目,將Blynk應(yīng)用程序與藍(lán)牙模塊連接。
現(xiàn)在按下TFT顯示器上的任何按鈕,并檢查Blynk應(yīng)用程序是否正在發(fā)送與該按鈕相關(guān)的消息。例如,如果您按下‘ Bill ’按鈕,那么它應(yīng)該在表小部件中顯示‘ Customer button ’。
本文編譯自iotdesignpro