- Komponen Diperlukan
- Menghubungkan pelindung TFT LCD Touch dengan Arduino
- Diagram Sirkuit
- Penjelasan Kode
- Menguji Proyek Restoran Cerdas menggunakan Arduino
Sekarang sistem otomatisasi hari ini ada dimana-mana baik di rumah, kantor atau industri besar lainnya, semuanya dilengkapi dengan sistem otomasi. Restoran / Hotel juga mengadopsi tren otomatisasi terkini dan memasang robot untuk mengirimkan makanan dan tablet untuk menerima pesanan. Dengan menggunakan kartu menu digital seperti tablet ini, pelanggan dapat dengan mudah memilih item. Informasi ini akan dikirim ke dapur Restoran dan juga ditampilkan di layar.
Dalam proyek ini, kami membangun Proyek Restoran Cerdas menggunakan Arduino, tampilan TFT, dan modul pemancar / penerima RF 433MHz. Di sini bagian pemancar akan terdiri dari Arduino Uno, tampilan TFT, dan pemancar RF, yang digunakan pelanggan untuk memilih makanan dan memesan. Sedangkan bagian receiver terdiri dari Arduino Uno, modul LCD, penerima RF, dan Buzzer yang akan dipasang di dapur restoran untuk melacak barang pesanan.
Komponen Diperlukan
- Arduino Uno (2)
- 433MHz Pemancar & Penerima RF
- Pelindung Sentuh LCD TFT 2,4 "
- 16 * 2 Modul LCD
- Modul I 2 C
Menghubungkan pelindung TFT LCD Touch dengan Arduino
2.4 "TFT LCD Touch shield adalah layar TFT warna-warni yang kompatibel dengan Arduino UNO / Mega yang dilengkapi dengan layar sentuh dan soket kartu SD. Modul tampilan TFT ini memiliki lampu latar yang terang dan tampilan warna-warni 240X320 piksel. Ini juga terdiri dari RGB individu kontrol piksel yang memberikan resolusi yang jauh lebih baik daripada tampilan hitam putih.
Menghubungkan tampilan TFT dengan Arduino sangat sederhana dan dijelaskan di tutorial sebelumnya. Anda hanya perlu memasang layar TFT di atas papan Arduino Uno, seperti yang ditunjukkan pada gambar di bawah ini.
TFT LCD sangat berguna dalam membangun aplikasi portabel seperti:
- Kalkulator Layar Sentuh Arduino
- Smart Phone Controlled Digital Code Lock menggunakan Arduino
- Arduino SMART Alarm Clock
- NeoPixel LED Strip dengan Arduino dan TFT LCD
Juga, periksa semua proyek berbasis LCD TFT di sini.
Diagram Sirkuit
Proyek Sistem Pemesanan Menu Restoran Cerdas terdiri dari bagian Pemancar dan Penerima RF. Baik sisi transmitter maupun receiver menggunakan Arduino Uno untuk pengolahan datanya. Kami sebelumnya menggunakan modul RF 433 MHz yang sama dengan Arduino untuk proyek pembangunan seperti bel pintu nirkabel, robot yang dikendalikan gerakan tangan, dll. Diagram sirkuit untuk bagian pemancar dan penerima diberikan di bawah ini.
Sirkuit Bagian Pemancar
Bagian pemancar dari proyek ini terdiri dari Arduino Uno, Pemancar RF, dan pelindung layar TFT. Bagian ini digunakan untuk memesan dari menu yang ditampilkan pada layar 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 terhubung ke pin digital 12 Arduino sedangkan pin V CC dan GND terhubung ke pin 5V dan GND Arduino.
Sirkuit Bagian Penerima
Bagian penerima proyek ini terdiri dari Arduino Uno, Penerima RF, modul LCD 16 * 2, dan modul I2C. Penerima RF digunakan untuk menerima data dari bagian pemancar, dan modul LCD digunakan untuk menampilkan data yang diterima. Bel digunakan untuk membuat suara setiap kali ada pesanan baru. Pin data penerima RF terhubung ke pin digital 11 Arduino sedangkan pin V CC dan GND terhubung ke pin 5V dan GND Arduino. Pin positif Buzzer terhubung ke pin digital 2 Arduino, dan pin negatif terhubung ke pin GND Arduino. Pin SCL dan SDA modul I2C dihubungkan ke pin analog A5 & A4 Arduino sedangkan pin VCC dan GND disambungkan ke pin 5V dan GND Arduino.
Penjelasan Kode
Kode lengkap untuk sisi Pemancar dan Penerima RF untuk Sistem Pemesanan Cerdas di Restoran ini diberikan di akhir dokumen. Semua perpustakaan yang digunakan dalam proyek ini dapat diunduh dari tautan yang diberikan.
- Perpustakaan RadioHead
- Perpustakaan SPFD5408
Perpustakaan RadioHead digunakan untuk modul pemancar / Penerima RF, sedangkan perpustakaan SPFD5408 digunakan untuk tampilan TFT.
Kode Bagian Transmitter:
Mulai kode dengan memasukkan semua pustaka yang diperlukan. Perpustakaan RH_ASK.h digunakan untuk komunikasi antara modul pemancar dan penerima. SPFD5408_Adafruit_GFX.h adalah pustaka grafis Inti untuk tampilan TFT.
#include
Setelah itu buat objek bernama 'driver' untuk RH_ASK .
Sopir RH_ASK;
Setelah itu tentukan nilai sumbu X & Y terkalibrasi minimum dan maksimum untuk tampilan TFT Anda.
# Tentukan TS_MINX 125 # Tentukan TS_MINY 85 # Tentukan TS_MAXX 965 # Tentukan TS_MAXY 905
Sekarang di dalam fungsi drawHome gambarlah sebuah layout untuk layar TFT Anda. Di sini tft.fillScreen digunakan untuk mengatur warna latar belakang.
Fungsi tft.drawRoundRect digunakan untuk membuat Rectangle yang terisi. Sintaks untuk fungsi tft.drawRoundRect diberikan di bawah ini:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color)
Dimana:
x0 = koordinat X dari titik awal persegi panjang
y0 = koordinat Y titik awal persegi panjang
w = Lebar persegi panjang
h = Tinggi Persegi Panjang
radius = Radius dari sudut bundar
color = Warna Persegi.
Fungsi tft.fillRoundRect digunakan untuk menggambar Persegi Panjang yang terisi. Sintaks darifungsi tft.fillRoundRect diberikan di bawah ini:
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); // Batas halaman 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);
Setelah membuat tombol pada layar TFT, sekarang tampilkan teks pada tombol tersebut. tft.setCursor digunakan untuk mengatur kursor dari tempat Anda ingin memulai teks.
tft.setCursor (60, 0); tft.setTextSize (3); tft.setTextColor (LIME); tft.print ("Menu"); tft.setTextSize (2); tft.setTextColor (WHITE); tft.setCursor (37, 47); tft.print ("Dish1");
Di dalam fungsi transmisi kosong , kirim data ke sisi penerima setiap 1 detik.
void transmit () {driver.send ((uint8_t *) msg, strlen (msg)); driver.waitPacketSent (); penundaan (1000); }
Di dalam fungsi void loop , baca nilai Raw ADC menggunakan fungsi ts.getPoint.
TSPoint p = ts.getPoint ();
Sekarang gunakan fungsi peta untuk mengubah nilai ADC Mentah menjadi Koordinat Piksel.
px = peta (px, TS_MAXX, TS_MINX, 0, 320); py = peta (py, TS_MAXY, TS_MINY, 0, 240);
Setelah mengubah nilai ADC Mentah menjadi koordinat piksel, masukkan koordinat piksel untuk tombol Dish1 dan jika seseorang menyentuh layar di antara area ini, kirim pesan ke sisi penerima.
if (px> 180 && px <280 && py> 190 && py <230 && pz> MINPRESSURE && pz <MAXPRESSURE) {Serial.println ("Dish1"); msg = "Hidangan1"; mengirimkan(); tft.fillRoundRect (30, 40, 100, 40, 8, WHITE); penundaan (70); tft.fillRoundRect (30, 40, 100, 40, 8, GOLD); tft.drawRoundRect (30, 40, 100, 40, 8, WHITE); tft.setCursor (37, 47); tft.println ("Dish1"); penundaan (70); }
Ikuti prosedur yang sama untuk semua tombol lainnya.
Kode Bagian Penerima
Untuk kode bagian penerima RF, sertakan pustaka untuk penerima RF dan modul LCD. Juga sertakan perpustakaan SPI.h untuk membangun komunikasi SPI antara Arduino dan penerima RF.
#include
Di dalam fungsi void loop , terus periksa pesan yang dikirim. Dan jika modul penerima menerima pesan, maka tampilkan pesan tersebut pada modul LCD dan buat bunyi bip.
if (driver.recv (buf, & buflen)) // Non-pemblokiran {int i; digitalWrite (buzzer, HIGH); penundaan (1000); digitalWrite (buzzer, LOW);. lcd.print ("T1:"); lcd.print ((char *) buf);
Menguji Proyek Restoran Cerdas menggunakan Arduino
Setelah menghubungkan semua perangkat keras dan mengunggah kode untuk bagian pemancar dan penerima, sekarang saatnya untuk menguji proyek tersebut. Untuk menguji proyek, tekan tombol pada layar TFT, itu harus menampilkan nama antena dengan nomor tabel T1 pada modul LCD yang terhubung ke sisi penerima. Jika LCD sisi penerima tidak menampilkan apa pun, periksa apakah layar TFT Anda berfungsi atau tidak.
Ini adalah bagaimana Anda dapat membangun proyek Sistem Pemesanan Menu Restoran Cerdas menggunakan tampilan Arduino dan TFT. Anda juga dapat mengubah orientasi layar untuk menambahkan lebih banyak tombol.
Sebuah video bekerja dengan kode lengkap diberikan di bawah ini.