- Szükséges alkatrészek
- Összekötő TFT LCD érintőpajzs Arduinóval
- Kördiagramm
- Kód Magyarázat
- A Smart Restaurant projekt tesztelése Arduino használatával
A mai automatizálási rendszerek mindenhol megtalálhatók, legyen szó otthoni, irodai vagy bármilyen nagy iparágról, mindegyik automatizált rendszerrel van felszerelve. Az éttermek / szállodák szintén alkalmazzák a legújabb automatizálási trendeket, és robotokat telepítenek, hogy ételeket és táblagépeket szállítsanak megrendelésekhez. Ezekkel a digitális menükártyákkal, például táblagépekkel az ügyfelek könnyedén kiválaszthatják az elemeket. Ezeket az információkat elküldik az étterem konyhájába, és a kijelzőn is megjelenítik.
Ebben a projektben intelligens éttermi projektet építünk Arduino, TFT kijelző és 433MHz RF adó / vevő modul felhasználásával. Itt az adó rész Arduino Uno-ból, TFT-kijelzőből és RF-adóból áll, amelyek segítségével az ügyfelek kiválaszthatják az ételeket és leadhatják a rendelést. Míg a vevő rész egy Arduino Uno, LCD modul, RF vevő és egy hangjelzőből áll, amelyeket az étterem konyhájába telepítenek a megrendelés nyomon követésére.
Szükséges alkatrészek
- Arduino Uno (2)
- 433MHz RF adó és vevő
- 2,4 "TFT LCD érintőképernyő
- 16 * 2 LCD modul
- I 2 C modul
Összekötő TFT LCD érintőpajzs Arduinóval
A 2,4 "TFT LCD érintőképernyő egy tarka Arduino UNO / Mega kompatibilis TFT kijelző, amely érintőképernyővel és SD-kártya foglalattal is rendelkezik. Ez a TFT kijelzőmodul erős háttérvilágítással és színes 240X320 pixeles kijelzővel rendelkezik. Ezenkívül egyedi RGB pixel vezérlés, amely sokkal jobb felbontást biztosít, mint a fekete-fehér kijelzők.
A TFT kijelző és az Arduino összekapcsolása nagyon egyszerű, és az előző bemutatóban elmagyarázzák. Csak a TFT kijelzőt kell felszerelnie az Arduino Uno táblára, amint az az alábbi képen látható.
A TFT LCD nagyon hasznos olyan hordozható alkalmazások építésében, mint:
- Arduino érintőképernyős számológép
- Okos telefon vezérelt digitális kódzár az Arduino használatával
- Arduino SMART ébresztőóra
- NeoPixel LED szalag Arduino és TFT LCD-vel
Itt ellenőrizheti az összes TFT LCD alapú projektet.
Kördiagramm
Az intelligens éttermi menürendelési projekt az RF adó és vevő részből áll. Az adó és a vevő oldal egyaránt Arduino Uno-t használ az adatfeldolgozáshoz. Korábban ugyanazokat a 433 MHz-es RF modulokat használtuk az Arduino-val olyan projektek építéséhez, mint egy vezeték nélküli csengő, kézmozdulattal vezérelt robot stb. Az adó és vevő szakasz kapcsolási rajzát az alábbiakban adjuk meg.
Távadó szakasz áramköre
A projekt adószekciója egy Arduino Uno, RF adó és TFT kijelző pajzsból áll. Ez a szakasz a TFT kijelzőjén megjelenő menüből történő rendelésre szolgál. Az Arduino Uno az adó adatait kezelő agy, amely az összes adatot feldolgozza, és az RF adó modult használják a kiválasztott adatok továbbítására a vevőre. Az RF adómodul adatcsatlakozója az Arduino digitális 12 érintkezőjéhez, míg a V CC és a GND csapok az Arduino 5V és GND tűihez vannak csatlakoztatva.
Vevő szakasz áramköre
A projekt vevő része egy Arduino Uno, RF vevő, 16 * 2 LCD és I2C modulból áll. Az RF vevőt az adatok vételére használják az adó részről, az LCD modult pedig a fogadott adatok megjelenítésére. Új hangjelzéssel hangjelzést adnak, amikor új megrendelés érkezik. Az RF vevő adatcsatlakozója az Arduino 11. digitális csatlakozójához, míg a V CC és a GND tű az Arduino 5V és GND tűjéhez csatlakozik. A Zümmögő pozitív csapja az Arduino digitális 2-es, a negatív csapja pedig az Arduino GND-tűjéhez csatlakozik. Az I2C modul SCL és SDA csatlakozói az A5 és A4 Arduino analóg csapokhoz vannak csatlakoztatva, míg a VCC és a GND csapok az Arduino 5 V és GND csatlakozóihoz vannak csatlakoztatva.
Kód Magyarázat
Az étteremben található intelligens rendelési rendszer rádióadójának és vevőjének teljes kódja a dokumentum végén található. A projektben használt összes könyvtár letölthető a megadott linkekről.
- RadioHead könyvtár
- SPFD5408 könyvtár
A RadioHead könyvtár az RF adó / vevő modulhoz, míg az SPFD5408 könyvtár a TFT megjelenítéshez.
Adó szakasz kód:
Indítsa el a kódot az összes szükséges könyvtár beillesztésével. Az RH_ASK.h könyvtár az adó és a vevő modulok közötti kommunikációra szolgál. Az SPFD5408_Adafruit_GFX.h egy Core grafikus könyvtár a TFT megjelenítéshez.
#include
Ezt követően hozzon létre egy „driver” nevű objektumot az RH_ASK fájlhoz .
RH_ASK illesztőprogram;
Ezt követően adja meg a TFT-kijelző minimális és maximális kalibrált X & Y tengely értékét.
#define TS_MINX 125 #define TS_MINY 85 #define TS_MAXX 965 #define TS_MAXY 905
Most a drawHome funkción belül rajzoljon egy elrendezést a TFT képernyőhöz. Itt a tft.fillScreen használható a háttérszín beállítására.
A tft.drawRoundRect függvény egy kitöltött téglalap létrehozására szolgál. A tft.drawRoundRect függvény szintaxisa az alábbiakban található:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t sugár, uint16_t szín)
Hol:
x0 = a téglalap kezdőpontjának X koordinátája
y0 = a téglalap kezdőpontjának Y koordinátája
w = a téglalap alakú szélesség
h = a téglalap magassága
sugár = a kerek sarok sugara
color = a Rect színe.
A tft.fillRoundRect függvény egy kitöltött téglalap rajzolására szolgál. A tft.fillRoundRect függvényszintaxisa azalábbiakban található:
tft.fillRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t sugár, uint16_t szín) tft.fillScreen (FEHÉR); tft.drawRoundRect (0, 0, 319, 240, 8, FEHÉR); // Oldalhatár tft.fillRoundRect (30, 40, 100, 40, 8, GOLD); tft.drawRoundRect (30, 40, 100, 40, 8, FEHÉR); // Dish1 tft.fillRoundRect (30, 90, 100, 40, 8, GOLD); tft.drawRoundRect (30, 90, 100, 40, 8, FEHÉR); // Dish2 tft.fillRoundRect (30, 140, 100, 40, 8, GOLD); // Dish3 tft.drawRoundRect (30, 140, 100, 40, 8, FEHÉR);
Miután létrehozta a gombokat a TFT képernyőn, most jelenítse meg a szöveget a gombokon. A tft.setCursor a kurzor beállításához használja azt a helyet, ahonnan a szöveget el akarja indítani.
tft.setCursor (60, 0); tft.setTextSize (3); tft.setTextColor (LIME); tft.print ("Menü"); tft.setTextSize (2); tft.setTextColor (FEHÉR); tft.setCursor (37, 47); tft.print ("Edény1");
Az üres adás funkcióban 1 másodpercenként küldje el az adatokat a vevő oldalára.
void transmit () {driver.send ((uint8_t *) msg, strlen (msg)); driver.waitPacketSent (); késés (1000); }
A void loop függvényen belül olvassa el a nyers ADC értéket a ts.getPoint függvény segítségével.
TSPoint p = ts.getPoint ();
Most használja a térkép funkció átalakítására a nyers ADC értékeket pixel koordinátáit.
px = térkép (px, TS_MAXX, TS_MINX, 0, 320); py = térkép (py, TS_MAXY, TS_MINY, 0, 240);
Miután konvertálta a Raw ADC értékeket pixelkoordinátává , írja be a Dish1 gomb pixelkoordinátáit, és ha valaki megérinti a képernyőt e terület között, akkor küldje el az üzenetet a vevő oldalának.
if (px> 180 && px <280 && py> 190 && py <230 && pz> MINPRESSURE && pz <MAXPRESSURE) {Serial.println ("Tál1"); msg = "étel1"; továbbít (); tft.fillRoundRect (30, 40, 100, 40, 8, FEHÉR); késés (70); tft.fillRoundRect (30, 40, 100, 40, 8, ARANY); tft.drawRoundRect (30, 40, 100, 40, 8, FEHÉR); tft.setCursor (37, 47); tft.println ("étel1"); késés (70); }
Kövesse ugyanezt az eljárást az összes többi gomb esetében.
Vevő szakasz kódja
Az RF vevő szakaszkódjához tartalmazza az RF vevő és az LCD modul könyvtárait. Tartalmazza az SPI.h könyvtárat is az SPU kommunikáció létrehozásához az Arduino és az RF vevő között.
#include
A void loop funkcióban folyamatosan ellenőrizze, hogy vannak-e továbbított üzenetek. És ha a vevő modul üzenetet kap, akkor jelenítse meg az üzenetet az LCD-modulon, és hangjelzést adjon.
if (driver.recv (buf, & buflen)) // Nem blokkoló {int i; digitalWrite (hangjelző, HIGH); késés (1000); digitalWrite (hangjelző, LOW);. lcd.print ("T1:"); lcd.print ((char *) buf);
A Smart Restaurant projekt tesztelése Arduino használatával
Miután összekapcsolta az összes hardvert és feltöltötték az adó és a vevő rész kódját, itt az ideje tesztelni a projektet. A projekt teszteléséhez nyomjon meg egy gombot a TFT kijelzőjén, és a vevő oldalához csatlakoztatott LCD modulon meg kell jeleníteni az edény nevét és a táblázat számát, amely T1. Ha a vevőoldali LCD nem jelenít meg semmit, akkor ellenőrizze, hogy a TFT képernyője működik-e vagy sem.
Így készíthet intelligens éttermi menürendelő projektet Arduino és TFT kijelző segítségével. További gombok hozzáadásához megváltoztathatja a képernyő tájolását is.
Az alábbiakban egy teljes videót találunk a teljes kóddal.