विषयसूची:

WEMOS D1 (ESP-8266EX) पर आधारित MicroPython IoT रोवर: 7 कदम (चित्रों के साथ)
WEMOS D1 (ESP-8266EX) पर आधारित MicroPython IoT रोवर: 7 कदम (चित्रों के साथ)

वीडियो: WEMOS D1 (ESP-8266EX) पर आधारित MicroPython IoT रोवर: 7 कदम (चित्रों के साथ)

वीडियो: WEMOS D1 (ESP-8266EX) पर आधारित MicroPython IoT रोवर: 7 कदम (चित्रों के साथ)
वीडियो: How to add WiFi Control to any project || ESP32 Beginner's Guide 2024, नवंबर
Anonim
Image
Image
WEMOS D1 (ESP-8266EX) पर आधारित माइक्रोपायथन IoT रोवर
WEMOS D1 (ESP-8266EX) पर आधारित माइक्रोपायथन IoT रोवर

**अपडेट करें: मैंने लांस के साथ v2 के लिए एक नया वीडियो पोस्ट किया है **

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

माइक्रोपायथन क्या है?

अपनी वेबसाइट के अनुसार, माइक्रोपायथन पायथन 3 प्रोग्रामिंग भाषाओं का एक दुबला और कुशल कार्यान्वयन है जिसमें पायथन मानक पुस्तकालय का एक छोटा उपसमुच्चय शामिल है और इसे माइक्रोकंट्रोलर और विवश वातावरण (जैसे ESP8266) पर चलाने के लिए अनुकूलित किया गया है। यह अनिवार्य रूप से एक चिप पर पायथन आईडीई है। एक प्रमुख लाभ यह है कि आप Webrepl नामक वेब-ब्राउज़र क्लाइंट का उपयोग करके कोड बना सकते हैं और इसे तुरंत बदल सकते हैं। (Arduino में ऐसा करने का प्रयास करें।) आप Arduino में डेटा लॉगिंग या LED स्क्रीन पर भरोसा करने के बजाय Webrepl पर रीयल-टाइम में सेंसर डेटा भी देख सकते हैं।

ईएसपी8266 क्या है?

संक्षेप में, इसे अंतर्निहित नेटवर्क क्षमता वाले Arduino के रूप में सोचें। आप C/C++ में ESP8266 बोर्डों को प्रोग्राम करने के लिए Arduino IDE का उपयोग कर सकते हैं या आप इसे NodeMCU या MicroPython के साथ फ्लैश कर सकते हैं। इस प्रोजेक्ट में, मैं एक ESP8266 बोर्ड पर MicroPython को फ्लैश करूंगा।

मैंने एक WEMOS D1 प्राप्त करने का निर्णय लिया जो इस सरल परियोजना के लिए ESP8266-12EX पर आधारित है जहां मैं एक वेब ब्राउज़र का उपयोग करके 2WD कार को नेविगेट करूंगा। ऐसे अन्य बोर्ड हैं जो माइक्रोपायथन के लिए डिज़ाइन किए गए हैं लेकिन मुझे कुछ सस्ता चाहिए था जिसे मैं फेंक सकता था अगर यह मेरे मानदंडों को पूरा नहीं करता था। जैसा कि अपेक्षित था, यह मेरी सभी आवश्यकताओं को पूरा करता है और सबसे अधिक संभावना है कि मैं भविष्य की परियोजनाओं में WeMos और Micropython को शामिल करूंगा।

चरण 1: भाग

पार्ट्स
पार्ट्स
पार्ट्स
पार्ट्स
पार्ट्स
पार्ट्स
पार्ट्स
पार्ट्स
  • Wemos D1 या कोई भी ESP8266 आधारित बोर्ड
  • मोटर शील्ड (मैं AliExpress से सस्ते L293D का उपयोग कर रहा हूं)
  • 4 x AA और 9V के लिए बैटरी धारक (4 x AA बैटरी मोटर्स के लिए हैं और 9V Wemos बोर्ड के लिए है)
  • 2WD कार चेसिस
  • ड्यूपॉन्ट केबल

सब कुछ एक साथ रखने के लिए सोल्डरिंग आयरन, स्क्रू ड्राइवर और ग्लू गन की आवश्यकता हो सकती है।

चरण 2: हार्डवेयर असेंबली

