विषयसूची:

$20 से कम के लिए दुनिया भर में माइक्रोकंट्रोलर लिंक: 15 कदम
$20 से कम के लिए दुनिया भर में माइक्रोकंट्रोलर लिंक: 15 कदम

वीडियो: $20 से कम के लिए दुनिया भर में माइक्रोकंट्रोलर लिंक: 15 कदम

वीडियो: $20 से कम के लिए दुनिया भर में माइक्रोकंट्रोलर लिंक: 15 कदम
वीडियो: How To Earn Money From Binance Without Investment 2024, जुलाई
Anonim
$20. से कम के लिए दुनिया भर में माइक्रोकंट्रोलर लिंक
$20. से कम के लिए दुनिया भर में माइक्रोकंट्रोलर लिंक

अपने होम थर्मोस्टेट को काम से नियंत्रित करें। दुनिया में कहीं से भी एक स्विच को फ्लिक करके स्प्रिंकलर चालू करें। यह निर्देशयोग्य दिखाता है कि इंटरनेट की रीढ़ और कुछ सरल VB. Net कोड का उपयोग करके दो या अधिक $ 4 माइक्रोकंट्रोलर को कैसे लिंक किया जाए। यह पहले के इंस्ट्रक्शनल पर बनाता है जो दिखाता है कि माइक्रोकंट्रोलर को पीसी से कैसे जोड़ा जाए और सर्वो को नियंत्रित करने के लिए पॉट का उपयोग किया जाए।://www.instructables.com/id/Control-real-world-devices-with-your-PC/ इस बार हमारे पास एक माइक्रोकंट्रोलर है जो एक VB. Net प्रोग्राम से बात कर रहा है, फिर एक FTP वेबसाइट पर, दूसरे VB. Net पर वापस। मानव हस्तक्षेप के साथ या उसके बिना दुनिया में कहीं भी एक दूसरा माइक्रोकंट्रोलर। अगर वे एक दूसरे से बात नहीं कर सकते हैं तो मैट्रिक्स में मशीनों को और कैसे लेना चाहिए?

चरण 1: भागों को इकट्ठा करो

भागों को इकट्ठा करो
भागों को इकट्ठा करो

कई भाग पीसी कंट्रोल इंस्ट्रक्शनल https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ के समान हैं और यह सुझाव दिया जाता है कि प्रयास करने से पहले इसे पहले पूरा कर लिया जाए। दो माइक्रोकंट्रोलर को जोड़ने के लिए। हालांकि सर्वो को नियंत्रित करने के लिए बर्तन का उपयोग करना काफी संभव है, इस बार हम कुछ सरल करने जा रहे हैं - एक स्विच जो एक एलईडी को चालू करता है। स्विच आसानी से एक टैंक स्तर सेंसर हो सकता है और एलईडी एक नदी के पास एक पंप हो सकता है लेकिन आइए पहले कुछ आसान काम करें। पार्ट्स - दो पिकैक्स 08 एम चिप्स - रेव एड सहित कई स्रोतों से उपलब्ध https://www.rev- ed.co.uk/picaxe/ (यूके), पीएच एंडरसन https://www.phanderson.com/ (यूएसए) और माइक्रोज्ड https://www.microzed.com.au/ (ऑस्ट्रेलिया)। ये चिप्स $4US के अंतर्गत हैं। इनमें से दो: प्रोटोबार्ड, 9वी बैटरी और बैटरी क्लिप, 10k रेसिस्टर, 22k रेसिस्टर, 33uF 16V कैपेसिटर, 0.1uF कैपेसिटर, 7805L लो पावर 5V रेगुलेटर, वायर (सॉलिड कोर टेलीफोन/डेटा वायर जैसे Cat5/6), LED, 1k रेसिस्टर। 1 में से: D9 महिला सॉकेट और कवर और 2 मीटर 3 (या 4) कोर डेटा वायर (डाउनलोड के लिए) और एक टॉगल स्विच। 9 पिन सीरियल पोर्ट वाले 2 कंप्यूटर (हालांकि एक कंप्यूटर पर डिबग किए जा सकते हैं) और एक इंटरनेट कनेक्शन। बिना सीरियल पोर्ट वाले कंप्यूटरों के लिए, USB से सीरियल डिवाइस https://www.rev-ed.co.uk/docs/axe027.pdf और एक छोटा स्टीरियो सॉकेट।

चरण 2: कुछ सॉफ़्टवेयर डाउनलोड और इंस्टॉल करें

कुछ सॉफ्टवेयर डाउनलोड और इंस्टॉल करें
कुछ सॉफ्टवेयर डाउनलोड और इंस्टॉल करें

हमें मुफ्त VB. Net और पिकैक्स कंट्रोलर सॉफ्टवेयर की आवश्यकता होगी और यदि आपने पीसी कंट्रोलर इंस्ट्रक्शनल किया है तो आपके पास ये पहले से ही होंगे। VB. Net (विजुअल बेसिक एक्सप्रेस) https://msdn2.microsoft.com/en से उपलब्ध है। -us/express/aa718406.aspxपिकैक्स सॉफ्टवेयर https://www.rev-ed.co.uk/picaxe/ से उपलब्ध है। या कुछ और। मुझे वास्तव में यह मेरा वास्तविक ईमेल देने में मददगार लगा क्योंकि वे कभी-कभार अपडेट भेजते हैं। मैं पिकैक्स फोरम का भी उल्लेख करने जा रहा हूं https://www.picaxeforum.co.uk/ क्योंकि यह एक प्रकार का फोरम है जिसमें शिक्षकों और शिक्षकों का स्टाफ होता है और जहां छात्रों को आमतौर पर कुछ ही घंटों में सवालों के जवाब मिल सकते हैं। फ़ोरम सरलतम प्रश्नों को भी बहुत अच्छी तरह से समझता है क्योंकि कुछ छात्र अभी भी प्राथमिक विद्यालय स्तर पर हैं। कृपया मदद मांगने से न डरें!

चरण 3: एक डाउनलोड सर्किट बनाएँ

एक डाउनलोड सर्किट बनाएँ
एक डाउनलोड सर्किट बनाएँ

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

मैं यह भी जोड़ सकता हूं कि पिकैक्स 3 एए बैटरी पर खुशी से चलते हैं। एनालॉग इनपुट चलाने के लिए एक 5V विनियमित आपूर्ति उपयोगी है क्योंकि संदर्भ वोल्टेज नहीं बदलते हैं, लेकिन सरल चालू/बंद सर्किट के लिए एक विनियमित आपूर्ति की आवश्यकता नहीं होती है। इन स्थितियों में 5V reg को छोड़ा जा सकता है।

चरण 4: चिप्स को प्रोग्राम करें

चिप्स प्रोग्राम करें
चिप्स प्रोग्राम करें

