Jeffrey Cross
Jeffrey Cross

यह ईमेल का समय है - एक "ईमेल घड़ी" बनाओ .... जितना अधिक केबी आपको घड़ी की टिक मिल जाएगी!

यह ईमेल समय - मासूम-सी दिखने वाली "घड़ी" आपके इनबॉक्स में अपठित-संदेश पाइलअप - टॉम इगो द्वारा मॉनिटर करता है।

मुझे ईमेल के बारे में बहुत चिंता है। मेरे इनबॉक्स में प्रत्येक किलोबाइट मेरे जीवन के एक और मिनट को नष्ट कर देता है, लेकिन मैं इसे जांचना बंद नहीं कर सकता। इसलिए मैंने अपनी चिंता को एक ऐसे उपकरण में शामिल करने का फैसला किया, जो मेरे लिए मेरे आने वाले मेल की चिंता करेगा। मुझे हमेशा क्लॉकवर्क मैकेनिज्म पसंद था, इसलिए मैंने घड़ी के रूप में अपना ईमेल बुत ऑब्जेक्ट बना दिया। मुझे मिलने वाले नए मेल के प्रत्येक किलोबाइट के लिए, घड़ी लगातार आगे की ओर टिक करती है।

यहाँ मूल डिज़ाइन मेरे साथ आया है। घड़ी खुद एक माइक्रोकंट्रोलर द्वारा संचालित होती है, जो इंटरनेट से कनेक्ट होती है और एक प्रोग्राम पर सवाल उठाती है जो मेरे ईमेल खातों की जांच करता है। कार्यक्रम किलोबाइट की संख्या को वापस रिपोर्ट करता है, और माइक्रोकंट्रोलर घड़ी को प्रत्येक किलोबाइट के लिए एक टिक आगे बढ़ाता है। सरल!

इसे स्वयं बनाने के लिए, आपको यह जानना होगा कि माइक्रोकंट्रोलर कैसे प्रोग्राम करें और कुछ बेसिक वेब प्रोग्रामिंग कैसे करें। माइक्रोकंट्रोलर प्रोग्रामिंग के लिए, प्राइम में आर्टिकल देखें, वॉल्यूम 04 (पृष्ठ 158), या मेरी किताब भौतिक कम्प्यूटिंग: कंप्यूटर के साथ भौतिक दुनिया को संवेदनशील और नियंत्रित करना। वेब घटक के लिए, मैंने पर्ल में लिखित एक कॉमन गेटवे इंटरफेस (CGI) स्क्रिप्ट का उपयोग किया, लेकिन आप PHP, Python, Ruby, और अन्य भाषाओं में CGI स्क्रिप्ट भी लिख सकते हैं।

  1. संपर्कों को हल करने के लिए सोल्डर किए गए तार। नीचे क्रिस्टल पर ध्यान दें और केंद्र में बूँद के नीचे "मिस्ट्री चिप" (चित्र 1)।
  2. सस्ती बैटरी की घड़ियां आमतौर पर उसी तरह से काम करती हैं (चित्र 2)।
  3. घड़ी का रियर व्यू, अर्डुइनो माइक्रोकंट्रोलर बोर्ड (चित्र 3) की प्रोग्रामिंग के लिए ईथरनेट, पावर और यूएसबी-बी पोर्ट के लिए आवास में ड्रिल किए गए छेद दिखा रहा है।
  4. घड़ी के सामने का दृश्य, चेहरा हटा दिया गया (चित्र 4)।

सामग्री

यहां मैंने अपनी ईमेल घड़ी के बुनियादी बिल्डिंग ब्लॉक्स के लिए चुना है।

माइक्रोकंट्रोलर I ने Arduino मॉड्यूल (arduino.berlios.de) का उपयोग किया, एक छोटा I / O बोर्ड और विकास का वातावरण जो Atmel के ATMega8 माइक्रोकंट्रोलर के आसपास बनाया गया है। Arduino वायरिंग पर आधारित है, एक और खुला और आसान विकास वातावरण है, जो ATMega128 चिप का उपयोग करता है। मैंने Arduino का विकल्प चुना क्योंकि मुझे पता था कि मैं अंततः अपना कस्टम सर्किट बोर्ड बनाना चाहता हूं, और ATMega8 ATMega128 की तुलना में मिलाप करना आसान है।

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

घड़ी मैं एक यांत्रिक घड़ी बनाने के लिए प्यार करता था, लेकिन उसके पास समय नहीं था, इसलिए मैंने हिम्मत करके एक सस्ती बैटरी घड़ी ली और उसके ड्राइव शाफ्ट को घड़ी की तरह एंटिक टेस्ट गेज के केंद्र में जोड़ा।

सिस्टम आरेख। एक सीजीआई स्क्रिप्ट मेरे मेल खातों पर सवाल उठाती है और नए मेल वॉल्यूम लौटाती है। एक माइक्रोकंट्रोलर स्क्रिप्ट को कॉल करता है, और तदनुसार घड़ी के हाथों को आगे बढ़ाता है।

इसका निर्माण

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

मैं solenoid संपर्कों पर सुराग की एक जोड़ी मिलाप और घड़ी वापस एक साथ रखा। फिर मैंने मिस्ट्री चिप को दरकिनार कर सीधे 5VDC पावर के साथ सॉलोनॉइड को स्पंदित किया। मोटर कूद गया, लेकिन घड़ी टिक नहीं पाई। स्पष्ट रूप से, सीखने के लिए और भी बहुत कुछ था, इसलिए मैंने घड़ी की बैटरी को वापस डाल दिया और एक आस्टसीलस्कप की ओर जुड़ गया कि यह देखने के लिए कि वोल्टेज किस तरह से बदल गया। पैटर्न मेरी अपेक्षा से अधिक जटिल था। प्रत्येक दूसरा, नाड़ी वैकल्पिक होगा: उच्च-कम-शून्य एक सेकंड, और निम्न-उच्च-शून्य अगले।

