- భాగాలు అవసరం
- ఆర్డునోతో ఇంటర్ఫేసింగ్ టిఎఫ్టి ఎల్సిడి టచ్ షీల్డ్
- సర్క్యూట్ రేఖాచిత్రం
- కోడ్ వివరణ
- Arduino ఉపయోగించి స్మార్ట్ రెస్టారెంట్ ప్రాజెక్ట్ను పరీక్షిస్తోంది
ఇప్పుడు రోజు ఆటోమేషన్ వ్యవస్థలు దాని ఇల్లు, కార్యాలయం లేదా ఏదైనా పెద్ద పరిశ్రమ అయినా, అన్నీ ఆటోమేషన్ వ్యవస్థలతో అమర్చబడి ఉంటాయి. రెస్టారెంట్లు / హోటళ్ళు ఇటీవలి ఆటోమేషన్ పోకడలను కూడా అవలంబిస్తున్నాయి మరియు ఆర్డర్లు తీసుకోవటానికి ఆహారం మరియు టాబ్లెట్లను అందించడానికి రోబోట్లను వ్యవస్థాపిస్తున్నాయి. టాబ్లెట్ల వంటి ఈ డిజిటల్ మెను కార్డులను ఉపయోగించి, వినియోగదారులు సులభంగా వస్తువులను ఎంచుకోవచ్చు. ఈ సమాచారం రెస్టారెంట్ యొక్క వంటగదికి పంపబడుతుంది మరియు ప్రదర్శనలో కూడా ప్రదర్శించబడుతుంది.
ఈ ప్రాజెక్ట్లో, మేము Arduino, TFT డిస్ప్లే మరియు 433MHz RF ట్రాన్స్మిటర్ / రిసీవర్ మాడ్యూల్ ఉపయోగించి స్మార్ట్ రెస్టారెంట్ ప్రాజెక్ట్ను నిర్మిస్తున్నాము. ఇక్కడ ట్రాన్స్మిటర్ విభాగంలో ఆర్డునో యునో, టిఎఫ్టి డిస్ప్లే మరియు ఆర్ఎఫ్ ట్రాన్స్మిటర్ ఉంటాయి, వీటిని ఉపయోగించి వినియోగదారులు ఆహార పదార్థాలను ఎన్నుకోవచ్చు మరియు ఆర్డర్ను ఉంచవచ్చు. రిసీవర్ విభాగంలో ఆర్డునో యునో, ఎల్సిడి మాడ్యూల్, ఆర్ఎఫ్ రిసీవర్ మరియు బజర్ ఉన్నాయి, ఇవి ఆర్డర్ అంశాలను ట్రాక్ చేయడానికి రెస్టారెంట్ వంటగదిలో వ్యవస్థాపించబడతాయి.
భాగాలు అవసరం
- ఆర్డునో యునో (2)
- 433MHz RF ట్రాన్స్మిటర్ & రిసీవర్
- 2.4 "టిఎఫ్టి ఎల్సిడి టచ్ షీల్డ్
- 16 * 2 ఎల్సిడి మాడ్యూల్
- I 2 C మాడ్యూల్
ఆర్డునోతో ఇంటర్ఫేసింగ్ టిఎఫ్టి ఎల్సిడి టచ్ షీల్డ్
2.4 "టిఎఫ్టి ఎల్సిడి టచ్ షీల్డ్ అనేది రంగురంగుల ఆర్డునో యుఎన్ఓ / మెగా అనుకూలమైన టిఎఫ్టి డిస్ప్లే, ఇది టచ్-స్క్రీన్ మరియు ఎస్డి కార్డ్ సాకెట్తో వస్తుంది. ఈ టిఎఫ్టి డిస్ప్లే మాడ్యూల్లో ప్రకాశవంతమైన బ్యాక్లైట్ మరియు రంగురంగుల 240 ఎక్స్ 320 పిక్సెల్స్ డిస్ప్లే ఉంది. ఇందులో వ్యక్తిగత ఆర్జిబి కూడా ఉంటుంది. పిక్సెల్ నియంత్రణ నలుపు మరియు తెలుపు డిస్ప్లేల కంటే మెరుగైన రిజల్యూషన్ ఇస్తుంది.
ఆర్డునోతో టిఎఫ్టి డిస్ప్లేను ఇంటర్ఫేస్ చేయడం చాలా సులభం మరియు మునుపటి ట్యుటోరియల్లో వివరించబడింది. దిగువ చిత్రంలో చూపిన విధంగా మీరు TFT డిస్ప్లేని Arduino Uno బోర్డు మీద మాత్రమే మౌంట్ చేయాలి.
పోర్టబుల్ అనువర్తనాలను రూపొందించడంలో TFT LCD చాలా ఉపయోగపడుతుంది:
- ఆర్డునో టచ్ స్క్రీన్ కాలిక్యులేటర్
- Arduino ఉపయోగించి స్మార్ట్ ఫోన్ కంట్రోల్డ్ డిజిటల్ కోడ్ లాక్
- Arduino SMART అలారం గడియారం
- ఆర్డునో మరియు టిఎఫ్టి ఎల్సిడితో నియోపిక్సెల్ ఎల్ఇడి స్ట్రిప్
అలాగే, టిఎఫ్టి ఎల్సిడి ఆధారిత అన్ని ప్రాజెక్టులను ఇక్కడ తనిఖీ చేయండి.
సర్క్యూట్ రేఖాచిత్రం
స్మార్ట్ రెస్టారెంట్ మెనూ ఆర్డరింగ్ సిస్టమ్ ప్రాజెక్ట్ RF ట్రాన్స్మిటర్ మరియు రిసీవర్ విభాగాన్ని కలిగి ఉంటుంది. ట్రాన్స్మిటర్ మరియు రిసీవర్ వైపు రెండూ డేటా ప్రాసెసింగ్ కోసం ఆర్డునో యునోను ఉపయోగిస్తాయి. వైర్లెస్ డోర్బెల్, చేతి సంజ్ఞ నియంత్రిత రోబోట్ వంటి ప్రాజెక్టులను నిర్మించడానికి మేము ఇంతకుముందు అదే 433 MHz RF మాడ్యూళ్ళను ఆర్డునోతో ఉపయోగించాము. ట్రాన్స్మిటర్ మరియు రిసీవర్ విభాగం కోసం సర్క్యూట్ రేఖాచిత్రం క్రింద ఇవ్వబడింది.
ట్రాన్స్మిటర్ విభాగం సర్క్యూట్
ఈ ప్రాజెక్ట్ యొక్క ట్రాన్స్మిటర్ విభాగంలో ఆర్డునో యునో, ఆర్ఎఫ్ ట్రాన్స్మిటర్ మరియు టిఎఫ్టి డిస్ప్లే షీల్డ్ ఉంటాయి. ఈ విభాగం TFT డిస్ప్లేలో చూపబడిన మెను నుండి ఆర్డరింగ్ కోసం ఉపయోగించబడుతుంది. ఆర్డునో యునో అనేది మొత్తం డేటాను ప్రాసెస్ చేసే ట్రాన్స్మిటర్ వైపు మెదడు, మరియు ఎంచుకున్న డేటాను రిసీవర్కు ప్రసారం చేయడానికి RF ట్రాన్స్మిటర్ మాడ్యూల్ ఉపయోగించబడుతుంది. RF ట్రాన్స్మిటర్ మాడ్యూల్ యొక్క డేటా పిన్ Arduino యొక్క డిజిటల్ పిన్ 12 కి అనుసంధానించబడి ఉండగా, V CC మరియు GND పిన్స్ 5V మరియు Arduino యొక్క GND పిన్తో అనుసంధానించబడి ఉన్నాయి.
స్వీకర్త విభాగం సర్క్యూట్
ఈ ప్రాజెక్ట్ యొక్క రిసీవర్ విభాగంలో ఆర్డునో యునో, ఆర్ఎఫ్ రిసీవర్, 16 * 2 ఎల్సిడి మాడ్యూల్ మరియు ఐ 2 సి మాడ్యూల్ ఉన్నాయి. ట్రాన్స్మిటర్ విభాగం నుండి డేటాను స్వీకరించడానికి RF రిసీవర్ ఉపయోగించబడుతుంది మరియు అందుకున్న డేటాను ప్రదర్శించడానికి LCD మాడ్యూల్ ఉపయోగించబడుతుంది. క్రొత్త ఆర్డర్ ఉంచినప్పుడల్లా శబ్దం చేయడానికి బజర్ ఉపయోగించబడుతుంది. RF రిసీవర్ యొక్క డేటా పిన్ Arduino యొక్క డిజిటల్ పిన్ 11 కి అనుసంధానించబడి ఉండగా, V CC మరియు GND పిన్ Arduino యొక్క 5V మరియు GND పిన్తో అనుసంధానించబడి ఉంది. బజర్ యొక్క పాజిటివ్ పిన్ ఆర్డునో యొక్క డిజిటల్ పిన్ 2 తో అనుసంధానించబడి ఉంది మరియు నెగటివ్ పిన్ ఆర్డునో యొక్క జిఎన్డి పిన్తో అనుసంధానించబడి ఉంది. I2C మాడ్యూల్ యొక్క SCL మరియు SDA పిన్స్ అనలాగ్ పిన్స్ A5 & A4 ఆర్డునోతో అనుసంధానించబడి ఉండగా, VCC మరియు GND పిన్స్ ఆర్డునో యొక్క 5V మరియు GND పిన్లకు అనుసంధానించబడి ఉన్నాయి.
కోడ్ వివరణ
రెస్టారెంట్లోని ఈ స్మార్ట్ ఆర్డరింగ్ సిస్టమ్ కోసం RF ట్రాన్స్మిటర్ మరియు రిసీవర్ వైపుల కోసం పూర్తి కోడ్ పత్రం చివరిలో ఇవ్వబడింది. ఈ ప్రాజెక్ట్లో ఉపయోగించిన అన్ని లైబ్రరీలను ఇచ్చిన లింక్ల నుండి డౌన్లోడ్ చేసుకోవచ్చు.
- రేడియోహెడ్ లైబ్రరీ
- SPFD5408 లైబ్రరీ
రేడియోహెడ్ లైబ్రరీని RF ట్రాన్స్మిటర్ / రిసీవర్ మాడ్యూల్ కోసం ఉపయోగిస్తారు, అయితే SPFD5408 లైబ్రరీ TFT డిస్ప్లే కోసం ఉపయోగించబడుతుంది.
ట్రాన్స్మిటర్ సెక్షన్ కోడ్:
అవసరమైన అన్ని లైబ్రరీలను చేర్చడం ద్వారా కోడ్ను ప్రారంభించండి. RH_ASK.h లైబ్రరీ ట్రాన్స్మిటర్ మరియు రిసీవర్ మాడ్యూళ్ళ మధ్య కమ్యూనికేషన్ కోసం ఉపయోగించబడుతుంది. SPFD5408_Adafruit_GFX.h అనేది TFT ప్రదర్శన కోసం కోర్ గ్రాఫిక్స్ లైబ్రరీ.
# చేర్చండి
ఆ తరువాత, RH_ASK కోసం 'డ్రైవర్' అనే వస్తువును సృష్టించండి.
RH_ASK డ్రైవర్;
ఆ తరువాత మీ TFT ప్రదర్శన కోసం కనిష్ట మరియు గరిష్ట క్రమాంకనం చేసిన X & Y- అక్షం విలువలను నిర్వచించండి.
# TS_MINX 125 ను నిర్వచించండి # TS_MINY 85 ని నిర్వచించండి # TS_MAXX 965 ని నిర్వచించండి # TS_MAXY 905 ని నిర్వచించండి
ఇప్పుడు డ్రాహోమ్ ఫంక్షన్ లోపల మీ టిఎఫ్టి స్క్రీన్ కోసం లేఅవుట్ గీయండి. నేపథ్య రంగును సెట్ చేయడానికి ఇక్కడ tft.fillScreen ఉపయోగించబడుతుంది.
నిండిన దీర్ఘచతురస్రాన్ని సృష్టించడానికి tft.drawRoundRect ఫంక్షన్ ఉపయోగించబడుతుంది. Tft.drawRoundRect ఫంక్షన్ కోసం సింటాక్స్ క్రింద ఇవ్వబడింది:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t వ్యాసార్థం, uint16_t రంగు)
ఎక్కడ:
x0 = X దీర్ఘచతురస్రాకార ప్రారంభ స్థానం యొక్క సమన్వయం
y0 = Y దీర్ఘచతురస్రాకార ప్రారంభ స్థానం యొక్క కోఆర్డినేట్
w = దీర్ఘచతురస్రాకార వెడల్పు
h = దీర్ఘచతురస్రాకార ఎత్తు
వ్యాసార్థం = రౌండ్ మూలలో వ్యాసార్థం
color = రెక్ట్ యొక్క రంగు.
tft.fillRoundRect ఫంక్షన్ నిండిన దీర్ఘచతురస్రాన్ని గీయడానికి ఉపయోగించబడుతుంది. Tft.fillRoundRect ఫంక్షన్యొక్క సింటాక్స్క్రింద ఇవ్వబడింది:
tft.fillRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t వ్యాసార్థం, uint16_t color) tft.fillScreen (WHITE); tft.drawRoundRect (0, 0, 319, 240, 8, WHITE); // పేజీ సరిహద్దు tft.fillRoundRect (30, 40, 100, 40, 8, GOLD); tft.drawRoundRect (30, 40, 100, 40, 8, WHITE); // డిష్ 1 tft.fillRoundRect (30, 90, 100, 40, 8, GOLD); tft.drawRoundRect (30, 90, 100, 40, 8, WHITE); // డిష్ 2 tft.fillRoundRect (30, 140, 100, 40, 8, GOLD); // Dish3 tft.drawRoundRect (30, 140, 100, 40, 8, WHITE);
TFT స్క్రీన్పై బటన్లను సృష్టించిన తరువాత, ఇప్పుడు బటన్లపై వచనాన్ని ప్రదర్శించండి. tft.setCursor మీరు వచనాన్ని ఎక్కడ ప్రారంభించాలనుకుంటున్నారో అక్కడ నుండి కర్సర్ను సెట్ చేయడానికి ఉపయోగిస్తారు.
tft.setCursor (60, 0); tft.setTextSize (3); tft.setTextColor (LIME); tft.print ("మెనూ"); tft.setTextSize (2); tft.setTextColor (WHITE); tft.setCursor (37, 47); tft.print ("డిష్ 1");
శూన్య ప్రసార ఫంక్షన్ లోపల, ప్రతి 1 సెకనుకు డేటాను రిసీవర్ వైపుకు పంపండి.
శూన్య ప్రసారం () {driver.send ((uint8_t *) msg, strlen (msg)); driver.nightFacketSent (); ఆలస్యం (1000); }
శూన్య లూప్ ఫంక్షన్ లోపల, ts.getPoint ఫంక్షన్ను ఉపయోగించి రా ADC విలువను చదవండి.
TSPoint p = ts.getPoint ();
ఇప్పుడు రా ADC విలువలను పిక్సెల్ కో-ఆర్డినేట్లుగా మార్చడానికి మ్యాప్ ఫంక్షన్ను ఉపయోగించండి.
px = మ్యాప్ (px, TS_MAXX, TS_MINX, 0, 320); py = పటం (py, TS_MAXY, TS_MINY, 0, 240);
రా ADC విలువలను పిక్సెల్ కో-ఆర్డినేట్గా మార్చిన తరువాత, డిష్ 1 బటన్ కోసం పిక్సెల్ కోఆర్డినేట్లను నమోదు చేయండి మరియు ఎవరైనా ఈ ప్రాంతం మధ్య స్క్రీన్ను తాకినట్లయితే సందేశాన్ని రిసీవర్ వైపుకు పంపండి.
if (px> 180 && px <280 && py> 190 && py <230 && pz> MINPRESSURE && pz <MAXPRESSURE) {Serial.println ("Dish1"); msg = "డిష్ 1"; ప్రసారం (); tft.fillRoundRect (30, 40, 100, 40, 8, WHITE); ఆలస్యం (70); tft.fillRoundRect (30, 40, 100, 40, 8, GOLD); tft.drawRoundRect (30, 40, 100, 40, 8, WHITE); tft.setCursor (37, 47); tft.println ("డిష్ 1"); ఆలస్యం (70); }
అన్ని ఇతర బటన్లకు ఒకే విధానాన్ని అనుసరించండి.
స్వీకర్త విభాగం కోడ్
RF రిసీవర్ సెక్షన్ కోడ్ కోసం, RF రిసీవర్ మరియు LCD మాడ్యూల్ కోసం లైబ్రరీలను చేర్చండి. Arduino మరియు RF రిసీవర్ మధ్య SPI కమ్యూనికేషన్ను స్థాపించడానికి SPI.h లైబ్రరీని కూడా చేర్చండి.
# చేర్చండి
శూన్య లూప్ ఫంక్షన్ లోపల, ప్రసారం చేయబడిన సందేశాల కోసం నిరంతరం తనిఖీ చేయండి. రిసీవర్ మాడ్యూల్ సందేశాన్ని అందుకుంటే, సందేశాన్ని ఎల్సిడి మాడ్యూల్లో ప్రదర్శించి బీప్ సౌండ్ చేయండి.
if (driver.recv (buf, & buflen)) // నాన్-బ్లాకింగ్ {int i; డిజిటల్ రైట్ (బజర్, హై); ఆలస్యం (1000); డిజిటల్ రైట్ (బజర్, తక్కువ);. lcd.print ("T1:"); lcd.print ((చార్ *) buf);
Arduino ఉపయోగించి స్మార్ట్ రెస్టారెంట్ ప్రాజెక్ట్ను పరీక్షిస్తోంది
అన్ని హార్డ్వేర్లను కనెక్ట్ చేసి, ట్రాన్స్మిటర్ మరియు రిసీవర్ విభాగం రెండింటికీ కోడ్ను అప్లోడ్ చేసిన తరువాత, ఇప్పుడు ప్రాజెక్ట్ను పరీక్షించడానికి సమయం ఆసన్నమైంది. ప్రాజెక్ట్ను పరీక్షించడానికి, టిఎఫ్టి డిస్ప్లేపై ఒక బటన్ను నొక్కండి, ఇది రిసీవర్ వైపుకు అనుసంధానించబడిన ఎల్సిడి మాడ్యూల్లో టి 1 ఉన్న టేబుల్ నంబర్తో డిష్ పేరును ప్రదర్శించాలి. రిసీవర్ సైడ్ ఎల్సిడి ఏదైనా ప్రదర్శించకపోతే, మీ టిఎఫ్టి స్క్రీన్ పనిచేస్తుందో లేదో తనిఖీ చేయండి.
ఆర్డునో మరియు టిఎఫ్టి డిస్ప్లేను ఉపయోగించి మీరు స్మార్ట్ రెస్టారెంట్ మెనూ ఆర్డరింగ్ సిస్టమ్ ప్రాజెక్ట్ను ఈ విధంగా నిర్మించవచ్చు. మరిన్ని బటన్లను జోడించడానికి మీరు స్క్రీన్ యొక్క విన్యాసాన్ని కూడా మార్చవచ్చు.
ఒక పూర్తి కోడ్ తో పని వీడియో క్రింద ఇవ్వబడింది.