हम एक प्रोग्राम को Tx और एक Rx कहेंगे। टीएक्स कंट्रोलिंग चिप है और इसमें एक स्विच और एक एलईडी है। आरएक्स में एक एलईडी भी है। जब स्विच बदलता है तो सिग्नल Tx से Rx तक जाता है, LED को बदलता है और दूसरा वेरिएबल भी बदलता है जो फिर Tx में वापस चला जाता है। तो स्विच को फ्लिक करें और एक मिनट से भी कम समय में दोनों सर्किटों पर एलईडी परिवर्तन यह दर्शाता है कि संदेश वहां पहुंच गया है और आरएक्स नई स्विच स्थिति पर कार्य कर रहा है। सबसे सरल स्तर पर पिकैक्स में 14 सिंगल-बाइट रजिस्टर होते हैं। जब एक वर्चुअल नेटवर्क बनाया जाता है तो हम उन सभी रजिस्टरों को एक साथ जोड़ते हैं, इसलिए यदि एक बाइट एक पिकैक्स में बदलता है तो यह सभी पिकैक्स में बदल जाता है। स्पष्ट रूप से यदि दो पिकैक्स एक ही बाइट को बदलने की कोशिश कर रहे हैं तो यह बहुत भ्रमित हो जाएगा लेकिन यदि प्रत्येक पिकैक्स केवल एक बाइट बदलता है तो अन्य सभी पिकैक्स उस परिवर्तन को देख सकते हैं और उस पर कार्य कर सकते हैं। सरल संदेशों को आगे और पीछे भेजा जा सकता है यदि एक निश्चित बाइट को केवल एक पिकैक्स द्वारा बदला जाता है। एक पॉट एक रजिस्टर में मूल्य को बदल सकता है और एक या एक से अधिक अन्य पिकैक्स समझ सकते हैं कि एक सर्वो या जो कुछ भी बदल जाता है और एक हीटर चालू करता है। एक दूसरा रजिस्टर कमरे में तापमान वापस भेज सकता है। प्रोग्राम को पिकैक्स प्रोग्रामर में कॉपी और पेस्ट करें और पिकैक्स प्रोग्रामर के भीतर से नीले डाउनलोड एरो का उपयोग करके उन्हें प्रत्येक संबंधित चिप्स पर डाउनलोड करें। Tx:main:serin 3, N2400, ("Data"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13' को कंप्यूटर से पैकेट मिलता है अगर pin2= 0 तब 'स्विच का परीक्षण करें और स्थिति b0 = 0 और b0 = 1 एंडिफ के आधार पर b0 को पंजीकृत करें, यदि b1 = 0 है तो' अन्य पिकैक्स सेट b1 के आधार पर b0 कम 1 'नेतृत्व में उच्च 1' एंडिफ सेरआउट 0, N2400 पर ले जाता है, ("डेटा", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13)' कंप्यूटर पर वापस भेजें मुख्य और Rx: मुख्य: सेरिन 3, N2400, ("डेटा"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13' कंप्यूटर से पैकेट प्राप्त करें b1=b0' रजिस्टर b1 को बराबर रजिस्टर b0 में बदलें यदि b1 =0 फिर निम्न 1' लेड ऑफ अदर हाई 1' एंडिफ सेरआउट 0, N2400, ("डेटा", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12 पर ले जाया गया।, b13)' कंप्यूटर पर वापस भेजें गोटो मुख्य

चरण 5: टीएक्स सर्किट बनाएं

टीएक्स सर्किट बनाएं
टीएक्स सर्किट बनाएं

यदि आप एक कार्यशील सर्किट और एक प्रोग्रामिंग सर्किट के बीच आगे और पीछे फ़्लिप कर रहे हैं, तो कनेक्शन को लेग 2 से और 22k रेसिस्टर के स्थान को लेग 2 से लेग 4 में बदलना सुनिश्चित करें। या आप एक समर्पित डाउनलोड सर्किट बना सकते हैं और चिप्स को स्थानांतरित कर सकते हैं। आर - पार। बस ध्यान दें कि कोई सर्किट चल रहा है या डाउनलोड हो रहा है क्योंकि यह काफी भ्रमित करने वाला हो सकता है। विशेष रूप से, ध्यान दें कि एक रनिंग सर्किट काम नहीं करेगा यदि लेग 2 को तैरता हुआ छोड़ दिया जाए - इसे ग्राउंडेड करने की आवश्यकता है। लेग 2 डाउनलोड पिन है और अगर इसे तैरता हुआ छोड़ दिया जाता है तो यह फ्लोरो लाइट्स से आवारा आरएफ उठाता है और चिप को लगता है कि कोई अन्य प्रोग्राम डाउनलोड किया जा रहा है।

यह पिकैक्स नामकरण का भी उल्लेख करने योग्य है जो एक भौतिक पिन को एक पैर और एक आभासी पिन को एक पिन कहता है। इस प्रकार कोड में पिन 2 पर आउटपुट वास्तव में भौतिक पैर 5 पर एक आउटपुट है। यह अजीब लग सकता है लेकिन इसका मतलब है कि कोड को 28 और 40 पिन संस्करणों जैसे बड़े पिकैक्स में पोर्ट किया जा सकता है और अभी भी काम करता है।

चरण 6: आरएक्स सर्किट बनाएं

आरएक्स सर्किट बनाएं
आरएक्स सर्किट बनाएं

यह सर्किट लगभग ट्रांसमीटर जैसा ही है - इसमें कोई स्विच नहीं है।

चरण 7: कुछ VB. Net कोड लिखें

कुछ VB. Net कोड लिखें
कुछ VB. Net कोड लिखें

मैं कोड संकलित कर सकता था और इस प्रोग्राम को एक संकलित.exe के रूप में उपलब्ध करा सकता था लेकिन कुछ VB. Net सीखना इतना अविश्वसनीय रूप से उपयोगी है कि यह चरण दर चरण इसके माध्यम से जाने लायक है। यदि आप इसे दो अलग-अलग कंप्यूटरों पर चला रहे हैं तो आप प्रोग्राम को एक.exe में बना सकते हैं जो एक छोटा सेटअप प्रोग्राम बनाता है जिसे दूसरे कंप्यूटर पर स्थापित किया जा सकता है। या आप दोनों कंप्यूटरों पर VB. Net डाल सकते हैं और VB. Net के भीतर से प्रोग्राम चला सकते हैं, मान लें कि आप https://www.instructables.com/id/S1MMU2XF82EU2GT के चरण 7 और 8 से एक नया VB.net प्रोजेक्ट खोलना जानते हैं। /रिक्त प्रपत्र पर टूलबार से निम्नलिखित घटक जोड़ें और उन्हें दिखाए गए स्थानों में प्रपत्र पर रखें। लेबल और टेक्स्टबॉक्स के लिए, टेक्स्ट प्रॉपर्टी (नीचे दाईं ओर) को आवश्यकतानुसार बदलें। टाइमर के लिए सेटिंग्स के बारे में चिंता न करें - हम उन्हें कोड में बदल देंगे लेकिन टाइमर लगाना सुनिश्चित करें। आप चीजों को इधर-उधर कर सकते हैं और स्थान के बारे में कोई वास्तविक नियम नहीं हैं। बड़ा टेक्स्ट बॉक्स एक RichTextBox है और छोटे तीन सामान्य टेक्स्टबॉक्स हैं। क्रम के संदर्भ में हम फॉर्म के शीर्ष पर शुरू कर रहे हैं और नीचे जा रहे हैं। यदि आप कुछ छोड़ देते हैं तो कोड में एक त्रुटि होगी जो किसी प्रकार का सुराग देना चाहिए। कृपया टेक्स्टबॉक्स 3 के लिए एक यादृच्छिक फ़ाइल नाम चुनें - यह ftp सर्वर पर आपके अद्वितीय पिकैक्स के समूह का नाम है और जाहिर है अगर हम सभी इसका उपयोग करते हैं एक ही नाम तो डेटा सब गड़बड़ हो जाएगा! इस तालिका में डैश के बारे में क्षमा करें - रिक्त स्थान डालने से तालिका में स्वरूपण खो जाता है। टूलबॉक्स ऑब्जेक्ट ------ टेक्स्ट ----------- --------------------------------- नोट्सलेबल1---------------------- पिकाक्स संचार लेबल २-------- एफ़टीपी स्थिति लेबल ३------- स्थिति लेबल ४----------- -------- Picaxe RegistersLabel5----------------------रजिस्टर 0-13लेबल6---------------------- मान ०-२५५लेबल७ ------- एफ़टीपी लिंक फ़ाइल नाम टेक्स्टबॉक्स१-१-०-------- ------------------------------------- एक शून्य है न कि OTextbox2----- ---------------टेक्स्टबॉक्स3----------------माईफाइलनाम--------------------- ---------- बदलें ताकि कोई टकराव न हो!बटन1------------------ModifyRichtextbox1 Picturebox1 Picturebox2 Timer1

चरण 8: कुछ कोड जोड़ें

कुछ कोड जोड़ें
कुछ कोड जोड़ें

प्रपत्र दृश्य और कोड दृश्य के बीच फ़्लिप करने वाले बटन के स्थान के लिए अन्य निर्देश के चरण 12 देखें। कोड दृश्य पर स्विच करें और निम्न कोड को इसमें पेस्ट करें। सभी रंग स्क्रीनशॉट की तरह फिर से दिखाई देने चाहिए। यदि वर्डव्रैप समस्या के कारण कोई लाइन ठीक से कॉपी नहीं हुई है तो त्रुटि संदेश दूर होने तक रिक्त स्थान हटाएं। मैंने अधिकांश पंक्तियों पर टिप्पणी करने की कोशिश की है ताकि कोड कम से कम कुछ समझ में आए। सार्वजनिक वर्ग बिट हटाएं ताकि इसे चिपकाने से पहले पाठ खाली हो - इस कोड में पहले से ही एक सार्वजनिक वर्ग है। यदि टेक्स्ट बॉक्स जैसी वस्तु को फॉर्म पर नहीं रखा गया है या उसका नाम गलत है तो वह टेक्स्ट कोड में उसके नीचे एक नीली रेखा के साथ आएगा। सिस्टम आयात करता है। IOImports Strings = Microsoft. VisualBasic 'तो उपयोग कर सकते हैं बाएँ (और दाएँ) जैसी चीज़ें (स्ट्रिंग्स पब्लिक क्लास फॉर्म 1 पब्लिक डिक्लेयर सब स्लीप लिब "कर्नेल 32" (ByVal dwMilliseconds As Integer) 'स्लीप स्टेटमेंट के लिए Dim WithEvents serialPort As New IO. Ports. SerialPort' सीरियल पोर्ट डिम PicaxeRegisters घोषित करता है (0 से 13) चूंकि बाइट 'बी0 से बी13 डिम मॉडिफाइफ्लैग को बूलियन प्राइवेट सब फॉर्म1_लोड के रूप में पंजीकृत करता है (बायवैल प्रेषक के रूप में ऑब्जेक्ट के रूप में, बायवैल ई के रूप में सिस्टम.इवेंटएआरजीएस) मुझे संभालता है। लोड' को यह सब बकवास सामान चाहिए -.net इसे स्वचालित रूप से डालता है जब फॉर्म 1 ईवेंट ऊपर/लोड पर जाता है Timer1. Enabled = True ' बनाए जाने पर इसे डिफ़ॉल्ट के रूप में कोड में रखें Timer1. Interval = 20000 ' हर 20 सेकंड में PictureBox1. BackColor = Color. Gray ' कॉम्स बॉक्स ग्रे PictureBox2. BackColor = Color. Gray ModifyFlag = False से शुरू करें। यदि किसी मान को मैन्युअल रूप से संशोधित करें तो s kip डाउनलोड RichTextBox1. Multiline = True ' तो एक से अधिक लाइन प्रदर्शित कर सकते हैं DisplayPicaxeRegisters() '14 रजिस्टरों को प्रदर्शित करें कॉल ReadFTPFilename()' डिस्क से फ़ाइल नाम पढ़ें (हर 20 सेकंड में सहेजा गया) एंड सब सब सीरियलTxRx() मंद डेटापैकेट (0 से 17) बाइट के रूप में संपूर्ण डेटा पैकेट "डेटा" +14 बाइट्स Dim i As Integer 'i हमेशा लूप आदि के लिए उपयोगी होता है i = 0 से 3 DataPacket (i) = Asc (Mid("Data", i + 1) के लिए, 1)) 'पैकेट में "डेटा" शब्द जोड़ें अगला i = 0 से 13 DataPacket (i + 4) = PicaxeRegisters (i) के लिए 'पैकेट में सभी बाइट्स जोड़ें अगला यदि serialPort. IsOpen तो serialPort. Close() 'सिर्फ पहले से खोले जाने की स्थिति में अगर सीरियलपोर्ट के साथ प्रयास करें। छोटे पिकैक्स। पैरिटी = आईओ। पोर्ट्स। पैरिटी। कोई नहीं 'कोई समानता नहीं। डेटाबिट्स = 8' 8 बिट्स। स्टॉपबिट्स = आईओ.पोर्ट्स। स्टॉपबिट्स। वन 'वन स्टॉप बिट। रीडटाइमआउट = 1000' मिलीसेकॉन ds तो 1 सेकंड में समय समाप्त हो जाता है यदि कोई प्रतिक्रिया नहीं है। ओपन () 'सीरियल पोर्ट खोलें। DiscardInBuffer ()' इनपुट बफर को साफ़ करें। लिखें (डेटापैकेट, 0, 18) 'डेटापैकेट सरणी भेजें स्लीप (300)' 100 मिलीसेकंड डेटा स्ट्रीम के लंबे होने पर डेटा के वापस आने और अधिक होने तक प्रतीक्षा करने के लिए न्यूनतम। (i - 4) = डेटापैकेट (i) 'नए डेटा पैकेट को रजिस्टर ऐरे में ले जाएं अगला पिक्चरबॉक्स1.बैककलर = कलर।ग्रीनयेलो' वर्किंग कैच एक्स ऐस एक्सेप्शन PictureBox1. BackColor = Color. Red ' काम नहीं कर रहा है एंड ट्राई एंड सब सब FTPUpload (ByVal Filename As String) Dim localFile As String 'डेटा स्टोर करने के लिए जगह Dim RemoteFile As String' फ़ाइल नाम केस संवेदी है यह वास्तव में महत्वपूर्ण है Const होस्ट स्ट्रिंग = "ftp: //ftp.0catch.com" के रूप में 'ध्यान दें कि 0 एक है ज़ीरो नॉट ए कैरेक्टर ओ कॉन्स्ट यूजरनेम स्ट्रिंग के रूप में = "picaxe.0catch.com" कॉन्स्ट पासवर्ड स्ट्रिंग के रूप में = "पिकैक्सेस्टर" डिम यूआरआई स्ट्रिंग लोकलफाइल के रूप में = फ़ाइल नाम 'शायद जरूरत नहीं है, लेकिन अगर किसी स्थान को परिभाषित करें जैसे c:\mydirectory आसानी से इस तरह से जोड़ सकता है RemoteFile = "/" + Filename 'फ़ाइल ftp सर्वर की जरूरत है "/" सामने URI = होस्ट + रिमोटफाइल में जोड़ा गया है सिस्टम के रूप में मंद ftp का प्रयास करें. Net. FtpWebRequest = CType(System. Net. FtpWebRequest. Create(URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential (उपयोगकर्ता नाम, पासवर्ड) 'लॉग इन ftp. KeepAlive = False' होगा एक बार किया गया ftp. UseBinary = True 'उपयोग बाइनरी कॉमस ftp. Timeout = 9000' 9 सेकंड के बाद टाइमआउट - बहुत उपयोगी है क्योंकि ftp कभी-कभी मर जाता है 'टाइमआउट (और 20 सेकंड की घड़ी आवृत्ति) को डायलअप कनेक्शन ftp के लिए धीमा होने की आवश्यकता हो सकती है। विधि = System. Net. WebRequestMethods. Ftp. UploadFile ' फ़ाइल भेजना प्रारंभ करें Dim fs As New FileStream(localFile, FileMode. Open) 'स्थानीय फ़ाइल खोलें Dim filecontents(fs. Length) as Byte' मेमोरी fs. Read(filecontents, 0, fs. Length) fs. Close () 'फ़ाइल बंद करें मंद अनुरोध स्ट्रीम के रूप में स्ट्रीम = ftp. GetRequestStream ()' एफ़टीपी लिंक अनुरोध शुरू करें ream. Write(filecontents, 0, filecontents. Length) 'इसे भेजें requestStream. Close()' लिंक को बंद करें PictureBox2. BackColor = Color. GreenYellow 'बॉक्स को हरे रंग में बदलें, ठीक काम करने के लिए लेबल2.टेक्स्ट = "एफ़टीपी कनेक्टेड" ' पाठ कह रहा है कि यह जुड़ा हुआ है कैच 'पिक्चरबॉक्स 2 को कनेक्ट नहीं कर सकता है। बैककोलर = कलर। रेड' बॉक्स से लाल रंग में कोई कनेक्शन नहीं है लेबल 2. टेक्स्ट = "एफ़टीपी अपलोड विफल" 'टेक्स्ट कह रहा है कि कनेक्शन विफल रहा है एंड ट्राई एंड सब सब एफ़टीपीडाउनलोड (स्ट्रिंग के रूप में बायवैल फ़ाइल नाम) ' डाउनलोड रिमोटफाइल को लोकलफाइल में डिम लोकलफाइल को स्ट्रिंग के रूप में 'डेटा स्टोर करने के लिए जगह डिम रिमोटफाइल के रूप में' फाइलनाम केस सेंसिटिव है यह वास्तव में महत्वपूर्ण है कॉन्स्ट होस्ट स्ट्रिंग के रूप में = "ftp://ftp.0catch.com" कॉन्स्ट यूजरनेम स्ट्रिंग के रूप में = "पिकैक्स.0catch.com" कांस्ट पासवर्ड स्ट्रिंग के रूप में = "पिकैक्सेस्टर" डिम यूआरआई स्ट्रिंग के रूप में 'लोकलफाइल = "सी: \" + फाइलनाम 'स्टोर रूट डायरेक्टरी में है, लेकिन इस लोकलफाइल = फाइलनाम को बदल सकता है, इसलिए सी: / अगर परिभाषित करने की आवश्यकता है तो जोड़ सकते हैं वास्तविक स्थान रिमोटफाइल = "/" + फ़ाइल नाम 'दूरस्थ एफ़टीपी स्थान में जोड़ा गया यूआरआई = होस्ट + रिमोटफाइल' मेक अप पूरा पता Dim ftp को System. Net. FtpWebRequest = CType(System. Net. FtpWebRequest. Create(URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential(username, पासवर्ड) के रूप में आज़माएं ' ftp में लॉग इन करें. KeepAlive = False 'समाप्त ftp के बाद डिस्कनेक्ट हो जाएगा। उपयोग बाइनरी = ट्रू' बाइनरी मोड ftp. Timeout = 9000 '9 सेकंड के बाद टाइमआउट ftp. Method = System. Net. WebRequestMethods. Ftp. DownloadFile' फ़ाइल डाउनलोड करें ' को टुकड़ों में पढ़ें पता नहीं फ़ाइल कितनी बड़ी है प्रतिक्रिया का उपयोग System. Net. FtpWebResponse = CType(ftp. GetResponse, System. Net. FtpWebResponse) के रूप में प्रतिक्रियास्ट्रीम का उपयोग IO. Stream = प्रतिक्रिया के रूप में। GetResponseStream नए IO के रूप में fs का उपयोग करना। IO. FileMode. Create) डिम बफर (2047) जैसा कि बाइट डिम को इंटीजर के रूप में पढ़ा जाता है = 0 डू रीड = रिस्पॉन्सस्ट्रीम। रीड (बफर, 0, बफर। लेंथ) 'टुकड़ा एफटीपी एफएस से। राइट (बफर, 0, रीड)' और फ़ाइल करने के लिए लिखें लूप जब तक पढ़ें = 0 'जब तक कोई और टुकड़े प्रतिक्रिया न करें। e फ़ाइल प्रतिक्रिया का उपयोग करके समाप्त करें। बंद करें () 'इसे बंद करें, भले ही कुछ भी न हो प्रतिक्रिया का उपयोग करना समाप्त करें। बंद करें () PictureBox2. BackColor = Color. GreenYellow 'ग्रीन बॉक्स जैसा कि यह काम करता है लेबल 2. टेक्स्ट = "एफ़टीपी कनेक्टेड" 'और पाठ यह कह रहा है काम किया अंत कैच का उपयोग करके 'यहां त्रुटि कोड डालें PictureBox2. BackColor = Color. Red' लाल बॉक्स क्योंकि यह काम नहीं करता है लेबल 2. टेक्स्ट = "एफ़टीपी डाउनलोड विफल" 'और यह कहने के लिए संदेश अंत उप निजी उप टाइमर 1_टिक (बायवैल प्रेषक) का प्रयास करें System. Object के रूप में, ByVal e As System. EventArgs) हैंडल करता है Timer1. Tick if ModifyFlag = False तब 'यदि उपयोगकर्ता ने बाइट बदली है तो लेबल3.टेक्स्ट = "डाउनलोडिंग" सिस्टम डाउनलोड न करें। Windows. Forms. Application. DoEvents() ' इसलिए नया लेबल टेक्स्ट प्रदर्शित करता है कॉल FTPDownload(TextBox3. Text) 'दूरस्थ फ़ाइल डाउनलोड करें। = "पिकैक्स से बात करना" System. Windows. Forms. Application. DoEvents() Else ModifyFlag = False 'झंडा रीसेट अंत अगर कॉल SerialTxRx() 'पिकैक्स को भेजें और इसे वापस पढ़ें लेबल3.टेक्स्ट = "पिकैक्स से भेजा और प्राप्त किया गया" Label3. Text = "अपलोडिंग" System. Windows. Forms. Application. DoEvents() FTPUpload(TextBox3. Text) पर कॉल करें। अंत में उप सब डिस्प्लेपिकैक्स रजिस्टर्स () डिम आई जैसे इंटीजर डिम रजिस्टरनंबर स्ट्रिंग RichTextBox1 के रूप में। मल्टीलाइन = ट्रू 'इसलिए टेक्स्ट बॉक्स में एक से अधिक लाइन प्रदर्शित कर सकते हैं RichTextBox1. Clear() ' टेक्स्ट बॉक्स साफ़ करें i = 0 से 13 के लिए registernumber = Trim(Str(i)) 'प्रमुख रिक्त स्थान को ट्रिम करें यदि i <10 तो registernumber = "0" + registernumber' 10 के अंतर्गत संख्याओं में 0 जोड़ें यदि RichTextBox1. AppendText(registernumber + "=" + Str(PicaxeRegisters(i))) + Chr(13)) अगला ' chr(13) कैरिज रिटर्न है इसलिए नई लाइन एंड सब प्राइवेट सब बटन1_क्लिक करें (ByVal प्रेषक System. Object के रूप में, ByVal e As System. EventArgs) हैंडल बटन1। डिम i As Integer 'चेक आउट ऑफ रेंज पहले i = Val (TextBox1. Text) पर क्लिक करें यदि i <0 या i> 13 फिर TextBox1. Text = 0 End यदि i = Val(TextBox2. Text) यदि i <0 या i> 255 तो TextBox2. Text = 0 End यदि PicaxeRegisters(Val(TextBox1. Text)) = Val(TextBox2. Text) 'मान बदलें DisplayPicaxeRegisters()' पर कॉल करें और डिस्प्ले को रीफ्रेश करें ModifyFlag = True 'और अगला ftp लिंक एंड सब सब SaveRegistersToLocalFile()' सेव रजिस्टर ऐरे को लोकल टेक्स्ट फाइल में सेव करें। टेक्स्ट बॉक्स में i = 0 से 13 PrintLine(1, Str(PicaxeRegisters(i))) के लिए '14 मान सहेजें अगला FileClose(1)' फ़ाइल को बंद करें Sub Sub ReadRemoteFileToRegisters() ' स्थानीय पाठ फ़ाइल को रजिस्टर सरणी में पढ़ें डिम मैं स्ट्रिंग के रूप में इंटीजर डिम लाइनऑफटेक्स्ट के रूप में फ़ाइल ओपन (1, टेक्स्टबॉक्स 3. टेक्स्ट, ओपनमोड। इनपुट) का प्रयास करें 'रिमोट फ़ाइल नाम पढ़ें i = 0 से 13 के लिए लाइनऑफटेक्स्ट = लाइनइनपुट (1)' 14 लिन में पढ़ें es PicaxeRegisters(i) = Val(LineOfText) 'पाठ को मानों में कनवर्ट करें अगली FileClose(1) अपवाद के रूप में पूर्व को पकड़ें FileClose(1)' फ़ाइल मौजूद नहीं है इसलिए कुछ भी नहीं करें End Sub Sub ReadFTPFilename() ' का नाम अगली बार जब यह प्रोग्राम चलाया जाता है तो दूरस्थ ftp फ़ाइल वही होती है Dim LineOfText स्ट्रिंग के रूप में FileOpen(1, "FTPFilename.txt", OpenMode. Input) 'फ़ाइल खोलें LineOfText = LineInput(1) TextBox3. Text = LineOfText' पढ़ें नाम FileClose (1) अपवाद के रूप में पकड़ें FileClose (1) एंड ट्राई एंड सब सब सेवFTPFilename() FileOpen(1, "FTPFilename.txt", OpenMode. Output) 'रिमोट एफ़टीपी फ़ाइल को सेव करें नाम PrintLine(1, TextBox3. Text) FileClose(1) एंड सबएंड क्लास

चरण 9: दोनों पीसी पर प्रोग्राम चलाएँ

दोनों पीसी पर प्रोग्राम चलाएं
दोनों पीसी पर प्रोग्राम चलाएं

स्क्रीन के शीर्ष मध्य में हरे त्रिकोण पर क्लिक करके प्रोग्राम चलाना प्रारंभ करें - 'डिबगिंग प्रारंभ करें' बटन। 20 सेकंड के लिए कुछ नहीं होगा और फिर प्रोग्राम ftp सर्वर से कनेक्ट करने का प्रयास करेगा और पिकैक्स से कनेक्ट करने का प्रयास करेगा। पिक्चरबॉक्स या तो लाल या हरे रंग में जाएंगे। एफ़टीपी स्थान एक निःशुल्क वेबसाइट है और कोई भी इसका उपयोग कर सकता है लेकिन आपको एक अलग एफ़टीपी कार्यशील फ़ाइल नाम का उपयोग करने की आवश्यकता है (मेरा डॉक्टरअकुला 1 है) अन्यथा हम सभी एक दूसरे के डेटा के साथ समाप्त हो सकते हैं यदि हम एक ही फ़ाइल नाम का उपयोग करते हैं! यदि आप चाहें तो आप अंततः अपनी स्वयं की एफ़टीपी साइट प्राप्त कर सकते हैं - बस मेरी 0Catch वेबसाइट से कोड में दो स्थानों पर एफ़टीपी स्थान, उपयोगकर्ता नाम और पासवर्ड बदलें। अधिकांश वेबसाइट एफ़टीपी की अनुमति देती हैं। एकाधिक कंप्यूटर एक ही ftp फ़ाइल तक पहुँच सकते हैं - ftp फ़ाइल सर्वर यह पता लगाता है कि ये किस क्रम में होता है। कभी-कभी डेटा क्लैश या हैंग हो जाते हैं और ऐसा लगता है कि हर 20 फ़ाइल में पढ़ा जाता है।यदि ऐसा होता है तो कोड में एक टाइमआउट होता है, इसलिए यह दूषित डेटा के बजाय कोई डेटा नहीं देता है। 128kbs अपलोड गति के साथ ब्रॉडबैंड कनेक्शन का उपयोग करने का मतलब है कि एक फ़ाइल अपलोड में लगभग 3 सेकंड लगते हैं, लेकिन कभी-कभी 8 सेकंड तक, जिनमें से अधिकांश को लिया जाता है। डेटा ट्रांसफर के बजाय हैंडशेकिंग में। यह पिकैक्स के साथ डाउनलोड, अपलोड और चैट को ध्यान में रखते हुए कम से कम 20 सेकंड का टाइमर1 समय निर्धारित करता है। बहुत तेज़ ब्रॉडबैंड के साथ आप साइकिल के समय को कम करने में सक्षम हो सकते हैं। आप वीबी प्रोग्राम के भीतर मैन्युअल रूप से एक रजिस्टर बदल सकते हैं। यदि आप करते हैं, तो अगला टाइमर चक्र ftp साइट से डाउनलोड करना छोड़ देता है और नया डेटा पिकैक्स को भेजता है और फिर उसे वापस पढ़ता है और अपलोड करता है। इस प्रकार नया डेटा इस समूह से जुड़े सभी पिकैक्स के लिए अपना रास्ता खोज लेता है। यह डिबगिंग और/या पीसी सॉफ़्टवेयर को माइक्रोकंट्रोलर हार्डवेयर लूप में जोड़ने के लिए सहायक है। वेबसाइटें PERL स्क्रिप्ट का उपयोग करके या ftp साइट पर एक नई फ़ाइल लिखने के समान हार्डवेयर लूप तक भी पहुँच सकती हैं। यह स्क्रीनशॉट Tx चिप को चलाकर लिया गया था, स्विच चालू था और रजिस्टर b0 = से 1 Rx चिप को भेजा गया था, जो इसके बाद रजिस्टर बी1 को भी 1 में बदल दिया था। इस प्रकार दोनों बोर्डों पर एलईडी जलाई गई। यह एक तुच्छ अनुप्रयोग है लेकिन एलईडी के बजाय 3.6Kw पंप चालू करना आसान है। कुछ और विचार https://drvernacula.topcities.com/ पर हैं, जिसमें सौर ऊर्जा संचालित रेडियो लिंक के माध्यम से पिकैक्स को जोड़ना शामिल है। रेडियो लिंक और इंटरनेट के साथ 'द मशीन्स' के लिए दुनिया के कई कोनों में पहुंचना संभव है। इस विचार को आगे ले जाने और पीसी और एफ़टीपी साइट को समर्पित वेबसर्वर चिप्स के साथ बदलने के बारे में पिकैक्स फोरम पर कुछ विचार हैं जो सीधे राउटर में प्लग करते हैं। स्पष्ट रूप से यह एक लिंक की बिजली खपत को कम करेगा। यदि आप आगे की चर्चाओं में रुचि रखते हैं तो कृपया निर्देशयोग्य टिप्पणियों और/या पिकैक्स फोरम पर पोस्ट करें। डॉ जेम्स मोक्सहम एडिलेड, दक्षिण ऑस्ट्रेलिया

चरण 10: कोड का स्क्रीनशॉट

कोड का स्क्रीनशॉट
कोड का स्क्रीनशॉट

अनुरोध के अनुसार, यहां सभी स्वरूपण के साथ vb.net कोड के स्क्रीनशॉट की एक श्रृंखला है। यह कोड वास्तव में इस निर्देश के पीछे कॉपी किया गया था और स्वरूपण स्वचालित रूप से फिर से दिखाई दिया। इन चित्रों को पढ़ने की कोशिश करने के बजाय पाठ को कॉपी और पेस्ट करना बेहतर होगा लेकिन ये उपयोगी होंगे यदि आप इंटरनेट कैफे में हैं और vb.net स्थापित नहीं कर सकते हैं।

चरण 11: स्क्रीनशॉट2

स्क्रीनशॉट2
स्क्रीनशॉट2

स्क्रीनशॉट 2

चरण 12: स्क्रीनशॉट 3

स्क्रीनशॉट 3
स्क्रीनशॉट 3

स्क्रीनशॉट 3

चरण 13: स्क्रीनशॉट 4

स्क्रीनशॉट 4
स्क्रीनशॉट 4

स्क्रीनशॉट 4

चरण 14: स्क्रीनशॉट 5

स्क्रीनशॉट 5
स्क्रीनशॉट 5

स्क्रीनशॉट 5

चरण 15: स्क्रीनशॉट 6

स्क्रीनशॉट 6
स्क्रीनशॉट 6

स्क्रीनशॉट 6

सिफारिश की: