विषयसूची:

ESP8266 और ESP32 के लिए पायथन के साथ शुरुआत करना: 6 कदम
ESP8266 और ESP32 के लिए पायथन के साथ शुरुआत करना: 6 कदम

वीडियो: ESP8266 और ESP32 के लिए पायथन के साथ शुरुआत करना: 6 कदम

वीडियो: ESP8266 और ESP32 के लिए पायथन के साथ शुरुआत करना: 6 कदम
वीडियो: WebSocket examples with ESP8266 | Client and Server | Send and Receive | Urdu | Hindi 2024, जुलाई
Anonim
ESP8266 और ESP32 के लिए पायथन के साथ शुरुआत करना
ESP8266 और ESP32 के लिए पायथन के साथ शुरुआत करना

बैकग्राउंड

ESP8266 और इसके छोटे बड़े भाई ESP32 पूर्ण टीसीपी/आईपी स्टैक और माइक्रो-कंट्रोलर क्षमता के साथ कम लागत वाले वाई-फाई माइक्रोचिप हैं। ESP8266 चिप पहली बार 2014 में निर्माता समुदाय के ध्यान में आया। तब से, कम कीमत (<5 USD), इसकी वाई-फाई क्षमता, 1 या 4 एमबी की फ्लैश मेमोरी में निर्मित, और विभिन्न प्रकार के उपलब्ध विकास बोर्डों ने ईएसपी चिप को वाईफाई और आईओटी DIY परियोजनाओं के लिए सबसे लोकप्रिय माइक्रो-नियंत्रकों में से एक बना दिया है।

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

इन दोनों का संयोजन शुरुआती और अधिक उन्नत उपयोगकर्ताओं दोनों के लिए DIY परियोजनाओं के लिए एक बहुत ही दिलचस्प विकल्प है।

मिपी-ईएसपी परियोजना

2015 में वापस ESP8266 के साथ मेरी पहली परियोजना ESP-01 चिप के साथ सीरियल कनेक्शन पर चिप एटी कमांड चलाने के लिए Arudions का उपयोग करके शुरू हुई। उसके बाद, अगले वर्षों में मैंने C++ भाषा के साथ चिप्स प्रोग्रामिंग के लिए ESP8266 के लिए Arduino कोर लागू किया। यह ठीक काम करता है, लेकिन एक पायथन उत्साही के लिए, पायथन 3 के माइक्रोपायथन कार्यान्वयन की मेरी खोज बहुत अच्छी खबर थी।

MiPy-ESP प्रोजेक्ट एक लचीला ढांचा है जो ESP- परिवार माइक्रो-कंट्रोलर पर पूर्ण-स्टैक पायथन IoT प्रोजेक्ट्स के लिए MicroPython को लागू करता है।

ढांचा LeGarage तकनीकी समिति सॉफ्टवेयर डेवलपर टीम (LG-TC-SWDT-01) द्वारा विकसित किया गया है, जिसका लक्ष्य हमारे माइक्रोकंट्रोलर अनुप्रयोगों के लिए पहले से स्थापित C++ आधारित कोड को बदलना है।

परियोजना बुनियादी सुविधाएँ प्रदान करती है जैसे कि

  • नेटवर्क कनेक्शन प्रक्रिया
  • चिप एक्सेस प्वाइंट वेबसर्वर (वाईफाई कनेक्शन और डेटा I/O के लिए चिप वेबपेजों की सेवा के लिए)
  • एमक्यूटीटी कार्यात्मकता
  • लॉगिंग/डिबगिंग
  • माइक्रोकंट्रोलर इवेंट शेड्यूलिंग
  • हार्डवेयर I/O रूटीन

एक मुख्य कॉम्पैक्ट कोड स्क्रिप्ट (main.py) के साथ, सभी वैश्विक कॉन्फ़िगरेशन (config.py) के साथ।

