विषयसूची:

NodeMcu के साथ Wifi (नॉर्दर्न लाइट्स इंडिकेटर) पर किसी भी वेबसाइट से डेटा खींचें और परिवेशी रूप से प्रदर्शित करें: 6 कदम
NodeMcu के साथ Wifi (नॉर्दर्न लाइट्स इंडिकेटर) पर किसी भी वेबसाइट से डेटा खींचें और परिवेशी रूप से प्रदर्शित करें: 6 कदम

वीडियो: NodeMcu के साथ Wifi (नॉर्दर्न लाइट्स इंडिकेटर) पर किसी भी वेबसाइट से डेटा खींचें और परिवेशी रूप से प्रदर्शित करें: 6 कदम

वीडियो: NodeMcu के साथ Wifi (नॉर्दर्न लाइट्स इंडिकेटर) पर किसी भी वेबसाइट से डेटा खींचें और परिवेशी रूप से प्रदर्शित करें: 6 कदम
वीडियो: ESP8266 + Arduino + database - Control Anything from Anywhere 2024, जुलाई
Anonim
NodeMcu के साथ Wifi (नॉर्दर्न लाइट्स इंडिकेटर) पर किसी भी वेबसाइट से डेटा खींचें और परिवेशी रूप से प्रदर्शित करें
NodeMcu के साथ Wifi (नॉर्दर्न लाइट्स इंडिकेटर) पर किसी भी वेबसाइट से डेटा खींचें और परिवेशी रूप से प्रदर्शित करें

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

यह क्या कवर करेगा?: इसमें वह सब कुछ शामिल होगा जो आपको जानना आवश्यक है (और जो मैंने नहीं किया), जिसमें शामिल हैं:

  1. सामग्री (जो मैंने उपयोग किया, विशेष रूप से)
  2. Arduino, NodeMcu, ESP8266, क्या अंतर है?
  3. NodeMcu के साथ शुरुआत करना

    1. सॉफ्टवेयर की स्थापना (Arduino IDE)
    2. एक एलईडी ब्लिंक बनाना
    3. NodeMcu को शक्ति प्रदान करने के विकल्प
    4. इंटरनेट से जुड़ना
  4. वेबसाइट से डेटा कैसे खींचे

    1. वेबसाइट में आप जो जानकारी चाहते हैं, उसकी ओर "इंगित करना"
    2. थिंग्सपीक / थिंग एचटीटीपी / एपीआई (डरो मत, कोई कोडिंग आवश्यक नहीं)
    3. इस डेटा को NodeMCU से एक्सेस करना
  5. डेटा प्रदर्शित करना

    1. मैंने क्या इस्तेमाल किया (7 सेगमेंट डिस्प्ले को कैसे वायर करें)
    2. कुछ विचार/चीजें जो मैंने और समय के साथ की होंगी
  6. मुझे लगता है कि एक बॉक्स कैसे बनाया जाए

अस्वीकरण: मैंने इसे बनाने का तरीका जानने के लिए बहुत सारे वीडियो देखे, और लगभग सभी कोड अन्य स्रोतों से एक साथ रखे गए हैं और मुझे वे सभी याद नहीं हैं। चीजों का मुख्य स्रोत http प्रेरणा यह आदमी था जो अनिवार्य रूप से वही काम कर रहा है जिसका मैं वर्णन कर रहा हूं, लेकिन मैंने पाया कि टच स्क्रीन सामग्री क्या थी और क्या भ्रमित नहीं था। मैं इस निर्देश को एक विशिष्ट वस्तु के बजाय NodeMcu और सॉर्टा थोड़े IoT प्रोजेक्ट्स के परिचय के रूप में अधिक मानता हूं, लेकिन इस विशिष्ट (नॉर्दर्न लाइट्स) इंडिकेटर के लिए प्रेरणा 2008 से यह निर्देश योग्य थी। मुझे जिस तरह से "गरीब" के रूप में वर्णित किया गया था, वह मुझे पसंद था। मैन्स एंबियंट ऑर्ब", बिना फोन या अन्य दखल देने वाले माध्यमों के स्टॉक, यूट्यूब व्यू या मौसम जैसी परिवेश की जानकारी प्रदर्शित करना।

चरण 1: सामग्री

सामग्री
सामग्री
सामग्री
सामग्री

आपको इनकी आवश्यकता होगी:

1. एक NodeMcu बोर्ड

2. बोर्ड पर कोड अपलोड करने के लिए एक माइक्रो यूएसबी केबल, और यदि आप चाहें तो अंतिम उत्पाद को पावर देने के लिए।

