विषयसूची:

एक स्व-निहित डेटा लॉगिंग एनीमोमीटर: 11 कदम (चित्रों के साथ)
एक स्व-निहित डेटा लॉगिंग एनीमोमीटर: 11 कदम (चित्रों के साथ)

वीडियो: एक स्व-निहित डेटा लॉगिंग एनीमोमीटर: 11 कदम (चित्रों के साथ)

वीडियो: एक स्व-निहित डेटा लॉगिंग एनीमोमीटर: 11 कदम (चित्रों के साथ)
वीडियो: Atmo 2 Streaming Live Wind Data Logging Video - Wind101.net 2024, जुलाई
Anonim
एक स्व-निहित डेटा लॉगिंग एनीमोमीटर
एक स्व-निहित डेटा लॉगिंग एनीमोमीटर

मुझे डेटा एकत्र करना और उसका विश्लेषण करना पसंद है। मुझे इलेक्ट्रॉनिक गैजेट्स बनाना भी पसंद है। एक साल पहले जब मैंने Arduino उत्पादों की खोज की, तो मैंने तुरंत सोचा, "मैं पर्यावरण डेटा एकत्र करना चाहता हूं।" यह पोर्टलैंड, OR में एक हवादार दिन था, इसलिए मैंने पवन डेटा को कैप्चर करने का निर्णय लिया। मैंने एनीमोमीटर के कुछ निर्देशों को देखा और उन्हें काफी उपयोगी पाया, लेकिन कुछ इंजीनियरिंग बदलाव करने की जरूरत थी। सबसे पहले, मैं चाहता था कि डिवाइस एक सप्ताह के लिए स्व-निहित, सड़क पर चले। दूसरा, मैं चाहता था कि यह हवा के बहुत छोटे झोंकों को रिकॉर्ड करने में सक्षम हो, यहाँ कई डिज़ाइनों को चलने के लिए तेज़ हवाओं की आवश्यकता थी। अंत में, मैं डेटा रिकॉर्ड करना चाहता था। मैंने कम से कम जड़ता और प्रतिरोध के साथ वास्तव में हल्के रोटर डिजाइन के लिए जाने का फैसला किया। इसे पूरा करने के लिए, मैंने सभी प्लास्टिक भागों (थ्रेडेड विनाइल रॉड सहित), बॉल बेयरिंग लिंकेज और ऑप्टिकल सेंसर का उपयोग किया। अन्य डिज़ाइनों में चुंबकीय सेंसर या वास्तविक डीसी मोटर्स का उपयोग किया गया था, लेकिन वे दोनों रोटर को धीमा कर देते हैं, प्रकाशिकी थोड़ी अधिक शक्ति का उपयोग करती है लेकिन कोई यांत्रिक प्रतिरोध प्रदान नहीं करती है। डेटा लकड़हारा केवल 8 एमबीटी फ्लैश चिप के साथ एक एटमेगा 328 पी है। मैंने एसडी जाने के बारे में सोचा, लेकिन मैं लागत, बिजली की खपत और जटिलता को कम रखना चाहता था। मैंने एक साधारण प्रोग्राम लिखा था जो हर सेकेंड में दो-बाइट रोटेशन की गणना करता था। 8 मेगाबिट के साथ मुझे लगा कि मैं लगभग एक सप्ताह का डेटा एकत्र कर सकता हूं। मेरे मूल डिजाइन में, मुझे लगा कि मुझे 4 सी कोशिकाओं की आवश्यकता होगी, लेकिन एक सप्ताह के बाद भी वे पूरी तरह से चार्ज हो गए थे इसलिए मुझे बिजली की खपत में परिमाण के क्रम से बंद होना चाहिए था। मैंने रैखिक नियामकों का उपयोग नहीं किया, मैंने सभी वोल्टेज रेल को 6V तक चला दिया (भले ही कुछ हिस्सों को 3.3V रेट किया गया था। याय ओवरडिजाइन!)। डेटा डाउनलोड करने के लिए, मेरे पास एक जटिल प्रणाली थी जो फ्लैश को पढ़ती थी और इसे आर्डिनो सीरियल मॉनिटर पर डंप कर देती थी, और मैंने एक्सेल में कट और पेस्ट किया। मैंने फ्लैश को मानक आउट करने के लिए कमांड लाइन यूएसबी ऐप लिखने का तरीका जानने का प्रयास नहीं किया, लेकिन किसी बिंदु पर मुझे इसे समझने की आवश्यकता होगी। परिणाम बल्कि आश्चर्यजनक था, मैं कुछ बहुत ही रोचक प्रवृत्तियों को देखने में सक्षम था, जिन्हें मैं एक अन्य रिपोर्ट के लिए सहेज रहा हूं। आपको कामयाबी मिले!

चरण 1: रोटर का निर्माण करें

रोटर का निर्माण करें
रोटर का निर्माण करें
रोटर का निर्माण करें
रोटर का निर्माण करें

मैंने रोटर कप के लिए कई अलग-अलग विचारों की कोशिश की: ईस्टर अंडे, पिंग पोंग बॉल, प्लास्टिक कप, और खाली क्रिसमस ट्री आभूषण गेंदें। मैंने कई रोटार बनाए और उन सभी का हेयर ड्रायर से परीक्षण किया, जिससे हवा की गति की एक श्रृंखला प्रदान की गई। चार प्रोटोटाइप में से, आभूषण के गोले ने सबसे अच्छा काम किया। उनके पास ये छोटे टैब भी थे जो चिपकाने को आसान बनाते थे, और एक कठोर प्लास्टिक से बने होते थे जो पॉली कार्बोनेट सीमेंट के साथ अच्छी तरह से काम करते थे। मैंने कुछ अलग शाफ्ट लंबाई, छोटे, मध्यम और बड़े (लगभग 1 "से लगभग 6") की कोशिश की और पाया कि बड़े आकार बहुत अधिक टॉर्क करते हैं और कम हवा की गति के लिए अच्छी प्रतिक्रिया नहीं देते हैं, इसलिए मैं छोटे आकार के शाफ्ट के साथ गया. चूंकि सब कुछ स्पष्ट प्लास्टिक था, इसलिए मैंने तीन ब्लेडों को उतारने में मदद करने के लिए एक आसान सा प्रिंटआउट बनाया। सामग्री: गहने ओरिएंटल ट्रेडिंग कंपनी, आइटम "48/6300 DYO CLEAR ORNAMENT", $6 प्लस $3 शिपिंग से आए थे। प्लास्टिक शाफ्ट और स्ट्रक्चरल डिस्क एक स्थानीय टीएपी प्लास्टिक स्टोर से आया था, भागों में लगभग $ 4 अधिक।

चरण 2: ऊपरी आधार बनाएँ

ऊपरी आधार बनाएँ
ऊपरी आधार बनाएँ
ऊपरी आधार बनाएँ
ऊपरी आधार बनाएँ

घूर्णी जड़ता को कम करने के लिए, मैंने मैकमास्टर कर से एक थ्रेडेड नायलॉन रॉड का उपयोग किया। मैं बियरिंग्स का उपयोग करना चाहता था, लेकिन मशीन बियरिंग्स रोटर-स्लोइंग ग्रीस में पैक की जाती हैं, इसलिए मैंने कुछ सस्ते स्केटबोर्ड बियरिंग्स खरीदे जिनमें कोई नहीं था। वे बस CPVC इनर डायमीटर 3/4 "पाइप एडॉप्टर के अंदर फिट हो गए.. यह तब तक नहीं था जब तक मैंने संरचना को इकट्ठा नहीं किया था कि मुझे स्केट बेयरिंग हैंडल प्लेनर लोड का एहसास हुआ, और मैं वर्टिकल लोड लगा रहा था, इसलिए मुझे एक थ्रस्टर बेयरिंग का उपयोग करना चाहिए था, लेकिन उन्होंने ठीक काम किया, और संभवत: प्रीसेशन टॉर्क से घर्षण को प्रबंधित करने में मदद की। मैंने शाफ्ट के नीचे एक ऑप्टिकल सेंसर संलग्न करने की योजना बनाई, इसलिए मैंने CPVC कपलिंग को एक बड़े बेस में लगाया। होम डिपो मिश्रण करने के लिए एक मजेदार जगह है और मैच सीपीवीसी/पीवीसी फिटिंग। अंततः मैं 3/4" थ्रेडेड सीपीवीसी कपलिंग को पीवीसी 3/4" से 1-1/2" रेड्यूसर में भरने में सक्षम था। सब कुछ फिट करने के लिए इसमें बहुत खेलना पड़ा, लेकिन इसने इलेक्ट्रॉनिक्स के लिए पर्याप्त जगह छोड़ी। सामग्री: 98743A235 - ब्लैक थ्रेडेड नायलॉन रॉड (5/16 "-18 थ्रेड) 94900A030 - ब्लैक नायलॉन हेक्स नट्स (5/16" -18 थ्रेड) सस्ते स्केटबोर्ड बियरिंग्स 3/4 "थ्रेडेड CPVC एडेप्टर 3/4" से 1 -1/2 "पीवीसी रेड्यूसर टू थ्रेडेड 3/4" पाइप नोट: पीवीसी और सीपीवीसी कपलिंग आयाम समान नहीं हैं, शायद आकस्मिक दुरुपयोग को रोकने के लिए; इसलिए एक सादे पीवीसी 3/4" नियमित एडेप्टर में स्वैप करने से काम नहीं चलेगा, हालांकि, थ्रेडेड एडेप्टर के थ्रेड्स समान हैं, जो पूरी तरह से अजीब है। सीपीवीसी कपलिंग पीवीसी एडेप्टर बुशिंग में थ्रेड करता है। एडेप्टर … बुशिंग … कपलिंग … मैं शायद इन सभी शर्तों को मिला रहा हूं, लेकिन होम डिपो प्लंबिंग आइल में 15 मिनट आपको सीधे सेट कर देंगे।

चरण 3: ऑप्टिकल इंटरप्रेटर

ऑप्टिकल इंटरप्रेटर
ऑप्टिकल इंटरप्रेटर
ऑप्टिकल इंटरप्रेटर
ऑप्टिकल इंटरप्रेटर

जैसे ही रोटर घूमता है, इसके रोटेशन की गणना एक ऑप्टिकल इंटरप्रेटर द्वारा की जाती है। मैंने डिस्क का उपयोग करने के बारे में सोचा, लेकिन इसका मतलब था कि मुझे रोशनी स्रोत और डिटेक्टर को लंबवत रूप से संलग्न करना होगा, जिसे इकट्ठा करना बहुत चुनौतीपूर्ण होगा। इसके बजाय मैंने क्षैतिज माउंट का विकल्प चुना और कुछ छोटे कप पाए जो दृढ़ लकड़ी के फर्श की रक्षा के लिए कुर्सियों के नीचे जाते हैं। मैंने छह खंडों को चित्रित और टेप किया, जो मुझे बारह (लगभग) समान किनारों, या रोटर की प्रति क्रांति 12 टिक देगा। मैंने और अधिक करने के बारे में सोचा लेकिन डिटेक्टर की गति, या इसके प्रकाशिकी के क्षेत्र-दृश्य से बहुत परिचित नहीं था। यही है, अगर मैं बहुत संकीर्ण हो गया, तो एलईडी किनारों के चारों ओर रेंग सकती है और सेंसर को सक्रिय कर सकती है। यह शोध का एक और क्षेत्र है जिसका मैंने पीछा नहीं किया, लेकिन इसका पता लगाना अच्छा होगा। मैंने चित्रित कप को एक नट से चिपका दिया और इसे शाफ्ट के अंत तक बांध दिया। सामग्री: होम डिपो ब्लैक पेंट से चेयर लेग प्रोटेक्टर कप चीज

चरण 4: रोटर संलग्न करें

रोटर संलग्न करें!
रोटर संलग्न करें!

इस बिंदु पर यह बहुत अच्छा दिखने लगा था। नायलॉन नट वास्तव में फिसलन वाले होते हैं, इसलिए मुझे कई लॉकनट्स का उपयोग करना पड़ा (यदि आपने पिछली तस्वीरों से ध्यान नहीं दिया)। मुझे रोटर के नीचे की टोपी में फिट होने के लिए एक विशेष फ्लैट रिंच भी बनाना पड़ा ताकि मैं दोनों नट को बंद कर सकूं।

चरण 5: निचला आधार बनाएँ

निचला आधार बनाएं
निचला आधार बनाएं
निचला आधार बनाएं
निचला आधार बनाएं

निचला आधार बैटरी रखता है और एक समर्थन संरचना प्रदान करता है। मुझे पॉलीकेस नामक कंपनी से ऑनलाइन एक बहुत अच्छा वाटरप्रूफ बॉक्स मिला। यह वास्तव में एक चालाक मामला है जो कसकर सील करता है, और स्क्रू आधार पर व्यापक होते हैं ताकि वे आसानी से ऊपर से बाहर न गिरें। मैंने ऊपरी पीवीसी झाड़ी के लिए एक पीवीसी मेट का इस्तेमाल किया। यह निचला बेस मेट सिर्फ एक थ्रेडेड 1-1 / 2 "पीवीसी कपलिंग है। ऊपरी रोटर बेस प्रेशर इस कपलिंग के माध्यम से निचले बेस में फिट बैठता है। जैसा कि आप बाद में देखेंगे, मैंने इन टुकड़ों को एक साथ गोंद नहीं किया क्योंकि मैं चाहता था यदि आवश्यक हो तो इसे खोलने और समायोजन करने में सक्षम हो, साथ ही सर्किट बोर्ड संलग्न करते समय असेंबली आसान है। सामग्री: पॉलीकेस से पनरोक बॉक्स, आइटम # WP-23F, $ 12.50 थ्रेडेड 1-1 / 2 "पीवीसी युग्मन

चरण 6: ऑप्टिकल सेंसर बनाएँ

ऑप्टिकल सेंसर बनाएँ
ऑप्टिकल सेंसर बनाएँ

सेंसर तंत्र एक 940nm एलईडी और एक श्मिट-ट्रिगर रिसीवर है। मुझे श्मिट ट्रिगर सर्किट से प्यार है, यह मेरी सभी बहस की जरूरतों का ख्याल रखता है और एक सीएमओएस/टीटीएल संगत संकेत भेजता है। केवल नकारात्मक पक्ष? 5 वी ऑपरेशन। हां, मैंने पूरे डिजाइन को 6V तक बढ़ा दिया है, लेकिन अगर मैं इस हिस्से के लिए नहीं होता तो मैं 3.3V तक जा सकता था। विचार यह है कि यह सर्किट रोटर कप के नीचे माउंट होता है, जो बीम को घुमाता है, प्रत्येक किनारे के लिए तार्किक संक्रमण उत्पन्न करता है। मेरे पास इस बात की अच्छी तस्वीर नहीं है कि यह कैसे लगाया गया था। मैंने मूल रूप से दो प्लास्टिक ऑफसेट को निचले आधार पीवीसी युग्मन में चिपका दिया, और इसे ऊपर से उनमें खराब कर दिया। बोर्ड को अच्छी तरह से फिट करने के लिए मुझे बोर्ड के किनारों को पीसना पड़ा। मेरे पास इसके लिए एक योजनाबद्ध भी नहीं है, यह वास्तव में आसान है: बस विन से 1k रोकनेवाला चलाएं और इसे तार दें ताकि एलईडी हमेशा चालू रहे और डिटेक्टर का आउटपुट इसके पिन पर हो। सामग्री: 1 940nm एलईडी 1k रोकनेवाला 1 OPTEK OPL550 सेंसर 1 तीन-पिन प्लग (महिला) 1 1.5 "x1.5" सर्किट बोर्ड तार की विभिन्न लंबाई यदि आप अपने तारों को बंडल करना पसंद करते हैं तो हीट-सिकुड़न टयूबिंग

चरण 7: डेटा लकड़हारा बनाएँ

डेटा लकड़हारा बनाएँ
डेटा लकड़हारा बनाएँ
डेटा लकड़हारा बनाएँ
डेटा लकड़हारा बनाएँ
डेटा लकड़हारा बनाएँ
डेटा लकड़हारा बनाएँ
डेटा लकड़हारा बनाएँ
डेटा लकड़हारा बनाएँ

चेसिस में फिट होने के लिए Arduino प्रोटोटाइप बोर्ड बड़ा था। मैंने एक छोटे सर्किट बोर्ड को बिछाने के लिए ईगलकैड का उपयोग किया, और एक परत को खींचकर खो दिया … चार बदसूरत तार हैं जिनकी मुझे कुछ अंतराल को पाटने की आवश्यकता है।

(मैंने सोचा था कि मैंने इसे ~ 50mW ऑपरेटिंग पावर पर मापा है, और बैटरी के वाट-घंटे के आधार पर, मैंने सोचा कि मैं एक सप्ताह में 5V से नीचे गिर जाऊंगा, लेकिन या तो मेरी शक्ति माप या मेरा गणित गलत था क्योंकि 4 सी-कोशिकाओं को रखा गया था एक लंबे समय के लिए जा रहा है।) काफी सीधा लेआउट: बस एक गुंजयमान यंत्र, ATmega328, एक फ्लैश चिप, एक डिबग जम्पर, एक डिबग एलईडी, बिजली आपूर्ति कैप, और वह इसके बारे में है। DorkBoard नाम की कोई चीज़ है जिसका मैं भी उपयोग कर सकता था, यह मूल रूप से DIP सॉकेट के आकार में ATMega328 देव बोर्ड के लिए आवश्यक सब कुछ है। मैंने एक खरीदने पर विचार किया लेकिन मेरा असतत दृष्टिकोण लगभग 50% सस्ता था। यहाँ डॉर्कबोर्ड लिंक है:

यहां मूल विचार है (स्रोत कोड बाद में शामिल किया जाएगा) बोर्ड कैसे संचालित होता है: जम्पर "डीबग" मोड पर सेट होता है: ऑप्टिकल सेंसर आउटपुट में एक परिवर्तन-मूल्य बाधा संलग्न करें, और डिटेक्टर के साथ मिलकर परीक्षण एलईडी फ्लैश करें। यह डिबगिंग के लिए बहुत मददगार था। जम्पर "रिकॉर्ड" मोड पर सेट है: एक ही इंटरप्ट को एक काउंटर पर संलग्न करें, और मुख्य लूप में, 1000 मिसे की देरी करें। १००० मिसे के अंत में, किनारे की संख्या के # को २५६-बाइट फ्लैश पृष्ठ पर लिखें, और जब पृष्ठ भर जाए, तो इसे लिखें और गिनती को रीसेट करें। सरल, है ना? बहुत ज्यादा। मुझे वास्तव में विनबॉन्ड फ्लैश डिवाइस पसंद हैं, मैं 90 के दशक में फ्लैश बैक डिजाइन करता था, इसलिए उन्हें फिर से प्रोग्राम करना मजेदार था। SPI इंटरफ़ेस शानदार है। उपयोग करने में इतना आसान। मैं योजनाबद्ध और स्रोत कोड को अपने लिए बोलने दूँगा। क्या मैंने उल्लेख किया है कि ईगलकैड कमाल है? यह सच में है। YouTube पर कुछ बेहतरीन ट्यूटोरियल हैं।

चरण 8: इलेक्ट्रॉनिक्स संलग्न करें

इलेक्ट्रॉनिक्स संलग्न करें
इलेक्ट्रॉनिक्स संलग्न करें

फिर, मेरे पास यहां बहुत अच्छी तस्वीरें नहीं हैं, लेकिन अगर आप पीवीसी के अंदर से चिपके दो प्लास्टिक गतिरोधों की कल्पना करते हैं, तो दोनों बोर्ड इसमें खराब हो गए हैं। यहाँ नीचे से जुड़े लकड़हारा बोर्ड का एक शॉट है। डिटेक्टर बोर्ड आवास के अंदर है।

चरण 9: अंशांकन

कैलिब्रेशन
कैलिब्रेशन
कैलिब्रेशन
कैलिब्रेशन
कैलिब्रेशन
कैलिब्रेशन
कैलिब्रेशन
कैलिब्रेशन

मैंने जानवर को जांचने के लिए एक परीक्षण रिग बनाया ताकि मैं कच्चे रोटर की गिनती को एमपीएच में बदल सकूं। हाँ, वह 2x4 है। मैंने एनीमोमीटर को एक छोर से जोड़ा, और एक डिबग Arduio को दूसरे से जोड़ा। एलसीडी ने रोटर की संख्या प्रदर्शित की। प्रक्रिया इस तरह से चली: 1) बिना ट्रैफिक वाली लंबी सीधी सड़क खोजें। 2) 2x4 को पकड़ें ताकि वह जितना संभव हो सके खिड़की से बाहर निकल जाए 3) अपने आईफोन या एंड्रॉइड पर वॉयस रिकॉर्डिंग चालू करें 4) अपनी पसंद के हैंडहेल्ड डिवाइस पर डिजिटल जीपीएस स्पीडोमीटर चालू करें 5) कई गति से लगातार ड्राइव करें और घोषणा करें आपके रिकॉर्डर के लिए गति और औसत रोटर मायने रखता है 6) क्रैश न करें 7)? 8) बाद में, ड्राइविंग न करते समय, अपने फोन संदेश को फिर से चलाएं और डेटा को एक्सेल में दर्ज करें और आशा करें कि एक रैखिक या एक घातीय या बहुपद एक आर-वर्ग मान के साथ 99% से अधिक फिट बैठता है यह रूपांतरण # बाद में उपयोग किया जाएगा। डिवाइस केवल कच्चे डेटा को कैप्चर करता है, मैंने इसे एक्सेल में एमपीएच (या केपीएच) में पोस्ट-प्रोसेस किया है। (क्या मैंने उल्लेख किया कि मैंने ऑलिव ड्रेब पेंट का एक बदमाश कोट लगाया था? मैं इसे "टैक्टिकल डेटा लॉगिंग एनीमोमीटर" कहूंगा, लेकिन फिर मुझे याद आया कि "टैक्टिकल" का अर्थ "ब्लैक" है।)

चरण 10: कुछ पवन डेटा एकत्र करें

जाओ कुछ पवन डेटा एकत्र करो!
जाओ कुछ पवन डेटा एकत्र करो!
जाओ कुछ पवन डेटा एकत्र करो!
जाओ कुछ पवन डेटा एकत्र करो!
जाओ कुछ पवन डेटा एकत्र करो!
जाओ कुछ पवन डेटा एकत्र करो!

कि यह बहुत सुंदर है। मुझे लगता है कि कुछ तस्वीरें गायब हैं, उदा। निचले आधार में चार सी-कोशिकाओं को नहीं दिखाया गया है। मैं एक स्प्रिंग-लोडेड होल्डर को फिट नहीं कर सका, इसलिए मैंने सोल्डरिंग को बैटरी में ही समाप्त कर दिया। मैं इसे बनाने के एक साल बाद यह निर्देश लिख रहा हूं, और संशोधन # 2 में, मैंने AA बैटरी का उपयोग किया क्योंकि मैंने बिजली की खपत को बहुत कम कर दिया था। एए का उपयोग करने से मुझे एक ऑन-ऑफ स्विच जोड़ने की अनुमति मिली और वास्तव में कुछ जगह खाली कर दी, अन्यथा यह बहुत तंग था। कुल मिलाकर मैं डिजाइन से काफी संतुष्ट था। नीचे दिया गया ग्राफ़ एक सप्ताह का औसत डेटा दिखाता है। सात दिन से बैटरियां मरने लगीं। मैं लगभग 1kHz पर कम कर्तव्य चक्र पर एलईडी चलाकर बैटरी जीवन में सुधार कर सकता था और रोटर के कोणीय वेग के तुलनात्मक रूप से कम होने के कारण मैं कोई किनारा नहीं खोता।

मज़े करो! अगर आपको सुधार की कोई गुंजाइश दिखे तो मुझे बताएं!

चरण 11: स्रोत कोड

संलग्न एक एकल Arduino स्रोत फ़ाइल है। मैंने इसे जीपीएल किया क्योंकि, हे, जीपीएल।

संपादित करें: मैं यह इंगित करना चाहता हूं कि 1s देरी() का उपयोग करने का मेरा कार्यान्वयन एक भयानक विचार है और एच में फ्लैश को लिखने और सेंसर को पढ़ने के लिए आवश्यक समय छोटा लग सकता है, लेकिन 7 के दौरान -10s यह कुछ महत्वपूर्ण बहाव को जोड़ता है। इसके बजाय, 1Hz टाइमर इंटरप्ट का उपयोग करें (328P पर टाइमर # 1 को पूरी तरह से 1Hz पर कैलिब्रेट किया जा सकता है)। सुरक्षित होने के लिए आपको एक बाड़ में कोड करना चाहिए, यदि किसी कारण से पृष्ठ लिखने और सेंसर को पढ़ने में 1 सेकंड से अधिक समय लगता है (गिराए गए नमूनों को संभालें), लेकिन एक टाइमर रुकावट सामान करने का तरीका है, ठीक है, समय- शुद्ध। चीयर्स!

सिफारिश की: