- Požadované komponenty
- Propojení dotykového štítu TFT LCD s Arduino
- Kruhový diagram
- Vysvětlení kódu
- Testování projektu Smart Restaurant pomocí Arduina
Dnešní automatizační systémy jsou dnes všude, ať už doma, v kanceláři nebo v jakémkoli velkém průmyslu, všechny jsou vybaveny automatizačními systémy. Restaurace / hotely také přijímají nejnovější trendy v automatizaci a instalují roboty, které dodávají jídlo a tablety pro přijímání objednávek. Pomocí těchto digitálních jídelních lístků, jako jsou tablety, mohou zákazníci snadno vybrat položky. Tyto informace budou odeslány do kuchyně restaurace a také zobrazeny na displeji.
V tomto projektu budujeme projekt Smart Restaurant pomocí Arduina, TFT displeje a 433MHz RF vysílacího / přijímacího modulu. Zde bude sekce vysílače tvořena Arduino Uno, TFT displejem a RF vysílačem, pomocí kterého si zákazníci mohou vybírat potraviny a objednávat. Zatímco část přijímače se skládá z Arduino Uno, LCD modulu, RF přijímače a bzučáku, které budou instalovány v restauraci pro sledování objednávaných položek.
Požadované komponenty
- Arduino Uno (2)
- 433MHz RF vysílač a přijímač
- 2,4 "TFT LCD dotykový štít
- 16 * 2 LCD modul
- Modul I 2 C.
Propojení dotykového štítu TFT LCD s Arduino
2,4 "TFT LCD dotykový štít je vícebarevný TFT displej kompatibilní s Arduino UNO / Mega, který je dodáván také s dotykovou obrazovkou a paticí pro SD kartu. Tento modul TFT displeje má jasné podsvícení a barevný displej 240 x 320 pixelů. Skládá se také z jednotlivých RGB ovládání pixelů, které mu dává mnohem lepší rozlišení než černobílý displej.
Propojení TFT displeje s Arduino je velmi jednoduché a vysvětleno v předchozím tutoriálu. Musíte pouze připojit TFT displej přes desku Arduino Uno, jak je znázorněno na následujícím obrázku.
TFT LCD je velmi užitečný při vytváření přenosných aplikací, jako jsou:
- Kalkulačka dotykové obrazovky Arduino
- Chytrý telefon ovládaný digitální kódový zámek pomocí Arduina
- Arduino SMART budík
- NeoPixel LED Strip s Arduino a TFT LCD
Zde také zkontrolujte všechny projekty založené na TFT LCD.
Kruhový diagram
Projekt Smart Restaurant Menu Ordering System se skládá ze sekce RF vysílač a přijímač. Strana vysílače i přijímače používá pro zpracování dat Arduino Uno. Dříve jsme s Arduinem používali stejné RF moduly 433 MHz pro stavbu projektů, jako je bezdrátový zvonek, robot ovládaný gesty rukou atd. Schéma zapojení vysílače a přijímače je uvedeno níže.
Obvod sekce vysílače
Sekce vysílače tohoto projektu se skládá z Arduino Uno, RF vysílače a štítu TFT displeje. Tato část se používá pro objednávání z nabídky, která se zobrazuje na TFT displeji. Arduino Uno je mozek na straně vysílače, který zpracovává všechna data, a modul RF vysílače se používá k přenosu vybraných dat do přijímače. Datový kolík modulu RF vysílače je připojen k digitálnímu kolíku 12 Arduina, zatímco kolíky V CC a GND jsou připojeny k kolíku 5V a GND Arduina.
Obvod sekce přijímače
Sekce přijímače tohoto projektu se skládá z Arduino Uno, RF přijímače, 16 * 2 LCD modulu a I2C modulu. RF přijímač se používá k příjmu dat z vysílací sekce a LCD modul se používá k zobrazení přijatých dat. K vytvoření zvuku se při každé nové objednávce používá bzučák. Datový kolík RF přijímače je připojen k digitálnímu kolíku 11 Arduina, zatímco kolík V CC a GND je připojen k kolíku 5V a GND Arduina. Kladný kolík bzučáku je připojen k digitálnímu kolíku 2 Arduina a záporný kolík je připojen k kolíku GND Arduina. Kolíky SCL a SDA modulu I2C jsou připojeny k analogovým kolíkům A5 a A4 Arduino, zatímco kolíky VCC a GND jsou připojeny k kolíkům 5V a GND Arduino.
Vysvětlení kódu
Kompletní kód pro RF vysílací a přijímací stranu pro tento inteligentní objednávkový systém v restauraci je uveden na konci dokumentu. Všechny knihovny použité v tomto projektu lze stáhnout z uvedených odkazů.
- Knihovna RadioHead
- Knihovna SPFD5408
Knihovna RadioHead se používá pro modul RF vysílač / přijímač, zatímco knihovna SPFD5408 se používá pro TFT displej.
Kód sekce vysílače:
Spusťte kód zahrnutím všech požadovaných knihoven. Knihovna RH_ASK.h se používá pro komunikaci mezi vysílacími a přijímacími moduly. SPFD5408_Adafruit_GFX.h je základní grafická knihovna pro TFT displej.
#zahrnout
Poté vytvořte objekt s názvem 'ovladač' pro RH_ASK .
Ovladač RH_ASK;
Poté definujte minimální a maximální kalibrované hodnoty osy X a Y pro váš TFT displej.
#define TS_MINX 125 #define TS_MINY 85 #define TS_MAXX 965 #define TS_MAXY 905
Nyní uvnitř funkce drawHome nakreslete rozložení obrazovky TFT. Zde se tft.fillScreen používá k nastavení barvy pozadí.
Funkce tft.drawRoundRect se používá k vytvoření vyplněného obdélníku. Syntaxe funkce tft.drawRoundRect je uvedena níže:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, rádius int16_t, barva uint16_t)
Kde:
x0 = X souřadnice počátečního bodu obdélníkového tvaru
y0 = souřadnice Y počátečního bodu obdélníku
w = Šířka obdélníku
h = výška obdélníku
radius = Poloměr zaobleného rohu
color = Barva Rect.
Funkce tft.fillRoundRect se používá k vykreslení vyplněného obdélníku. Syntaxefunkce tft.fillRoundRect je uvedena níže:
tft.fillRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, poloměr int16_t, barva uint16_t) tft.fillScreen (BÍLÁ); tft.drawRoundRect (0, 0, 319, 240, 8, BÍLÁ); // Okraj stránky tft.fillRoundRect (30, 40, 100, 40, 8, GOLD); tft.drawRoundRect (30, 40, 100, 40, 8, BÍLÁ); // Dish1 tft.fillRoundRect (30, 90, 100, 40, 8, GOLD); tft.drawRoundRect (30, 90, 100, 40, 8, BÍLÁ); // Dish2 tft.fillRoundRect (30, 140, 100, 40, 8, GOLD); // Dish3 tft.drawRoundRect (30, 140, 100, 40, 8, WHITE);
Po vytvoření tlačítek na obrazovce TFT nyní zobrazte text na tlačítkách. tft.setCursor se používá k nastavení kurzoru od místa, kde chcete začít text.
tft.setCursor (60, 0); tft.setTextSize (3); tft.setTextColor (LIME); tft.print ("Nabídka"); tft.setTextSize (2); tft.setTextColor (BÍLÁ); tft.setCursor (37, 47); tft.print ("Dish1");
Uvnitř funkce přenosu prázdnoty odesílejte data na stranu přijímače každou 1 sekundu.
void transmit () {driver.send ((uint8_t *) msg, strlen (msg)); driver.waitPacketSent (); zpoždění (1000); }
Ve funkci void loop si přečtěte hodnotu Raw ADC pomocí funkce ts.getPoint.
TSPoint p = ts.getPoint ();
Nyní použijte funkci mapy k převodu nezpracovaných hodnot ADC na souřadnice Pixel.
px = mapa (px, TS_MAXX, TS_MINX, 0, 320); py = mapa (py, TS_MAXY, TS_MINY, 0, 240);
Po převodu hodnot Raw ADC na souřadnici pixelů zadejte souřadnice pixelu pro tlačítko Dish1 a pokud se někdo dotkne obrazovky mezi touto oblastí, odešlete zprávu na stranu příjemce.
if (px> 180 && px <280 && py> 190 && py <230 && pz> MINPRESSURE && pz <MAXPRESSURE) {Serial.println ("Dish1"); msg = "jídlo 1"; vysílat (); tft.fillRoundRect (30, 40, 100, 40, 8, BÍLÁ); zpoždění (70); tft.fillRoundRect (30, 40, 100, 40, 8, GOLD); tft.drawRoundRect (30, 40, 100, 40, 8, BÍLÁ); tft.setCursor (37, 47); tft.println ("Jídlo1"); zpoždění (70); }
Stejným způsobem postupujte u všech ostatních tlačítek.
Kód sekce přijímače
U kódu sekce RF přijímače zahrňte knihovny pro RF přijímač a LCD modul. Patří také SPI.h knihovnu pro vytvoření SPI komunikaci mezi Arduino a RF přijímačem.
#zahrnout
Uvnitř funkce neplatné smyčky neustále kontrolujte přenášené zprávy. A pokud modul přijímače obdrží zprávu, zobrazte zprávu na modulu LCD a vydejte zvukový signál.
if (driver.recv (buf, & buflen)) // Neblokující {int i; digitalWrite (bzučák, VYSOKÝ); zpoždění (1000); digitalWrite (bzučák, LOW);. lcd.print ("T1:"); lcd.print ((char *) buf);
Testování projektu Smart Restaurant pomocí Arduina
Po připojení veškerého hardwaru a nahrání kódu pro sekci vysílače i přijímače je nyní čas projekt otestovat. Chcete-li projekt otestovat, stiskněte tlačítko na TFT displeji, na LCD modulu připojeném ke straně přijímače by mělo být zobrazeno jméno paraboly s číslem tabulky, které je T1. Pokud LCD na přijímači nic nezobrazuje, zkontrolujte, zda vaše TFT obrazovka funguje nebo ne.
Takto můžete sestavit projekt Smart Restaurant Menu Ordering System pomocí Arduina a TFT displeje. Můžete také změnit orientaci obrazovky a přidat další tlačítka.
Níže je uvedeno pracovní video s úplným kódem.