यह माइक्रोकंट्रोलर कोड वाईफाई नेटवर्क और एमक्यूटीटी दलालों के लिए चिप कनेक्शन के मजबूत रखरखाव के साथ चलता है। विभिन्न हार्डवेयर के लिए मौजूदा माइक्रोपायथन मॉड्यूल को आसानी से सिस्टम में एकीकृत किया जा सकता है।

MiPy-ESP फ्रेमवर्क हमारे सभी हॉबी इलेक्ट्रॉनिक्स IoT प्रोजेक्ट्स की रीढ़ बन गया है, जिसमें ESP-फैमिली माइक्रो-कंट्रोलर शामिल हैं। यह कई ईएसपी-पारिवारिक बोर्डों पर परीक्षण किया गया है, जैसे नोडएमसीयू, वेमोस और लोलिन बोर्ड।

निम्नलिखित ट्यूटोरियल MiPy-ESP ढांचे का उपयोग करके ESP- परिवार माइक्रोकंट्रोलर और माइक्रोपायथन के साथ शुरुआत करने के लिए एक गाइड है।

चरण 1: Wemos D1 मिनी ESP8266 बोर्ड

Wemos D1 मिनी ESP8266 बोर्ड
Wemos D1 मिनी ESP8266 बोर्ड
Wemos D1 मिनी ESP8266 बोर्ड
Wemos D1 मिनी ESP8266 बोर्ड
Wemos D1 मिनी ESP8266 बोर्ड
Wemos D1 मिनी ESP8266 बोर्ड
Wemos D1 मिनी ESP8266 बोर्ड
Wemos D1 मिनी ESP8266 बोर्ड

MiPy-ESP ढांचा अधिकांश ESP8266 आधारित माइक्रोकंट्रोलर के साथ काम करता है।

Wemos D1 मिनी डेवलपमेंट बोर्ड ESP-8266EX चिप पर आधारित है। 2.5 x 3.5 सेमी के पदचिह्न पर, इसमें 4 एमबी फ्लैश मेमोरी, 11 डिजिटल इनपुट / आउटपुट पिन, सभी पिन इंटरप्ट का समर्थन करते हैं, पीडब्लूएम, आई 2 सी, एसपीआई, सीरियल और 3.3V अधिकतम इनपुट के साथ 1 एनालॉग इनपुट, 5 वी पावर पर चल सकते हैं, माइक्रो यूएसबी कनेक्शन है और ब्रेडबोर्ड संगत है। कम कीमत और इसके छोटे आकार ने इसे मेरा पसंदीदा ईएसपी बोर्ड बना दिया है।

इसके अलावा, बोर्ड का D1 मिनी प्रो संस्करण बाहरी एंटीना को जोड़ने के विकल्प के साथ आता है, जिससे कनेक्शन रेंज काफी बढ़ जाती है (+100 मीटर रेंज)। इसके अलावा, बोर्ड समान कॉम्पैक्ट आकार वाले विभिन्न प्रकार के आउट-ऑफ-द-बॉक्स एक्सटेंशन बोर्ड बोर्ड के साथ आता है।

चरण 2: ESP चिप पर माइक्रोपायथन के लिए तैयार होना

ESP चिप पर माइक्रोपायथन के लिए तैयार होना
ESP चिप पर माइक्रोपायथन के लिए तैयार होना

इस पहले चरण में, आप करेंगे

  • यूएसबी के माध्यम से ईएसपी बोर्ड को अपने कंप्यूटर से कनेक्ट करें
  • चिप को चमकाने के लिए एस्प्टूल सॉफ्टवेयर स्थापित करें
  • चिप मेमोरी मिटाएं
  • माइक्रोपायथन फर्मवेयर के साथ चिप को फ्लैश करें
  • अपने चिप के साथ कमांड लाइन इंटरैक्शन को सक्षम करने के लिए रुशेल स्थापित करें
  • एमपीआई-क्रॉस स्थापित करें (बाइनरी में.py फाइलों के संकलन के लिए)

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

MiPy-ESP कोड का उपयोग करने वाले MicroPython के लिए, चिप फ्लैश आकार के लिए न्यूनतम आवश्यकता 1MB है। 512kB वाले बोर्डों के लिए एक विशेष बिल्ड भी है, लेकिन इसमें फाइल सिस्टम के लिए कोई समर्थन नहीं है, जिस पर MiPy-ESP निर्भर करता है।

USB केबल का उपयोग करते समय, कनेक्ट होने पर बोर्ड आपके कंप्यूटर द्वारा संचालित हो जाता है। यह सीरियल कनेक्शन पर प्रोग्रामिंग और डिबगिंग की भी अनुमति देता है। जब प्रोजेक्ट कोड अपलोड किया जाता है और आपकी परियोजना को तैनात किया जाता है, तो बोर्ड के बिजली आपूर्ति पिनों पर बाहरी शक्ति लागू होती है।

Esptool सॉफ़्टवेयर के बारे में EsptoolInformation को स्थापित करना Esptool GitHub रिपॉजिटरी में पाया जा सकता है। यदि आप विंडोज/लिनक्स/ओएसएक्स (मैक) का उपयोग करना चाहते हैं, तो ऊपर दिया गया लिंक भी इसे कवर करता है। पायथन पैकेज द्वारा स्थापित किया जा सकता है

पाइप स्थापित esptool

लिनक्स उपयोगकर्ताओं के लिए, एस्प्टूल के पैकेज डेबियन और उबंटू के लिए बनाए रखा जाता है, और इसके साथ भी स्थापित किया जा सकता है

sudo apt esptool स्थापित करें

ESP फ्लैश मेमोरी को मिटाते हुए Esptool का उपयोग करके, आप ESP फ्लैश मेमोरी को कमांड से मिटाते हैं

esptool.py --port /dev/ttyUSB0 मिटा_फ्लैश

MicroPyton फर्मवेयर डाउनलोड करनाMicroPython फर्मवेयर एक.bin फ़ाइल में रहता है जिसे MicroPython वेबसाइट से डाउनलोड किया जा सकता है।

रेपो की वर्तमान परियोजना मास्टर शाखा का परीक्षण किया गया है और यह माइक्रोपायथन v.1.12 के साथ परिचालित है। MiPY-ESP ढांचे के साथ सफलता सुनिश्चित करने के लिए, इस लिंक से 'esp8266-20191220-v1.12.bin' फ़ाइल डाउनलोड करें और कमांड द्वारा फर्मवेयर को चिप पर लिखें:

esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-20191220-v1.12.bin

Rshell को संस्थापित करनाRshell पैकेज चिप पर स्थापित आपके MicroPython वातावरण के साथ कमांड लाइन इंटरेक्शन को सक्षम बनाता है। यह इस लिंक में पाया जा सकता है। Rshell एक साधारण शेल है जो होस्ट पर चलता है और माइक्रोपायथन के रॉ-आरईपीएल का उपयोग करता है ताकि फाइल सिस्टम की जानकारी प्राप्त करने के लिए, और माइक्रोपायथन के फाइल सिस्टम से फाइलों को कॉपी करने के लिए पाइबोर्ड पर पायथन स्निपेट भेजा जा सके। REPL का मतलब रीड इवैल्यूएट प्रिंट लूप है, और यह इंटरेक्टिव माइक्रोपायथन प्रॉम्प्ट को दिया गया नाम है जिसे आप ESP8266 पर एक्सेस कर सकते हैं। अपने कोड का परीक्षण करने और कमांड चलाने के लिए आरईपीएल का उपयोग करना अब तक का सबसे आसान तरीका है। आदेश द्वारा रुशेल स्थापित करें:

sudo pip इंस्टाल rshell

एमपीआई-क्रॉस कंपाइलर को स्थापित करना माइक्रोपायथन को चिप फाइल सिस्टम पर अपलोड की गई ascii.py फाइलों के साथ लागू किया जा सकता है। MicroPython.mpy फ़ाइलों की अवधारणा को भी परिभाषित करता है जो एक बाइनरी कंटेनर फ़ाइल स्वरूप है जिसमें पहले से संकलित कोड होता है, और जिसे सामान्य.py मॉड्यूल की तरह आयात किया जा सकता है।.py फ़ाइलों को.mpy में संकलित करने से, आपके रनिंग कोड के लिए अधिक RAM मेमोरी उपलब्ध होगी - और MiPy-ESP ढांचे के एक कार्यशील कोर मॉड्यूल के लिए इसकी आवश्यकता है।

