द्वारा डेनिस नुतिउ
हाल ही में, मैंने AliExpress से लगभग $4 में एक NodeMCU खरीदा। मैंने ऐसा इसलिए किया क्योंकि मैं जानना चाहता था कि ESP8266 के बारे में इतना हंगामा क्यों है।
NodeMCU एक ओपन सोर्स IoT प्लेटफॉर्म है। इसमें फर्मवेयर शामिल है जो Espressif Systems के ESP8266 वाई-फाई SoC पर चलता है, और हार्डवेयर जो ESP-12 मॉड्यूल पर आधारित है।
स्रोत: ESP8266 डेटाशीट
Arduino UNO की तुलना में, मेरा ESP8266 CPU पावर और कीमत के मामले में इसे पूरी तरह से मात देता है।
ESP8266, Arduino से 500% तेज और 82% सस्ता है। ESP8266 में वाईफाई कनेक्टिविटी भी है।
जब मैंने ESP8266 के लिए Espressif वेबसाइट देखी तो मैं बहुत हैरान था। वहां बहुत सारा दस्तावेज़ीकरण और संसाधन हैं जिनका आप उपयोग कर सकते हैं। उदाहरण के लिए, एक एंड्रॉइड एप्लिकेशन है जो आपके ESP8266 को आपके वाईफाई से कनेक्ट करने के लिए कहता है। ऐप SSID और पासवर्ड को पैकेट्स के रूप में भेजता है, ESP8266 उन्हें सूंघता है, और फिर यह आपके वाईफाई से कनेक्ट हो जाता है। इसे SmartConfig कहा जाता है, और इसका आविष्कार टेक्सास इंस्ट्रूमेंट्स द्वारा किया गया था।
इस लेख में, मैं आपको Espressif RTOS SDK से Smart Config उदाहरण को सेट अप और चलाने के लिए मार्गदर्शन करूंगा।
आपको जिन चीजों की आवश्यकता होगी:
- एक आधुनिक कंप्यूटर।
- ESP12-E के साथ एक NodeMCU बोर्ड
- VirtualBox (https://www.virtualbox.org/wiki/Downloads)
- Ubuntu Server LTS (https://www.ubuntu.com/download/server)
विकास के लिए VirtualBox कॉन्फ़िगर करना
- VirtualBox डाउनलोड करें और Ubuntu Server इंस्टॉल करें। यह करना आसान होना चाहिए, लेकिन अगर आप नहीं जानते कि कैसे, तो इसे गूगल करें या इस चरण-दर-चरण ग्राफिक गाइड को देखें। OS इंस्टॉल करना एक अच्छा कौशल है। (टिप: जब VirtualBox आपको डिस्क चुनने के लिए कहे, तो इसे डायनामिकली एलोकेटेड बनाएं और कम से कम 50GB आकार का रखें। यह आपको आगे चलकर कुछ सिरदर्द से बचाएगा।)
- सुनिश्चित करें कि आप वर्चुअल मशीन के अंदर से इंटरनेट एक्सेस कर सकते हैं और DNS सर्वर कॉन्फ़िगर करें:
मशीन पर राइट क्लिक करें फिर Settings -> Network
DNS सर्वर को कॉन्फ़िगर करने के लिए, इस उदाहरण को देखें।
उदाहरण: dns-nameservers 8.8.8.8 8.8.4.4 यदि आप गूगल पिंग कर सकते हैं, तो आप जाने के लिए तैयार हैं!
(वैकल्पिक) OpenSSH और Samba सर्वर इंस्टॉल करें। यह आपका जीवन बहुत आसान बना देगा।
(वैकल्पिक) पोर्ट फ़ॉरवर्डिंग सक्षम करें। अपने वर्चुअल मशीन में सीधे SSH करने के लिए, आपको पोर्ट फ़ॉरवर्डिंग सक्षम करना होगा। उदाहरण के लिए, अपने होस्ट मशीन पर पोर्ट 2222 को अपने वर्चुअल मशीन के पोर्ट 22 पर मैप करना।
पोर्ट फ़ॉरवर्डिंग सक्षम करें: Settings -> Network -> Port Forwarding
यदि आपने पोर्ट फ़ॉरवर्डिंग सक्षम किया है, तो अब आप अपने होस्ट मशीन से अपने वर्चुअल मशीन में SSH कर सकते हैं जैसा कि नीचे दिए गए चित्र में दिखाया गया है।
FIG1: ssh -p 2020 denis@localhost
नोट: यदि आप Windows पर हैं, तो वर्चुअल मशीन में SSH करने के लिए आपको Putty की आवश्यकता होगी।
- अपना NodeMCU प्लग इन करें और निम्न कमांड निष्पादित करें:
tail -f /var/log/kern.log
इससे पता चलना चाहिए कि डिवाइस को /dev/ttyUSB0 के रूप में पहचाना गया है। यदि कुछ नहीं होता है, तो आपको USB को वर्चुअल मशीन में जोड़ना होगा। USB जोड़ने के बाद, अपने डिवाइस को अनप्लग और फिर से प्लग इन करें।
USB जोड़ना: Settings -> Ports -> USB
यदि आप इस बिंदु पर पहुंच गए हैं और सब कुछ काम कर रहा है, बधाई हो! अब आप SDK को संकलित करने और SmartConfig उदाहरण चलाने के लिए तैयार हैं। आप मुझे https://twitter.com/metonymyqt पर ट्वीट भी कर सकते हैं
SDK संकलित करना और बोर्ड फ्लैश करना
- आवश्यक पैकेज इंस्टॉल करें (नीचे देखें)। यह जानकारी SDK के readme.md पर भी उपलब्ध है।
sudo apt-get install make unrar-free autoconf automake libtool gcc g++ gperf flex bison texinfo gawk ncurses-dev libexpat-dev python-dev python python-serial sed git unzip bash help2man wget bzip2 libtool-bin
एक नया फ़ोल्डर बनाएं और उसमें नेविगेट करें:
mkdir Development && cd Developmentओपन SDK क्लोन करें: https://github.com/pfalcon/esp-open-sdk
git clone --recursive https://github.com/pfalcon/esp-open-sdk.git
- make चलाएं:
make
चेतावनी: इस चरण को समाप्त होने में कुछ समय लगेगा इसलिए कृपया धैर्य रखें। मेरी वर्चुअल मशीन पर यह 50 मिनट बाद पूरा हुआ। आपके लिए यह अधिक या कम समय ले सकता है, लेकिन make चलाने से पहले सुनिश्चित करें कि आप इंटरनेट से जुड़े हुए हैं और DNS सही ढंग से कॉन्फ़िगर किया गया है। इसकी जांच करने का सबसे अच्छा तरीका गूगल या किसी अन्य साइट पर पिंग निष्पादित करना है यदि गूगल आपके क्षेत्र में ब्लॉक है।
सफल पिंग कमांड: $ ping medium.com
यदि आपका पिंग सफल है, तो आप विंडोज़ को मिनिमाइज़ कर सकते हैं और अपने पसंदीदा टीवी शो का एक एपिसोड देख सकते हैं। लगभग 40 मिनट बाद वापस आएं (लेकिन सुनिश्चित करें कि आपका कंप्यूटर स्लीप मोड में न जाए)।
SDK सफलतापूर्वक बनने के बाद, आपको अपने पथ में कुछ डालने के लिए कहने वाला एक संदेश दिखाई देगा। ऐसा करने के लिए, निम्न को निष्पादित करें:
echo 'export PATH=/home/denis/Development/esp-open-sdk/xtensa-lx106-elf/bin:$PATH' >> ~/.profile
कमांड स्ट्रिंग को ~/.profile फ़ाइल में जोड़ देगा। अब कृपया निम्न कमांड चलाएं:
xtensa-lx106-elf-gcc --version
यदि कमांड सफलतापूर्वक निष्पादित होता है, तो आप जाने के लिए तैयार हैं!
- अपने बोर्ड का परीक्षण करें
अपना NodeMCU प्लग इन करें और यह सत्यापित करने के लिए lsusb चलाएं कि आपका डिवाइस जुड़ा हुआ है। उसके बाद, esptool.py chip_id चलाएं। अब आपको बोर्ड का चिप आईडी देखना चाहिए।
esptool.py chipid
- ESP8266_RTOS_SDK क्लोन करें
git clone https://github.com/espressif/ESP8266_RTOS_SDK.git
- नीचे दिए गए कमांड्स का उपयोग करके SDK पथ और SDK/BIN पथ एक्सपोर्ट करें।
echo 'export SDK_PATH=/home/denis/Development/ESP8266_RTOS_SDK' >> ~/.profile
echo 'export BIN_PATH=/home/denis/Development/ESP8266_RTOS_SDK/bin' >> ~/.profile
- SmartConfig उदाहरण संकलित करें
cd /home/denis/Development/ESP8266_RTOS_SDK/examples/smart_config/
chmod +x ./gen_misc.sh
./gen_misc.sh
अब डिफ़ॉल्ट मानों को तब तक स्वीकार करें जब तक आपसे SPI_SIZE_MAP के लिए नहीं पूछा जाता। यहीं आप 4 चुनते हैं क्योंकि NodeMCU में 32Mbit का फ्लैश आकार है और यह 4MB में तब्दील होता है। _आप SPISPEED 3=80Mhz भी चुन सकते हैं_
आपको ऐसा कुछ दिखाई देगा:
!!!SDK_PATH: /home/denis/Development/ESP8266_RTOS_SDK
BIN_PATH: /home/denis/Development/ESP8266_RTOS_SDK/bin
No boot needed.
Generate eagle.flash.bin and eagle.irom0text.bin successfully in BIN_PATH
eagle.flash.bin — — — →0x00000
eagle.irom0text.bin — →0x20000
!!!
- बोर्ड फ्लैश करें
cd $BIN_PATH
esptool.py erase_flash
esptool.py write_flash 0x00000 $BIN_PATH/eagle.flash.bin 0x20000 $BIN_PATH/eagle.irom0text.bin 0x3FC000 $BIN_PATH/esp_init_data_default.bin
अब, यदि आप बोर्ड को रीसेट करते हैं, तो आपको कोई LED ब्लिंकिंग नहीं दिखनी चाहिए।
फोन एप्लिकेशन का उपयोग करें
Android एप्लिकेशन
- iPhone एप्लिकेशन
मेरे Android डिवाइस से स्क्रीनशॉट
एप्लिकेशन खोलें, सुनिश्चित करें कि आप एक वाईफाई AP से जुड़े हैं, अपना पासवर्ड दर्ज करें, और पुष्टि दबाएं। कुछ सेकंड के बाद ESP8266 को आपके AP से कनेक्ट होना चाहिए। बस। अंत तक पहुंचने के लिए बधाई!
यदि आप ESP8266-RTOS-SDK का उपयोग करके और विकसित करना चाहते हैं, तो कृपया आधिकारिक वेबसाइटों पर जाएं। आपको वहां बहुत सारे संसाधन और दस्तावेज़ीकरण मिलेंगे। साथ ही, SDK फ़ोल्डर में पाए जाने वाले अन्य उदाहरणों पर एक नज़र डालें।
आपका समय पढ़ने के लिए बहुत-बहुत धन्यवाद। यदि आप मुझसे संपर्क करना चाहते हैं, तो आप ट्विटर पर कर सकते हैं: MetonymyQT
संसाधन
- ESP8266 अवलोकन
- ESP8266 संसाधन
- FreeRTOS वेबसाइट
मुफ्त में कोड करना सीखें। freeCodeCamp के ओपन सोर्स पाठ्यक्रम ने 40,000 से अधिक लोगों को डेवलपर के रूप में नौकरी पाने में मदद की है। शुरू करें