3. एल ई डी, जम्पर वायर (पुरुष-पुरुष, पुरुष-महिला) और चीजों को जोड़ने के लिए एक ब्रेडबोर्ड … यह एक तरह से दिया गया है, लेकिन आप जो कुछ भी "आउटपुट" (डेटा पर निर्भर या प्रदर्शित करना) चाहते हैं, उसके लिए हार्डवेयर की आवश्यकता होगी। यदि आप परिवेशी परिक्रमा को फिर से बनाना चाहते हैं, या ठीक वही करना चाहते हैं जो मैंने किया था, तो एक 7 खंड का प्रदर्शन या कुछ एलईडी पर्याप्त सूक्ष्म हैं। ब्रेडबोर्ड "प्रोटोटाइपिंग" के लिए आवश्यक है इससे पहले कि आप वास्तव में चीजों को 4 वास्तविक से जोड़ते हैं, और मैं समझाता हूं कि वे कैसे काम करते हैं/संबंधित अनुभाग में चीजें कैसे जुड़ी हुई हैं। यदि आप अभी शुरुआत कर रहे हैं, तो बस एक arduino स्टार्टर किट प्राप्त करें, क्योंकि इसमें बहुत सी छोटी चीजें हैं (जिसमें मैंने जो कुछ भी उपयोग किया है), साथ ही एक अन्य प्रोजेक्ट के लिए एक arduino uno भी है।

जिन चीज़ों की आपको आवश्यकता हो सकती है:

4. एक ब्रेडबोर्ड बिजली आपूर्ति मॉड्यूल (यदि आप एक मानक पावर एडॉप्टर के साथ NodeMcu को पावर देना चाहते हैं … मैं ऐसा नहीं करूंगा क्योंकि आप इसे केवल एक माइक्रो यूएसबी के साथ पावर कर सकते हैं, जो कि अधिक सुविधाजनक है। यदि आप अपना प्रोजेक्ट बनाना चाहते हैं पूरी तरह से वायरलेस, तो निश्चित रूप से आपको बैटरी पैक की आवश्यकता होगी, लेकिन मैं इसे पावर सेक्शन में संबोधित करूंगा।

5. 1/4 पाइन फॉर ए लिल' बॉक्स (यदि आप चाहें)

6. आपके बॉक्स को कवर करने के लिए कुछ लिबास, और/या आपके एलईडी या डिस्प्ले के लिए एक विसारक के रूप में कार्य करें

7. सुपर (सीए) और/या लकड़ी का गोंद 5 और 6 संलग्न करने के लिए।

चरण 2: नोड एमसीयू क्या है?

एक नोड एमसीयू क्या है?
एक नोड एमसीयू क्या है?
एक नोड एमसीयू क्या है?
एक नोड एमसीयू क्या है?

यदि आप मेरे जैसे इलेक्ट्रॉनिक्स के लिए एक वास्तविक शुरुआत कर रहे हैं, तो आप सोच रहे होंगे कि Arduino बोर्ड और NodeMcu बोर्ड में क्या अंतर है, और हो सकता है कि आपने ESP8266 के बारे में भी सुना हो … इनमें क्या अंतर है?!?

यह किसी भी तरह से तकनीकी नहीं है, लेकिन आपको यह जानने की जरूरत है।

Arduino में पिन की एक श्रृंखला से इनपुट पढ़ने की क्षमता है, इन इनपुट का उपयोग करके "चीजें करें", और फिर पिन की एक श्रृंखला के लिए आउटपुट। यह मूल रूप से एक छोटा कंप्यूटर है। Arduino विभिन्न बोर्डों के बहुत सारे बनाता है, और बहुत सारे "ढाल" जो अतिरिक्त चीजों को करने के लिए बोर्डों में प्लग करते हैं। वर्तमान में वे जो उत्पाद बेचते हैं, जो इंटरनेट से जुड़ते हैं, वे बहुत महंगे हैं और उनका अनुसरण करने वाला कोई समुदाय नहीं है। कोड को "Arduino IDE" सॉफ़्टवेयर से बोर्ड पर लिखा और अपलोड किया जाता है, जो C और C++ का समर्थन करता है, जिसमें कुछ अन्य विशेष स्वरूपण छिड़के जाते हैं। आपको यह जानने की आवश्यकता नहीं है कि प्रोग्राम के लिए C या C++ कैसे प्रोग्राम करें, क्योंकि ऐसा है ऑनलाइन उपलब्ध कोड की एक पागल बहुतायत, लेकिन प्रोग्रामिंग के साथ कुछ परिचितता (विशेष रूप से चीजें जैसे कि लूप और लूप, परिवर्तनीय घोषणा और दायरा इत्यादि) समझने में तेजी लाने में मदद करती हैं। Arduino IDE विभिन्न बोर्डों के लिए आवश्यक पुस्तकालयों को डाउनलोड करने के लिए एकल स्थान भी प्रदान करता है (उस पर बाद में, NodeMcu की स्थापना में)।

ESP8266 एक अत्यंत सस्ता वाईफाई मॉड्यूल है जिसने मूल रूप से इंटरनेट-सक्षम arduino शील्ड को अप्रचलित बना दिया है (हालाँकि आप अभी भी arduino बोर्ड देखते हैं जिनमें वाईफाई बनाया गया है)। ESP8266 के आसपास का DIY समुदाय इतना विशाल है कि यह इंटरनेट-सक्षम डिवाइस बनाने के लिए लगभग एकमात्र तार्किक विकल्प है। अक्सर इसका उपयोग सीरियल पिन (आरएक्स और टीएक्स) के माध्यम से एक आर्डिनो बोर्ड के संयोजन के साथ किया जाता है, हालांकि मुझे लगता है कि कुछ लोग उनका उपयोग "अकेले खड़े" करते हैं, लेकिन चूंकि माइक्रोचिप इतना छोटा और इंटरफ़ेस करने में मुश्किल है (इसमें मूल रूप से 6 पिन हैं: 2 सीरियल के लिए (चीजों से बात करना), 2 पावर (ग्राउंड और वीसीसी) के लिए, और 2 GPIO (सामान्य प्रयोजन इनपुट आउटपुट), साथ ही यह 3.3V पर काम करता है और इसलिए 5V इसे नष्ट कर देगा) कि इसे तेजी से हटा दिया गया था …

NodeMcu, जो कि Arduino की तरह ही एक ओपन सोर्स डेवलपमेंट बोर्ड है, ESP8266 पर निर्माण को छोड़कर। आप वास्तव में मेरे द्वारा संलग्न चित्रों में परिचालित NodeMcu बोर्ड में निर्मित ESP8266 देख सकते हैं। यह बोर्ड प्रोग्राम और इंटरफेस के लिए पूरी तरह से अनुकूल है, और मूल रूप से एक आर्डिनो नैनो के बराबर है। इसमें कई और पिन हैं, और किसी अन्य बोर्ड के माध्यम से जाने के बिना, सीधे आपके कंप्यूटर से यूएसबी के माध्यम से प्रोग्राम किया जा सकता है। इसके अलावा, हालाँकि बोर्ड अभी भी तकनीकी रूप से 5V लॉजिक के बजाय 3.3V लॉजिक पर काम करता है, इसमें इस वोल्टेज को प्रबंधित करने के लिए बिल्ट-इन चिप्स हैं, इसलिए इसे आपके arduino की तरह ही संचालित किया जा सकता है, चाहे USB द्वारा या VCC (वोल्टेज इन) पिन द्वारा।. मूल रूप से, किसी भी IoT के लिए, NodeMcu उपयोग करने के लिए एक अच्छा, सरल, एकल बोर्ड है, और वाईफाई सक्षम है … हालांकि यह गैर-वाईफाई परियोजनाओं के लिए भी एक अच्छा विकल्प है। तकनीकी रूप से NodeMcu की "आउट ऑफ द बॉक्स" भाषा LUA है, लेकिन Arduino IDE के भीतर 1-बार सेटअप के बाद, आप इसे वैसे ही प्रोग्राम कर पाएंगे जैसे आप किसी अन्य Arduino को करते हैं।

चरण 3: NodeMcu. के साथ शुरुआत करना

मैंने NodeMcu के साथ अपना पहली बार स्टार्टअप करने के लिए निम्नलिखित वीडियो का उपयोग किया, और यदि आप उसके सभी निर्देशों का ठीक से पालन करते हैं, तो सब कुछ ठीक से काम करना चाहिए।

1. सॉफ्टवेयर की स्थापना (Arduino IDE)

  • उपरोक्त लिंक से Arduino IDE डाउनलोड करें, और यदि आप दान नहीं कर सकते हैं तो "बस डाउनलोड करें" चुनें
  • Arduino IDE सॉफ़्टवेयर खोलें
  • फ़ाइल के अंतर्गत -> वरीयताएँ, अतिरिक्त बोर्ड प्रबंधक URL, निम्न लिंक चिपकाएँ "https://arduino.esp8266.com/versions/2.5.0-beta2/package_esp8266com_index.json"
  • टूल्स के तहत -> बोर्ड -> बोर्ड मैनेजर (शीर्ष पर) नीचे स्क्रॉल करें, या ईएसपी 8266 खोजें, और इंस्टॉल पर क्लिक करें
  • इसे दिखाने के लिए आपको Arduino IDE को पुनरारंभ करने की आवश्यकता हो सकती है, लेकिन अब टूल्स-> बोर्ड पर क्लिक करें, और आपके द्वारा प्राप्त बोर्ड का चयन करें, यानी NodeMcu 1.0 ESP12-E मॉड्यूल
  • आपको इस चरण को करने की आवश्यकता नहीं हो सकती है, लेकिन अपने NodeMcu से यूएसबी को अपने कंप्यूटर से कनेक्ट करें (रोशनी झपकेगी), और कंट्रोल पैनल-> डिवाइस मैनेजर -> पोर्ट्स -> पर जाएं और फिर उस COM पोर्ट को नोट करें जिसे लेबल किया गया है "सिलिकॉन लैब्स …" यह COM पोर्ट है जिसका NodeMcu उपयोग कर रहा है
  • Arduino IDE और Tools-> Port: पर वापस जाएं और सुनिश्चित करें कि यह पोर्ट चुना गया है
  • सब कुछ अच्छा होना चाहिए, लेकिन सुनिश्चित करें कि टूल्स के तहत, फ्लैश का आकार 4 है (SPIFFS के बारे में चिंता न करें, जो भी चुना गया है वह अच्छा है), और यह कि अपलोड गति 115200 है मुझे लगता है … NodeMcu वास्तव में बॉड दर का उपयोग करता है 9600 जानकारी को सीरियल मॉनिटर पर वापस रिले करने के लिए (यदि आप नहीं जानते कि इसका क्या अर्थ है, तो चिंता न करें, यह उदाहरण में दिखाई देगा), लेकिन यदि कोड में और फिर मॉनिटर में, आपको 9600 मिले हैं, अच्छी बात है।

2. एक एलईडी ब्लिंक बनाना

यह प्रोग्रामिंग के "हैलो वर्ल्ड" (यानी बेबी $ h1t) की तरह है, लेकिन यह आपको यह बताता है कि बोर्ड के साथ सब कुछ अच्छा है, और आपको Arduino IDE से परिचित होने में मदद करेगा। यह बोर्ड की वाईफाई क्षमताओं को प्रदर्शित नहीं करता है (हम अगले उदाहरण में ऐसा करते हैं), बस यह सुनिश्चित करता है कि यह जुड़ा हुआ है और कार्य कर सकता है आदि।

  • Arduino IDE खोलें, अपना NodeMcu प्लग इन करें
  • कुछ भी करने से पहले, ध्यान दें कि सबसे बुनियादी कोड के लिए ढांचा है जिसे आप अपने arduino पर लिख सकते हैं, एक सेटअप () लूप के साथ जो एक बार चलता है, और दूसरा लूप () जो हमेशा के लिए लगातार चलेगा। हमारा अंतिम कोड इस तरह से संरचित किया जाएगा, जिसमें ऊपर कुछ चीजें जोड़ी गई हैं, और नीचे एक फ़ंक्शन परिभाषित किया गया है
  • फ़ाइल-> उदाहरण-> (NodeMcu 1.0 सेक्शन के तहत) ESP8266 -> ब्लिंक
  • इससे विंडो में कुछ कोड खुल जाएगा। बेझिझक इसे कहीं बचा लें।
  • इस कोड में, सेटअप () लूप में आउटपुट के रूप में बोर्ड पर बिल्टिन एलईडी की परिभाषा होती है, और लूप इस एलईडी को उच्च और निम्न आउटपुट देता है। ध्यान दें कि बोर्ड में निर्मित एलईडी के लिए (केवल! यह विशिष्ट मामला नहीं है), "LOW" आउटपुट (0 वोल्ट) इसे चालू कर देगा, क्योंकि यह डिफ़ॉल्ट रूप से चालू है, और "हाई" (3.3V में) यह मामला मुझे लगता है), बंद है
  • यदि ऊपर बताए अनुसार सब कुछ ठीक से सेट किया गया है, तो आपको यह सुनिश्चित करने के लिए "सत्यापित करें" (ऊपरी बाएं कोने में सर्कल में चेकमार्क) पर क्लिक करने में सक्षम होना चाहिए (इसमें कोई त्रुटि नहीं होगी क्योंकि आपने किया था ' इसे नहीं लिखेंगे, लेकिन आपकी मर्जी!), और जब यह सब अच्छा हो, तो इसके ठीक आगे "अपलोड करें"
  • एक बार जब आप अपलोड पर क्लिक करते हैं, तो आप नीचे काले क्षेत्र में सामग्री पढ़ते हुए देखेंगे, और डॉट्स/% पूर्ण भरना
  • चिंता न करें कि यह कहता है कि यह 33% मेमोरी लेगा …
  • आप देखेंगे कि बोर्ड पर एलईडी झपकना शुरू कर देती है (जो कि वह पहले से ही थोड़ा सा कर रहा होगा), इसलिए बेझिझक एक सेकंड के हज़ारवें हिस्से (मिलीसेकंड) की मात्रा को स्क्रिप्ट के विलंबित हिस्से में बदल दें। यदि यह आपकी पहली बार प्रोग्रामिंग है, तो एलईडी को थोड़ी अलग आवृत्ति पर पलक झपकते देखना शायद एक वास्तविक रोमांचकारी सवारी होगी

3. NodeMcu को शक्ति प्रदान करने के विकल्प

मुझे यकीन नहीं है कि मुझे यह पहली बार में क्यों समझ में नहीं आया, लेकिन जो कोड आप बोर्ड पर अपलोड करते हैं, वह वहीं रहेगा, और जब तक बिजली की आपूर्ति होगी, तब तक हमेशा और हमेशा के लिए चलेगा। उदाहरण के लिए, चरण 2 को पूरा करने के बाद, यदि आप इसे अपने कंप्यूटर से अनप्लग करते हैं, तो इसे कहीं और पावर दें, यह फिर से ब्लिंक करना शुरू कर देगा। NodeMcu को पावर देने का सबसे आसान तरीका है कि आप इसमें केवल एक माइक्रो USB प्लग करें, और फिर एक चार्जिंग ब्लॉक में जैसे आप दीवार में अपने सेलफोन के लिए उपयोग करते हैं (5V 1A ब्लॉक या जो भी हो)। चीजों को कैसे बिजली दें, डीसी जैक की ध्रुवीयता, आदि के बारे में जानकारी के लिए मेरे अन्य निर्देशयोग्य को देखने के लिए स्वतंत्र महसूस करें, लेकिन सार यह है कि आप जो भी एम्परेज चाहते हैं उसका उपयोग कर सकते हैं, जब तक कि यह सभी सामानों को बिजली देने के लिए पर्याप्त है (1 ए अधिक है) इस बोर्ड और आपके द्वारा उपयोग की जाने वाली किसी भी एलईडी के लिए बहुत से, उदाहरण के लिए), लेकिन सब कुछ सही ढंग से काम करने के लिए वोल्टेज बहुत तंग सीमा के भीतर होना चाहिए। NodeMcu पर, आप 3.3V से 20V तक किसी भी वोल्टेज के साथ बिजली की आपूर्ति का सुरक्षित रूप से उपयोग कर सकते हैं, क्योंकि बोर्ड पर एक नियामक होता है जो इस वोल्टेज को कम करता है (यह एक अच्छी सुविधा है)। एम्परेज के साथ, ओवर जाना ठीक है क्योंकि बोर्ड केवल वही खींचेगा जिसकी उसे आवश्यकता है, लेकिन वोल्टेज के साथ, वोल्टेज का उपयोग करना आम तौर पर सुरक्षित है, बिना नीचे जाए, आवश्यक #, इसलिए कम काम करने की आवश्यकता है / बिजली बर्बाद हो जाती है वोल्टेज को कम करना। यदि आप बैटरी पैक का उपयोग करना चाहते हैं, या डीसी पावर जैक का उपयोग करना चाहते हैं (हो सकता है कि आपके पास एक अच्छी लंबी केबल हो), तो उपयोग करने के लिए पिन वीआईएन आसन्न ग्राउंड पिन हैं।

