- Komponenter, der kræves
- Interfacing TFT LCD Touch-skærm med Arduino
- Kredsløbsdiagram
- Kode Forklaring
- Test af Smart Restaurant-projektet ved hjælp af Arduino
Nu er dagens automatiseringssystemer overalt, hvad enten det er hjemme, på kontoret eller i enhver stor industri, alle er udstyret med automatiseringssystemer. Restauranter / hoteller vedtager også nylige automatiseringstendenser og installerer robotter til at levere mad og tabletter til bestilling. Ved hjælp af disse digitale menukort som tablets kan kunder nemt vælge emnerne. Disse oplysninger sendes til restaurantens køkken og vises også på displayet.
I dette projekt bygger vi et Smart Restaurant-projekt ved hjælp af Arduino, TFT-skærm og 433MHz RF-sender / modtager-modul. Her vil sendersektionen bestå af Arduino Uno, TFT-skærm og en RF-sender, hvor kunderne kan vælge madvarerne og placere ordren. Mens modtagersektionen består af et Arduino Uno, LCD-modul, RF-modtager og en summer, som vil blive installeret i restaurantens køkken for at spore ordreelementerne.
Komponenter, der kræves
- Arduino Uno (2)
- 433MHz RF-sender og modtager
- 2,4 "TFT LCD berøringsskjold
- 16 * 2 LCD-modul
- I 2 C-modul
Interfacing TFT LCD Touch-skærm med Arduino
2,4 "TFT LCD-berøringsskærm er en flerfarvet Arduino UNO / Mega-kompatibel TFT-skærm, der også leveres med berøringsskærm og SD-kortstik. Dette TFT-skærmmodul har en lys baggrundsbelysning og en farverig 240X320 pixel-skærm. Det består også af individuel RGB pixelkontrol, der giver den en meget bedre opløsning end de sort / hvide skærme.
Interfacing af TFT-skærmen med Arduino er meget enkel og forklaret i den foregående vejledning. Du behøver kun at montere TFT-skærmen over Arduino Uno-kortet, som vist på nedenstående billede.
TFT LCD er meget nyttig til opbygning af bærbare applikationer som:
- Arduino berøringsskærmberegner
- Smart telefonstyret digital kodelås ved hjælp af Arduino
- Arduino SMART vækkeur
- NeoPixel LED Strip med Arduino og TFT LCD
Tjek også alle de TFT LCD-baserede projekter her.
Kredsløbsdiagram
Smart Restaurant Menu Ordering System-projektet består af sektionen RF-sender og modtager. Både sender- og modtagesiden bruger Arduino Uno til databehandling. Vi har tidligere brugt de samme 433 MHz RF-moduler med Arduino til byggeprojekter som en trådløs dørklokke, håndbevægelsesstyret robot osv. Kredsløbsdiagrammet for afsenderen og modtagersektionen er angivet nedenfor.
Transmitter sektion kredsløb
Sendersektionen i dette projekt består af en Arduino Uno, RF-sender og TFT-skærm. Dette afsnit bruges til bestilling fra den menu, der vises på TFT-displayet. Arduino Uno er hjernen på sendersiden, der behandler alle data, og RF-sendermodulet bruges til at overføre de valgte data til modtageren. Datastiften på RF-sendermodulet er forbundet til den digitale pin 12 på Arduino, mens V CC og GND-stifter er forbundet til 5V og GND-stift i Arduino.
Modtagersektionskredsløb
Modtagersektionen i dette projekt består af et Arduino Uno, RF-modtager, 16 * 2 LCD-modul og I2C-modul. RF-modtager bruges til at modtage data fra sendersektionen, og LCD-modulet bruges til at vise de modtagne data. En summer bruges til at afgive en lyd, når en ny ordre afgives. Data-stiften på RF-modtageren er forbundet til den digitale stift 11 i Arduino, mens V CC og GND-stikket er forbundet til 5V og GND-stiften i Arduino. Den positive pin af Buzzer er forbundet til den digitale pin 2 af Arduino, og den negative pin er forbundet til GND pin af Arduino. SCL- og SDA-stifter på I2C-modulet er forbundet til analoge stifter A5 & A4 Arduino, mens VCC- og GND-stifter er forbundet til 5V og GND-stifter på Arduino.
Kode Forklaring
Komplet kode til RF-sender og modtager sider til dette Smart Ordering System i Restaurant er angivet i slutningen af dokumentet. Alle biblioteker, der bruges i dette projekt, kan downloades fra de givne links.
- RadioHead-bibliotek
- SPFD5408 bibliotek
RadioHead-biblioteket bruges til RF-sender / modtager-modulet, mens SPFD5408-biblioteket bruges til TFT-skærm.
Sendersektionskode:
Start koden ved at inkludere alle de nødvendige biblioteker. RH_ASK.h- biblioteket bruges til kommunikation mellem sender- og modtagermoduler. SPFD5408_Adafruit_GFX.h er et kernegrafikbibliotek til TFT-skærm.
#omfatte
Derefter skal du oprette et objekt kaldet 'driver' til RH_ASK .
RH_ASK driver;
Derefter defineres de minimale og maksimale kalibrerede X & Y-akse-værdier for din TFT-skærm.
#definer TS_MINX 125 #definer TS_MINY 85 #definer TS_MAXX 965 #definer TS_MAXY 905
Nu inden i drawHome-funktionen tegner du et layout til din TFT-skærm. Her bruges tft.fillScreen til at indstille baggrundsfarven.
tft.drawRoundRect- funktionen bruges til at oprette et udfyldt rektangel. Syntaks for tft.drawRoundRect- funktionen er angivet nedenfor:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t farve)
Hvor:
x0 = X-koordinat for startpunktet for den rektangulære
y0 = Y-koordinat for startpunktet for rektangulær
w = Rektangulær bredde
h = Rektangulærens højde
radius = Radius af det runde hjørne
color = Color of the Rect.
tft.fillRoundRect- funktionen bruges til at tegne et udfyldt rektangel. Syntaks for tft.fillRoundRect- funktionen er angivet nedenfor:
tft.fillRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t farve) tft.fillScreen (HVID); tft.drawRoundRect (0, 0, 319, 240, 8, HVID); // Sidekant tft.fillRoundRect (30, 40, 100, 40, 8, GULD); tft.drawRoundRect (30, 40, 100, 40, 8, HVID); // Dish1 tft.fillRoundRect (30, 90, 100, 40, 8, GULD); tft.drawRoundRect (30, 90, 100, 40, 8, HVID); // Dish2 tft.fillRoundRect (30, 140, 100, 40, 8, GULD); // Dish3 tft.drawRoundRect (30, 140, 100, 40, 8, HVID);
Når du har oprettet knapperne på TFT-skærmen, skal du nu vise teksten på knapperne. tft.setCursor bruges til at indstille markøren, hvorfra du vil starte teksten.
tft.setCursor (60, 0); tft.setTextSize (3); tft.setTextColor (LIME); tft.print ("Menu"); tft.setTextSize (2); tft.setTextColor (HVID); tft.setCursor (37, 47); tft.print ("Dish1");
Inde i tomrums-sendefunktionen skal du sende dataene til modtagersiden hvert 1. sekund.
ugyldig transmittere () {driver.send ((uint8_t *) msg, strlen (msg)); driver.waitPacketSent (); forsinkelse (1000); }
Inde i ugyldig sløjfe- funktion skal du læse Raw ADC-værdien ved hjælp af funktionen ts.getPoint.
TSPoint p = ts.getPoint ();
Brug nu kortfunktionen til at konvertere Raw ADC-værdierne til Pixel-koordinater.
px = kort (px, TS_MAXX, TS_MINX, 0, 320); py = kort (py, TS_MAXY, TS_MINY, 0, 240);
Efter konvertering af Raw ADC-værdier til pixelkoordinering , skal du indtaste pixelkoordinaterne for Dish1- knappen, og hvis nogen berører skærmen mellem dette område, så send beskeden til modtagersiden.
hvis (px> 180 && px <280 && py> 190 && py <230 && pz> MINPRESSURE && pz <MAXPRESSURE) {Serial.println ("Dish1"); msg = "Dish1"; transmittere (); tft.fillRoundRect (30, 40, 100, 40, 8, HVID); forsinkelse (70); tft.fillRoundRect (30, 40, 100, 40, 8, GULD); tft.drawRoundRect (30, 40, 100, 40, 8, HVID); tft.setCursor (37, 47); tft.println ("Dish1"); forsinkelse (70); }
Følg den samme procedure for alle andre knapper.
Modtagersektionskode
For RF-modtager sektionskode skal du inkludere bibliotekerne til RF-modtager og LCD-modul. Inkluder også SPI.h- biblioteket til etablering af en SPI-kommunikation mellem Arduino og RF-modtager.
#omfatte
Inde i tomrumsfunktionen skal du kontinuerligt kontrollere for transmitterede meddelelser. Og hvis modtagermodulet modtager en besked, skal du vise beskeden på LCD-modulet og afgive en biplyd.
hvis (driver.recv (buf, & buflen)) // Ikke-blokerende {int i; digitalWrite (summer, HIGH); forsinkelse (1000); digitalWrite (summer, LAV);. lcd.print ("T1:"); lcd.print ((char *) buf);
Test af Smart Restaurant-projektet ved hjælp af Arduino
Efter tilslutning af al hardware og upload af koden til både sender- og modtagerafsnittet, er det nu tid til at teste projektet. For at teste projektet skal du trykke på en knap på TFT-displayet, det skal vise skålens navn med tabelnummeret, der er T1 på LCD-modulet, der er tilsluttet modtagersiden. Hvis LCD'et på modtagersiden ikke viser noget, skal du kontrollere, om din TFT-skærm fungerer eller ej.
Sådan kan du oprette et Smart Restaurant Menu Ordering System-projekt ved hjælp af Arduino og TFT-skærm. Du kan også ændre skærmretningen for at tilføje flere knapper.
En arbejdsvideo med den komplette kode er angivet nedenfor.