- अवयव आवश्यक
- तीव्र GP2Y1014AU0F सेंसर
- OLED प्रदर्शन मॉड्यूल
- सर्किट आरेख
- परफेक्ट बोर्ड पर सर्किट का निर्माण
- वायु गुणवत्ता विश्लेषक के लिए कोड स्पष्टीकरण
- Arduino के साथ तीव्र GP2Y1014AU0F सेंसर के इंटरफेसिंग का परीक्षण
वायु प्रदूषण कई शहरों में एक प्रमुख मुद्दा है और वायु गुणवत्ता सूचकांक हर दिन खराब हो रहा है। विश्व स्वास्थ्य संगठन की रिपोर्ट के अनुसार, समय से पहले कार दुर्घटना की तुलना में हवा में प्रस्तुत खतरनाक कणों के प्रभाव से अधिक लोग मारे जाते हैं। पर्यावरण संरक्षण एजेंसी (ईपीए) के अनुसार, इनडोर हवा बाहरी हवा की तुलना में 2 से 5 गुना अधिक विषाक्त हो सकती है। इसलिए यहां हम हवा में धूल के कणों के घनत्व को मापकर वायु की गुणवत्ता की निगरानी के लिए एक परियोजना का निर्माण करते हैं।
इसलिए एलपीजी डिटेक्टर, स्मोक डिटेक्टर और एयर क्वालिटी मॉनिटर जैसी हमारी पिछली परियोजनाओं की निरंतरता में, यहां हम एयर में डस्ट घनत्व को मापने के लिए Arduino नैनो के साथ तीव्र GP2Y1014AU0F सेंसर इंटरफेस करने जा रहे हैं । डस्ट सेंसर और Arduino नैनो के अलावा, मापा मूल्यों को प्रदर्शित करने के लिए एक OLED डिस्प्ले का भी उपयोग किया जाता है। सिगरेट के धुएं जैसे बहुत महीन कणों का पता लगाने में शार्प का GP2Y1014AU0F डस्ट सेंसर बहुत कारगर है। इसे एयर प्यूरीफायर और एयर कंडीशनर में उपयोग के लिए बनाया गया है।
अवयव आवश्यक
- अरुडिनो नैनो
- तीव्र GP2Y1014AU0F सेंसर
- 0.96 'एसपीआई OLED डिस्प्ले मॉड्यूल
- जम्पर तार
- 220 µf संधारित्र
- 150 istor रोकनेवाला
तीव्र GP2Y1014AU0F सेंसर
शार्प का GP2Y1014AU0F एक छोटा सा छह-पिन एनालॉग आउटपुट ऑप्टिकल एयर क्वालिटी / ऑप्टिकल डस्ट सेंसर है जो हवा में धूल के कणों को महसूस करने के लिए बनाया गया है। यह लेजर बिखरने के सिद्धांत पर काम करता है । सेंसर मॉड्यूल के अंदर, एक इंफ्रारेड एमिटिंग डायोड और एक फोटो सेंसर को हवा के इनलेट छेद के पास व्यवस्थित किया जाता है, जैसा कि नीचे की छवि में दिखाया गया है:
जब धूल कणों से युक्त हवा सेंसर कक्ष में प्रवेश करती है, तो धूल के कण आईआर-एलईडी प्रकाश को फोटो-डिटेक्टर की ओर बिखेरते हैं। बिखरी हुई रोशनी की तीव्रता धूल के कणों पर निर्भर करती है। हवा में जितने अधिक धूल के कण होते हैं, प्रकाश की तीव्रता उतनी ही अधिक होती है। बिखरे हुए प्रकाश की तीव्रता के अनुसार सेंसर के V OUT पिन में आउटपुट वोल्टेज बदल जाता है।
GP2Y1014AU0F सेंसर पिनआउट:
जैसा कि पहले उल्लेख किया गया है, GP2Y1014AU0F सेंसर 6-पिन कनेक्टर के साथ आता है । नीचे दिया गया आंकड़ा और तालिका GP2Y1014AU0F के लिए पिन असाइनमेंट दिखाता है:
एस। |
पिन नाम |
पिन विवरण |
1 |
वि एलईडी |
एलईडी Vcc पिन। 150Ω रेसिस्टर के माध्यम से 5 वी से कनेक्ट करें |
२ |
एलईडी-जीएनडी |
एलईडी ग्राउंड पिन। GND से कनेक्ट करें |
३ |
एलईडी |
एलईडी चालू / बंद टॉगल करने के लिए इस्तेमाल किया। Arduino के किसी भी डिजिटल पिन से कनेक्ट करें |
४ |
एस GND |
सेंसर ग्राउंड पिन। Arduino के GND से कनेक्ट करें |
५ |
V OUT |
सेंसर एनालॉग आउटपुट पिन। किसी भी एनालॉग पिन से कनेक्ट करें |
६ |
वी सी सी |
सकारात्मक आपूर्ति पिन। 5V के Arduino से कनेक्ट करें |
GP2Y1014AU0F सेंसर विनिर्देशों:
- कम वर्तमान खपत: 20mA अधिकतम
- विशिष्ट ऑपरेटिंग वोल्टेज: 4.5 वी से 5.5 वी
- न्यूनतम पता लगाने योग्य धूल का आकार: 0.5µm
- डस्ट डेंसिटी सेंसिंग रेंज: 580 तक / मी 3 तक
- सेंसिंग टाइम: 1 सेकंड से कम
- आयाम: 1.81 x 1.18 x 0.69 '' (46.0 x 30.0 x 17.6 मिमी)
OLED प्रदर्शन मॉड्यूल
ओएलईडी (ऑर्गेनिक लाइट-एमिटिंग डायोड्स) एक स्व-प्रकाश-उत्सर्जक तकनीक है, जिसे दो कंडक्टरों के बीच कार्बनिक पतली फिल्मों की एक श्रृंखला रखकर बनाया गया है। जब इन फिल्मों पर बिजली का करंट लगाया जाता है तो एक तेज रोशनी पैदा होती है। OLEDs टेलीविज़न के समान तकनीक का उपयोग कर रहे हैं, लेकिन हमारे अधिकांश टीवी की तुलना में कम पिक्सेल हैं।
इस परियोजना के लिए, हम एक मोनोक्रोम 7-पिन SSD1306 0.96 "OLED डिस्प्ले का उपयोग कर रहे हैं। यह तीन अलग-अलग संचार प्रोटोकॉल पर काम कर सकता है: SPI 3 वायर मोड, SPI फोर-वायर मोड और I2C मोड। पिन और इसके कार्यों को नीचे दी गई तालिका में समझाया गया है:
हमने पहले से ही पिछले लेख में ओएलईडी और इसके प्रकारों को विवरण में शामिल किया है।
पिन नाम |
दुसरे नाम |
विवरण |
गाण्ड |
भूमि |
मॉड्यूल का ग्राउंड पिन |
Vdd |
Vcc, 5V |
पावर पिन (3-5V सहनीय) |
SCK |
डी 0, एससीएल, सीएलके |
घड़ी की पिन के रूप में कार्य करता है। I2C और SPI दोनों के लिए उपयोग किया जाता है |
एसडीए |
डी 1, एमओएसआई |
मॉड्यूल का डेटा पिन। IIC और SPI दोनों के लिए उपयोग किया जाता है |
रेस |
RST, RESET |
मॉड्यूल रीसेट करता है (SPI के दौरान उपयोगी) |
डीसी |
ए ० |
डेटा कमांड पिन। SPI प्रोटोकॉल के लिए उपयोग किया जाता है |
सीएस |
चिप का चयन करें |
उपयोगी जब एक से अधिक मॉड्यूल SPI प्रोटोकॉल के तहत उपयोग किया जाता है |
OLED विनिर्देशों:
- OLED चालक आईसी: SSD1306
- रिज़ॉल्यूशन: 128 x 64
- दृश्य कोण:> 160 °
- इनपुट वोल्टेज: 3.3V ~ 6V
- पिक्सेल रंग: नीला
- काम कर रहे तापमान: -30 डिग्री सेल्सियस ~ 70 डिग्री सेल्सियस
लिंक का पालन करके OLED और इसके विभिन्न माइक्रोकंट्रोलर्स के साथ इंटरफेस के बारे में और जानें।
सर्किट आरेख
Arduino के साथ तीव्र GP2Y1014AU0F सेंसर के लिए सर्किट आरेख नीचे दिया गया है:
सर्किट बहुत सरल है क्योंकि हम केवल GP2Y10 सेंसर और OLED डिस्प्ले मॉड्यूल को Arduino Nano के साथ जोड़ रहे हैं। GP2Y10 सेंसर और OLED डिस्प्ले मॉड्यूल दोनों ही 5V और GND के साथ संचालित हैं। V0 पिन Arduino Nano के A5 पिन से जुड़ा है। सेंसर का एलईडी पिन Arduino के डिजिटल पिन 12 से जुड़ा है। चूंकि OLED डिस्प्ले मॉड्यूल SPI संचार का उपयोग करता है, इसलिए हमने OLED मॉड्यूल और Arduino नैनो के बीच एक SPI संचार स्थापित किया है। कनेक्शन नीचे दी गई तालिका में दिखाए गए हैं:
एस.एन.ओ. |
OLED मॉड्यूल पिन |
अरुडिनो पिन |
1 |
GND |
भूमि |
२ |
वीसीसी |
5 वी |
३ |
डी ० |
१० |
४ |
डी 1 |
९ |
५ |
रेस |
१३ |
६ |
डीसी |
1 1 |
। |
सीएस |
१२ |
एस.एन.ओ. |
सेंसर पिन |
अरुडिनो पिन |
1 |
Vcc |
5 वी |
२ |
वी ओ |
A5 |
३ |
एस GND |
GND |
४ |
एलईडी |
। |
५ |
एलईडी-जीएनडी |
GND |
६ |
वि एलईडी |
150V रेसिस्टर के माध्यम से 5V |
परफेक्ट बोर्ड पर सर्किट का निर्माण
पूर्ण बोर्ड पर सभी घटकों को टांका लगाने के बाद, यह नीचे की तरह कुछ दिखाई देगा। लेकिन इसे ब्रेडबोर्ड पर भी बनाया जा सकता है। मैंने उसी बोर्ड पर GP2Y1014 सेंसर को मिलाया है जिसका उपयोग मैंने SDS011 सेंसर को करने के लिए किया था। टांका लगाते समय, सुनिश्चित करें कि आपके मिलाप तारों को एक दूसरे से पर्याप्त दूरी पर होना चाहिए।
वायु गुणवत्ता विश्लेषक के लिए कोड स्पष्टीकरण
इस परियोजना का पूरा कोड दस्तावेज़ के अंत में दिया गया है। यहां हम कोड के कुछ महत्वपूर्ण भागों की व्याख्या कर रहे हैं।
कोड का उपयोग करता Adafruit_GFX , और Adafruit_SSD1306 पुस्तकालयों। इन पुस्तकालयों को Arduino IDE में लाइब्रेरी मैनेजर से डाउनलोड किया जा सकता है और इसे वहां से इंस्टॉल किया जा सकता है। उसके लिए, Arduino IDE खोलें और स्केच <लाइब्रेरी शामिल करें <लाइब्रेरी प्रबंधित करें पर जाएं । अब Adafruit GFX की खोज करें और Adafruit द्वारा Adafruit GFX लाइब्रेरी स्थापित करें ।
इसी तरह, Adafruit SSD1306 पुस्तकालयों को Adafruit द्वारा स्थापित करें ।
Arduino IDE को लाइब्रेरी स्थापित करने के बाद, आवश्यक लाइब्रेरी फ़ाइलों को शामिल करके कोड शुरू करें। डस्ट सेंसर को किसी भी लाइब्रेरी की आवश्यकता नहीं होती है क्योंकि हम Arduino के एनालॉग पिन से सीधे वोल्टेज मान पढ़ रहे हैं।
#शामिल
फिर, ओएलईडी चौड़ाई और ऊंचाई को परिभाषित करें। इस परियोजना में, हम 128 × 64 SPI OLED डिस्प्ले का उपयोग कर रहे हैं। आप बदल सकते हैं SCREEN_WIDTH , और SCREEN_HEIGHT अपने प्रदर्शन के अनुसार चर।
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
फिर एसपीआई संचार पिन को परिभाषित करें जहां ओएलईडी डिस्प्ले जुड़ा हुआ है।
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
फिर, एसपीआई संचार प्रोटोकॉल के साथ पहले से परिभाषित चौड़ाई और ऊंचाई के साथ एक प्रवेश प्रदर्शन उदाहरण बनाएं।
Adafruit_SSD1306 प्रदर्शन (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
उसके बाद, डस्ट सेंसर अर्थ और एलईडी पिन को परिभाषित करें। सेंस पिन डस्ट सेंसर का आउटपुट पिन है जिसका उपयोग वोल्टेज मूल्यों को पढ़ने के लिए किया जाता है, जबकि एलईडी का उपयोग आईआर एलईडी को चालू / बंद करने के लिए किया जाता है।
int sensePin = A5; int ledPin = 7;
अब सेटअप () फ़ंक्शन के अंदर, डिबगिंग उद्देश्यों के लिए 9600 की बॉड दर पर सीरियल मॉनिटर को इनिशियलाइज़ करें। इसके अलावा, प्रारंभ () फ़ंक्शन के साथ OLED प्रदर्शन को आरम्भ करें ।
सीरियल.बेगिन (9600); display.begin (SSD1306_SWITCHCAPVCC);
लूप () फ़ंक्शन के अंदर, Arduino नैनो के एनालॉग पिन 5 से वोल्टेज मान पढ़ें। सबसे पहले, आईआर एलईडी चालू करें और फिर आउटपुट वोल्टेज की रीडिंग लेने से पहले 0.28ms तक प्रतीक्षा करें। उसके बाद, एनालॉग पिन से वोल्टेज मान पढ़ें। इस ऑपरेशन में लगभग 40 से 50 माइक्रोसेकंड लगते हैं, इसलिए डस्ट सेंसर को बंद करने से पहले 40-माइक्रोसेकंड की देरी का परिचय दें। विनिर्देशों के अनुसार, एलईडी को प्रत्येक 10ms पर एक बार स्पंदित किया जाना चाहिए, इसलिए शेष 10ms चक्र = 10000 - 280 - 40 = 9680 माइक्रोसेकंड के लिए प्रतीक्षा करें ।
digitalWrite (ledPin, LOW); देरीमाइक्रोसेकंड (280); outVo = analogRead (sensePin); देरीमाइक्रोसेकंड (40); digitalWrite (ledPin, HIGH); देरीमाइक्रोसेकंड (9680);
फिर अगली पंक्तियों में, आउटपुट वोल्टेज और सिग्नल मूल्य का उपयोग करके धूल घनत्व की गणना करें।
sigVolt = outVo * (5/1024); डस्टवेल = 0.17 * सिग्वोल्ट - 0.1;
उसके बाद, setTextSize () और setTextColor () का उपयोग करके टेक्स्ट का आकार और टेक्स्ट का रंग सेट करें ।
display.setTextSize (1); display.setTextColor (WHITE);
फिर अगली पंक्ति में, उस स्थिति को परिभाषित करें जहां पाठ सेटर्सकोर (x, y) विधि का उपयोग करना शुरू करता है । और Display.println () फ़ंक्शन का उपयोग करके OLED डिस्प्ले पर धूल घनत्व मूल्यों को प्रिंट करें ।
display.println ("धूल"); display.println ("घनत्व"); display.setTextSize (3); display.println (dustLevel);
और आखिरी में, OLED डिस्प्ले पर टेक्स्ट प्रदर्शित करने के लिए डिस्प्ले () विधि को कॉल करें ।
display.display (); display.clearDisplay ();
Arduino के साथ तीव्र GP2Y1014AU0F सेंसर के इंटरफेसिंग का परीक्षण
एक बार हार्डवेयर और कोड तैयार होने के बाद, सेंसर का परीक्षण करने का समय आ गया है। उसके लिए, Arduino को लैपटॉप से कनेक्ट करें, बोर्ड और पोर्ट चुनें, और अपलोड बटन दबाएं। जैसा कि आप नीचे की छवि में देख सकते हैं, यह OLED डिस्प्ले पर धूल घनत्व प्रदर्शित करेगा।
पूर्ण कार्य वीडियो और कोड नीचे दिए गए हैं। आशा है कि आपने ट्यूटोरियल का आनंद लिया और कुछ उपयोगी सीखा। यदि आपके कोई प्रश्न हैं, तो उन्हें टिप्पणी अनुभाग में छोड़ दें या अन्य तकनीकी प्रश्नों के लिए हमारे मंचों का उपयोग करें।