MiPy-ESP कोड परिनियोजन के लिए, एक mpy-cross MicroPython क्रॉस कंपाइलर चिप अपलोड करने से पहले.py स्क्रिप्ट को.mpy में संकलित करता है। इस लिंक में दिए गए निर्देशों के अनुसार एमपीआई-क्रॉस पैकेज स्थापित करें। वैकल्पिक रूप से, यदि आप यहाँ GitHub से MicroPython रिपॉजिटरी को क्लोन करते हैं, तो mpy-cross कमांड को Python pip कमांड द्वारा स्थापित किया जा सकता है या mpy-cross फ़ोल्डर पथ से चलाया जा सकता है।

अब आपके पास MicroPython और आपके पहले MiPy-ESP प्रोजेक्ट के निर्माण के साथ आरंभ करने के लिए सभी आवश्यक उपकरण स्थापित हैं

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

MiPy-ESP. के साथ शुरुआत करना
MiPy-ESP. के साथ शुरुआत करना

इस चरण में आप

MyPy-ESP फ्रेमवर्क डाउनलोड करें

MiPy-ESP फ्रेमवर्क डाउनलोड करनाMiPy-ESP प्रोजेक्ट इस कोड रिपॉजिटरी में GitHub पर पाया जा सकता है। गिटहब से आप रिपोजिटरी फ़ाइल संरचना डाउनलोड कर सकते हैं, या इसे अपने कंप्यूटर पर क्लोन कर सकते हैं

गिट क्लोन

आपके कंप्यूटर पर कोड रिपॉजिटरी स्थापित होने के साथ, अब आपके पास एक आउट-ऑफ-द-बॉक्स ESP IoT प्रोजेक्ट बनाने के लिए आवश्यक सभी कोड मॉड्यूल हैं। अगले चरण में टूलबॉक्स के बारे में अधिक जानकारी।

चरण 4: MiPy-ESP फ्रेमवर्क आर्किटेक्चर

MiPy-ESP फ्रेमवर्क आर्किटेक्चर
MiPy-ESP फ्रेमवर्क आर्किटेक्चर

इस चरण में आप

MiPy-ESP कोड वर्कफ़्लो के बारे में जानें

MiPy-ESP कोड आर्किटेक्चर

सभी पायथन फ्रेमवर्क मॉड्यूल MiPY-ESP कोड रिपॉजिटरी के /src फ़ोल्डर में पाए जाते हैं। src/core फ़ोल्डर में कोर मॉड्यूल होते हैं जो प्रत्येक प्रोजेक्ट में जाते हैं। src/drivers फ़ोल्डर में आपके चिप से जुड़े विभिन्न हार्डवेयर के लिए मॉड्यूल का चयन होता है। src/utilities फ़ोल्डर में आपके प्रोजेक्ट में शामिल करने के लिए वैकल्पिक उपयोगिता मॉड्यूल हैं।

फ़ाइलें main.py और config.py src/ फ़ोल्डर में पाई जाती हैं। आपकी परियोजना के निर्माण के लिए संपादित करने के लिए ये मुख्य फाइलें हैं:

config.py:

यह फ़ाइल आपके प्रोजेक्ट के लिए वैश्विक कॉन्फ़िगरेशन फ़ाइल है। इसकी विभिन्न सेटिंग्स हैं, सभी फ़ाइल में वर्णनात्मक टिप्पणियों के साथ।

main.py:

यह माइक्रो-कंट्रोलर कोड लूप के लिए मुख्य स्क्रिप्ट है। इसमें फ्रेमवर्क में एप्लिकेशन-विशिष्ट कोड होता है। चिप बूट होने पर, main.py config.py फ़ाइल से दिए गए इनपुट के साथ सभी प्रोजेक्ट-आश्रित मॉड्यूल को चलाता और आयात करता है। उपरोक्त फ़्लोचार्ट main.py स्क्रिप्ट का लेआउट दिखाता है।

