- अवयव आवश्यक
- Arduino के साथ TFT एलसीडी टच शील्ड को इंटरफैस करना
- सर्किट आरेख
- कोड स्पष्टीकरण
- Arduino का उपयोग कर स्मार्ट रेस्तरां परियोजना का परीक्षण
अब दिन की स्वचालन प्रणाली हर जगह है चाहे उसका घर, कार्यालय या कोई बड़ा उद्योग, सभी स्वचालन प्रणाली से सुसज्जित हैं। रेस्तरां / होटल भी हाल ही में स्वचालन के रुझान को अपना रहे हैं और ऑर्डर लेने के लिए भोजन और टैबलेट देने के लिए रोबोट स्थापित कर रहे हैं। टैबलेट जैसे इन डिजिटल मेनू कार्ड का उपयोग करके ग्राहक आसानी से वस्तुओं का चयन कर सकते हैं। यह जानकारी रेस्तरां की रसोई में भेजी जाएगी और डिस्प्ले पर भी प्रदर्शित की जाएगी।
इस परियोजना में, हम Arduino, TFT डिस्प्ले और 433MHz RF ट्रांसमीटर / रिसीवर मॉड्यूल का उपयोग करके एक स्मार्ट रेस्तरां प्रोजेक्ट का निर्माण कर रहे हैं । यहां ट्रांसमीटर अनुभाग में Arduino Uno, TFT डिस्प्ले और एक RF ट्रांसमीटर शामिल होगा, जिसके उपयोग से ग्राहक खाद्य पदार्थों का चयन कर सकते हैं और ऑर्डर दे सकते हैं। जबकि रिसीवर सेक्शन में एक Arduino Uno, LCD मॉड्यूल, RF रिसीवर और एक Buzzer होते हैं, जो ऑर्डर आइटमों को ट्रैक करने के लिए रेस्तरां की रसोई में स्थापित किया जाएगा।
अवयव आवश्यक
- Arduino Uno (2)
- 433 मेगाहर्ट्ज आरएफ ट्रांसमीटर और रिसीवर
- 2.4 "टीएफटी एलसीडी टच शील्ड
- 16 * 2 एलसीडी मॉड्यूल
- I 2 C मॉड्यूल
Arduino के साथ TFT एलसीडी टच शील्ड को इंटरफैस करना
2.4 "TFT LCD टच शील्ड एक बहुरंगी Arduino UNO / मेगा संगत TFT डिस्प्ले है जो टच-स्क्रीन और SD कार्ड सॉकेट के साथ आता है। इस TFT डिस्प्ले मॉड्यूल में एक चमकदार बैकलाइट और एक रंगीन 240X320 पिक्सल डिस्प्ले है। इसमें व्यक्तिगत RGB भी शामिल है। पिक्सेल नियंत्रण जो इसे काले और सफेद डिस्प्ले की तुलना में बहुत बेहतर रिज़ॉल्यूशन देता है।
Arduino के साथ TFT डिस्प्ले को इंटरफैस करना बहुत सरल है और पिछले ट्यूटोरियल में समझाया गया है। आपको केवल Arduino Uno बोर्ड पर TFT डिस्प्ले माउंट करने की आवश्यकता है, जैसा कि नीचे की छवि में दिखाया गया है।
TFT एलसीडी पोर्टेबल अनुप्रयोगों के निर्माण में बहुत उपयोगी है जैसे:
- Arduino टच स्क्रीन कैलकुलेटर
- Arduino का उपयोग कर स्मार्ट फोन नियंत्रित डिजिटल कोड लॉक
- Arduino स्मार्ट अलार्म घड़ी
- NeoPixel ने Arduino और TFT LCD के साथ LED स्ट्रिप दी है
इसके अलावा, यहां सभी TFT एलसीडी आधारित परियोजनाओं की जांच करें।
सर्किट आरेख
स्मार्ट रेस्तरां मेनू ऑर्डरिंग सिस्टम परियोजना में आरएफ ट्रांसमीटर और रिसीवर अनुभाग शामिल हैं। ट्रांसमीटर और रिसीवर दोनों पक्ष डेटा प्रोसेसिंग के लिए Arduino Uno का उपयोग करते हैं। हमने पहले एक वायरलेस डोरबेल, हैंड जेस्चर नियंत्रित रोबोट आदि परियोजनाओं के निर्माण के लिए Arduino के साथ समान 433 मेगाहर्ट्ज आरएफ मॉड्यूल का उपयोग किया था। ट्रांसमीटर और रिसीवर अनुभाग के लिए सर्किट आरेख नीचे दिया गया है।
ट्रांसमीटर अनुभाग सर्किट
इस परियोजना के ट्रांसमीटर खंड में एक Arduino Uno, RF ट्रांसमीटर और TFT डिस्प्ले शील्ड शामिल हैं। इस अनुभाग का उपयोग उस मेनू से ऑर्डर करने के लिए किया जाता है जो TFT डिस्प्ले पर दिखाया गया है। Arduino Uno ट्रांसमीटर पक्ष का मस्तिष्क है जो सभी डेटा को संसाधित करता है, और RF ट्रांसमीटर मॉड्यूल का उपयोग रिसीवर को चयनित डेटा को प्रसारित करने के लिए किया जाता है। RF ट्रांसमीटर मॉड्यूल का डेटा पिन Arduino के डिजिटल पिन 12 से जुड़ा होता है जबकि V CC और GND पिन 5V और Arduino के GND पिन से जुड़ा होता है।
रिसीवर सेक्शन सर्किट
इस परियोजना के रिसीवर अनुभाग में एक Arduino Uno, RF Receiver, 16 * 2 LCD मॉड्यूल और I2C मॉड्यूल शामिल हैं। आरएफ रिसीवर का उपयोग ट्रांसमीटर अनुभाग से डेटा प्राप्त करने के लिए किया जाता है, और एलसीडी मॉड्यूल का उपयोग प्राप्त डेटा को प्रदर्शित करने के लिए किया जाता है। जब भी कोई नया ऑर्डर दिया जाता है तो ध्वनि बनाने के लिए बजर का उपयोग किया जाता है। RF रिसीवर का डेटा पिन Arduino के डिजिटल पिन 11 से जुड़ा होता है जबकि V CC और GND पिन Arduino के 5V और GND पिन से जुड़ा होता है। बजर का पॉजिटिव पिन Arduino के डिजिटल पिन 2 से जुड़ा है, और नेगेटिव पिन Arduino के GND पिन से जुड़ा है। I2C मॉड्यूल के SCL और SDA पिन एनालॉग पिन A5 & A4 Arduino से जुड़े हैं जबकि VCC और GND पिन 5V और Arduino के GND पिन से जुड़े हैं।
कोड स्पष्टीकरण
रेस्तरां में इस स्मार्ट ऑर्डरिंग सिस्टम के लिए आरएफ ट्रांसमीटर और रिसीवर पक्षों के लिए पूरा कोड दस्तावेज़ के अंत में दिया गया है। इस परियोजना में प्रयुक्त सभी पुस्तकालयों को दिए गए लिंक से डाउनलोड किया जा सकता है।
- रेडियोहेड लाइब्रेरी
- SPFD5408 पुस्तकालय
रेडियोहेड लाइब्रेरी का उपयोग RF ट्रांसमीटर / रिसीवर मॉड्यूल के लिए किया जाता है, जबकि SPFD5408 लाइब्रेरी का उपयोग TFT डिस्प्ले के लिए किया जाता है।
ट्रांसमीटर अनुभाग कोड:
सभी आवश्यक पुस्तकालयों को शामिल करके कोड शुरू करें। RH_ASK.h लाइब्रेरी का उपयोग ट्रांसमीटर और रिसीवर मॉड्यूल के बीच संचार के लिए किया जाता है। SPFD5408_Adafruit_GFX.h TFT डिस्प्ले के लिए एक कोर ग्राफिक्स लाइब्रेरी है।
#शामिल
उसके बाद, RH_ASK के लिए 'ड्राइवर' नामक एक ऑब्जेक्ट बनाएं ।
RH_ASK ड्राइवर;
उसके बाद अपने TFT प्रदर्शन के लिए न्यूनतम और अधिकतम कैलिब्रेटेड X & Y- अक्ष मानों को परिभाषित करें।
#define TS_MINX 125 #define TS_MINY 85 #define TS_MAXX 965 #define TS_MAXY 905
अब drawHome फ़ंक्शन के अंदर अपने TFT स्क्रीन के लिए एक लेआउट बनाएं। यहाँ पृष्ठभूमि रंग सेट करने के लिए 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 = आयताकार की ऊँचाई
त्रिज्या = गोल कोने का त्रिज्या
रंग = पंक्तियों का रंग।
tft.fillRoundRect फ़ंक्शन का उपयोग एक भरे हुए आयत को खींचने के लिए किया जाता है। Tft.fillRoundRect फ़ंक्शन कासिंटैक्सनीचे दिया गया है:
tft.fillRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t त्रिज्या, uint16_t रंग) tft.fillScreen (WHITE); tft.drawRoundRect (0, 0, 319, 240, 8, WHITE); // पृष्ठ सीमा tft.fillRoundRect (30, 40, 100, 40, 8, स्वर्ण); tft.drawRoundRect (30, 40, 100, 40, 8, WHITE); // डिश 1 tft.fillRoundRect (30, 90, 100, 40, 8, स्वर्ण); tft.drawRoundRect (30, 90, 100, 40, 8, WHITE); // डिश 2 tft.fillRoundRect (30, 140, 100, 40, 8, स्वर्ण); // डिश 3 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 सेकंड में रिसीवर की तरफ डेटा भेजें।
शून्य संचारित () {ड्राइवर। एसेंड ((uint8_t *) संदेश, स्ट्रलेन (संदेश)); Driver.waitPacketSent (); देरी (1000); }
शून्य लूप फ़ंक्शन के अंदर, ts.getPoint फ़ंक्शन का उपयोग करके रॉ एडीसी मान पढ़ें।
TSPoint p = ts.getPoint ();
अब रॉ एडीसी मानों को पिक्सेल निर्देशांक में बदलने के लिए मानचित्र फ़ंक्शन का उपयोग करें ।
px = map (px, TS_MAXX, TS_MINX, 0, 320); py = map (py, TS_MAXY, TS_MINY, 0, 240);
कच्चे एडीसी मूल्यों को पिक्सेल समन्वय में परिवर्तित करने के बाद, डिश 1 बटन के लिए पिक्सेल निर्देशांक दर्ज करें और यदि कोई इस क्षेत्र के बीच स्क्रीन को छूता है तो रिसीवर पक्ष को संदेश भेजें।
if (px> 180 && px <280 && py> 190 && py <230 && pz> MINPRESSURE && pz <MAXPRESSURE) {Serial.println ("Dish1"); संदेश = "डिश 1"; संचारित (); tft.fillRoundRect (30, 40, 100, 40, 8, WHITE); देरी (70); tft.fillRoundRect (30, 40, 100, 40, 8, स्वर्ण); tft.drawRoundRect (30, 40, 100, 40, 8, WHITE); tft.setCursor (37, 47); tft.println ("डिश 1"); देरी (70); }
अन्य सभी बटन के लिए एक ही प्रक्रिया का पालन करें।
रिसीवर अनुभाग कोड
आरएफ रिसीवर अनुभाग कोड के लिए, आरएफ रिसीवर और एलसीडी मॉड्यूल के लिए पुस्तकालयों को शामिल करें। Arduino और RF रिसीवर के बीच SPI संचार स्थापित करने के लिए SPI.h लाइब्रेरी भी शामिल करें ।
#शामिल
शून्य लूप फ़ंक्शन के अंदर, प्रेषित संदेशों के लिए लगातार जांच करें। और यदि रिसीवर मॉड्यूल एक संदेश प्राप्त करता है, तो एलसीडी मॉड्यूल पर संदेश प्रदर्शित करें और एक बीप साउंड करें।
if (driver.recv (buf, & buflen)) // नॉन-ब्लॉकिंग {int i; digitalWrite (बजर, हाई); देरी (1000); digitalWrite (बजर, LOW);; lcd.print ("T1:"); lcd.print (char *) buf);
Arduino का उपयोग कर स्मार्ट रेस्तरां परियोजना का परीक्षण
सभी हार्डवेयर को जोड़ने और ट्रांसमीटर और रिसीवर सेक्शन दोनों के लिए कोड अपलोड करने के बाद, अब परियोजना का परीक्षण करने का समय है। प्रोजेक्ट का परीक्षण करने के लिए, टीएफटी डिस्प्ले पर एक बटन दबाएं, इसे टेबल नंबर के साथ डिश का नाम प्रदर्शित करना चाहिए जो रिसीवर की तरफ से जुड़े एलसीडी मॉड्यूल पर टी 1 है। यदि रिसीवर साइड एलसीडी कुछ भी प्रदर्शित नहीं करता है, तो जांचें कि आपकी टीएफटी स्क्रीन काम कर रही है या नहीं।
यह है कि आप Arduino और TFT डिस्प्ले का उपयोग करके स्मार्ट रेस्तरां मेनू ऑर्डरिंग सिस्टम प्रोजेक्ट कैसे बना सकते हैं। आप अधिक बटन जोड़ने के लिए स्क्रीन का ओरिएंटेशन भी बदल सकते हैं।
पूर्ण कोड वाला एक काम करने वाला वीडियो नीचे दिया गया है।