हार्डवेयर असेंबली
हार्डवेयर असेंबली
हार्डवेयर असेंबली
हार्डवेयर असेंबली
हार्डवेयर असेंबली
हार्डवेयर असेंबली

सबसे पहले, निर्देश के अनुसार चेसिस को इकट्ठा करें।

फिर, दिखाए गए अनुसार अन्य घटकों को गर्म गोंद।

मोटर के तारों को मोटर टर्मिनलों में मिलाया जाना चाहिए और टर्मिनल जोड़ों को सुदृढ़ करने के लिए गर्म गोंद का उपयोग करना चाहिए।

4AA बैटरी होल्डर पर एक छोटा सा स्विच लगाया। यह मोटर शील्ड को बिजली चालू/बंद कर देगा।

चरण 3: वायरिंग

तारों
तारों
तारों
तारों
तारों
तारों

दिखाए गए अनुसार मेरे वायरिंग आरेख का पालन करें।

Wemos से मोटर शील्ड:

D1 IN2

D2 IN1 D3 IN4 ** D4 D5 IN3 GND छोड़ें -> GND

मोटर/पावर के लिए मोटर शील्ड:

एक टर्मिनल -> लेफ्ट मोटर

बी टर्मिनल -> राइट मोटर वीसीसी -> बैटरी (+) जीएनडी -> बैटरी (-)

चरण 4: माइक्रोपायथन इंस्टालेशन

सबसे पहले, Wemos में CH304G पर आधारित एक सीरियल/USB चिप है। यह वही चिप है जो सस्ते अरुडिनो-क्लोन में पाई जाती है और आपको मैक या पीसी के लिए एक उचित ड्राइवर स्थापित करना होगा। ड्राइवर को स्थापित करने के लिए इस साइट पर दिए गए निर्देशों का पालन करें।

Wemos को अपने कंप्यूटर से कनेक्ट करें और पुष्टि करें कि आपका कंप्यूटर Wemos का पता लगा सकता है। मैक पर, निम्न कमांड चलाएँ और आपको /dev/tty.wchusbserial640 नामक एक उपकरण दिखाई देगा।

$ ls -lt /dev/tty* | सिर

crw-rw-rw- 1 रूट व्हील 17, 4 मार्च 2 23:31 /dev/tty.wchusbserial640

यदि आप पीसी पर हैं, तो आप इस निर्देश को संदर्भ के रूप में उपयोग कर सकते हैं।

इसके बाद, आपको अपने कंप्यूटर पर Python 2 या 3 को सेटअप करना होगा क्योंकि फ़्लैश टूल, esptool.py, Python पर आधारित है। जबकि माइक्रोपायथन गाइड कह सकता है कि उपकरण केवल पायथन 2.7 के साथ काम करता है, मैं इसे बिना किसी समस्या के पायथन 3 में चलाने में सक्षम था। https://www.python.org से नवीनतम पायथन डाउनलोड करें और अपने पीसी या मैक के लिए इंस्टॉलेशन निर्देशों का पालन करें।

अंत में, आपको Wemos पर MicroPython इंस्टॉल करना होगा। MicroPython साइट में ESP8266 पर MicroPython को सेटअप करने का एक उत्कृष्ट ट्यूटोरियल है। ESP8266 पर MicroPython के साथ शुरुआत करने में बस इंस्टॉलेशन निर्देशों का पालन करें।

मेरे द्वारा उपयोग किए जाने वाले आदेश नीचे दिए गए हैं:

$ esptool.py --port /dev/tty.wchusbserial640 इरेज़_फ्लैश

esptool.py v1.3 कनेक्ट हो रहा है…. सेसांटा फ्लैशर स्टब चल रहा है… फ्लैश मिटा रहा है (इसमें कुछ समय लग सकता है)… मिटाने में 10.5 सेकंड का समय लगा

$ esptool.py --port /dev/tty.wchusbserial640 write_flash -fm dio -fs 32m -ff 40m 0x00000 esp8266-20170108-v1.8.7.bin

esptool.py v1.3 कनेक्ट हो रहा है…. सेसांता फ्लैशर स्टब चल रहा है… 0x0240 पर सेट फ्लैश पैराम्स ने 50.8 सेकंड (92.8 kbit/s) में 0x0 पर 589824 बाइट्स लिखा… छोड़कर…

MicroPython अब आपके बोर्ड पर स्थापित हो गया है!

चरण 5: सेटअप नेटवर्क

