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