- MicroPython क्या है?
- NodeMCU के लिए MicroPython क्यों?
- ESP8266 (NodeMCU) क्या है?
- हार्डवेयर का इस्तेमाल किया
- ESP8266 के लिए MicroPython फर्मवेयर स्थापित करना
- पुट्टी के साथ नोडएमसीयू के साथ संचार करना
- Ampy का उपयोग करके पायथन आधारित एलईडी ब्लिंक कोड अपलोड करना
- ESP8266 पर MicroPython: DHT22 के साथ तापमान और आर्द्रता प्राप्त करना
एक शुरुआत के लिए जो ESP8266 जैसे वाई-फाई सक्षम माइक्रोकंट्रोलर की प्रोग्रामिंग में रुचि रखता है, ESP-IDF प्रोग्रामिंग वातावरण या Arduino IDE को समझना एक चुनौतीपूर्ण काम हो सकता है, C और C ++ भाषाओं के क्रिप्टिक सिंटैक्स को कंप्यूटर विज्ञान के अधिक ज्ञान की आवश्यकता होती है जो क्यों वे भाषाएं शुरुआती लोगों के लिए हमेशा अनुकूल नहीं होती हैं, इसलिए इस लेख में, हम माइक्रोपायथॉन के साथ एक ESP8266 को सेट और प्रोग्राम करना सीखेंगे, और अंत में, हम अपने पसंदीदा DHT22 तापमान और आर्द्रता सेंसर से तापमान और आर्द्रता डेटा प्राप्त करेंगे। पहले हमने माइक्रो पायथन के साथ ESP32 प्रोग्राम करने के तरीके के बारे में एक ट्यूटोरियल भी बनाया है, आप चाहें तो इसे भी देख सकते हैं।
MicroPython क्या है?
हम कह सकते हैं कि MicroPython अजगर का एक diced-up संस्करण है, जिसे माइक्रोकंट्रोलर्स और एम्बेडेड सिस्टम के साथ काम करने के लिए डिज़ाइन किया गया है। MicroPython की वाक्य रचना और कोडिंग प्रक्रिया अजगर से मिलती जुलती है। इसलिए, यदि आप पहले से ही अजगर को जानते हैं, तो आप पहले से ही जानते हैं कि माइक्रोफ़ोन का उपयोग करके अपना कोड कैसे लिखना है। यदि आप एक पायथन प्रशंसक हैं तो आप इस लेख की जांच कर सकते हैं।
MicroPython को यूके में डेमियन जोंस की एक टीम लीड द्वारा विकसित किया गया था, और उन्होंने एक किकस्टार्टर लॉन्च किया था, जहाँ उन्होंने एक विशेष प्रकार के विकास बोर्डों का शुभारंभ किया, जो फर्मवेयर चला रहे होंगे, जो आपको इसके ऊपर से MicroPython चलाने की अनुमति देता है, फर्मवेयर को अब ESP8266 पर चलाने के लिए पोर्ट किया गया है, जो कि इस लेख में आप सीखेंगे।
NodeMCU के लिए MicroPython क्यों?
पायथन सबसे व्यापक रूप से उपयोग किया जाता है, और आज तक प्रोग्रामिंग भाषाओं को सीखना आसान है। इसलिए, MicroPython की शुरुआत के साथ, प्रोग्रामिंग हार्डवेयर-आधारित माइक्रोकंट्रोलर बहुत आसान हो गए। यदि आपने पहले कभी कोई माइक्रोकंट्रोलर प्रोग्राम नहीं किया है और प्रोग्राम सीखना शुरू करना चाहते हैं, तो माइक्रोपाइथन एक अच्छी शुरुआत है।
MicroPython पायथन मानक पुस्तकालयों के एक स्ट्रिप-डाउन संस्करण का उपयोग करता है, इसलिए सभी मानक पुस्तकालय उपलब्ध नहीं हैं। लेकिन, MicroPython में हार्डवेयर के साथ इंटरफ़ेस करने के लिए मॉड्यूल का उपयोग करना सरल और आसान शामिल है जिसका मतलब है कि MicroPython की मदद से, GPIO रजिस्टर में पढ़ना और लिखना बस आसान हो गया।
MicroPython का अंतिम उद्देश्य प्रोग्रामिंग माइक्रोकंट्रोलर्स को यथासंभव सरल बनाना है, इसलिए, इसका उपयोग किसी के द्वारा भी किया जा सकता है। MicroPython के साथ पुस्तकालयों को आयात करना और कोड लिखना आसान हो जाता है, नीचे दिखाया गया कोड एक सरल उदाहरण है जो NodeMCU बोर्ड के ऑनबोर्ड एलईडी को झपकाता है, हम लेख के बाद कोड पर विस्तार से चर्चा करेंगे।
मशीन इम्पोर्ट से पिन इंपोर्ट टाइम स्लीप एलईडी = पिन (2, पिन.ऑउट) जबकि ट्रू: LED.value (LED.value () नहीं) स्लीप (0.5)
ESP8266 (NodeMCU) क्या है?
ESP8266 एक कम लागत वाला वाई-फाई मॉड्यूल है, जिसे इंटरनेट ऑफ थिंग्स (IoT) संबंधित अनुप्रयोगों के लिए डिज़ाइन किया गया है।
यह सामान्य प्रयोजन इनपुट और आउटपुट पिंस (GPIO) के साथ आता है और यह SPI, I2C, UART, और अधिक जैसे सामान्य रूप से उपयोग किए जाने वाले प्रोटोकॉल की एक किस्म का समर्थन करता है। लेकिन, इस माइक्रोकंट्रोलर की सबसे अच्छी खासियत यह है कि इसमें बिल्ट-इन वाई-फाई है। इसके साथ, हम किसी भी 2.4GHz वाई-फाई से बहुत आसानी से जुड़ सकते हैं।
अब मूल बातें इस तरह से हैं कि हम व्यावहारिक भाग पर आगे बढ़ सकते हैं जहाँ हम आपको आवश्यक हार्डवेयर दिखाएंगे, और ESP8266 IC पर MicroPython स्थापित करने की प्रक्रिया।
हार्डवेयर का इस्तेमाल किया
प्रयुक्त सामग्री की सूची
- 1 एक्स ब्रेडबोर्ड
- 1 x ESP8266 (NodeMCU)
- 1 एक्स DHT22 (तापमान और आर्द्रता सेंसर)
- 1 एक्स 3 मिमी एलईडी (लाइट एमिटिंग डायोड)
- 1 एक्स 1 के रेसिस्टर
- 5 एक्स जम्पर वायर
ESP8266 के लिए MicroPython फर्मवेयर स्थापित करना
इस लेख में ESP8266 पर MicroPython फर्मवेयर स्थापित करने के दो तरीके मौजूद हैं। हम दोनों के बारे में बात करेंगे, लेकिन पहले, हमें इसे डाउनलोड करने की आवश्यकता है।
ESP8266 के लिए MicroPython फर्मवेयर डाउनलोड करना:
इससे पहले कि हम NodeMCU (ESP8266) बोर्ड को हमारे PC से कनेक्ट करें, हमें MicroPython के नवीनतम संस्करण को डाउनलोड करने की आवश्यकता है, इसके बाद हम NodeMCU पर फर्मवेयर स्थापित कर सकते हैं, आप इसे आधिकारिक माइक्रोप्रोथन डाउनलोड पृष्ठ से डाउनलोड कर सकते हैं
ESP8266 पर MicroPython फर्मवेयर स्थापित करना:
इससे पहले कि हम ESP8266 पर फर्मवेयर स्थापित कर सकें, हमें यह सुनिश्चित करने की आवश्यकता है कि हमारे पास USB से सीरियल कन्वर्टर के लिए सही ड्राइव है, ज्यादातर NodeMCU बोर्ड U2 कनवर्टर IC के लिए CP2102 USB का उपयोग करता है यही कारण है कि हमें डाउनलोड और इंस्टॉल करने की आवश्यकता है CP2102 USB से UART कनवर्टर के लिए ड्राइवर, एक बार ड्राइव डाउनलोड और इंस्टॉल होने के बाद, हमें एसप्टूल को डाउनलोड करने की आवश्यकता है, जो ईएसपी 8266 पर फर्मवेयर पढ़ने और लिखने के लिए बनाया गया पायथन आधारित उपकरण है।
पायथन प्राप्त करने का सबसे आसान तरीका माइक्रोसॉफ्ट स्टोर है, वहां से आपको पायथन की एक प्रति डाउनलोड और इंस्टॉल करनी होगी। एक बार पायथन स्थापित हो जाने के बाद, हम पाइप को स्थापित करने के लिए espool कमांड का उपयोग कर सकते हैं । प्रक्रिया नीचे की छवि की तरह कुछ दिखाई देगी।
एक बार स्थापित होने के बाद, यह देखने के लिए जांचें कि क्या आप कमांड टर्मिनल से एस्कपूल का उपयोग करते हैं।
ऐसा करने के लिए, बस कमांड चलाएं , esptool.py संस्करण यदि आपको नीचे दी गई छवि की तरह एक विंडो मिलती है, तो आपने अपने विंडोज पीसी पर सफलतापूर्वक एसपूल स्थापित किया है।
और अगर आपको कमांड विंडो से एस्पटूल तक पहुंचने में परेशानी हो रही है, तो विंडोज़ पर्यावरण चर में पूर्ण स्थापना पथ को जोड़ने का प्रयास करें।
NodeMCU बोर्ड के लिए आवंटित पोर्ट ढूंढना:
अब हमें NodeMCU बोर्ड के लिए आवंटित पोर्ट का पता लगाने की आवश्यकता है, ऐसा करने के लिए बस अपने डिवाइस मैनेजर विंडो में जाएं और Ports नामक विकल्प की तलाश करें यदि आप विस्तार करते हैं कि आप NodeMCU बोर्ड से जुड़े पोर्ट का पता लगा सकते हैं। हमारे लिए, यह नीचे दिखाए गए चित्र की तरह दिखता है।
ESP8266 की फ़्लैश मेमोरी को मिटाना:
अब हमने सहयोगी COM पोर्ट का पता लगा लिया है, हम इसकी फ्लैश मेमोरी को मिटाकर NodeMCU मॉड्यूल तैयार कर सकते हैं। ऐसा करने के लिए, निम्न कमांड का उपयोग किया जाता है, esptool.py --port COM6 erase_flash । प्रक्रिया नीचे दी गई छवि की तरह कुछ दिखाई देगी।
फर्मवेयर स्थापित करना:
निम्नलिखित कमांड को चलाने से NodeMCU बोर्ड में माइक्रोपायथॉन बाइनरी स्थापित हो जाएगा, एक बार इस बाइनरी को स्थापित करने से हम अपने अजगर कार्यक्रमों को अपलोड कर सकेंगे और रीड इवैल्यूएशन और प्रिंट लूप के साथ संवाद कर सकेंगे ।
esptool.py --port COM6 --baud 460800 write_flash --flash_size = 0 esp8266-20200911-v1.13.bin का पता लगाएं
इस प्रक्रिया में नीचे की छवि समान दिखाई देगी,
कृपया ध्यान दें कि स्थापना के समय, बाइनरी मेरे डेस्कटॉप पर थी, इसलिए मेरे पास मेरे डेस्कटॉप पर सीडी है और कमांड चलाएं।
अब यह हो गया है, इसका समय बोर्ड के साथ संवाद करने और कुछ एलईडी को ब्लिंक करने का है।
पुट्टी के साथ नोडएमसीयू के साथ संचार करना
अब चलिए PuTTY, PuTTY का उपयोग करके अपना पहला हैलो वर्ल्ड प्रोग्राम शुरू करते हैं, इसलिए हमें कनेक्शन प्रकार को सीरियल के रूप में सेट करने की आवश्यकता है, अगला हम सीरियल लाइन (हमारे मामले में इसका COM6) सेट करते हैं, और अंत में, हम गति को 115200 बॉड पर सेट करते हैं ।
यदि सब कुछ सही ढंग से किया जाता है, तो नीचे की छवि के समान एक विंडो दिखाई देगी, और हम आसानी से इसमें अपना कोड लिख सकते हैं, यह आमतौर पर iPython टर्मिनल की तरह काम करता है। इसके अलावा, हमने अपना पहला हैलो वर्ल्ड प्रोग्राम चलाया है, जो सिर्फ दो सरल लाइनें हैं, और एक बार जब हमने अपना प्रिंट स्टेटमेंट डाल दिया, तो हमें अपनी प्रतिक्रिया मिल गई।
Ampy का उपयोग करके पायथन आधारित एलईडी ब्लिंक कोड अपलोड करना
PuTTY टर्मिनल की मदद से MicroPython तक पहुंचना ESP मॉड्यूल के साथ संवाद करने का एक अच्छा तरीका है, लेकिन कोड अपलोड करने का एक और आसान तरीका Adafruit Ampy टूल के माध्यम से है, ampy को स्थापित करने के लिए, हम बस एक सरल pip3 स्थापित adafruit- चला सकते हैं ampy कमांड और यह हमारे पीसी पर ampy स्थापित करेगा। प्रक्रिया नीचे दी गई छवि की तरह कुछ दिखाई देगी।
अब आपके पास एक बार यह होने के बाद भी, हमें अभी भी सीरियल पोर्ट के बारे में हमारी जानकारी की आवश्यकता है, जिससे हम जुड़े हुए हैं। हमारे मामले में, यह COM6 है। अब हमें बस अपने एलईडी ब्लिंक कोड को MicroPython के साथ लिखना है, उसके लिए, हमने आधिकारिक माइक्रो पायथन वेबसाइट में दिए गए गाइड का उपयोग किया है
गाइड की मदद से, निम्न कोड बनाया जाता है।
मशीन इम्पोर्ट से पिन इंपोर्ट टाइम स्लीप एलईडी = पिन (2, पिन.ऑउट) जबकि ट्रू: LED.value (LED.value () नहीं) स्लीप (0.5)
कोड बहुत सरल है। सबसे पहले, हम मशीन से पिन लाइब्रेरी आयात करते हैं। पिन क्लास। अगला, हमें समय लाइब्रेरी को आयात करने की आवश्यकता है, जिसका उपयोग देरी फ़ंक्शन बनाने के लिए किया जाता है। अगला, हम आउटपुट के रूप में पिन 2 (जो ईएसपी 12 ई मॉड्यूल से जुड़ा हुआ है, ऑनबोर्ड एलईडी) सेट करते हैं। अगला, हम थोड़ी देर का लूप सेट करते हैं जहां हम 500ms देरी के साथ एलईडी को चालू और बंद करते हैं।
इस प्रकार आप कोड को NodeMCU पर अपलोड करते हैं। ऐसा करने के लिए, आपको निम्नलिखित एमपी कमांड चलाने की आवश्यकता है, ampy - COM6 COM6 मेनफ्रेम डालते हैं
यदि प्रोग्राम सही ढंग से निष्पादित हो जाता है, तो आप नीचे दिखाए गए जैसे एक एलईडी ब्लिंकिंग देखेंगे।
नोट: कोड अपलोड करते समय, मैंने अपना वर्तमान संकेत स्थान अपने डेस्कटॉप पर सेट कर दिया है, इसलिए मुझे मेनफ्रेम फाइल के लिए एक पूर्ण पथ निर्दिष्ट करने की आवश्यकता नहीं है, यदि आपके लिए यह आवश्यक नहीं है कि आप अपने मुख्य के लिए पूर्ण पथ निर्दिष्ट करें।.py फ़ाइल।
इसके बाद, हम DHT22 सेंसर से अपना तापमान और आर्द्रता डेटा प्राप्त करने के लिए आगे बढ़ते हैं।
ESP8266 पर MicroPython: DHT22 के साथ तापमान और आर्द्रता प्राप्त करना
NHTMCU के साथ DHT22 को जोड़ने के लिए योजनाबद्ध:
इस परियोजना के लिए पूरा सर्किट आरेख नीचे पाया जा सकता है। मैंने इस सर्किट को बनाने के लिए फ्रिटिंग का इस्तेमाल किया है।
जैसा कि आप देख सकते हैं कि सर्किट बहुत सरल है और जम्पर तारों का उपयोग करके आसानी से ब्रेडबोर्ड पर बनाया जा सकता है। पूरा सर्किट NodeMCU पर माइक्रो-यूएसबी पोर्ट का उपयोग करके संचालित किया जा सकता है। मेरा हार्डवेयर सेट-अप नीचे दिखाया गया है।
कोड:
MicroPython का उपयोग करके DHT22 या DHT11 सेंसर से तापमान और आर्द्रता डेटा प्राप्त करना बहुत आसान है क्योंकि पहले स्थापित किया गया MicroPython फर्मवेयर एक अंतर्निहित DHT लाइब्रेरी के साथ आता है।
1. हम मशीन कोड से DHT लाइब्रेरी और पिन लाइब्रेरी आयात करके अपना कोड शुरू करते हैं।
मशीन आयात पिन से आयात dht
2. अगला, हम एक डीएचटी ऑब्जेक्ट बनाते हैं जो पिन को संदर्भित करता है, जिसमें हमने अपना सेंसर संलग्न किया था।
सेंसर = dht.DHT22 (पिन (14))
3. अंत में, सेंसर मूल्य को मापने के लिए, हमें निम्नलिखित तीन आदेशों का उपयोग करना होगा।
Sens.measure () सेंसर। टेनर्स () सेंसर.ह्यूमिडिटी ()
अंतिम कोड के लिए, हम इसे थोड़ी देर के लूप में रखते हैं और उन मानों को प्रिंट करते हैं जो हमारे कोड के अंत को चिह्नित करते हैं। इसके अलावा, DHT22 सेंसर को किसी भी डेटा को पढ़ने से पहले 2 सेकंड की आवश्यकता होती है, इसलिए हमें 2 सेकंड की देरी जोड़ने की आवश्यकता है।
मशीन इम्पोर्ट से पिन इंपोर्ट टाइम स्लीप इम्पोर्ट dht dht22 = dht.DHT22 (पिन (14)) जबकि ट्रू: ट्राय: स्लीप (2) dht22.measure () temp = dht22.tcos () hum = dh22.humidity () प्रिंट (तापमान:% 3.2f C '% अस्थायी) प्रिंट (' आर्द्रता:% 3.2f %% '% hum) को छोड़कर OSError को e: print (' DHT22 सेंसर से डेटा पढ़ने में विफल ')।
एक बार कोडिंग करने के बाद, हम ampy कमांड की मदद से कोड अपलोड कर सकते हैं।
ampy - COM6 COM6 मेनफ्रेम डालते हैं
कोड को सफलतापूर्वक निष्पादित करने के बाद, आप किसी भी धारावाहिक मॉनिटर पर तापमान और आर्द्रता के मूल्यों की निगरानी कर सकते हैं। मैंने पोटीन का उपयोग किया है और जैसा कि आप नीचे देख सकते हैं, मैं COM5 पर तापमान और आर्द्रता मान प्राप्त करने में सक्षम था।
आशा है कि आपको लेख अच्छा लगा और कुछ उपयोगी सीखा। यदि आपके कोई प्रश्न हैं, तो आप उन्हें नीचे टिप्पणी अनुभाग में छोड़ सकते हैं या अन्य तकनीकी प्रश्नों को पोस्ट करने के लिए हमारे मंचों का उपयोग कर सकते हैं ।