- Potrebne komponente
- Povezava TFT LCD zaslona na dotik z Arduinom
- Shema vezja
- Razlaga kode
- Testiranje projekta pametne restavracije z uporabo Arduina
Zdaj so dnevni avtomatizacijski sistemi povsod, ne glede na to, ali je njihov dom, pisarna ali katera koli velika industrija, vsi opremljeni s sistemi za avtomatizacijo. Tudi restavracije / hoteli sprejemajo najnovejše avtomatizacijske trende in namestijo robote za dostavo hrane in tablet za sprejemanje naročil. Z uporabo teh digitalnih menijskih kartic, kot so tablični računalniki, lahko kupci enostavno izberejo elemente. Ti podatki bodo poslani v kuhinjo restavracije in prikazani na zaslonu.
V tem projektu gradimo projekt pametne restavracije z uporabo Arduina, zaslona TFT in RF-oddajniškega / sprejemnega modula 433 MHz. Tu bo oddajnik sestavljen iz Arduino Uno, zaslona TFT in RF oddajnika, s pomočjo katerega lahko stranke izberejo živila in oddajo naročilo. Medtem ko je odsek sprejemnika sestavljen iz Arduino Uno, LCD modula, RF sprejemnika in brenčača, ki bodo nameščeni v restavracijski kuhinji za sledenje postavkam naročila.
Potrebne komponente
- Arduino Uno (2)
- 433MHz RF oddajnik in sprejemnik
- 2,4 "TFT LCD zaslon na dotik
- 16 * 2 LCD modul
- I 2 C modul
Povezava TFT LCD zaslona na dotik z Arduinom
2,4-palčni zaslon TFT LCD na dotik je večbarvni zaslon TFT, združljiv z Arduino UNO / Mega, ki ima tudi zaslon na dotik in vtičnico za kartice SD. Ta zaslon TFT ima svetlo osvetlitev in barvit zaslon 240X320 pik. Sestoji tudi iz posameznih RGB nadzor slikovnih pik, ki daje veliko boljšo ločljivost kot črno-beli zasloni.
Povezava zaslona TFT z Arduinom je zelo preprosta in razložena v prejšnji vadnici. Zaslon TFT morate namestiti samo preko plošče Arduino Uno, kot je prikazano na spodnji sliki.
TFT LCD je zelo koristen pri izdelavi prenosnih aplikacij, kot so:
- Arduino Kalkulator zaslona na dotik
- Zaklepanje digitalnih kod s pametnim telefonom z uporabo Arduina
- Budilka Arduino SMART
- NeoPixel LED trak z Arduino in TFT LCD
Tukaj preverite tudi vse projekte, ki temeljijo na TFT LCD.
Shema vezja
Projekt sistema za naročanje menijev Smart Restaurant je sestavljen iz odseka RF oddajnik in sprejemnik. Tako oddajna kot sprejemna stran za obdelavo podatkov uporablja Arduino Uno. Pred tem smo z Arduinom uporabljali iste RF-module s 433 MHz za gradnjo projektov, kot so brezžični zvonec na vratih, robot s krmiljenjem z gestami itd. Shema vezja za oddajnik in sprejemnik je navedena spodaj.
Krog odseka oddajnika
Odsek oddajnika tega projekta je sestavljen iz Arduino Uno, RF oddajnika in zaslona TFT zaslona. Ta razdelek se uporablja za naročanje v meniju, ki je prikazan na zaslonu TFT. Arduino Uno so možgani oddajniške strani, ki obdelujejo vse podatke, modul RF oddajnika pa se uporablja za prenos izbranih podatkov v sprejemnik. Podatkovni zatič RF oddajniškega modula je povezan z digitalnim zatičem 12 Arduina, medtem ko sta zatiča V CC in GND povezana s 5V in GND zatičem Arduino.
Vezje odseka sprejemnika
Sprejemni del tega projekta je sestavljen iz Arduino Uno, RF sprejemnika, 16 * 2 LCD modula in modula I2C. RF sprejemnik se uporablja za sprejem podatkov iz oddajnega odseka, LCD modul pa za prikaz prejetih podatkov. Zvočni signal se uporablja za oddajanje zvoka vsakič, ko se odda novo naročilo. Podatkovni zatič RF sprejemnika je povezan z digitalnim zatičem 11 Arduina, medtem ko je zatič V CC in GND povezan s 5V in GND zatičem Arduino. Pozitivni zatič Buzzerja je povezan z digitalnim zatičem 2 Arduina, negativni zatič pa GND zatičem Arduino. Zatiči SCL in SDA modula I2C so povezani z analognimi zatiči A5 in A4 Arduino, medtem ko so zatiči VCC in GND priključeni na zatiče 5V in GND Arduino.
Razlaga kode
Popolna koda za strani RF oddajnika in sprejemnika za ta sistem pametnega naročanja v restavraciji je podana na koncu dokumenta. Vse knjižnice, uporabljene v tem projektu, lahko prenesete z danih povezav.
- Knjižnica RadioHead
- SPFD5408 knjižnica
Knjižnica RadioHead se uporablja za RF oddajniški / sprejemniški modul, knjižnica SPFD5408 pa za prikaz TFT.
Koda odseka oddajnika:
Zaženite kodo tako, da vključite vse zahtevane knjižnice. Knjižnica RH_ASK.h se uporablja za komunikacijo med oddajnimi in sprejemnimi moduli. SPFD5408_Adafruit_GFX.h je jedrna grafična knjižnica za zaslon TFT.
#include
Po tem ustvarite objekt, imenovan 'voznik' za RH_ASK .
Gonilnik RH_ASK;
Nato določite najmanjšo in največjo kalibrirano vrednost osi X in Y za zaslon TFT.
#define TS_MINX 125 #define TS_MINY 85 #define TS_MAXX 965 #define TS_MAXY 905
Zdaj znotraj funkcije drawHome narišite postavitev zaslona TFT. Tu se tft.fillScreen uporablja za nastavitev barve ozadja.
Funkcija tft.drawRoundRect se uporablja za ustvarjanje zapolnjenega pravokotnika. Sintaksa funkcije tft.drawRoundRect je podana spodaj:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, polmer int16_t, barva uint16_t)
Kje:
x0 = X koordinata izhodiščne točke pravokotnika
y0 = Y koordinata izhodiščne točke pravokotnika
w = širina pravokotnika
h = višina pravokotnika
radij = polmer okroglega vogala
barva = Barva rekt.
Funkcija tft.fillRoundRect se uporablja za risanje izpolnjenega pravokotnika. Sintaksafunkcije tft.fillRoundRect je podana spodaj:
tft.fillRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, polmer int16_t, barva uint16_t) tft.fillScreen (BELA); tft.drawRoundRect (0, 0, 319, 240, 8, BELA); // meja strani tft.fillRoundRect (30, 40, 100, 40, 8, GOLD); tft.drawRoundRect (30, 40, 100, 40, 8, BELA); // Posoda1 tft.fillRoundRect (30, 90, 100, 40, 8, GOLD); tft.drawRoundRect (30, 90, 100, 40, 8, BELA); // Posoda2 tft.fillRoundRect (30, 140, 100, 40, 8, GOLD); // Posoda3 tft.drawRoundRect (30, 140, 100, 40, 8, BELA);
Po ustvarjanju gumbov na zaslonu TFT zdaj prikažite besedilo na gumbih. tft.setCursor se uporablja za nastavitev kazalca od mesta, kjer želite začeti besedilo.
tft.setCursor (60, 0); tft.setTextSize (3); tft.setTextColor (LIME); tft.print ("Meni"); tft.setTextSize (2); tft.setTextColor (BELA); tft.setCursor (37, 47); tft.print ("Posoda1");
Znotraj funkcije prenosa praznine podatke pošiljajte na stran sprejemnika vsako 1 sekundo.
neveljaven prenos () {driver.send ((uint8_t *) msg, strlen (msg)); driver.waitPacketSent (); zamuda (1000); }
Znotraj funkcije zanke void preberite vrednost RAW ADC s funkcijo ts.getPoint.
TSPoint p = ts.getPoint ();
Zdaj uporabite funkcijo zemljevida za pretvorbo vrednosti RAW ADC v koordinate Pixel.
px = zemljevid (px, TS_MAXX, TS_MINX, 0, 320); py = zemljevid (py, TS_MAXY, TS_MINY, 0, 240);
Po pretvorbi vrednosti RAW ADC v koordinate pikslov vnesite koordinate pik za gumb Dish1 in če se nekdo dotakne zaslona med tem območjem, pošljite sporočilo na stran sprejemnika.
če (px> 180 && px <280 && py> 190 && py <230 && pz> MINPRESSURE && pz <MAXPRESSURE) {Serial.println ("Dish1"); msg = "Posoda1"; oddaj (); tft.fillRoundRect (30, 40, 100, 40, 8, BELA); zamuda (70); tft.fillRoundRect (30, 40, 100, 40, 8, GOLD); tft.drawRoundRect (30, 40, 100, 40, 8, BELA); tft.setCursor (37, 47); tft.println ("Posoda1"); zamuda (70); }
Upoštevajte enak postopek za vse ostale gumbe.
Koda oddelka sprejemnika
Za kodo odseka RF-sprejemnika vključite knjižnici RF-sprejemnika in LCD-modula. Vključujejo tudi SPI.h knjižnico za vzpostavitev komunikacije SPI med Arduino in RF sprejemnik.
#include
Znotraj funkcije void zanke neprestano preverjajte, ali so poslana sporočila. Če sprejemniški modul prejme sporočilo, ga prikažite na LCD-modulu in zaslišite pisk.
if (driver.recv (buf, & buflen)) // Neblokiranje {int i; digitalWrite (brenčalo, VISOKO); zamuda (1000); digitalWrite (brenčalo, LOW);. lcd.print ("T1:"); lcd.print ((char *) buf);
Testiranje projekta pametne restavracije z uporabo Arduina
Potem ko ste povezali vso strojno opremo in naložili kodo odseka oddajnika in sprejemnika, je zdaj čas, da preizkusite projekt. Če želite preizkusiti projekt, pritisnite gumb na zaslonu TFT, na LCD-modulu, ki je povezan s sprejemnikom, mora biti prikazano ime jedi s številko tabele, ki je T1. Če LCD na strani sprejemnika ne prikazuje ničesar, preverite, ali zaslon TFT deluje ali ne.
Tako lahko z uporabo zaslona Arduino in TFT ustvarite projekt sistema za naročanje menijev pametne restavracije. Spremenite lahko tudi usmerjenost zaslona, da dodate več gumbov.
Delajo video s celotno kodo je naveden spodaj.