सेटअप नेटवर्क
सेटअप नेटवर्क

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

$ स्क्रीन /dev/tty.wchusbserial640 115200

जब आप एक खाली स्क्रीन देखते हैं, तो प्रॉम्प्ट देखने के लिए रिटर्न दबाएं:

>>

(नोट: बाहर निकलने के लिए, CTRL-A CTRL-\ टाइप करें)

अब, वेब क्लाइंट एक्सेस को सक्षम करते हैं। सेटअप प्रोग्राम चलाने के लिए "import webrepl_setup" टाइप करें। WebREPL को सक्षम करने के लिए E दर्ज करें और फिर पासवर्ड सेट करें। परिवर्तनों को सक्रिय करने के लिए रीबूट करें।

>>webrepl_setup आयात करें

WebREPL डेमॉन ऑटो-स्टार्ट स्थिति: अक्षम क्या आप (ई) सक्षम करना चाहते हैं या (डी) इसे बूट पर चलाने में सक्षम करना चाहते हैं? (छोड़ने के लिए खाली लाइन) > E WebREPL को सक्षम करने के लिए, आपको इसके लिए पासवर्ड सेट करना होगा नया पासवर्ड: XXXXX पासवर्ड की पुष्टि करें: XXXXX रीबूट के बाद परिवर्तन सक्रिय हो जाएंगे क्या आप अभी रीबूट करना चाहेंगे? (वाई/एन) वाई

अंत में, Webrepl क्लाइंट को अपनी मशीन पर डाउनलोड करें। यह वैकल्पिक है लेकिन क्लाइंट अन्य उपयोगी टूल के साथ आता है जिसे आप बाद में उपयोग करना चाहेंगे। उदाहरण के लिए, webrepl_cli.py scp- जैसे सिंटैक्स में फ़ाइलों को Wemos में कॉपी करने के लिए एक कमांड है। क्लाइंट डाउनलोड करने के लिए गिट का प्रयोग करें। (यदि आपके पास अभी तक नहीं है तो git टूल इंस्टॉल करें।)

गिट क्लोन

अपना वेब ब्राउज़र खोलें और URL फ़ील्ड पर, अपने डाउनलोड किए गए webrepl क्लाइंट फ़ाइल स्थान का स्थान दर्ज करें जैसे:

फ़ाइल:///उपयोगकर्ता/xxxxx/wemos/webrepl/webrepl.html

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

अपने webrepl क्लाइंट पर वापस जाएं और Connect पर क्लिक करें। इसे पासवर्ड के लिए संकेत देना चाहिए। अपना Wemos पासवर्ड दर्ज करें और आपको कनेक्ट करना चाहिए।

माइक्रोपायथन में आपका स्वागत है!

पासवर्ड: WebREPL कनेक्टेड >>>

आपका Wemos अभी भी AccessPoint मोड में चल रहा है। हालांकि यह ठीक है, मैं इसे स्टेशन मोड में चलाना पसंद करता हूं जहां यह मेरे घर वाईफ़ाई से जुड़ता है ताकि मेरा कंप्यूटर इसे घर वाईफ़ाई के माध्यम से एक्सेस कर सके और अभी भी इंटरनेट का उपयोग हो। ऐसा करने के लिए, आपको नेटवर्क कॉन्फ़िगरेशन के साथ boot.py नामक एक फ़ाइल बनानी होगी और इसे Wemos पर अपलोड करना होगा।

यहाँ एक नमूना boot.py है। अपने घर के वाई-फाई नेटवर्क में ssid और पासवर्ड बदलें। इसके अलावा, मैं इसे 192.168.0.32 का स्थिर आईपी देना चाहता हूं। इसे अपने घर वाईफ़ाई के उपलब्ध आईपी पते में बदलें।

boot.py (आप इसे नीचे से डाउनलोड कर सकते हैं)

आयात जीसी