मैंने इस पैटर्न को डुप्लिकेट करने के लिए माइक्रोकंट्रोलर को प्रोग्राम किया, और इसके आउटपुट को घड़ी में खिलाया। इसने कुछ प्रयोग किए, लेकिन अंततः मुझे घड़ी को अच्छी तरह से नियंत्रित करने के लिए माइक्रोकंट्रोलर मिल गया। इससे उत्पन्न प्रत्येक टिक ने घड़ी को लगभग दो सेकंड आगे बढ़ाया। चूंकि मैं वास्तविक समय रखने से संबंधित नहीं था, यह ठीक था।

अगला कदम मेल की जांच के लिए माइक्रोकंट्रोलर प्राप्त करना था। XPort को माइक्रोकंट्रोलर साइड से जुड़े केवल तीन तारों की आवश्यकता थी: पोर्ट प्राप्त करने के लिए माइक्रोप्रोसेसर की अनुमति देने के लिए सीरियल रिसीव, सीरियल ट्रांसमिट और एक रीसेट कनेक्शन। XPort के लिए एक सर्किट बोर्ड बनाना एक चुनौती थी क्योंकि इसके पिन का पालन नहीं होता है 1/ 10 "ग्रिड, हॉबीस्ट परफ़ॉर्मर मानक। इसलिए मैंने मॉड्यूल को माउंट करने के लिए एक कस्टम बोर्ड डिज़ाइन करने के लिए CadSoft के ईगल सॉफ़्टवेयर का उपयोग किया। आप लेआउट फ़ाइल tigoe.net/emailclock पर पा सकते हैं।

फिर मैंने यूएसबी-सीरियल सीरियल केबल के माध्यम से अपने लैपटॉप से ​​XPort को कॉन्फ़िगर किया। लैंट्रोनिक्स के निर्देशों का पालन करते हुए, मैंने इसे एक आईपी एड्रेस, गेटवे एड्रेस और सबनेट मास्क दिया। मैंने सीरियल पोर्ट सेटिंग्स को भी कॉन्फ़िगर किया है।

मैंने एक टर्मिनल विंडो खोली, XPort में टेलनेट किया, और "हैलो वर्ल्ड!" में प्रवेश किया, ताकि यह पुष्टि हो सके कि संदेश गुजर रहे थे। फिर मैंने टेलनेट को छोड़ दिया और धारावाहिक विंडो में इसके संख्यात्मक पते (पोर्ट 80) को दर्ज करके अपने वेब सर्वर से कनेक्ट करने का प्रयास किया:

C82.165.199.37 / 80।

XPort ने "C" लौटाकर पुष्टि की। मैंने अपने सर्वर पर एक वेब पेज के लिए HTTP अनुरोध के साथ जवाब दिया, http://tigoe.net/pcomp/index.shtml:

GET /pcomp/index.shtml HTTP / 1.1 HOST: tigoe.net

सर्वर HTTP शीर्ष लेख और अनुरोधित पृष्ठ की सामग्री लौटाता है:

HTTP / 1.1 200 ठीक तिथि: मंगल, 13 दिसंबर 2005 20:50: 27 GMT सर्वर: Apache / 1.3.33 (Unix) स्थानांतरण-एन्कोडिंग: chunked सामग्री-प्रकार: पाठ / html ... इत्यादि।

सफलता! HTTP (हाइपर टेक्स्ट ट्रांसपोर्ट प्रोटोकॉल) के इस आदान-प्रदान को देखकर, वेब ब्राउज़र और सर्वर की सामान्य रूप से छिपी हुई भाषा, का मतलब था कि मैंने ब्राउज़र के रूप में प्रदर्शन करने के लिए XPort प्राप्त किया था। अब मुझे बस ऐसा करने के लिए माइक्रोकंट्रोलर प्राप्त करना था: एक शुद्ध कनेक्शन खोलें, एक पृष्ठ का अनुरोध करें, और परिणाम पढ़ें। आप ऐसा करने के लिए tigoe.net/emailclock पर मेरा कोड पा सकते हैं। मैंने अपने लैपटॉप से ​​Arduino के ऑनबोर्ड सीरियल-टू-यूएसबी कनवर्टर के माध्यम से संकलित फर्मवेयर अपलोड किया है।

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

.

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

यह कितनी अच्छी तरह काम करता है? मैं अभी भी अपने ईमेल को अनिवार्य रूप से देखता हूं, लेकिन इस घड़ी को बनाने में जितने घंटे लगे, मैंने अपना मेल प्रोग्राम बिल्कुल नहीं खोला!


टॉम इगोए न्यूयॉर्क विश्वविद्यालय में इंटरएक्टिव दूरसंचार कार्यक्रम में भौतिक कंप्यूटिंग क्षेत्र का नेतृत्व करते हैं।

संदर्भ:

http://arduino.berlios.de

http://tigoe.net/emailclock

http://tigoe.net/pcomp/index.shtml

MAKE 6 से - पृष्ठ 117. बनाने के लिए, सदस्यता लें या सिंगल वॉल्यूम खरीदें।

शेयर

एक टिप्पणी छोड़