4. इंटरनेट से जुड़ना

मैंने एक फ़ाइल के रूप में संलग्न किया है (पीढ़ी के लिए, अगर वीडियो चला जाता है) उपरोक्त यूट्यूब वीडियो से कोड, लेकिन कृपया यूट्यूब लिंक के माध्यम से जाएं और उसे कोड के लिए एक दृश्य दें। यह वास्तव में आपके समय के लायक है, वह बोर्ड के इतिहास की व्याख्या करता है जो कि मजेदार है।

"Wifi_connect" नामक arduino कोड फ़ाइल खोलें और SSID और पासवर्ड को अपने में बदलें, फिर जाएं

  • ध्यान दें कि छोरों के ऊपर एक #include लाइन है, जो Arduino को ESP8266 के लिए वाईफाई सामान से भरी लाइब्रेरी को शामिल करने के लिए कह रही है। ये मूल रूप से उपयोगिताओं और चीजों का एक समूह है जो एक साथ बंडल किए गए हैं और आपको पुस्तकालय के भीतर निहित पूर्व-लिखित सामग्री का उपयोग करके अपेक्षाकृत सरलता से विशिष्ट चीजें करने देते हैं। उदाहरण के लिए, यदि आपने एक ढाल या बोर्ड के अतिरिक्त खरीदा है, तो इसके साथ जुड़े पुस्तकालय होने की संभावना है ताकि आप इसके साथ अधिक आसानी से इंटरफेस कर सकें।
  • टूल्स-> सीरियल मॉनिटर
  • सुनिश्चित करें कि सीरियल मॉनिटर 9600 पर पढ़ने के लिए सेट है। यदि यह सही गति पर नहीं है, तो सीरियल मॉनिटर एक गड़बड़ गंदगी को बाहर निकाल देगा, इसलिए यह एक अच्छा संकेतक है कि आपका सीरियल मॉनिटर उसी दर पर नहीं है जैसा कि सीरियल परिभाषित किया गया है कोड में
  • सत्यापित करें और चलाएं पर क्लिक करें, और सीरियल मॉनिटर को पूरा होने पर देखें … यह आपको कनेक्शन के बारे में विवरणों का एक गुच्छा बताएगा यदि यह काम करता है, और दर्शाता है कि NodeMcu में ESP8266 आपके वाईफाई से कनेक्ट करने में सक्षम है! यह कुछ नहीं कर रहा है, लेकिन अगर आप कहीं गए और इस बोर्ड को दीवार से लगा दिया, तो आप ३० सेकंड प्रतीक्षा कर सकते हैं और पूरा विश्वास कर सकते हैं कि इसने इंटरनेट के साथ एक कनेक्शन स्थापित किया है जो रोमांचकारी भी होना चाहिए।
  • स्वयं का परीक्षण करने के लिए, "ब्लिंक" कोड और "wifi_connect" कोड को एक साथ मश करने का प्रयास करें ताकि ऑनबोर्ड एलईडी चालू हो, या इंटरनेट से कनेक्ट होने के बाद ब्लिंक करें। यह सीखने का एक शानदार तरीका है!

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

चरण 4: किसी वेबसाइट से डेटा कैसे प्राप्त करें

वेबसाइट से डेटा कैसे खींचे
वेबसाइट से डेटा कैसे खींचे

वेबसाइटों में डेटा बहुत ही डरावने तरीके से स्टोर किया जाता है। इसे अपने इच्छित सामान में फ़िल्टर करना, या इसके लिए "पार्सिंग" समान रूप से डरावना है, और HTML के महत्वपूर्ण ज्ञान के बिना ऐसा करने का प्रयास करना कठिन हो सकता है … बहुत पवित्र और खुशहाल जगह। कार्यात्मक रूप से इसका मतलब यह है कि एक यूआरएल से जा रहा है जो पूरी वेबसाइट को प्रदर्शित करता है, एक यूआरएल जो केवल आपके इच्छित डेटा का एक टुकड़ा प्रदर्शित करता है।

1. वेबसाइट में आप जो जानकारी चाहते हैं उसकी ओर "इंगित करना"

उस वेबसाइट पर जाएँ जिसमें आप रुचि रखते हैं, उदाहरण के लिए यहाँ

www.timeanddate.com/worldclock/canada/edmonton

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

वहीं डेटा रहता है। कभी-कभी इसकी एक आईडी होती है जिसके द्वारा इसका संदर्भ दिया जाता है, कभी-कभी इसे ठीक उसी में लिखा जाता है। तो हम इसे कैसे निकालते हैं?

