- अवयव आवश्यक
- APDS9960 RGB और जेस्चर सेंसर
- सर्किट आरेख
- कोड स्पष्टीकरण
- इशारे से नियंत्रित टचलेस लिफ्ट का परीक्षण
कोरोना महामारी के इस समय में, लिफ्ट एक उच्च जोखिम वाली जगह बन गई है जहां हर कोई एक ही बटन को छूता है। कई स्थानों पर, लिफ्ट बटन दबाने के लिए लोगों ने लिफ्ट बटन से संपर्क को रोकने के लिए तरकीबें खोजी हैं जैसे पंपिंग पेपर, टूथपिक या सैनिटरी टिशू।
इसलिए हमारे पिछले कोरोना सुरक्षा परियोजनाओं जैसे कि स्वचालित सैनिटाइज़र मशीन, संपर्क रहित तापमान की निगरानी और सामाजिक दूरी डिटेक्टर की निरंतरता में, हम यहाँ Arduino नैनो का उपयोग करके एक नियंत्रित नियंत्रित एलेवेटर प्रोटोटाइप का निर्माण करने जा रहे हैं।
यह संपर्क रहित लिफ्ट Arduino नैनो, एक APDS9960 जेस्चर सेंसर और एक OLED डिस्प्ले मॉड्यूल का उपयोग कर रहा है। इस जेस्चर बेस्ड कंट्रोल पैनल से आप आसानी से हैंड जेस्चर बनाकर अपने लिफ्ट को कंट्रोल कर सकते हैं। APDS9960 सेंसर का उपयोग इशारों को पढ़ने के लिए किया जाता है। UP और DOWN के जेस्चर का उपयोग फ्लोर नंबर सेट करने के लिए किया जाता है, लेफ्ट जेस्चर लिफ्ट डोर को बंद करने और फ्लोर नंबर के अनुसार लिफ्ट को स्थानांतरित करने के लिए होता है और दरवाजा खोलने के लिए राइट जेस्चर का उपयोग किया जाता है।
अवयव आवश्यक
- अरुडिनो नैनो
- OLED प्रदर्शन मॉड्यूल
- APDS9960 RGB और जेस्चर सेंसर
- ब्रेड बोर्ड
- जम्पर तार
APDS9960 RGB और जेस्चर सेंसर
APDS9960 RGB और Gesture डिटेक्शन मॉड्यूल एक छोटा सा ब्रेकआउट बोर्ड है जो बिल्ट-इन APDS-9960 सेंसर, UV और IR ब्लॉकिंग फिल्टर के साथ आता है, जो अलग-अलग दिशाओं के लिए संवेदनशील चार अलग-अलग डायोड और एक I2C संगत इंटरफेस है। इस सेंसर का उपयोग परिवेश प्रकाश और रंग मापने, निकटता का पता लगाने, और टचलेस जेस्चर सेंसिंग के लिए किया जा सकता है। इसमें 10 से 20 सेमी की जेस्चर डिटेक्शन रेंज है और इसका उपयोग एक माइक्रोकंट्रोलर, रोबोट और कई अन्य परियोजनाओं को नियंत्रित करने के लिए किया जा सकता है।
विशेषताएं:
- ऑपरेशनल वोल्टेज: 2.4V से 3.6V
- ऑपरेटिंग रेंज: 4-8in (10-20 सेमी)।
- I2C इंटरफ़ेस (I2C पता: 0x39)।
- एम्बिएंट लाइट और RGB कलर सेंसिंग, प्रॉक्सिमिटी
- ऑप्टिकल मॉड्यूल में सेंसिंग, और जेस्चर डिटेक्शन
- 400 kHz तक डेटा दरों के साथ I2C- बस फास्ट मोड संगत इंटरफ़ेस।
सर्किट आरेख
APDS9960 का उपयोग करके संपर्क रहित लिफ्ट के लिए सर्किट आरेख नीचे दिया गया है।
हम APDS9960 सेंसर और OLED डिस्प्ले के साथ Arduino नैनो को बदल रहे हैं। APDS9960 सेंसर और OLED डिस्प्ले के VCC और GND पिन, Arduino के 3.3V और GND से जुड़े हैं। जबकि APDS9960 सेंसर और OLED डिस्प्ले के SCL और SDA पिन Arduino क्रमशः A5 और A4 पिन से जुड़े हैं।
OLED और APDS9960 पिन |
अरुडिनो नैनो पिन |
वीसीसी |
3.3 |
GND |
GND |
एससीएल |
A5 |
एसडीए |
ए 4 |
यह है कि Arduino का उपयोग करते हुए Gesture नियंत्रित लिफ्ट के लिए पूरा सेटअप कैसा दिखेगा:
OLED प्रदर्शन और अन्य माइक्रोकंट्रोलर्स के साथ इसके इंटरफेस के बारे में अधिक जानने के लिए, लिंक का अनुसरण करें।
कोड स्पष्टीकरण
APDS9960 का उपयोग कर संपर्क रहित लिफ्ट के लिए पूरा कोड पृष्ठ के अंत में दिया गया है। यहां हम कोड के कुछ महत्वपूर्ण भागों के बारे में बता रहे हैं। इस कार्यक्रम में, हम APDS9960 और Adafruit_SH1106 पुस्तकालयों का उपयोग करने जा रहे हैं । APDS9960 लाइब्रेरी को Arduino IDE से डाउनलोड किया जा सकता है। लाइब्रेरी को डाउनलोड करने के लिए, स्केच> लाइब्रेरी मैनेजर> सर्च पर जाएं और फिर Arduino APDS9960 में प्रवेश करें । जबकि Adafruit_SH1106 पुस्तकालय को यहां से डाउनलोड किया जा सकता है।
इसलिए हमेशा की तरह सभी आवश्यक पुस्तकालयों को शामिल करके कोड शुरू करें। Adafruit_SH1106.h मूल Adafruit लाइब्रेरी का संशोधित संस्करण है।
#शामिल
अगली पंक्तियों में, वर्तमान मंजिल और मंजिल संख्या को संग्रहीत करने के लिए चर को परिभाषित करें जहां उपयोगकर्ता जाना चाहता है।
int फ्लोर्नम = 0; int currentfloor = 0;
उसके बाद, यूपी एरो, डाउन एरो, ओपन डोर और क्लोज डोर चित्रों के लिए बिटमैप्स में प्रवेश करें। छवि के लिए HEX कोड Image2cpp जैसे कन्वर्टर का उपयोग करके उत्पन्न किया जा सकता है। Image2cpp का उपयोग कैसे करें के बारे में अधिक जानने के लिए , इस Arduino QR कोड जनरेटर ट्यूटोरियल का पालन करें।
PROGMEM = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, …………………… …………………………………………………………..}; PROGMEM = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ………………… …………………………………………………………..}; const अहस्ताक्षरित चार डोरोपेन PROGMEM = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00f, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xff, 0xe0, ………………………। ……………………………………………………………..};
में सेटअप () समारोह, डीबगिंग उद्देश्यों के लिए 9600 के बॉड दर पर सीरियल मॉनिटर आरंभ कर देगा। फिर अगली पंक्तियों में, प्रारंभ और () विधि के साथ OLED डिस्प्ले और APDS9960 सेंसर को इनिशियलाइज़ करें:
सीरियल.बेगिन (9600); अगर (! APDS.begin ()) {Serial.println ("APDS9960 सेंसर को प्रारंभ करने में त्रुटि!"); } Serial.println ("इशारों का पता लगाना…"); display.begin (SH1106_SWITCHCAPVCC, 0x3C);
डिस्प्ले और सेंसर को इनिशियलाइज़ करने के बाद, क्लियर डिसप्ले () मेथड के साथ डिस्प्ले बफर को साफ़ करें और फॉन्ट साइज़ और कलर को display.setTextSize () और display.setTextColor () मेथड्स का उपयोग करके सेट करें ।
display.setTextSize (2); display.setTextColor (WHITE); display.clearDisplay (); display.display ();
शून्य लूप () के अंदर , लगातार जांचें कि क्या कोई इशारा किया गया था। यदि हाँ, तो जेस्चर मान पढ़ें और जांचें कि यह किस इशारे पर है (UP, DOWN, RIGHT, LEFT) और सीरियल मॉनीटर पर संबंधित रीडिंग प्रिंट करता है। UP और DOWN के इशारों का उपयोग फ़्लोर नंबर को सेट करने के लिए किया जाता है जहाँ उपयोगकर्ता जाना चाहता है। बायाँ इशारा लिफ्ट के दरवाजे को बंद करने और फर्श की संख्या के अनुसार लिफ्ट को स्थानांतरित करने के लिए है, जबकि दरवाजे को खोलने के लिए राइट जेस्चर का उपयोग किया जाता है।
if (APDS.gestureAvailable ()) {int जेस्चर = APDS.readGesture (); स्विच (इशारा) {मामला GESTURE_UP: Serial.println ("यूपीआई इशारा"); display.clearDisplay (); फ्लोर्नम ++; घर 1(); टूटना; मामला GESTURE_DOWN: Serial.println ("डिटैचड डार्ट जेस्चर"); display.clearDisplay (); फ्लोर्नम -; घर 1(); टूटना; मामला GESTURE_LEFT: Serial.println ("पाया गया LEFT इशारा"); display.clearDisplay (); शुरू(); टूटना; मामला GESTURE_RIGHT: Serial.println ("पता लगाया गया इशारा"); display.clearDisplay (); घर 1(); टूटना; डिफ़ॉल्ट: ब्रेक; }
Home1 () समारोह एक लिफ्ट के लिए घर प्रदर्शन आकर्षित करने के लिए प्रयोग किया जाता है। इसमें एक अप ऐरो, डाउन एरो, ओपन डोर, क्लोज डोर साइन्स और करंट फ्लोर नंबर शामिल हैं। drawBitmap () फ़ंक्शन का उपयोग ओएलईडी डिस्प्ले पर छवियों को खींचने के लिए किया जाता है। ड्राबैटमैप () फ़ंक्शन के लिए सिंटैक्स नीचे दिया गया है:
drawBitmap (int16_t x, int16_t y, bitmap, int16_t w, int16_t h, color);
कहाँ पे:
int16_t x, int16_t y, OLED प्रदर्शन के X और Y निर्देशांक हैं
बिटमैप बिटमैप का नाम है
int16_t w, int16_t h छवि की ऊँचाई और भार हैं।
void home1 () {display.setCursor (101,23); display.println (फ्लोर्नम); display.drawBitmap (23, 0, उखाड़, 40, 18, WHITE); display.drawBitmap (26, 46, डाउनरो, 40, 18, WHITE); display.drawBitmap (0, 15, डोरोपेन, 29, 30, WHITE); display.drawBitmap (60, 15, बंद, 29, 30, WHITE); display.display (); }
Start () समारोह लिफ्ट ऊपर की ओर या नीचे की ओर ले जाने के लिए प्रयोग किया जाता है। उसके लिए, वर्तमान मंजिल संख्या की तुलना उस मंजिल संख्या से नहीं की जाती है जहाँ उपयोगकर्ता जाना चाहता है। यदि मंजिल संख्या वर्तमान मंजिल संख्या से अधिक है। तब लिफ्ट ऊपर की ओर बढ़ेगी और यदि मंजिल संख्या मौजूदा मंजिल से कम है तो नहीं। फिर लिफ्ट नीचे की ओर जाएगी। लिफ्ट बंद हो जाएगी जब दोनों वर्तमान मंजिल नं। और मंजिल नं। समान हैं।
void start () {जबकि (फ्लोर्नम> करंट फ्लोअर) {Serial.println ("यूपी जा रहा है"); currentfloor ++; display.drawBitmap (0, 0, अप, 100, 64, WHITE); display.setCursor (101,23); display.println (currentfloor); display.display (); display.clearDisplay (); देरी (2000); } जबकि (फ्लोर्नम <currentfloor) {Serial.println ("डाउन डाउन"); currentfloor--; display.drawBitmap (0, 0, डाउन, 100, 64, WHITE); display.setCursor (101,23); display.println (currentfloor); display.display (); display.clearDisplay (); देरी (2000); } अगर (फ्लोर्नम == करंट फ्लोअर) {सीरियल.प्रिंटलेन ("पहुंच गया"); display.clearDisplay (); घर 1(); सिरियल.प्रिंट (करंटफ्लोर); }}
इशारे से नियंत्रित टचलेस लिफ्ट का परीक्षण
एक बार हार्डवेयर और कोड तैयार हो जाने के बाद, Arduino Nano को लैपटॉप से कनेक्ट करें और नीचे दिया गया पूरा कोड अपलोड करें। जैसा कि आप डिफ़ॉल्ट रूप से देख सकते हैं OLED एलेवेटर UI प्रदर्शित करेगा।
अब अपने हाथ को ऊपर या नीचे से ऊपर उठाएं, जैसे नीचे दिए गए वीडियो में दिखाया गया है कि जिस मंजिल पर आप जाना चाहते हैं, उसे सेट करें। फिर उस मंजिल पर जाने के लिए लिफ्ट को स्वीकार करने के लिए बाईं ओर इशारा करें। यदि आप लिफ्ट को रोकना चाहते हैं, तो अपने हाथ से सही इशारा करें।
इस परियोजना के लिए पूरा कार्य वीडियो और कोड नीचे दिया गया है। आशा है कि आपने इस परियोजना के निर्माण का आनंद लिया। यदि आपके पास इस परियोजना के बारे में कोई प्रश्न हैं, तो कृपया उन्हें टिप्पणी अनुभाग में छोड़ दें।