ऊपर दिया गया आंकड़ा main.py के वर्कफ़्लो का वर्णन करता है:

  1. बूट होने पर, कोड चिप को वाई-फाई नेटवर्क से कनेक्ट करने का प्रयास करता है पहले लागू नेटवर्क और उनके पासवर्ड (चिप पर एन्क्रिप्टेड) फ्लैश मेमोरी में संग्रहीत होते हैं। नेटवर्क एसएसआईडी और उनके पासवर्ड को वाईफाई.जेसन फ़ाइल में प्रारूप {" SSID1":"पासवर्ड", "SSID":"पासवर्ड2"}। इस फ़ाइल में दिए गए नेटवर्क संग्रहीत हैं, पासवर्ड एन्क्रिप्ट किए गए हैं, और फ़ाइल बूट होने पर हटा दी गई है।
  2. यदि पहले से कोई ज्ञात नेटवर्क नहीं मिलता है, तो कोड एक एक्सेस प्वाइंट (AP) वेबसर्वर सेट करता हैचिप AP सर्वर SSID और पासवर्ड config.py फ़ाइल में सेट होते हैं। चिप SSID पर लॉग ऑन करके, वाई-फाई पर चिप के लॉगऑन के लिए एक वेबपेज 192.168.4.1 पर परोसा जाता है। पता लगाए गए नेटवर्क एक मेनू में दिखाए जाते हैं, या SSID को वाई-फाई पासवर्ड के साथ मैन्युअल रूप से (छिपे हुए नेटवर्क) में दर्ज किया जा सकता है. वाई-फाई से चिप के सफल कनेक्शन पर, एपी सर्वर बंद हो जाता है और main.py कोड अपने अगले चरणों के लिए आगे बढ़ता है।
  3. Main.py के सेटअप सेक्शन में,

    • नौकरियों और कॉलबैक (आदि। MQTT कॉलबैक) और नियमित घटनाओं के लिए कार्य परिभाषित किए गए हैं।
    • रनिंग फंक्शन के लिए अलग-अलग टाइम जॉब सेट हैं।
    • MQTT ब्रोकर क्लाइंट स्थापित हो गया है
  4. कोड तब मुख्य माइक्रो-कंट्रोलर लूप में जाता है,

    • लगातार नेटवर्क और MQTT ब्रोकर कनेक्शन की जाँच करना,
    • एमक्यूटीटी सब्सक्रिप्शन,
    • हार्डवेयर I/O
    • और अनुसूचित नौकरियां।
    • नेटवर्क या MQTT ब्रोकर कनेक्शन खो जाने पर, कोड पुन: स्थापित करने का प्रयास करता है।

चरण 5: अपना प्रोजेक्ट कोड तैयार करना

अपना प्रोजेक्ट कोड तैयार करना
अपना प्रोजेक्ट कोड तैयार करना
अपना प्रोजेक्ट कोड तैयार करना
अपना प्रोजेक्ट कोड तैयार करना

इस चरण में आप

  • MiPy-ESP रिपॉजिटरी फ़ाइल संरचना के बारे में जानें
  • चिप अपलोड के लिए अपना प्रोजेक्ट कोड तैयार करें

रिपोजिटरी फ़ोल्डर संरचनाउपरोक्त आंकड़ा भंडार फ़ोल्डर संरचना का वर्णन करता है और ढांचे के वर्तमान मॉड्यूल को सूचीबद्ध करता है। आपका प्रोजेक्ट src/ फ़ोल्डर में चरण है। कोर MiPy-ESP फ्रेमवर्क मॉड्यूल src/core में, src/utilities में वैकल्पिक उपयोगिता मॉड्यूल और src/drivers में हार्डवेयर मॉड्यूल में रहते हैं।

