- Kinakailangan ang Mga Bahagi
- Pag-interfacing ng TFT LCD Touch na kalasag na may Arduino
- Diagram ng Circuit
- Paliwanag sa Code
- Pagsubok sa Smart Restaurant Project gamit ang Arduino
Ngayon ang mga sistema ng awtomatiko ngayon ay saanman maging ang bahay, tanggapan o anumang malaking industriya, lahat ay nilagyan ng mga system ng awtomatiko. Ang mga restawran / Hotel ay gumagamit din ng mga kamakailang kalakaran sa pag-aautomat at nag-i-install ng mga robot upang maihatid ang pagkain at tablet para sa pagkuha ng mga order. Gamit ang mga digital menu card tulad ng mga tablet, madaling mapili ng mga customer ang mga item. Ipapadala ang impormasyong ito sa kusina ng Restaurant at ipapakita din sa display.
Sa proyektong ito, nagtatayo kami ng isang Smart Restaurant Project gamit ang Arduino, display ng TFT, at 433MHz RF transmitter / receiver module. Dito ang seksyon ng transmitter ay binubuo ng Arduino Uno, display ng TFT, at isang RF transmitter, na ginagamit kung aling mga customer ang maaaring pumili ng mga item ng pagkain at mailagay ang order. Habang ang seksyon ng tatanggap ay binubuo ng isang Arduino Uno, LCD module, RF receiver, at isang Buzzer, na mai-install sa kusina ng restawran upang subaybayan ang mga item sa order.
Kinakailangan ang Mga Bahagi
- Arduino Uno (2)
- 433MHz RF Transmitter & Receiver
- 2.4 "TFT LCD Touch na kalasag
- 16 * 2 LCD Module
- I 2 C Modyul
Pag-interfacing ng TFT LCD Touch na kalasag na may Arduino
2.4 "TFT LCD Touch Shield ay isang maraming kulay na Arduino UNO / Mega katugmang display ng TFT na may kasamang touch-screen at SD card socket din. Ang TFT display module na ito ay may isang maliwanag na backlight at isang makulay na 240X320 pixel na display. Binubuo din ito ng indibidwal na RGB kontrol ng pixel na nagbibigay dito ng isang mas mahusay na resolusyon kaysa sa itim at puting ipinapakita.
Ang pag-interface ng display ng TFT sa Arduino ay napakasimple at ipinaliwanag sa nakaraang tutorial. Kailangan mo lamang i-mount ang display ng TFT sa board ng Arduino Uno, tulad ng ipinakita sa imaheng nasa ibaba.
TFT LCD ay lubhang kapaki-pakinabang sa pagbuo ng mga portable application tulad ng:
- Calculator ng Screen ng Arduino Touch
- Kinokontrol ng Smart Phone ang Digital Code Lock gamit ang Arduino
- Arduino SMART Alarm Clock
- NeoPixel LED Strip na may Arduino at TFT LCD
Gayundin, suriin ang lahat ng mga proyekto na nakabatay sa TFT LCD dito.
Diagram ng Circuit
Ang proyekto ng System ng Pag-order ng Smart Restaurant Menu ay binubuo ng seksyon ng RF Transmitter at Receiver. Ang parehong panig ng transmiter at receiver ay gumagamit ng Arduino Uno para sa pagproseso ng data. Ginamit namin dati ang parehong 433 MHz RF modules na may Arduino para sa pagbuo ng mga proyekto tulad ng isang wireless doorbell, kamay na kontrolado ng robot, atbp. Ang circuit diagram para sa seksyon ng transmitter at receiver ay ibinibigay sa ibaba.
Circuit ng Seksyon ng Transmitter
Ang seksyon ng transmitter ng proyektong ito ay binubuo ng isang Arduino Uno, RF Transmitter, at TFT display na kalasag. Ang seksyon na ito ay ginagamit para sa pag-order mula sa menu na ipinapakita sa display na TFT. Ang Arduino Uno ay ang utak ng panig ng transmiter na nagpoproseso ng lahat ng data, at ang module ng RF transmitter ay ginagamit upang maipadala ang napiling data sa tatanggap. Ang data pin ng module ng RF transmitter ay konektado sa digital pin 12 ng Arduino habang ang V CC at GND pin ay konektado sa 5V at GND pin ng Arduino.
Circuit ng Seksyon ng Tagatanggap
Ang seksyon ng tatanggap ng proyektong ito ay binubuo ng isang Arduino Uno, RF Receiver, 16 * 2 LCD module, at I2C module. Ginagamit ang RF receiver upang makatanggap ng data mula sa seksyon ng transmitter, at ang LCD module ay ginagamit upang ipakita ang natanggap na data. Ginagamit ang isang buzzer upang makagawa ng tunog tuwing inilalagay ang isang bagong order. Ang data pin ng RF receiver ay konektado sa digital pin 11 ng Arduino habang ang V CC at GND pin ay konektado sa 5V at GND pin ng Arduino. Ang positibong pin ng Buzzer ay konektado sa digital pin 2 ng Arduino, at ang negatibong pin ay konektado sa GND pin ng Arduino. Ang mga SCL at SDA na pin ng module ng I2C ay konektado sa mga analog pin na A5 & A4 Arduino habang ang mga VCC at GND na pin ay konektado sa 5V at GND na pin ng Arduino.
Paliwanag sa Code
Ang kumpletong code para sa mga panig ng RF Transmitter at Receiver para sa Smart Ordering System na ito sa Restaurant ay ibinibigay sa dulo ng dokumento. Ang lahat ng mga silid-aklatan na ginamit sa proyektong ito ay maaaring ma-download mula sa mga ibinigay na link.
- Library ng RadioHead
- SPFD5408 library
Ang library ng RadioHead ay ginagamit para sa module ng RF transmitter / Receiver, habang ang SPFD5408 library ay ginagamit para sa pagpapakita ng TFT.
Code ng Seksyon ng Transmitter:
Simulan ang code sa pamamagitan ng pagsasama ng lahat ng kinakailangang mga aklatan. Ginagamit ang RH_ASK.h library para sa komunikasyon sa pagitan ng mga modyul ng transmiter at tatanggap. Ang SPFD5408_Adafruit_GFX.h ay isang library ng Core graphics para sa display na TFT.
# isama
Pagkatapos nito, lumikha ng isang bagay na tinatawag na 'driver' para sa RH_ASK .
RH_ASK driver;
Matapos na tukuyin ang minimum at maximum na naka-calibrate na mga halaga ng X & Y-axis para sa iyong display na TFT.
#define TS_MINX 125 #define TS_MINY 85 #define TS_MAXX 965 #define TS_MAXY 905
Ngayon sa loob ng paggana ng drawHome gumuhit ng isang layout para sa iyong TFT screen. Dito ginagamit ang tft.fillScreen upang itakda ang kulay ng background.
tft.drawRoundRect function ay ginagamit upang lumikha ng isang puno ng Rectangle. Ang Syntax para sa tft.drawRoundRect function ay ibinibigay sa ibaba:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color)
Kung saan:
x0 = X co-ordinate ng panimulang punto ng hugis-parihaba
y0 = Y coordinate ng panimulang punto ng parihaba
w = Lapad ng parihaba
h = Taas ng Parihabang
radius = Radius ng bilog na sulok
kulay = Kulay ng Rect.
tft.fillRoundRect function ay ginagamit upang gumuhit ng isang puno ng Parihaba. Ang Syntax ng tft.fillRoundRect function ay ibinibigay sa ibaba:
tft.fillRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color) tft.fillScreen (WHITE); tft.drawRoundRect (0, 0, 319, 240, 8, WHITE); // border ng pahina tft.fillRoundRect (30, 40, 100, 40, 8, GOLD); tft.drawRoundRect (30, 40, 100, 40, 8, WHITE); // Dish1 tft.fillRoundRect (30, 90, 100, 40, 8, GOLD); tft.drawRoundRect (30, 90, 100, 40, 8, WHITE); // Dish2 tft.fillRoundRect (30, 140, 100, 40, 8, GOLD); // Dish3 tft.drawRoundRect (30, 140, 100, 40, 8, WHITE);
Matapos likhain ang mga pindutan sa screen ng TFT, ipakita ngayon ang teksto sa mga pindutan. Ginagamit ang tft.setCursor upang itakda ang cursor mula sa kung saan mo nais simulan ang teksto.
tft.setCursor (60, 0); tft.setTextSize (3); tft.setTextColor (LIME); tft.print ("Menu"); tft.setTextSize (2); tft.setTextColor (PUTI); tft.setCursor (37, 47); tft.print ("Ulam1");
Sa loob ng walang bisa na pagpapadala ng pagpapaandar, ipadala ang data sa panig ng tatanggap bawat 1 segundo.
walang bisa ang pagpapadala () {driver.send ((uint8_t *) msg, strlen (msg)); driver.waitPacketSent (); pagkaantala (1000); }
Sa loob ng pag- andar ng void loop , basahin ang halagang Raw ADC gamit ang ts.getPoint function.
TSPoint p = ts.getPoint ();
Ngayon gamitin ang pagpapaandar ng mapa upang mai-convert ang mga halagang Raw ADC sa Pixel Co-ordinates.
px = mapa (px, TS_MAXX, TS_MINX, 0, 320); py = mapa (py, TS_MAXY, TS_MINY, 0, 240);
Matapos ma-convert ang mga halagang Raw ADC sa co-ordinate ng pixel, ipasok ang mga coordinate ng pixel para sa pindutan ng Dish1 at kung ang isang tao ay hawakan ang screen sa pagitan ng lugar na ito pagkatapos ay ipadala ang mensahe sa panig ng tatanggap.
kung (px> 180 && px <280 && py> 190 && py <230 && pz> MINPRESSURE && pz <MAXPRESSURE) {Serial.println ("Dish1"); msg = "Pinggan1"; ipadala (); tft.fillRoundRect (30, 40, 100, 40, 8, WHITE); pagkaantala (70); tft.fillRoundRect (30, 40, 100, 40, 8, GOLD); tft.drawRoundRect (30, 40, 100, 40, 8, WHITE); tft.setCursor (37, 47); tft.println ("Dish1"); pagkaantala (70); }
Sundin ang parehong pamamaraan para sa lahat ng iba pang mga pindutan.
Code ng Seksyon ng Tagatanggap
Para sa code ng seksyon ng tatanggap ng RF, isama ang mga aklatan para sa RF receiver at LCD module. Isama rin ang SPI.h library para sa pagtataguyod ng isang SPI na komunikasyon sa pagitan ng Arduino at RF receiver.
# isama
Sa loob ng pag- andar ng void loop , patuloy na suriin para sa mga naihatid na mensahe. At kung ang module ng tatanggap ay tumatanggap ng isang mensahe, pagkatapos ay ipakita ang mensahe sa module ng LCD at gumawa ng tunog ng beep.
kung (driver.recv (buf, & buflen)) // Non-block {int i; digitalWrite (buzzer, TAAS); pagkaantala (1000); digitalWrite (buzzer, LOW);. lcd.print ("T1:"); lcd.print ((char *) buf);
Pagsubok sa Smart Restaurant Project gamit ang Arduino
Matapos ikonekta ang lahat ng hardware at mai-upload ang code para sa parehong seksyon ng transmiter at tatanggap, oras na upang subukan ang proyekto. Upang subukan ang proyekto, pindutin ang isang pindutan sa display ng TFT, dapat itong ipakita ang pangalan ng pinggan na may numero ng talahanayan na T1 sa LCD module na konektado sa panig ng tatanggap. Kung ang panig ng tatanggap na LCD ay hindi nagpapakita ng anumang bagay, pagkatapos suriin kung gumagana ang iyong TFT screen o hindi.
Ito ay kung paano ka makakabuo ng isang proyekto ng System ng Pag-order ng Smart Restaurant Menu gamit ang display ng Arduino at TFT. Maaari mo ring baguhin ang oryentasyon ng screen upang magdagdag ng higit pang mga pindutan.
Ang isang gumaganang video na may kumpletong code ay ibinibigay sa ibaba.