- Komponente potrebne
- Povezivanje TFT LCD zaslona osjetljivog na dodir s Arduinom
- Kružni dijagram
- Objašnjenje koda
- Testiranje projekta pametnog restorana pomoću Arduina
Danas su svakodnevni automatizacijski sustavi svugdje, bilo da je njihov dom, ured ili bilo koja velika industrija, svi opremljeni sustavima automatizacije. Restorani / hoteli također usvajaju najnovije trendove automatizacije i instaliraju robote za dostavu hrane i tableta za primanje narudžbi. Koristeći ove digitalne kartice s izbornicima poput tableta, kupci mogu jednostavno odabrati stavke. Ti će se podaci poslati u kuhinju restorana i također prikazati na zaslonu.
U ovom projektu gradimo projekt pametnog restorana koristeći Arduino, TFT zaslon i RF-odašiljački / prijemnički modul od 433 MHz. Ovdje će se odjeljak odašiljača sastojati od Arduino Uno, TFT zaslona i RF odašiljača, pomoću kojih kupci mogu odabrati prehrambene proizvode i poslati narudžbu. Dok se dio prijemnika sastoji od Arduino Uno, LCD modula, RF prijemnika i zujalice, koji će biti instalirani u kuhinji restorana za praćenje stavki narudžbe.
Komponente potrebne
- Arduino Uno (2)
- RF odašiljač i prijemnik od 433 MHz
- 2,4 "TFT LCD zaslon osjetljiv na dodir
- LCD modul od 16 * 2
- I 2 C modul
Povezivanje TFT LCD zaslona osjetljivog na dodir s Arduinom
2,4 "TFT LCD zaslon osjetljiv na dodir raznobojni je TFT zaslon kompatibilan s Arduino UNO / Mega koji dolazi s dodirnim zaslonom i utičnicom za SD karticu. Ovaj TFT zaslon ima svijetlo pozadinsko osvjetljenje i šareni zaslon od 240X320 piksela. Također se sastoji od pojedinačnih RGB-a kontrola piksela koja mu daje puno bolju razlučivost od crno-bijelih zaslona.
Povezivanje TFT zaslona s Arduinom vrlo je jednostavno i objašnjeno u prethodnom vodiču. Trebate samo postaviti TFT zaslon preko ploče Arduino Uno, kao što je prikazano na donjoj slici.

TFT LCD je vrlo koristan u izradi prijenosnih aplikacija poput:
- Arduino Kalkulator zaslona osjetljivog na dodir
- Zaključavanje digitalnog koda upravljano pametnim telefonom pomoću Arduina
- Arduino SMART budilnik
- NeoPixel LED traka s Arduinom i TFT LCD zaslonom
Također, ovdje provjerite sve projekte utemeljene na TFT LCD-u.
Kružni dijagram
Projekt Sustav za naručivanje izbornika Smart Restaurant sastoji se od odjeljka RF odašiljač i prijemnik. I strana odašiljača i prijemnika koristi Arduino Uno za obradu podataka. Prethodno smo koristili iste RF module od 433 MHz s Arduinom za izgradnju projekata poput bežičnog zvona na vratima, robota kojim se upravlja gestama itd. Dijagram sklopa za odjeljak odašiljača i prijamnika dan je u nastavku.
Krug presjeka odašiljača
Odjeljak odašiljača ovog projekta sastoji se od Arduino Uno, RF odašiljača i TFT zaslona. Ovaj odjeljak služi za naručivanje s izbornika prikazanog na TFT zaslonu. Arduino Uno je mozak strane odašiljača koji obrađuje sve podatke, a modul RF odašiljača koristi se za odabir odabranih podataka na prijemnik. Podatkovni pin modula RF odašiljača povezan je s digitalnim pinom 12 Arduina, dok su V CC i GND pinovi povezani s 5 V i GND pinom Arduina.


Krug odjeljka prijamnika
Odjeljak prijemnika ovog projekta sastoji se od Arduino Uno, RF prijemnika, 16 * 2 LCD modula i I2C modula. RF prijemnik koristi se za primanje podataka iz odjeljka odašiljača, a LCD modul služi za prikaz primljenih podataka. Zujalica se koristi za ispuštanje zvuka kad god se pošalje nova narudžba. Podatkovni pin RF prijemnika povezan je s digitalnim pinom 11 Arduina, dok su V CC i GND pin priključeni na 5V i GND pin Arduina. Pozitivni pin Buzzera spojen je na digitalni pin 2 Arduina, a negativni pin GND pin Arduina. SCL i SDA pinovi I2C modula spojeni su na analogne pinove A5 i A4 Arduino, dok su VCC i GND pinovi povezani na 5 V i GND pinove Arduina.


Objašnjenje koda
Potpuni kod za strane RF odašiljača i prijemnika za ovaj sustav pametnog naručivanja u restoranu dan je na kraju dokumenta. Sve knjižnice korištene u ovom projektu mogu se preuzeti s danih poveznica.
- Knjižnica RadioHead
- SPFD5408 knjižnica
Biblioteka RadioHead koristi se za modul RF odašiljač / prijemnik, dok se biblioteka SPFD5408 koristi za TFT zaslon.
Šifra odjeljka odašiljača:
Započnite kod uključivanjem svih potrebnih knjižnica. Biblioteka RH_ASK.h koristi se za komunikaciju između modula odašiljača i prijamnika. SPFD5408_Adafruit_GFX.h temeljna je grafička biblioteka za TFT zaslon.
#include
Nakon toga stvorite objekt koji se naziva 'upravljački program' za RH_ASK .
RH_ASK vozač;
Nakon toga definirajte minimalnu i maksimalnu kalibriranu vrijednost X i Y osi za vaš TFT zaslon.
#define TS_MINX 125 #define TS_MINY 85 #define TS_MAXX 965 #define TS_MAXY 905
Sada unutar funkcije drawHome nacrtajte izgled vašeg TFT zaslona. Ovdje se tft.fillScreen koristi za postavljanje boje pozadine.
Funkcija tft.drawRoundRect koristi se za stvaranje ispunjenog pravokutnika. Sintaksa funkcije tft.drawRoundRect data je u nastavku:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radijus, uint16_t boja)
Gdje:
x0 = X koordinata početne točke pravokutnika
y0 = Y koordinata početne točke pravokutnika
w = širina pravokutnika
h = visina pravokutnika
radijus = radijus okruglog ugla
boja = Boja Rekt.
Funkcija tft.fillRoundRect koristi se za crtanje ispunjenog pravokutnika. Sintaksafunkcije tft.fillRoundRect data je u nastavku:
tft.fillRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, polumjer int16_t, boja uint16_t) tft.fillScreen (BIJELO); tft.drawRoundRect (0, 0, 319, 240, 8, BIJELO); // Granica stranice tft.fillRoundRect (30, 40, 100, 40, 8, GOLD); tft.drawRoundRect (30, 40, 100, 40, 8, BIJELO); // Dish1 tft.fillRoundRect (30, 90, 100, 40, 8, GOLD); tft.drawRoundRect (30, 90, 100, 40, 8, BIJELO); // Dish2 tft.fillRoundRect (30, 140, 100, 40, 8, GOLD); // Dish3 tft.drawRoundRect (30, 140, 100, 40, 8, BIJELO);
Nakon stvaranja gumba na TFT zaslonu, sada prikažite tekst na gumbima. tft.setCursor koristi se za postavljanje kursora od mjesta na kojem želite započeti tekst.
tft.setCursor (60, 0); tft.setTextSize (3); tft.setTextColor (LIME); tft.print ("Izbornik"); tft.setTextSize (2); tft.setTextColor (BIJELO); tft.setCursor (37, 47); tft.print ("Posuda1");
Unutar funkcije prenosa praznine , šaljite podatke na stranu prijamnika svake 1 sekunde.
poništi prijenos () {driver.send ((uint8_t *) msg, strlen (msg)); driver.waitPacketSent (); kašnjenje (1000); }
Unutar funkcije void loop , pročitajte vrijednost RAW ADC pomoću funkcije ts.getPoint.
TSPoint p = ts.getPoint ();
Sada upotrijebite funkciju karte za pretvaranje vrijednosti RAW ADC u Pixel koordinate.
px = karta (px, TS_MAXX, TS_MINX, 0, 320); py = karta (py, TS_MAXY, TS_MINY, 0, 240);
Nakon pretvorbe vrijednosti RAW ADC u pikselnu koordinatu, unesite koordinate piksela za gumb Dish1 i ako netko dodirne zaslon između ovog područja, pošaljite poruku na stranu prijamnika.
if (px> 180 && px <280 && py> 190 && py <230 && pz> MINPRESSURE && pz <MAXPRESSURE) {Serial.println ("Posuda1"); msg = "Posuda1"; prenositi(); tft.fillRoundRect (30, 40, 100, 40, 8, BIJELO); kašnjenje (70); tft.fillRoundRect (30, 40, 100, 40, 8, ZLATO); tft.drawRoundRect (30, 40, 100, 40, 8, BIJELO); tft.setCursor (37, 47); tft.println ("Posuda1"); kašnjenje (70); }
Slijedite isti postupak za sve ostale gumbe.
Kod odjeljka prijamnika
Za kod odjeljka RF prijemnika uključite knjižnice RF prijemnika i LCD modula. Uključite i SPI.h knjižnicu za uspostavljanje SPI komunikacije između Arduina i RF prijamnika.
#include
Unutar funkcije void loop , kontinuirano provjeravajte ima li poslanih poruka. A ako modul prijemnika primi poruku, prikažite poruku na LCD modulu i začujte zvučni signal.
if (driver.recv (buf, & buflen)) // Neblokirajući {int i; digitalWrite (zujalica, VISOKO); kašnjenje (1000); digitalWrite (zujalo, LOW);. lcd.print ("T1:"); lcd.print ((char *) buf);
Testiranje projekta pametnog restorana pomoću Arduina
 
Nakon što ste povezali sav hardver i prenijeli kod za odjeljak odašiljača i prijemnika, sada je vrijeme da testirate projekt. Da biste testirali projekt, pritisnite gumb na TFT zaslonu, trebao bi prikazati naziv posuđa s brojem tablice koji je T1 na LCD modulu povezanom sa strane prijemnika. Ako LCD na boku prijemnika ne prikazuje ništa, provjerite radi li TFT zaslon ili ne.
Na ovaj način možete izraditi projekt Sustava za naručivanje izbornika pametnog restorana koristeći Arduino i TFT zaslon. Također možete promijeniti orijentaciju zaslona da biste dodali više gumba.
Radi videa s kompletnim koda dan je u nastavku.

