- Komponen Diperlukan
- Perisai sentuh TFT LCD antara muka dengan Arduino
- Rajah Litar
- Penjelasan Kod
- Menguji Projek Restoran Pintar menggunakan Arduino
Kini sistem automasi hari ini ada di mana sahaja sama ada kediaman, pejabat atau industri besar, semuanya dilengkapi dengan sistem automasi. Restoran / Hotel juga menggunakan tren automasi baru-baru ini dan memasang robot untuk menyampaikan makanan dan tablet untuk menerima pesanan. Dengan menggunakan kad menu digital seperti tablet, pelanggan dapat memilih item dengan mudah. Maklumat ini akan dihantar ke dapur Restoran dan juga dipaparkan di paparan.
Dalam projek ini, kami membangun Projek Restoran Pintar menggunakan modul Arduino, TFT, dan modul pemancar / penerima RF 433MHz. Di sini bahagian pemancar akan terdiri dari Arduino Uno, layar TFT, dan pemancar RF, dengan menggunakan pelanggan mana yang dapat memilih barang makanan dan membuat pesanan. Sementara bahagian penerima terdiri daripada Arduino Uno, modul LCD, penerima RF, dan Buzzer, yang akan dipasang di dapur restoran untuk mengesan barang pesanan.
Komponen Diperlukan
- Arduino Uno (2)
- Pemancar & Penerima RF 433MHz
- Pelindung Sentuh LCD TFT 2.4 "
- Modul LCD 16 * 2
- Modul I 2 C
Perisai sentuh TFT LCD antara muka dengan Arduino
Pelindung Sentuh LCD TFT 2.4 "adalah paparan TFT serasi Arduino UNO / Mega berwarna-warni yang dilengkapi dengan skrin sentuh dan soket kad SD juga. Modul paparan TFT ini mempunyai lampu latar yang terang dan paparan 240X320 piksel berwarna-warni. Ia juga terdiri dari RGB individu kawalan piksel yang memberikan resolusi yang jauh lebih baik daripada paparan hitam putih.
Memadankan paparan TFT dengan Arduino sangat mudah dan dijelaskan dalam tutorial sebelumnya. Anda hanya perlu memasang paparan TFT di atas papan Arduino Uno, seperti yang ditunjukkan pada gambar di bawah.
TFT LCD sangat berguna dalam membina aplikasi mudah alih seperti:
- Kalkulator Skrin Sentuh Arduino
- Kunci Kod Digital Dikawal Telefon Pintar menggunakan Arduino
- Jam Penggera Arduino SMART
- Jalur LED NeoPixel dengan Arduino dan TFT LCD
Juga, periksa semua projek berasaskan TFT LCD di sini.
Rajah Litar
Projek Sistem Pemesanan Menu Restoran Pintar terdiri daripada bahagian Pemancar dan Penerima RF. Bahagian pemancar dan penerima menggunakan Arduino Uno untuk pemprosesan data. Kami sebelumnya menggunakan modul RF 433 MHz yang sama dengan Arduino untuk membina projek seperti bel pintu tanpa wayar, robot kawalan isyarat tangan, dan lain-lain. Gambarajah litar untuk bahagian pemancar dan penerima diberikan di bawah.
Litar Bahagian Pemancar
Bahagian pemancar projek ini terdiri daripada pelindung paparan Arduino Uno, RF Transmitter, dan TFT. Bahagian ini digunakan untuk membuat pesanan dari menu yang ditunjukkan pada paparan TFT. Arduino Uno adalah otak dari sisi pemancar yang memproses semua data, dan modul pemancar RF digunakan untuk mengirimkan data yang dipilih ke penerima. Pin data modul pemancar RF disambungkan ke pin digital 12 Arduino sementara pin V CC dan GND disambungkan ke pin Arvino 5V dan GND.
Litar Bahagian Penerima
Bahagian penerima projek ini terdiri daripada Arduino Uno, RF Receiver, modul LCD 16 * 2, dan modul I2C. Penerima RF digunakan untuk menerima data dari bahagian pemancar, dan modul LCD digunakan untuk menampilkan data yang diterima. Buzzer digunakan untuk mengeluarkan suara setiap kali pesanan baru dibuat. Pin data penerima RF disambungkan ke pin digital 11 Arduino sementara pin V CC dan GND disambungkan ke pin 5V dan GND Arduino. Pin positif Buzzer disambungkan ke pin digital 2 Arduino, dan pin negatif disambungkan ke pin GND Arduino. Pin SCL dan SDA modul I2C disambungkan ke pin analog A5 & A4 Arduino sementara pin VCC dan GND disambungkan ke pin 5V dan GND Arduino.
Penjelasan Kod
Kod lengkap untuk sisi Pemancar dan Penerima RF untuk Sistem Pemesanan Pintar di Restoran ini diberikan di akhir dokumen. Semua perpustakaan yang digunakan dalam projek ini boleh dimuat turun dari pautan yang diberikan.
- Perpustakaan RadioHead
- Perpustakaan SPFD5408
Perpustakaan RadioHead digunakan untuk modul pemancar / Penerima RF, sementara perpustakaan SPFD5408 digunakan untuk paparan TFT.
Kod Bahagian Pemancar:
Mulakan kod dengan memasukkan semua perpustakaan yang diperlukan. Perpustakaan RH_ASK.h digunakan untuk komunikasi antara modul pemancar dan penerima. SPFD5408_Adafruit_GFX.h adalah pustaka grafik Teras untuk paparan TFT.
#sertakan
Selepas itu, buat objek yang dipanggil 'driver' untuk RH_ASK .
Pemacu RH_ASK;
Selepas itu tentukan nilai paksi X & Y yang dikalibrasi minimum dan maksimum untuk paparan TFT anda.
#tentukan TS_MINX 125 #tentukan TS_MINY 85 #tentukan TS_MAXX 965 #tentukan TS_MAXY 905
Sekarang di dalam fungsi drawHome lukiskan susun atur untuk skrin TFT anda. Di sini tft.fillScreen digunakan untuk menetapkan warna latar belakang.
Fungsi tft.drawRoundRect digunakan untuk membuat Rectangle yang diisi. Fungsi sintaks untuk tft.drawRoundRect diberikan di bawah:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color)
Di mana:
x0 = X koordinat titik permulaan segi empat tepat
y0 = Y koordinat titik permulaan segi empat tepat
w = Lebar segi empat tepat
h = Tinggi Segi Empat
jejari = Radius sudut bulat
warna = Warna Bilangan.
Fungsi tft.fillRoundRect digunakan untuk melukis segi empat tepat yang diisi. Fungsisintaks tft.fillRoundRect diberikan di bawah:
tft.fillRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color) tft.fillScreen (PUTIH); tft.drawRoundRect (0, 0, 319, 240, 8, PUTIH); // Batas halaman tft.fillRoundRect (30, 40, 100, 40, 8, EMAS); tft.drawRoundRect (30, 40, 100, 40, 8, PUTIH); // Dish1 tft.fillRoundRect (30, 90, 100, 40, 8, EMAS); tft.drawRoundRect (30, 90, 100, 40, 8, PUTIH); // Dish2 tft.fillRoundRect (30, 140, 100, 40, 8, EMAS); // Dish3 tft.drawRoundRect (30, 140, 100, 40, 8, PUTIH);
Setelah membuat butang pada layar TFT, sekarang paparkan teks pada butang. tft.setCursor digunakan untuk menetapkan kursor dari tempat anda ingin memulakan teks.
tft.setCursor (60, 0); tft.setTextSize (3); tft.setTextColor (LIME); tft.print ("Menu"); tft.setTextSize (2); tft.setTextColor (PUTIH); tft.setCursor (37, 47); tft.print ("Dish1");
Di dalam fungsi penghantaran void , hantarkan data ke sisi penerima setiap 1 saat.
void transmit () {driver.send ((uint8_t *) msg, strlen (msg)); driver.waitPacketSent (); kelewatan (1000); }
Di dalam fungsi gelung void , baca nilai Raw ADC menggunakan fungsi ts.getPoint.
TSPoint p = ts.getPoint ();
Sekarang gunakan fungsi peta untuk menukar nilai ADC Raw menjadi Koordinat Pixel.
px = peta (px, TS_MAXX, TS_MINX, 0, 320); py = peta (py, TS_MAXY, TS_MINY, 0, 240);
Setelah menukar nilai Raw ADC menjadi koordinat piksel, masukkan koordinat piksel untuk butang Dish1 dan jika seseorang menyentuh skrin di antara kawasan ini maka hantarkan mesej ke sisi penerima.
jika (px> 180 && px <280 && py> 190 && py <230 && pz> MINPRESSURE && pz <MAXPRESSURE) {Serial.println ("Dish1"); msg = "Dish1"; menghantar (); tft.fillRoundRect (30, 40, 100, 40, 8, PUTIH); kelewatan (70); tft.fillRoundRect (30, 40, 100, 40, 8, EMAS); tft.drawRoundRect (30, 40, 100, 40, 8, PUTIH); tft.setCursor (37, 47); tft.println ("Dish1"); kelewatan (70); }
Ikuti prosedur yang sama untuk semua butang lain.
Kod Bahagian Penerima
Untuk kod bahagian penerima RF, sertakan perpustakaan untuk penerima RF dan modul LCD. Juga termasuk SPI.h perpustakaan untuk mewujudkan komunikasi SPI antara Arduino dan penerima RF.
#sertakan
Di dalam fungsi gelung void , periksa terus-menerus pesan yang dihantar. Dan jika modul penerima menerima mesej, kemudian paparkan mesej tersebut pada modul LCD dan buat bunyi bip.
if (driver.recv (buf, & buflen)) // Tidak menyekat {int i; digitalWrite (buzzer, TINGGI); kelewatan (1000); digitalWrite (buzzer, RENDAH);. lcd.print ("T1:"); lcd.print ((char *) buf);
Menguji Projek Restoran Pintar menggunakan Arduino
Setelah menyambungkan semua perkakasan dan memuat naik kod untuk bahagian pemancar dan penerima, kini saatnya untuk menguji projek. Untuk menguji projek, tekan butang pada paparan TFT, harus menunjukkan nama hidangan dengan nombor jadual yang T1 pada modul LCD yang disambungkan ke sisi penerima. Sekiranya LCD sisi penerima tidak memaparkan apa-apa, periksa sama ada skrin TFT anda berfungsi atau tidak.
Ini adalah bagaimana anda dapat membina projek Sistem Pemesanan Menu Restoran Pintar menggunakan paparan Arduino dan TFT. Anda juga boleh mengubah orientasi skrin untuk menambah lebih banyak butang.
A video bekerja dengan kod lengkap diberikan di bawah.