अधिकांश उपलब्ध माइक्रोपायथन हार्डवेयर लाइब्रेरी बिना किसी संशोधन के ड्राइवर / फ़ोल्डर में जा सकते हैं। सभी मौजूदा ड्राइवरों का परीक्षण MiPy-ESP ढांचे के साथ किया जाता है। उपयोगिताओं / फ़ोल्डर में मॉड्यूल के संबंध में, जैसे ही वे जीवन में आते हैं, और जोड़े जाएंगे।

प्रोजेक्ट कोड का स्टेजिंगआपका प्रोजेक्ट विशिष्ट कोड src/ फ़ोल्डर में रखा जाना चाहिए। पहले से मौजूद है, main.py और config.py फ़ाइलें हैं जिन्हें आप संपादित कर सकते हैं। वांछित परियोजना उपयोगिताओं को src/utilities और src/drivers से src/.

यदि आप चिप में ज्ञात वाई-फाई नेटवर्क और पासवर्ड का प्रावधान करना चाहते हैं, तो फ़ाइल wifi.json को src/ में जोड़ें।

संकलन और अपलोड के लिए तैयार करेंए बशर्ते मेकफ़ाइल को /src में.py फ़ाइलों को संकलित करके, कोर मॉड्यूल को संकलित करके और संकलित फ़ाइलों को बिल्ड/कमांड नामक एक नए फ़ोल्डर में स्थानांतरित करके चिप में स्थानांतरण के लिए फ़ाइलें तैयार करने के लिए लागू किया जा सकता है।

निर्माण करना

निर्मित फ़ाइलें चिप फाइल सिस्टम पर अपलोड करने के लिए तैयार हैं। डिफ़ॉल्ट रूप से, main.py और config.py को बाइनरी में संकलित नहीं किया जाता है, ताकि उन्हें तैनात चिप्स के निरीक्षण के लिए आसानी से एक्सेस किया जा सके। आदेश:

साफ करो

बिल्ड/फ़ोल्डर और उसकी सामग्री को हटाता है।

चरण 6: माइक्रोकंट्रोलर को कोड संकलित और अपलोड करना

कोड को माइक्रोकंट्रोलर में संकलित और अपलोड करना
कोड को माइक्रोकंट्रोलर में संकलित और अपलोड करना
कोड को माइक्रोकंट्रोलर में संकलित और अपलोड करना
कोड को माइक्रोकंट्रोलर में संकलित और अपलोड करना

इस खंड में आप

  • तैयार फाइलों को बिल्ड / लास्ट सेक्शन में अपलोड करें
  • चल रहे कोड को प्रारंभ और मॉनिटर करें

रुपयेशेल के साथ बिल्ड/फाइल अपलोड करना

रुपयेशेल का उपयोग करके सभी फाइलों को /बिल्ड डायरेक्टरी में ईएसपी चिप पर अपलोड करें। USB से जुड़े माइक्रोकंट्रोलर के साथ, बिल्ड / फोल्डर से Rshell को कमांड से शुरू करें

rshell -p /dev/ttyUSB0

फिर चिप फाइलों (यदि कोई हो) का निरीक्षण करें

एलएस / पायबोर्ड

चिप पर सभी फाइलों को किसके द्वारा हटाया जा सकता है

आरएम/पायबोर्ड/*.*

बिल्ड/चिप में सभी प्रोजेक्ट फ़ाइलों की प्रतिलिपि बनाएँ:

सीपी *.* /पायबोर्ड

फिर कमांड द्वारा इंटरेक्टिव पायथन टर्मिनल शुरू करें

आरईपीएल

अब आप MiPy-ESP लकड़हारा मॉड्यूल से पायथन कमांड या आयात मॉड्यूल और मॉनिटर चिप सीरियल आउटपुट को लागू कर सकते हैं।

रीसेट बटन दबाकर या कमांड लाइन से चिप को पुनरारंभ करें

मुख्य आयात करें

या

आयात मशीन

और फिर

मशीन.रीसेट ()

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

उम्मीद है कि यह आपको शुरू करना चाहिए।

सिफारिश की: