- Tarvittavat komponentit
- TFT LCD -kosketusnäytön ja Arduinon kanssa
- Piirikaavio
- Koodin selitys
- Smart Restaurant -projektin testaus Arduinolla
Nykypäivän automaatiojärjestelmät ovat kaikkialla, riippumatta siitä, onko kotona, toimistossa tai missä tahansa suuressa teollisuudessa, kaikki on varustettu automaatiojärjestelmillä. Ravintolat / hotellit ovat myös omaksuneet viimeisimmät automaatiotrendit ja asentavat robotteja toimittamaan ruokaa ja tabletteja tilausten vastaanottamista varten. Käyttämällä näitä digitaalisia valikkokortteja, kuten tabletteja, asiakkaat voivat helposti valita kohteet. Nämä tiedot lähetetään ravintolan keittiöön ja näytetään myös näytöllä.
Tässä projektissa rakennamme älykkään ravintolaprojektin, jossa käytetään Arduinoa, TFT-näyttöä ja 433 MHz: n RF-lähetin / vastaanotinmoduulia. Tällöin lähetinosa koostuu Arduino Unosta, TFT-näytöstä ja RF-lähettimestä, jonka avulla asiakkaat voivat valita elintarvikkeet ja tehdä tilauksen. Vaikka vastaanotinosa koostuu Arduino Unosta, LCD-moduulista, RF-vastaanottimesta ja summerista, joka asennetaan ravintolakeittiöön tilaustuotteiden seuraamiseksi.
Tarvittavat komponentit
- Arduino Uno (2)
- 433 MHz: n RF-lähetin ja vastaanotin
- 2,4 tuuman TFT LCD -kosketussuoja
- 16 * 2 LCD-moduuli
- I 2 C-moduuli
TFT LCD -kosketusnäytön ja Arduinon kanssa
2,4 "TFT LCD -kosketus on monivärinen Arduino UNO / Mega -yhteensopiva TFT-näyttö, jossa on myös kosketusnäyttö ja SD-korttipistoke. Tässä TFT-näyttömoduulissa on kirkas taustavalo ja värikäs 240X320 pikselin näyttö. Se koostuu myös yksittäisistä RGB-näytöistä pikselien hallinta, joka antaa sille paljon paremman tarkkuuden kuin mustavalkoinen näyttö.
TFT-näytön liittäminen Arduinoon on hyvin yksinkertaista ja selitetty edellisessä opetusohjelmassa. Sinun on vain asennettava TFT-näyttö Arduino Uno -levyn päälle, kuten alla olevassa kuvassa näkyy.
TFT LCD on erittäin hyödyllinen rakennettaessa kannettavia sovelluksia, kuten:
- Arduino-kosketusnäytön laskin
- Älypuhelimen ohjaama digitaalinen koodilukko Arduinolla
- Arduino SMART-herätyskello
- NeoPixel LED-nauha Arduinolla ja TFT LCD -näytöllä
Tarkista myös kaikki TFT LCD-pohjaiset projektit täältä.
Piirikaavio
Älykäs ravintola-menu-tilausjärjestelmä -projekti koostuu RF-lähetin- ja vastaanotinosiosista. Sekä lähetin- että vastaanotinpuoli käyttää Arduino Unoa tietojen käsittelyyn. Aikaisemmin käytimme samoja 433 MHz: n RF-moduuleja Arduinon kanssa rakennushankkeissa, kuten langaton ovikello, käsieleviohjattu robotti jne. Lähetin- ja vastaanotinosan piirikaavio on annettu alla.
Lähettimen osan piiri
Tämän projektin lähetinosa koostuu Arduino Uno-, RF-lähetin- ja TFT-näyttösuojasta. Tätä osaa käytetään tilaamiseen valikosta, joka näkyy TFT-näytössä. Arduino Uno on lähetinpuolen aivot, joka käsittelee kaikki tiedot, ja RF-lähetinmoduulia käytetään lähettämään valitut tiedot vastaanottimeen. RF-lähetinmoduulin datanapa on kytketty Arduinon digitaaliseen nastaan 12, kun taas V CC- ja GND-nastat on kytketty Arduinon 5V- ja GND-nastoihin.
Vastaanotinosan piiri
Tämän projektin vastaanotinosa koostuu Arduino Uno, RF-vastaanotin, 16 * 2 LCD-moduulista ja I2C-moduulista. Radiotaajuusvastaanotinta käytetään vastaanottamaan tietoja lähetinosasta, ja LCD-moduulia käytetään vastaanotettujen tietojen näyttämiseen. Summeria käytetään äänen tuottamiseen aina kun uusi tilaus tehdään. RF-vastaanottimen datanapa on kytketty Arduinon digitaaliseen nastaan 11, kun taas V CC- ja GND-nasta on kytketty Arduinon 5V- ja GND-nastaan. Summerin positiivinen nasta on kytketty Arduinon digitaaliseen nastaan 2 ja negatiivinen nasta Arduinon GND-nastaan. I2C-moduulin SCL- ja SDA-nastat on kytketty analogisiin nastoihin A5 ja A4 Arduino, kun taas VCC- ja GND-nastat on kytketty Arduinon 5V- ja GND-nastoihin.
Koodin selitys
Täydellinen koodi RF-lähetin- ja vastaanotinpuolille tälle älykkäälle tilausjärjestelmälle ravintolassa annetaan asiakirjan lopussa. Kaikki tässä projektissa käytetyt kirjastot voidaan ladata annetuista linkeistä.
- RadioHead-kirjasto
- SPFD5408-kirjasto
RadioHead-kirjastoa käytetään RF-lähetin / vastaanotin-moduuliin, kun taas SPFD5408-kirjastoa käytetään TFT-näyttöön.
Lähettimen osan koodi:
Aloita koodi sisällyttämällä kaikki vaaditut kirjastot. RH_ASK.h- kirjastoa käytetään lähettimen ja vastaanottimen moduulien väliseen viestintään. SPFD5408_Adafruit_GFX.h on Core-grafiikkakirjasto TFT-näyttöä varten.
#sisältää
Sen jälkeen, luoda objekti nimeltään 'kuljettaja' varten RH_ASK .
RH_ASK-ohjain;
Tämän jälkeen määritä TFT-näytön kalibroitujen minimi- ja maksimiarvojen X- ja Y-akseliarvot.
#define TS_MINX 125 #define TS_MINY 85 #define TS_MAXX 965 #define TS_MAXY 905
Piirrä nyt drawHome-toiminnon sisällä asettelu TFT-näytölle. Tässä tft.fillScreen käytetään taustavärin asettamiseen.
Tft.drawRoundRect- funktiota käytetään luomaan täytetty suorakulmio. Syntaksi tft.drawRoundRect- funktiolle on annettu alla:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t säde, uint16_t väri)
Missä:
x0 = suorakulmaisen aloituskohdan X-koordinaatti
y0 = suorakaiteen alkupisteen Y-koordinaatti
w = suorakulmion leveys
h = suorakulmion korkeus
säde = pyöristetyn kulman säde
väri = suoran väri.
tft.fillRoundRect- toimintoa käytetään piirtämään täytetty suorakulmio. Toiminnon tft.fillRoundRect syntaksion annettu alla:
tft.fillRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t säde, uint16_t väri) tft.fillScreen (VALKOINEN); tft.drawRoundRect (0, 0, 319, 240, 8, VALKOINEN); // Sivun reunus tft.fillRoundRect (30, 40, 100, 40, 8, GOLD); tft.drawRoundRect (30, 40, 100, 40, 8, VALKOINEN); // Dish1 tft.fillRoundRect (30, 90, 100, 40, 8, GOLD); tft.drawRoundRect (30, 90, 100, 40, 8, VALKOINEN); // Dish2 tft.fillRoundRect (30, 140, 100, 40, 8, GOLD); // Dish3 tft.drawRoundRect (30, 140, 100, 40, 8, VALKOINEN);
Kun olet luonut painikkeet TFT-näytöllä, näytä nyt painikkeiden teksti. tft.setCursor käytetään asettamaan kohdistin mistä haluat aloittaa tekstin.
tft.setCursor (60, 0); tft.setTextSize (3); tft.setTextColor (LIME); tft.print ("Valikko"); tft.setTextSize (2); tft.setTextColor (VALKOINEN); tft.setCursor (37, 47); tft.print ("lautasen1");
Lähetä tyhjän lähetystoiminnon sisällä tiedot vastaanottimen puolelle 1 sekunnin välein.
void lähetys () {driver.send ((uint8_t *) msg, strlen (msg)); driver.waitPacketSent (); viive (1000); }
Lue void loop -toiminnon sisällä Raw ADC -arvo ts.getPoint-funktiolla.
TSPoint p = ts.getPoint ();
Nyt käyttää karttaa toiminto muuntaa Raaka ADC arvot Pixel koordinaatit.
px = kartta (px, TS_MAXX, TS_MINX, 0, 320); py = kartta (py, TS_MAXY, TS_MINY, 0, 240);
Kun olet muuntanut Raw ADC -arvot pikselikoordinaatiksi, syötä Dish1- painikkeen pikselikoordinaatit ja jos joku koskettaa tämän alueen välistä näyttöä, lähetä viesti vastaanottimen puolelle.
if (px> 180 && px <280 && py> 190 && py <230 && pz> MINIPAINE && pz <MAXPRESSURE) {Sarja.println ("Ruokalaji1"); msg = "ruokalaji1"; lähetä (); tft.fillRoundRect (30, 40, 100, 40, 8, VALKOINEN); viive (70); tft.fillRoundRect (30, 40, 100, 40, 8, KULTA); tft.drawRoundRect (30, 40, 100, 40, 8, VALKOINEN); tft.setCursor (37, 47); tft.println ("lautasen1"); viive (70); }
Noudata samaa menettelyä kaikille muille painikkeille.
Vastaanottimen osan koodi
Lisää RF-vastaanotinkohtaisen koodin osalta kirjastot RF-vastaanotinta ja LCD-moduulia varten. Sisällytä myös SPI.h- kirjasto SPI-tiedonsiirron luomiseksi Arduinon ja RF-vastaanottimen välille.
#sisältää
Tarkista void loop -toiminnon sisällä jatkuvasti lähetetyt viestit. Ja jos vastaanotinmoduuli vastaanottaa sanoman, näytä viesti LCD-moduulissa ja tee merkkiääni.
if (ohjain.rekv (buf, & buflen)) // Ei-estävä {int i; digitalWrite (summeri, HIGH); viive (1000); digitalWrite (summeri, LOW);. lcd.print ("T1:"); lcd.print ((char *) buf);
Smart Restaurant -projektin testaus Arduinolla
Kun olet liittänyt kaikki laitteistot ja lähettänyt koodin sekä lähetin- että vastaanotinosaan, on nyt aika testata projekti. Testaa projekti painamalla painiketta TFT-näytössä, sen tulee näyttää astian nimi ja taulukon numero, joka on T1 vastaanottimen puolelle liitetyssä LCD-moduulissa. Jos vastaanottimen puoleinen nestekidenäyttö ei näytä mitään, tarkista, toimiiko TFT-näyttösi vai ei.
Näin voit rakentaa Smart Restaurant Menu Ordering System -projektin Arduino- ja TFT-näytöllä. Voit myös muuttaa näytön suuntaa lisätäksesi lisää painikkeita.
Työskentelee video koko koodi on alla.