- Wymagane składniki
- Połączenie ekranu dotykowego TFT LCD z Arduino
- Schemat obwodu
- Objaśnienie kodu
- Testowanie projektu Smart Restaurant za pomocą Arduino
Dzisiejsze systemy automatyki są wszędzie, czy to w domu, biurze czy w każdej dużej branży, wszystkie są wyposażone w systemy automatyki. Restauracje / hotele również przyjmują najnowsze trendy w automatyzacji i instalują roboty do dostarczania żywności i tabletów do przyjmowania zamówień. Korzystając z cyfrowych kart menu, takich jak tablety, klienci mogą z łatwością wybierać pozycje. Informacje te zostaną przesłane do kuchni Restauracji, a także wyświetlone na wyświetlaczu.
W tym projekcie budujemy projekt Smart Restaurant z wykorzystaniem Arduino, wyświetlacza TFT i modułu nadajnika / odbiornika RF 433MHz. Tutaj sekcja nadajnika będzie składać się z Arduino Uno, wyświetlacza TFT i nadajnika RF, za pomocą którego klienci będą mogli wybrać artykuły spożywcze i złożyć zamówienie. Podczas gdy sekcja odbiornika składa się z Arduino Uno, modułu LCD, odbiornika RF i Buzzera, które zostaną zainstalowane w kuchni restauracji w celu śledzenia pozycji zamówienia.
Wymagane składniki
- Arduino Uno (2)
- Nadajnik i odbiornik RF 433 MHz
- Ekran dotykowy LCD TFT 2,4 cala
- Moduł LCD 16 * 2
- Moduł I 2 C.
Połączenie ekranu dotykowego TFT LCD z Arduino
2,4-calowy ekran dotykowy TFT LCD to wielokolorowy wyświetlacz TFT kompatybilny z Arduino UNO / Mega, wyposażony w ekran dotykowy i gniazdo kart SD. Ten moduł wyświetlacza TFT ma jasne podświetlenie i kolorowy wyświetlacz 240X320 pikseli. Składa się również z indywidualnego RGB kontrola pikseli, która zapewnia znacznie lepszą rozdzielczość niż wyświetlacze czarno-białe.
Połączenie wyświetlacza TFT z Arduino jest bardzo proste i zostało wyjaśnione w poprzednim samouczku. Wystarczy zamontować wyświetlacz TFT na płycie Arduino Uno, jak pokazano na poniższym obrazku.
TFT LCD jest bardzo przydatny w budowaniu przenośnych aplikacji, takich jak:
- Kalkulator ekranu dotykowego Arduino
- Cyfrowa blokada kodowa sterowana smartfonem za pomocą Arduino
- Budzik Arduino SMART
- Taśma LED NeoPixel z Arduino i wyświetlaczem TFT LCD
Sprawdź również wszystkie projekty oparte na TFT LCD tutaj.
Schemat obwodu
Projekt inteligentnego systemu zamawiania menu restauracji składa się z sekcji nadajnika i odbiornika RF. Zarówno strona nadajnika, jak i odbiornika wykorzystuje Arduino Uno do przetwarzania danych. Wcześniej używaliśmy tych samych modułów RF 433 MHz z Arduino do budowy projektów, takich jak bezprzewodowy dzwonek do drzwi, robot sterowany gestami dłoni itp. Schemat obwodu sekcji nadajnika i odbiornika przedstawiono poniżej.
Obwód sekcji nadajnika
Sekcja nadajnika tego projektu składa się z Arduino Uno, nadajnika RF i osłony wyświetlacza TFT. Ta sekcja służy do zamawiania z menu, które jest wyświetlane na wyświetlaczu TFT. Arduino Uno jest mózgiem strony nadajnika, który przetwarza wszystkie dane, a moduł nadajnika RF służy do przesyłania wybranych danych do odbiornika. Pin danych modułu nadajnika RF jest połączony z cyfrowym pinem 12 Arduino, a piny V CC i GND są połączone z pinem 5V i GND Arduino.
Obwód sekcji odbiornika
Sekcja odbiornika tego projektu składa się z Arduino Uno, odbiornika RF, modułu LCD 16 * 2 i modułu I2C. Odbiornik radiowy służy do odbioru danych z sekcji nadajnika, a moduł LCD służy do wyświetlania odebranych danych. Brzęczyk jest używany do wydawania dźwięku za każdym razem, gdy składane jest nowe zamówienie. Pin danych odbiornika RF jest połączony z cyfrowym pinem 11 Arduino, a pin V CC i GND jest podłączony do pinów 5V i GND Arduino. Dodatni pin Buzzera jest podłączony do cyfrowego pinu 2 Arduino, a ujemny pin jest połączony z pinem GND Arduino. Piny SCL i SDA modułu I2C są połączone z pinami analogowymi A5 i A4 Arduino, natomiast piny VCC i GND są połączone z pinami 5V i GND Arduino.
Objaśnienie kodu
Pełny kod dla strony nadajnika i odbiornika RF dla tego inteligentnego systemu zamówień w restauracji podano na końcu dokumentu. Wszystkie biblioteki użyte w tym projekcie można pobrać z podanych linków.
- RadioHead Library
- Biblioteka SPFD5408
Biblioteka RadioHead jest używana do modułu nadajnika / odbiornika RF, a biblioteka SPFD5408 jest używana do wyświetlania TFT.
Kod sekcji nadajnika:
Uruchom kod, dołączając wszystkie wymagane biblioteki. Biblioteka RH_ASK.h służy do komunikacji pomiędzy modułami nadajnika i odbiornika. SPFD5408_Adafruit_GFX.h to podstawowa biblioteka graficzna dla wyświetlaczy TFT.
#zawierać
Następnie utwórz obiekt o nazwie „sterownik” dla RH_ASK .
Sterownik RH_ASK;
Następnie zdefiniuj minimalne i maksymalne skalibrowane wartości osi X i Y dla wyświetlacza TFT.
# zdefiniować TS_MINX 125 # zdefiniować TS_MINY 85 # zdefiniować TS_MAXX 965 # zdefiniować TS_MAXY 905
Teraz w funkcji drawHome narysuj układ ekranu TFT. Tutaj tft.fillScreen jest używany do ustawienia koloru tła.
Funkcja tft.drawRoundRect służy do tworzenia wypełnionego Rectangle. Składnia funkcji tft.drawRoundRect jest podana poniżej:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color)
Gdzie:
x0 = współrzędna X punktu początkowego prostokąta
y0 = współrzędna Y punktu początkowego prostokąta
w = szerokość prostokąta
h = wysokość prostokąta
promień = promień zaokrąglonego narożnika
color = kolor prostokąta.
Funkcja tft.fillRoundRect służy do rysowania wypełnionego Rectangle. Składniafunkcji tft.fillRoundRect jest podana poniżej:
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); // Obramowanie strony tft.fillRoundRect (30, 40, 100, 40, 8, GOLD); tft.drawRoundRect (30, 40, 100, 40, 8, BIAŁY); // Dish1 tft.fillRoundRect (30, 90, 100, 40, 8, GOLD); tft.drawRoundRect (30, 90, 100, 40, 8, BIAŁY); // Dish2 tft.fillRoundRect (30, 140, 100, 40, 8, GOLD); // Dish3 tft.drawRoundRect (30, 140, 100, 40, 8, WHITE);
Po utworzeniu przycisków na ekranie TFT wyświetl tekst na przyciskach. tft.setCursor służy do ustawiania kursora od miejsca, w którym chcesz rozpocząć tekst.
tft.setCursor (60, 0); tft.setTextSize (3); tft.setTextColor (LIME); tft.print ("Menu"); tft.setTextSize (2); tft.setTextColor (BIAŁY); tft.setCursor (37, 47); tft.print ("Dish1");
Wewnątrz funkcji transmisji void przesyłaj dane do strony odbiornika co 1 sekundę.
void transmit () {driver.send ((uint8_t *) msg, strlen (msg)); driver.waitPacketSent (); opóźnienie (1000); }
Wewnątrz funkcji void loop odczytaj wartość Raw ADC za pomocą funkcji ts.getPoint.
TSPoint p = ts.getPoint ();
Teraz użyj funkcji mapy, aby przekonwertować wartości Raw ADC na współrzędne pikseli.
px = map (px, TS_MAXX, TS_MINX, 0, 320); py = map (py, TS_MAXY, TS_MINY, 0, 240);
Po konwersji wartości Raw ADC na współrzędne w pikselach wprowadź współrzędne piksela dla przycisku Dish1 i jeśli ktoś dotknie ekranu między tym obszarem, wyślij wiadomość do strony odbiorcy.
if (px> 180 && px <280 && py> 190 && py <230 && pz> MINPRESSURE && pz <MAXPRESSURE) {Serial.println ("Dish1"); msg = "Danie1"; przekazać(); tft.fillRoundRect (30, 40, 100, 40, 8, WHITE); opóźnienie (70); tft.fillRoundRect (30, 40, 100, 40, 8, GOLD); tft.drawRoundRect (30, 40, 100, 40, 8, BIAŁY); tft.setCursor (37, 47); tft.println ("Dish1"); opóźnienie (70); }
Wykonaj tę samą procedurę dla wszystkich pozostałych przycisków.
Kod sekcji odbiornika
Dla kodu sekcji odbiornika RF dołącz biblioteki odbiornika RF i modułu LCD. Obejmują również SPI.h bibliotekę dla ustanowienia komunikacji SPI pomiędzy Arduino i odbiornikiem fal radiowych.
#zawierać
Wewnątrz funkcji pustej pętli stale sprawdzaj przesyłane wiadomości. A jeśli moduł odbiornika otrzyma wiadomość, wyświetl komunikat na module LCD i uruchom sygnał dźwiękowy.
if (driver.recv (buf, & buflen)) // Nieblokujące {int i; digitalWrite (buzzer, HIGH); opóźnienie (1000); digitalWrite (buzzer, LOW);. lcd.print ("T1:"); lcd.print ((char *) buf);
Testowanie projektu Smart Restaurant za pomocą Arduino
Po podłączeniu całego sprzętu i wgraniu kodu zarówno dla sekcji nadajnika, jak i odbiornika, czas na przetestowanie projektu. W celu przetestowania projektu należy nacisnąć przycisk na wyświetlaczu TFT, na module LCD podłączonym po stronie odbiornika powinna wyświetlić się nazwa anteny wraz z numerem tabeli czyli T1. Jeśli wyświetlacz LCD po stronie odbiornika nic nie wyświetla, sprawdź, czy ekran TFT działa, czy nie.
W ten sposób możesz zbudować projekt systemu zamawiania inteligentnego menu restauracji przy użyciu Arduino i wyświetlacza TFT. Możesz także zmienić orientację ekranu, aby dodać więcej przycisków.
Poniżej przedstawiono działające wideo z pełnym kodem.