- Nepieciešamās sastāvdaļas
- Saskarīgs TFT LCD skārienekrāns ar Arduino
- Ķēdes shēma
- Kods Paskaidrojums
- Smart restorāna projekta pārbaude, izmantojot Arduino
Šodienas automatizācijas sistēmas ir visur, neatkarīgi no tā, vai tā atrodas mājās, birojā vai jebkurā lielajā nozarē, visas ir aprīkotas ar automatizācijas sistēmām. Restorāni / viesnīcas arī pieņem jaunākās automatizācijas tendences un uzstāda robotus, lai piegādātu pārtiku un planšetdatorus pasūtījumu pieņemšanai. Izmantojot šīs digitālās izvēlnes kartes, piemēram, planšetdatorus, klienti var viegli atlasīt vienumus. Šī informācija tiks nosūtīta uz restorāna virtuvi un parādīta arī displejā.
Šajā projektā mēs veidojam viedo restorānu projektu, izmantojot Arduino, TFT displeju un 433MHz RF raidītāja / uztvērēja moduli. Šeit raidītāja sadaļu veidos Arduino Uno, TFT displejs un RF raidītājs, izmantojot kuru klienti var izvēlēties pārtikas preces un veikt pasūtījumu. Kamēr uztvērēja sadaļa sastāv no Arduino Uno, LCD moduļa, RF uztvērēja un skaņas signāla, kas tiks uzstādīts restorāna virtuvē, lai izsekotu pasūtījuma priekšmetus.
Nepieciešamās sastāvdaļas
- Arduino Uno (2)
- 433MHz RF raidītājs un uztvērējs
- 2,4 "TFT LCD skārienekrāns
- 16 * 2 LCD modulis
- I 2 C modulis
Saskarīgs TFT LCD skārienekrāns ar Arduino
2,4 "TFT LCD skārienekrāns ir daudzkrāsains ar Arduino UNO / Mega saderīgs TFT displejs, kas aprīkots arī ar skārienekrānu un SD kartes ligzdu. Šim TFT displeja modulim ir spilgts fona apgaismojums un krāsains 240X320 pikseļu displejs. Tas sastāv arī no atsevišķa RGB pikseļu vadība, kas nodrošina daudz labāku izšķirtspēju nekā melnbaltie displeji.
TFT displeja saskarne ar Arduino ir ļoti vienkārša un paskaidrota iepriekšējā apmācībā. TFT displejs jāuzstāda tikai virs Arduino Uno dēļa, kā parādīts zemāk esošajā attēlā.
TFT LCD ir ļoti noderīgs tādu portatīvo lietojumprogrammu veidošanā kā:
- Arduino skārienekrāna kalkulators
- Viedtālruņa kontrolēta digitālā koda bloķēšana, izmantojot Arduino
- Arduino SMART modinātājs
- NeoPixel LED lente ar Arduino un TFT LCD
Šeit pārbaudiet arī visus TFT LCD balstītos projektus.
Ķēdes shēma
Viedās restorāna ēdienkartes pasūtīšanas sistēmas projekts sastāv no RF raidītāja un uztvērēja sadaļas. Gan raidītāja, gan uztvērēja puse datu apstrādei izmanto Arduino Uno. Iepriekš mēs izmantojām tos pašus 433 MHz RF moduļus ar Arduino tādu celtniecības projektu īstenošanai kā bezvadu durvju zvans, ar roku žestu vadāms robots utt. Rādītāja un uztvērēja sekcijas shēma ir dota zemāk.
Raidītāja sekcijas shēma
Šī projekta raidītāja sadaļu veido Arduino Uno, RF raidītājs un TFT displeja aizsargs. Šī sadaļa tiek izmantota pasūtīšanai no TFT displejā redzamās izvēlnes. Arduino Uno ir raidītāja puses smadzenes, kas apstrādā visus datus, un RF raidītāja modulis tiek izmantots, lai pārsūtītu atlasītos datus uztvērējam. RF raidītāja moduļa datu tapa ir savienota ar Arduino digitālo tapu 12, savukārt V CC un GND tapas ir savienotas ar Arduino 5V un GND tapām.
Uztvērēja sekcijas ķēde
Šī projekta uztvērēja sadaļa sastāv no Arduino Uno, RF uztvērēja, 16 * 2 LCD moduļa un I2C moduļa. RF uztvērējs tiek izmantots, lai saņemtu datus no raidītāja sekcijas, un LCD modulis tiek izmantots, lai parādītu saņemtos datus. Katru reizi, kad tiek veikts jauns pasūtījums, skaņas radīšanai tiek izmantots skaņas signāls. RF uztvērēja datu tapa ir savienota ar Arduino digitālo tapu 11, savukārt V CC un GND tapa ir savienota ar Arduino 5V un GND tapu. Buzzer pozitīvā tapa ir savienota ar Arduino digitālo tapu 2, un negatīvā tapa ir savienota ar Arduino GND tapu. I2C moduļa SCL un SDA tapas ir savienotas ar analogajām tapām A5 un A4 Arduino, savukārt VCC un GND tapas ir savienotas ar Arduino 5V un GND tapām.
Kods Paskaidrojums
Pilnīgs RF raidītāja un uztvērēja puses kods šai viedajai pasūtīšanas sistēmai restorānā ir norādīts dokumenta beigās. Visas šajā projektā izmantotās bibliotēkas var lejupielādēt no norādītajām saitēm.
- RadioHead bibliotēka
- SPFD5408 bibliotēka
Radio raidītāja / uztvērēja modulim tiek izmantota bibliotēka RadioHead, savukārt TFT displejam tiek izmantota bibliotēka SPFD5408.
Raidītāja sadaļas kods:
Sāciet kodu, iekļaujot visas nepieciešamās bibliotēkas. RH_ASK.h bibliotēka tiek izmantota komunikācijai starp raidītāja un uztvērēja moduļiem. SPFD5408_Adafruit_GFX.h ir Core grafikas bibliotēka TFT displejam.
# iekļaut
Pēc tam, izveidot objektu sauc par "vadītājs" uz RH_ASK .
RH_ASK vadītājs;
Pēc tam TFT displejam definējiet minimālās un maksimālās kalibrētās X un Y ass vērtības.
#define TS_MINX 125 #define TS_MINY 85 #define TS_MAXX 965 #define TS_MAXY 905
Tagad funkcija drawHome iezīmē TFT ekrāna izkārtojumu. Šeit tft.fillScreen tiek izmantots fona krāsas iestatīšanai.
Funkcija tft.drawRoundRect tiek izmantota, lai izveidotu aizpildītu taisnstūri. Funkcijas tft.drawRoundRect sintakse ir sniegta zemāk:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t rādiuss, uint16_t krāsa)
Kur:
x0 = taisnstūra sākuma punkta X koordināta
y0 = taisnstūra sākuma punkta Y koordināta
w = taisnstūra platums
h = taisnstūra augstums
rādiuss = apaļā stūra rādiuss
krāsa = taisnās puses krāsa.
Funkcija tft.fillRoundRect tiek izmantota, lai uzzīmētu aizpildītu taisnstūri. Funkcijas tft.fillRoundRect sintakseir sniegta zemāk:
tft.fillRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t rādiuss, uint16_t krāsa) tft.fillScreen (WHITE); tft.drawRoundRect (0, 0, 319, 240, 8, BALTS); // lappuses apmale tft.fillRoundRect (30, 40, 100, 40, 8, GOLD); tft.drawRoundRect (30, 40, 100, 40, 8, BALTS); // Dish1 tft.fillRoundRect (30, 90, 100, 40, 8, ZELTS); tft.drawRoundRect (30, 90, 100, 40, 8, BALTS); // Dish2 tft.fillRoundRect (30, 140, 100, 40, 8, ZELTS); // Dish3 tft.drawRoundRect (30, 140, 100, 40, 8, BALTS);
Pēc pogu izveidošanas TFT ekrānā tagad parādiet tekstu uz pogām. tft.setCursor tiek izmantots, lai iestatītu kursoru no vietas, kur vēlaties sākt tekstu.
tft.setCursor (60, 0); tft.setTextSize (3); tft.setTextColor (LIME); tft.print ("Izvēlne"); tft.setTextSize (2); tft.setTextColor (BALTS); tft.setCursor (37, 47); tft.print ("Trauks1");
Tukšās pārraides funkcijas iekšpusē ik pēc 1 sekundes nosūtiet datus uz uztvērēja pusi.
void transmission () {draiveris. nosūtīt ((uint8_t *) msg, strlen (msg)); driver.waitPacketSent (); kavēšanās (1000); }
Funkcijas void loop iekšpusē, izmantojot ts.getPoint funkciju, nolasiet Raw ADC vērtību.
TSPoint p = ts.getPoint ();
Tagad izmantojiet kartes funkciju, lai neapstrādātas ADC vērtības pārveidotu par pikseļu koordinātām.
px = karte (px, TS_MAXX, TS_MINX, 0, 320); py = karte (py, TS_MAXY, TS_MINY, 0, 240);
Pēc neapstrādātu ADC vērtību konvertēšanas pikseļu koordinātās ievadiet pogas Dish1 pikseļu koordinātas un, ja kāds pieskaras ekrānam starp šo apgabalu, nosūtiet ziņojumu uz uztvērēja pusi.
ja (px> 180 && px <280 && py> 190 && py <230 && pz> MINPRESIJA && pz <MAXPRESSURE) {Serial.println ("Trauks1"); msg = "Trauks1"; pārsūtīt (); tft.fillRoundRect (30, 40, 100, 40, 8, BALTS); kavēšanās (70); tft.fillRoundRect (30, 40, 100, 40, 8, ZELTS); tft.drawRoundRect (30, 40, 100, 40, 8, BALTS); tft.setCursor (37, 47); tft.println ("Trauks1"); kavēšanās (70); }
Izpildiet to pašu procedūru visām pārējām pogām.
Uztvērēja sekcijas kods
Lai saņemtu RF uztvērēja sadaļas kodu, iekļaujiet RF uztvērēja un LCD moduļa bibliotēkas. Iekļaujiet arī SPI.h bibliotēku, lai izveidotu SPI komunikāciju starp Arduino un RF uztvērēju.
# iekļaut
Tukšā cikla funkcijas iekšpusē nepārtraukti pārbaudiet pārsūtītos ziņojumus. Un, ja uztvērēja modulis saņem ziņojumu, parādiet ziņojumu LCD modulī un izdodiet pīkstienu.
ja (draiveris.recv (buf, & buflen)) // Nebloķējošs {int i; digitalWrite (zummeris, HIGH); kavēšanās (1000); digitalWrite (zummer, LOW);. lcd.print ("T1:"); lcd.print ((char *) buf);
Smart restorāna projekta pārbaude, izmantojot Arduino
Pēc visas aparatūras pievienošanas un koda augšupielādes gan raidītāja, gan uztvērēja sadaļai ir pienācis laiks pārbaudīt projektu. Lai pārbaudītu projektu, nospiediet pogu TFT displejā, uz uztvērēja pusē pievienotā LCD moduļa tajā jāparāda trauka nosaukums ar tabulas numuru, kas ir T1. Ja uztvērēja puses LCD ekrānā nekas netiek parādīts, pārbaudiet, vai TFT ekrāns darbojas vai nedarbojas.
Šādi jūs varat izveidot viedās restorāna ēdienkartes pasūtīšanas sistēmas projektu, izmantojot Arduino un TFT displeju. Varat arī mainīt ekrāna orientāciju, lai pievienotu citas pogas.
Strādājot video ar pilnīgu kodu ir norādīts zemāk.