आयात webrepl def do_connect (): आयात नेटवर्क sta_if = network. WLAN(network. STA_IF) यदि नहीं sta_if.isconnected (): प्रिंट ('नेटवर्क से कनेक्ट हो रहा है…') sta_if.active(True) sta_if.ifconfig(('192.168.1.1. 0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')) sta_if.connect('', '') जबकि नहीं sta_if.isconnected(): पास प्रिंट ('नेटवर्क कॉन्फिग:', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()

अपने Wemos को अपनी boot.py फ़ाइल भेजने के लिए Webrepl क्लाइंट के "सेंड ए फाइल" फॉर्म का उपयोग करें। रीबूट करने के लिए रीसेट बटन दबाएं। यदि आप अभी भी स्क्रीन कमांड का उपयोग कर यूएसबी के माध्यम से जुड़े हुए हैं, तो आप देखेंगे:

नेटवर्क से कनेक्ट हो रहा है… नेटवर्क कॉन्फिगरेशन: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') WebREPL डेमॉन ws पर शुरू हुआ: //192.168.4.1:8266 WebREPL डेमॉन ws पर शुरू हुआ://192.168.0.32:8266 सामान्य मोड में शुरू किया गया webrepl 2017-01-09 को MicroPython v1.8.7-7-gb5a1a20a3 पढ़ने के लिए 'main.py' फ़ाइल नहीं खोल सका; ESP8266 के साथ ESP मॉड्यूल अधिक जानकारी के लिए "सहायता ()" टाइप करें। >>>

यह पुष्टि करता है कि आपका Wemos 192.168.0.32 के ipaddress का उपयोग करके आपके घर के WIFI से जुड़ा है।

आप उस आईपी पते को मान्य करने के लिए पिंग कर सकते हैं।

$ पिंग 192.168.0.32

पिंग १९२.१६८.०.३२ (१९२.१६८.०.३२): ५६ डेटा बाइट्स

१९२.१६८.०.३२ से ६४ बाइट्स: icmp_seq=0 ttl=255 time=9.334 ms १९२.१६८.०.३२ से ६४ बाइट्स: icmp_seq=1 ttl=255 time=11.071 ms..

चरण 6: मुख्य कार्यक्रम स्थापित करें

मुख्य कार्यक्रम स्थापित करें
मुख्य कार्यक्रम स्थापित करें
मुख्य कार्यक्रम स्थापित करें
मुख्य कार्यक्रम स्थापित करें

अंत में, आपको मुख्य प्रोग्राम इंस्टॉल करना होगा जो आपके Wemos पर चलता रहेगा।

अपने वेब ब्राउज़र पर वापस जाएँ और webrepl क्लाइंट प्रोग्राम चलाएँ। IP पते को अपने Wemos के IP पते में बदलें। मेरे मामले में, यह अब 192.168.0.32 है। अपना Wemos पासवर्ड दर्ज करें और अब आपको Wemos से कनेक्ट होना चाहिए।

आइए संलग्न main.py प्रोग्राम को अपलोड करें। संलग्न फ़ाइल को अपने कंप्यूटर पर डाउनलोड करें। डाउनलोड किए गए main.py को चुनने के लिए फ़ाइल चुनें पर क्लिक करें और डिवाइस पर भेजे गए पर क्लिक करें।

main.py प्रोग्राम को लोड करने के लिए आपको रेस्ट बटन दबाना होगा। रीसेट बटन दबाने के बाद, आप देखेंगे:

नेटवर्क से कनेक्ट हो रहा है…

नेटवर्क कॉन्फ़िगरेशन: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')

WebREPL डेमॉन ws पर शुरू हुआ: //192.168.4.1:8266 WebREPL डेमॉन ws: //192.168.0.32:8266 पर शुरू हुआ वेबरेपल सामान्य मोड में शुरू हुआ सुनकर, अपने ब्राउज़र को इससे कनेक्ट करें …

इसका मतलब है कि आपका main.py प्रोग्राम सक्रिय है और पोर्ट 80 पर सूचीबद्ध है।

परीक्षण करने के लिए, अपना वेब ब्राउज़र खोलें और https:// दर्ज करें।

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

चरण 7: भविष्य में सुधार

निम्नलिखित टू-डू आइटम मेरी v2 सूची में हैं:

  • मोटर की गति को नियंत्रित करने के लिए PWM का उपयोग करें
  • वेब इंटरफ़ेस में सुधार करें। शायद एआरईएसटी ढांचे का उपयोग करें। मुझे विश्वास नहीं है कि इस समय माइक्रोपीथन पर एक आरईएसटी लिब उपलब्ध है, इसलिए मुझे इसे हैक करना पड़ सकता है।

इस निर्देश को पढ़ने के लिए धन्यवाद। भविष्य में और प्रोजेक्ट्स के लिए मुझे फेसबुक, यूट्यूब और इंस्ट्रक्शंस पर फॉलो करें।

सिफारिश की: