- Komponenter kreves
- Grensesnitt TFT LCD berøringsskjerm med Arduino
- Kretsdiagram
- Kode Forklaring
- Testing av Smart Restaurant-prosjektet ved hjelp av Arduino
Nå er dagens automatiseringssystemer overalt, enten det er hjemme, på kontoret eller i en hvilken som helst stor industri, alle er utstyrt med automatiseringssystemer. Restauranter / hotell tar også i bruk nyere automatiseringstrender og installerer roboter for å levere mat og nettbrett for bestilling. Ved hjelp av disse digitale menykortene som nettbrett kan kundene enkelt velge elementene. Denne informasjonen vil bli sendt til kjøkkenet i restauranten og vises også på skjermen.
I dette prosjektet bygger vi et Smart Restaurant Project ved hjelp av Arduino, TFT-skjerm og 433MHz RF-sender / mottakermodul. Her vil senderseksjonen bestå av Arduino Uno, TFT-skjerm og en RF-sender, som bruker kundene til å velge matvarene og legge inn bestillingen. Mens mottakerseksjonen består av en Arduino Uno, LCD-modul, RF-mottaker og en summer, som vil bli installert i restaurantens kjøkken for å spore bestillingselementene.
Komponenter kreves
- Arduino Uno (2)
- 433MHz RF-sender og mottaker
- 2,4 "TFT LCD berøringsskjerm
- 16 * 2 LCD-modul
- I 2 C-modul
Grensesnitt TFT LCD berøringsskjerm med Arduino
2,4 "TFT LCD-berøringsskjerm er en flerfarget Arduino UNO / Mega-kompatibel TFT-skjerm som også kommer med berøringsskjerm og SD-kortkontakt. Denne TFT-skjermmodulen har en lys bakgrunnsbelysning og en fargerik 240X320 piksler. Den består også av individuell RGB pikselkontroll som gir den en mye bedre oppløsning enn de svarte og hvite skjermene.
Grensesnitt TFT-skjermen med Arduino er veldig enkelt og forklart i forrige opplæring. Du trenger bare å montere TFT-skjermen over Arduino Uno-kortet, som vist på bildet nedenfor.
TFT LCD er veldig nyttig i å bygge bærbare applikasjoner som:
- Arduino berøringsskjerm kalkulator
- Smart telefonstyrt digital kodelås ved hjelp av Arduino
- Arduino SMART vekkerklokke
- NeoPixel LED Strip med Arduino og TFT LCD
Sjekk også alle TFT LCD-baserte prosjekter her.
Kretsdiagram
Smart Restaurant Menu Ordering System-prosjektet består av seksjonen RF-sender og mottaker. Både sender- og mottakersiden bruker Arduino Uno til databehandling. Vi brukte tidligere de samme 433 MHz RF-modulene med Arduino for å bygge prosjekter som en trådløs dørklokke, håndbevegelseskontrollert robot, etc. Kretsskjemaet for senderen og mottakeren er gitt nedenfor.
Senderseksjonskrets
Senderseksjonen i dette prosjektet består av et Arduino Uno, RF-sender og TFT skjermskjerm. Denne delen brukes til å bestille fra menyen som vises på TFT-skjermen. Arduino Uno er hjernen til sendersiden som behandler alle dataene, og RF-sendermodulen brukes til å overføre valgte data til mottakeren. Datapinnen til RF-sendermodulen er koblet til den digitale pinnen 12 på Arduino mens V CC og GND-pinnene er koblet til 5V og GND-pinnen på Arduino.
Mottakerseksjonskrets
Mottaksdelen av dette prosjektet består av en Arduino Uno, RF-mottaker, 16 * 2 LCD-modul og I2C-modul. RF-mottaker brukes til å motta data fra senderdelen, og LCD-modulen brukes til å vise mottatte data. En summer brukes til å lage lyd når en ny ordre blir lagt inn. Datapinnen til RF-mottakeren er koblet til den digitale pinnen 11 på Arduino mens V CC og GND-pinnen er koblet til 5V og GND-pinnen på Arduino. Den positive pinnen til Buzzer er koblet til den digitale pinnen 2 på Arduino, og den negative pinnen er koblet til GND-pinnen på Arduino. SCL og SDA-pinner på I2C-modulen er koblet til analoge pinner A5 og A4 Arduino mens VCC og GND-pinner er koblet til 5V og GND-pinner på Arduino.
Kode Forklaring
Komplett kode for RF-sender og mottaker sider for dette Smart Ordering System i Restaurant er gitt på slutten av dokumentet. Alle bibliotekene som er brukt i dette prosjektet kan lastes ned fra gitte lenker.
- RadioHead-biblioteket
- SPFD5408 bibliotek
RadioHead-biblioteket brukes til RF-sender / mottaker-modulen, mens SPFD5408-biblioteket brukes til TFT-skjerm.
Senderseksjonskode:
Start koden ved å inkludere alle nødvendige biblioteker. RH_ASK.h- biblioteket brukes til kommunikasjon mellom sender- og mottakermoduler. SPFD5408_Adafruit_GFX.h er et kjernegrafikkbibliotek for TFT-skjerm.
#inkludere
Deretter oppretter du et objekt som heter 'driver' for RH_ASK .
RH_ASK driver;
Deretter definerer du minimums- og maksimumskalibrerte X- og Y-akseverdier for TFT-skjermen.
#define TS_MINX 125 #define TS_MINY 85 #define TS_MAXX 965 #define TS_MAXY 905
Nå i drawHome-funksjonen tegner du et layout for TFT-skjermen. Her brukes tft.fillScreen til å stille bakgrunnsfargen.
tft.drawRoundRect- funksjonen brukes til å lage et fylt rektangel. Syntaks for tft.drawRoundRect- funksjonen er gitt nedenfor:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t farge)
Hvor:
x0 = X-koordinat for startpunktet til rektangulær
y0 = Y-koordinat for startpunktet til rektangulær
w = bredden på det rektangulære
h = Rektangulær høyde
radius = Radius av det runde hjørnet
color = Color of the Rect.
tft.fillRoundRect- funksjonen brukes til å tegne et fylt rektangel. Syntaks for tft.fillRoundRect- funksjonen er gitt nedenfor:
tft.fillRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t farge) tft.fillScreen (HVIT); tft.drawRoundRect (0, 0, 319, 240, 8, HVIT); // Sidekant tft.fillRoundRect (30, 40, 100, 40, 8, GULL); tft.drawRoundRect (30, 40, 100, 40, 8, HVIT); // Dish1 tft.fillRoundRect (30, 90, 100, 40, 8, GULL); tft.drawRoundRect (30, 90, 100, 40, 8, HVIT); // Dish2 tft.fillRoundRect (30, 140, 100, 40, 8, GULL); // Dish3 tft.drawRoundRect (30, 140, 100, 40, 8, HVIT);
Etter å ha opprettet knappene på TFT-skjermen, viser du nå teksten på knappene. tft.setCursor brukes til å sette markøren der du vil starte teksten.
tft.setCursor (60, 0); tft.setTextSize (3); tft.setTextColor (LIME); tft.print ("Meny"); tft.setTextSize (2); tft.setTextColor (HVIT); tft.setCursor (37, 47); tft.print ("Dish1");
Inne i tomromsendingsfunksjonen , send dataene til mottakersiden hvert 1. sekund.
ugyldig overføre () {driver.send ((uint8_t *) msg, strlen (msg)); driver.waitPacketSent (); forsinkelse (1000); }
Inne i void loop- funksjonen, les Raw ADC-verdien ved hjelp av ts.getPoint-funksjonen.
TSPoint p = ts.getPoint ();
Bruk nå kartfunksjonen til å konvertere Raw ADC-verdiene til Pixel-koordinater.
px = kart (px, TS_MAXX, TS_MINX, 0, 320); py = kart (py, TS_MAXY, TS_MINY, 0, 240);
Etter å ha konvertert Raw ADC-verdiene til pikselkoordinat, skriv inn pikselkoordinatene for Dish1- knappen, og hvis noen berører skjermen mellom dette området, så send meldingen til mottakersiden.
if (px> 180 && px <280 && py> 190 && py <230 && pz> MINPRESSURE && pz <MAXPRESSURE) {Serial.println ("Dish1"); msg = "Dish1"; overføre(); tft.fillRoundRect (30, 40, 100, 40, 8, HVIT); forsinkelse (70); tft.fillRoundRect (30, 40, 100, 40, 8, GULL); tft.drawRoundRect (30, 40, 100, 40, 8, HVIT); tft.setCursor (37, 47); tft.println ("Dish1"); forsinkelse (70); }
Følg samme fremgangsmåte for alle andre knapper.
Mottakerseksjonskode
For seksjonskoden for RF-mottakeren, inkluder bibliotekene for RF-mottakeren og LCD-modulen. Inkluder også SPI.h- biblioteket for å etablere en SPI-kommunikasjon mellom Arduino og RF-mottaker.
#inkludere
Inne i tomrumsløyfefunksjonen , sjekk kontinuerlig for sendte meldinger. Og hvis mottakermodulen mottar en melding, så vis meldingen på LCD-modulen og gi en pipelyd.
hvis (driver.recv (buf, & buflen)) // Ikke-blokkerende {int i; digitalWrite (summer, HØY); forsinkelse (1000); digitalWrite (summer, LAV);. lcd.print ("T1:"); lcd.print ((char *) buf);
Testing av Smart Restaurant-prosjektet ved hjelp av Arduino
Etter å ha koblet til all maskinvaren og lastet opp koden for både sender- og mottakerseksjonen, er det nå på tide å teste prosjektet. For å teste prosjektet, trykk på en knapp på TFT-skjermen, den skal vise fatets navn med bordnummeret som er T1 på LCD-modulen som er koblet til mottakersiden. Hvis LCD-skjermen på mottakeren ikke viser noe, sjekk om TFT-skjermen fungerer eller ikke.
Slik kan du bygge et Smart Restaurant Menu Ordering System-prosjekt ved hjelp av Arduino og TFT-skjerm. Du kan også endre retning på skjermen for å legge til flere knapper.
En arbeidsvideo med den komplette koden er gitt nedenfor.