2. थिंग्सपीक / थिंग एचटीटीपी / एपीआई (डरो मत, कोई कोडिंग आवश्यक नहीं)

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

केवल एक चीज जो आपको करने की आवश्यकता है, वह है वेबसाइट के URL को कॉपी और पेस्ट करना, उदाहरण के लिए ऊपर दिनांक और समय वेबसाइट, और फिर अंतिम फ़ील्ड "पार्स स्ट्रिंग" तक स्क्रॉल करें। यह आपके इच्छित डेटा का पथ है।

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

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

3. इस डेटा को NodeMCU से एक्सेस करना

मैंने पहले ही बहुत कुछ टाइप कर लिया है, इसलिए संलग्न कोड देखें, जिसमें बहुत सारी टिप्पणियां हैं, और वर्तमान में एडमोंटन एबी, कनाडा (केवल!) के लिए ऑरोरा बोरेलिस संभावना में पढ़ने के लिए स्थापित किया गया है। आपको जो पहला ट्वीक करना होगा, वह सिर्फ यूआरएल को बदल रहा है (वास्तव में यूआरएल का केवल 16 अंकों का एपीआई कुंजी हिस्सा) अपनी खुद की चीज में।

दूसरी चीज़ जो आपको बदलनी होगी वह है लूप () में, जहां वास्तविक "मान" लाया जाता है और चर "yourvalue" के रूप में संग्रहीत किया जाता है, जो एक स्ट्रिंग (पाठ) है। इसे किसी भी फैशन में इस्तेमाल किया जा सकता है जिसे आप वहां से चाहते हैं। मैंने प्रतिशत प्रतीक को हटा दिया,% के 2 अंकों को 2 चरों में विभाजित कर दिया (उदाहरण के लिए 14% 1 में, 4), और इनमें से प्रत्येक को पूर्णांक के रूप में संग्रहीत किया गया था, लेकिन यहां कुछ त्वरित Google खोजों या टिप्पणियों के साथ, आपको सक्षम होना चाहिए वास्तव में उन नंबरों को निकालने के लिए जो आप चाहते हैं कि http उत्पन्न स्ट्रिंग से। चीजों को चालू या बंद करने या प्रदर्शित करने के लिए पर्याप्त है या नहीं, यह तय करने में सक्षम होने के लिए आपको संख्याओं की आवश्यकता होगी। उस बिंदु से शेष कोड, जिसमें नीचे की ओर सेवेंसेग () नामक फ़ंक्शन शामिल है, का उपयोग 2 संख्याओं को प्रदर्शित करने के लिए किया जाता है।

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

चरण 5: डेटा प्रदर्शित करना

डेटा प्रदर्शित करना
डेटा प्रदर्शित करना

1. मैंने क्या इस्तेमाल किया (7 सेगमेंट डिस्प्ले को कैसे वायर करें)

मुझे संलग्न आरेख मिला / इस अन्य निर्देश द्वारा वर्णित तारों का पालन किया।

वायरिंग काफी सीधी है, लेकिन अगर आपने कभी ब्रेडबोर्ड का उपयोग नहीं किया है, तो यह भ्रमित हो सकता है कि क्या हो रहा है। अनिवार्य रूप से एक ब्रेडबोर्ड का उद्देश्य कनेक्शन को स्पष्ट और अस्थायी बनाना है।

निम्नलिखित सभी विवरण संलग्न आरेख के संबंध में होंगे: एक ब्रेडबोर्ड को क्षैतिज रूप से 2 दोहराए गए हिस्सों में विभाजित किया जा सकता है, प्रत्येक में 2 अलग-अलग खंड होते हैं: क्षैतिज - और + पंक्तियाँ जो ब्रेडबोर्ड की लंबाई (शक्ति के लिए उपयोग की जाती हैं) और ऊर्ध्वाधर स्तंभों को बढ़ाती हैं, जो गिने जाते हैं, और प्रति कॉलम 5 स्पॉट होते हैं जो कनेक्शन को चिह्नित करने के लिए उपयोग किए जाते हैं। फिर थोड़ा अंतराल होता है, और फिर ये वही विशेषताएं उस काल्पनिक विभाजन रेखा के दूसरी तरफ दोगुनी हो जाती हैं। क्षैतिज + पंक्ति में सभी स्पॉट एक साथ जुड़े हुए हैं, और सभी क्षैतिज-पंक्ति स्पॉट एक साथ जुड़े हुए हैं। यह आपको ब्रेडबोर्ड के एक छोर में पावर प्लग करने देता है और फिर आउटलेट के लिए एक लंबी पावर बार की तरह, पावर आउट करने के लिए + के साथ किसी भी स्थान पर चीजों को प्लग करने में सक्षम होता है। वही - पंक्ति के लिए जाता है, जिसका उपयोग चीजों को जमीन पर करने के लिए किया जाता है। क्रमांकित स्तंभों के लिए, क्रमांकित स्तंभ में प्रत्येक स्थान अन्य 4 स्थानों से जुड़ा होता है। ध्यान दें कि एक कॉलम में पांच स्पॉट काल्पनिक हाफ-वे लाइन के विपरीत पांच से नहीं जुड़े हैं। ब्रेडबोर्ड को लंबाई में काटा जा सकता है और कोई विद्युत कनेक्शन नहीं काटा जाएगा।

NodeMcu ब्रेडबोर्ड के दो हिस्सों को पूरी तरह से फैला देता है, जिसमें प्रत्येक पिन बिजली या इनपुट/आउटपुट के अनुरूप होता है, जिसमें एक क्रमांकित कॉलम होता है, ताकि आप तारों को शेष सुलभ स्थान पर प्लग कर सकें और इसे ब्रेडबोर्ड पर कहीं और कनेक्ट कर सकें। आरेख में दिखाए गए 7 सेगमेंट डिस्प्ले के लिए भी यही है। उदाहरण के लिए, आरेख में बोर्ड से 7 खंड प्रदर्शन तक जमीन के पथ का अनुसरण करें।

  1. NodeMcu से ग्राउंड पिन को कॉलम 2. में प्लग किया गया है
  2. स्तंभ 2 से क्षैतिज विद्युत पंक्ति तक तार (कन्वेंशन ग्राउंड द्वारा निर्दिष्ट)
  3. जमीनी पंक्ति से (स्तंभ संख्या अप्रासंगिक है, क्योंकि पूरी पंक्ति जुड़ी हुई है) एक रोकनेवाला के माध्यम से स्तंभ 22 तक
  4. 7 सेगमेंट डिस्प्ले पर "ग्राउंड" पिन में, जिसे कॉलम 22. में भी प्लग इन किया गया है

आरेख में रोकनेवाला का उद्देश्य मूल रूप से एल ई डी के लिए कुछ अतिरिक्त बिजली उत्पादन को "सोखना" है, जो कार्यात्मक रूप से प्रदर्शन को कम करने के लिए काम करता है। आप देखेंगे कि जब एक "1" बनाम "8" प्रकाशित होता है, तो 1 अधिक चमकीला होता है, क्योंकि कम एल ई डी चालू होते हैं। आप एलईडी को जितना कम चमकीला चलाएंगे, वह उतनी ही देर तक चलेगी, इसलिए रोकनेवाला आवश्यक है। 7 सेगमेंट डिस्प्ले के लिए अधिकांश आरेख वास्तव में प्रत्येक व्यक्तिगत सेगमेंट के साथ श्रृंखला में एक प्रतिरोधी होने के नाते दिखाते हैं, लेकिन ऐसा लगता है कि यह ठीक काम करता है। मैंने 1K ओम अवरोधक का उपयोग किया।

इस बात से बहुत अवगत रहें कि कौन से पिन डिस्प्ले पर किस पिन से मेल खाते हैं, क्योंकि ये कोड में मैप किए गए हैं।

2. कुछ विचार/चीजें जो मैंने अधिक समय में की होतीं

यह अनिवार्य रूप से वह जगह है जहां मैं रुका था, लेकिन आप अपने डेटा के मूल्य के आधार पर आउटपुट के लिए कई अन्य चीजें चुन सकते थे जैसे:

  • एक आरजीबी एलईडी जो मूल्य के आधार पर रंग बदलता है, या एक ढाल को कवर करता है, उदाहरण के लिए हरे से लाल रंग में
  • एक पूर्ण एलईडी डिस्प्ले
  • एक लॉजिकल ऑन/ऑफ ओवर/अंडर ट्रू/फॉल्स एलईडी जो कुछ इंगित करने के लिए बस चालू या बंद करता है
  • एक मोटर जो दिन के एक विशिष्ट समय में बदल जाती है, जैसे कि पानी की व्यवस्था पर एक वाल्व के लिए या अपने कुत्ते के लिए एक इलाज जारी करने के लिए … मुझे यकीन है कि वाईफाई के माध्यम से समय की व्याख्या करने की तुलना में ऐसा करने के अधिक कुशल तरीके हैं लेकिन यह एक विकल्प है!

अगला चरण (जिसके लिए आश्चर्यजनक रूप से कई और ट्यूटोरियल हैं) आपके स्वयं के सर्वर पर डेटा पोस्ट कर रहा है (जिसे थिंग्सपीक के माध्यम से भी किया जा सकता है) और फिर इस डेटा का उपयोग करना (जैसे स्वचालित उद्यान, या स्मार्ट हाउस सामान के लिए)।

चरण 6: एक बॉक्स बनाना

एक बॉक्स का निर्माण
एक बॉक्स का निर्माण
एक बॉक्स का निर्माण
एक बॉक्स का निर्माण
एक बॉक्स का निर्माण
एक बॉक्स का निर्माण
एक बॉक्स का निर्माण
एक बॉक्स का निर्माण

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

मैंने १/४ "x ३.५" पाइन के ४ टुकड़े ३.५ "(किनारे) और एक ४" (शीर्ष) पर काटे, और बस उन्हें ऊपर की ओर चिपकाया और उन्हें एक साथ चिपका दिया, जिससे सभी चेहरे चौकोर हो गए। जितना संभव हो सके ताकि प्रत्येक चेहरा यथासंभव फ्लश हो। आगे या पीछे के टुकड़ों को ग्लूइंग करने से पहले मैंने डिस्प्ले और बोर्ड के लिए क्षेत्रों को नोट किया ताकि क्रमशः देखा / प्लग किया जा सके। मुझे जो छोटा ब्रेडबोर्ड मिला, उसमें पीछे की तरफ चिपचिपा टेप था, ताकि इसे साइड की दीवारों में से एक पर लगाया जा सके, और 7 सेगमेंट डिस्प्ले को पहले पैकिंग टेप पर नीचे लेटकर, इस टेप पर डिस्प्ले रखकर रखा जा सकता है, और फिर बेकिंग पाउडर को सभी जगहों पर छिड़कें। फिर मैंने अंतराल में सीए (सुपर) गोंद डाला, जो, बेकिंग सोडा के संपर्क में, तुरंत प्रदर्शन को पकड़ने के लिए कठोर हो गया, सामने के टुकड़े के सामने फ्लश किया। पैकिंग टेप किसी भी गोंद को डिस्प्ले और उसके नीचे की सतह के बीच से रिसने से रोकने के लिए था और एक बार सूखने पर इसे अस्पष्ट कर देता था।

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

सिफारिश की: