ESP8266 (12e) के बॉड्रेट को स्थायी रूप से कैसे बदलें?


11

महत्वपूर्ण: उपयोग न करें AT+IPR=9600! (अपडेट देखें)

मेरे पास ESP8266 12E मॉड्यूल है जो 115,200 बाउड पर संचार करता है। जब से मैं एक Arduino नैनो के साथ SoftwareSerial चीजों के साथ इसका उपयोग करता हूं गड़बड़ हो जाती है। इसलिए मैंने पाया कि मुझे ईएसपी मॉड्यूल की बॉड दर को कम करना चाहिए।

मुझे यह लिंक मिल गया है कि यह कैसे करना है।

मैं सोच रहा हूँ

  • क्या यह एक स्थायी परिवर्तन है या क्या आपको मॉड्यूल संचालित होने के बाद हर बार ऐसा करने की आवश्यकता है?

  • क्या मैं SoftSerial पर Arduino से कमांड भेजकर इसे हासिल कर सकता हूं? खैर, मुझे लगता है कि मैंने कोशिश नहीं की है और मुझे हमेशा एक त्रुटि मिलती है AT+CIOBAUD=9600या AT+IPR=9600

  • मैंने कहीं पढ़ा है कि ESP8266 के नए फर्मवेयर संस्करणों में, बॉड की दर 9,600 है। क्या कोई इसकी पुष्टि कर सकता है और यदि हां, तो क्या इस नए फर्मवेयर को फ्लैश करना बेहतर है?

मॉड्यूल के विक्रेता:

Ai-Thinker Technology Co.,Ltd.

मुझे लगता है कि फर्मवेयर का वर्तमान संस्करण 0.3.0 है। अगर मैं भेजूं तो AT+GMRमुझे मिलेगा:

sending AT+GMR

response: ?AT¥TJÕ¨H(Q�²•ÉÍ¥½¹é‚r¢‚r‚r‚BÕ��Â’‚ŠªŠ¢Ò¢ªÒªÂJm
 SDK versioo:0.3.0
 Ai�½½
 ‚Šj

फिर कुछ कचरा बॉड दर के कारण जो बहुत अधिक है।

मॉड्यूल पर अन्य जानकारी:

sending AT+RST
response: ?AT+RST
OK
WRT
"%M
<99CT
 ets Jan  8 2013,rst catse:2, boot lode:(3,7)
load 0x40100000ntail 4
chksum 0x89
ld tail 4
chm3 tail 8 r 0 aM
 ón't use rtc mem dat`
sl��oÌÿ
Ai-Thinker Technology Co.,Ltd.

अपडेट करें

(*) मैंने AT+IPR=9600अपने ESP8266-12E मॉड्यूल को भेजने के लिए एक FTDI232 मॉड्यूल का उपयोग किया और मैंने इसे ईंट कर दिया !

एक AT+IPR=9600ESP8266 (-12E) पर उपयोग न करें ।

मैंने अब तक इसे पुनर्प्राप्त करने का प्रबंधन नहीं किया था! मैंने इसे फिर से चमकाने की कोशिश की लेकिन मुझे अमान्य हेड अपवाद मिले।

एक नए मॉड्यूल पर मैंने AT+CIOBAUD=9600कमांड भेजा और यह काम कर गया। स्थायी रूप से!

मेरा मॉड्यूल चश्मा:

AT+GMR 
AT version:0.40.0.0(Aug  8 2015 14:45:58)
SDK version:1.3.0
Ai-Thinker Technology Co.,Ltd.
Build:1.3.0.2 Sep 11 2015 11:48:04
OK 

आप हार्डवेयर सीरियल की कोशिश कर सकते हैं? या रीसेट पिन को कम खींचें और फिर USB के माध्यम से सीधे ESP से बात करें। जाँच करें कि क्या वे काम करते हैं।
पॉल

@Paul: नैनो में हार्डवेयर सीरियल पोर्ट का केवल एक सेट है। इसलिए अगर मैं उन लोगों का उपयोग करता हूं, जो अब मैं Arduino Serial Monitor में डेटा नहीं भेज सकते, तो यह समझना मुश्किल हो जाएगा कि क्या हो रहा है ... लगता है कि मुझे फर्मवेयर अपग्रेड के लिए जाना होगा।
मवरमंड

अच्छी तरह से आप डिबगिंग के लिए सॉफ्टवेयर सीरियलपोर्ट का उपयोग कर सकते हैं? हालांकि आपको "usb-serial / ttl" केबल की आवश्यकता होगी।
पॉल

1
stackoverflow.com/questions/34248581/… यह आपके प्रश्न का उत्तर देगा।
एन.सिंह

1
ऐसा लगता है कि एटी + आईपीआर = 9600 के साथ बॉड दर निर्धारित करने से भी ईएसपी 01 की कमी होती है । मैंने इसे ठीक करने के लिए इस सूत्र में कई सुझाव दिए। लिंक मार्को आंद्रे सिल्वा आपूर्ति में समाधान मेरे लिए काम किया।
स्टीफ

जवाबों:


10

एटी इंस्ट्रक्शन सेट के एक हाल के संस्करण पर निर्भर करता है कि आपकी चिप में दुभाषिया है, आपके द्वारा दिए गए दो निर्देश वैध नहीं हो सकते हैं; वे एस्प्रेसिफ के ESP8266 AT निर्देश सेट दस्तावेज़ में सूचीबद्ध नहीं हैं । वर्तमान दस्तावेज़ में "CIOBAUD" या "IPR" के लिए खोजें (संस्करण 1.5.3) कोई परिणाम नहीं देती हैं।

बॉड दर कमांड अब "AT + UART_CUR" और "AT + UART_DEF" हैं जो वर्तमान सत्र या वर्तमान और भविष्य के सत्रों के लिए पूरे UART को कॉन्फ़िगर करते हैं। कमांड के लिए मैनुअल का प्रोटोटाइप है:

AT+UART_DEF=<baudrate>, <databits>, <stopbits>, <parity>, <flow control>
Example:
AT+UART_DEF=115200, 8, 1, 0, 3

मैंने इनका उपयोग किया है और पुष्टि कर सकता हूं कि वे काम करते हैं।

मैंने सॉफ्टवेयर धारावाहिक का उपयोग करते हुए पाया है कि यह डिवाइस को कमांड भेजने के लिए 115200 बॉड को अच्छी तरह से धकेल सकता है (हालांकि मैं एक एप्लिकेशन का निर्माण नहीं करूंगा जो इस पर निर्भर करता है) लेकिन यह केवल 9600 बॉड तक मज़बूती से पढ़ सकता है। मैं अपने डिवाइस की बॉड दरों को 115200 बॉड से 9600 तक सॉफ्टवेयर सीरियल में बदलने में सक्षम हूं; आपको बस कचरा वापस आने की उम्मीद है और इसे अनदेखा करना है:

// Set ESP8266 baud rate to 9600. You only need to do this once per device
set software serial baud to 115200;
send "AT+UART_DEF=9600,8,1,0,0";
set software serial baud to 9600;
// From now on, communicate with your device at 9600 baud.

3

मैंने 115200 बॉड में एक FTDI232 मॉड्यूल कनेक्ट किया और अब ESP8266 मॉड्यूल के स्पेक्स को पढ़ सकता है:

AT+GMR 
AT version:0.40.0.0(Aug  8 2015 14:45:58)
SDK version:1.3.0
Ai-Thinker Technology Co.,Ltd.
Build:1.3.0.2 Sep 11 2015 11:48:04
OK 

उसके बाद मैंने AT+IPR=9600कमान भेजी , जो पहली बार चाल करने के लिए लग रही थी। लेकिन मॉड्यूल के रिबूट के बाद, मुझे सभी को कचरा प्रतिक्रिया मिली, किसी भी बॉडरेट पर।

अपने ESP8266 (12e) मोड पर + IPR = 9600 पर न भेजें

हो सकता है कि AT+UART_DEFकमांड - जैसा कि JRobert द्वारा उल्लेख किया गया है - काम करता है, लेकिन मैंने AT+CIOBAUD=9600कमांड का उपयोग किया और यह काम किया। स्थायी रूप से!

मुझे उम्मीद है कि यह दूसरों की मदद कर सकता है।


3

मैंने अपने एसपी को उसी कमांड के साथ ईंट दिया। घंटों की खोज के बाद मुझे ईट को हटाने का एक तरीका मिला। https://developer.mbed.org/users/sschocke/code/WiFiLamp/wiki/Updating-ESP8266- फ़र्मवेयर मुझे 9600 के बजाय 115200 पर बॉड्रेट सेट करना था, और अपलोडिंग फ़ाइलों के बीच मुझे एस्प को पावर से डिस्कनेक्ट करना पड़ा । मुझे उम्मीद है कि आपकी और हर किसी की मदद हो रही है और Google पर आपकी पोस्ट मिली।


प्रत्येक फ़ाइल के बीच ईएसपी को पावर साइकिल चलाना मेरे लिए भी महत्वपूर्ण था - अन्य साइटें सभी फाइलों को एक ही esptool.pyकमांड में जोड़ती हैं , लेकिन यह मेरे लिए काम नहीं करता है। केवल इसे अलग-अलग कमांड में तोड़ने के बाद, एक प्रति फ़ाइल, और प्रत्येक के बीच साइकिल चलाना, क्या मैं अंत में एटी फर्मवेयर को पुनर्स्थापित करने में सक्षम था। संकेत के लिए धन्यवाद!
davidA

इसके अलावा, मैंने esptool.pyESP32 IDF (v2.1-beta1) के साथ आने वाले का उपयोग करने का प्रयास किया और यह कि मेरे ESP8266 (जो यह भी समर्थन करता है) पर सभी फाइलों को फ्लैश करने के लिए एक ही कमांड के साथ सफलतापूर्वक काम करता है - इसलिए केवल एक पावर चक्र + +IO00- GND की आवश्यकता
davidA


0

लगता है कि आप बिजली आपूर्ति के मुद्दे पर हैं। आपकी बिजली आपूर्ति रेटिंग क्या है? और vcc और जमीन के बीच एक छोटा संधारित्र जोड़ने का प्रयास करें। इसके अलावा फर्मवेयर को 0.9 पर अपडेट करने का इसका अच्छा विचार है जिसमें बॉड्रेट मुद्दा तय हो गया है।

आप https://github.com/espressif/esp8266_at पर नए फर्मवेयर पा सकते हैं


मुझे नहीं लगता कि यह बिजली की आपूर्ति का मुद्दा है। मेरे पास एक बाहरी बिजली की आपूर्ति है जो सक्षम से अधिक है। मैंने पहले बिना कोशिश की और फिर Arduino को फिर से चालू रखा ... मैंने एक मंच पर पाया कि यह बिजली आपूर्ति के मुद्दों के कारण था। इसलिए अब मैं वहां ठीक हूं। मैं वास्तव में इस मुद्दे को लगता है कि SoftSerial 115k बॉड्रेट के साथ सामना नहीं कर सकता।
मवरमंड

1
esp वास्तव में picky है, vcc और जमीन के बीच एक छोटा संधारित्र जोड़ें। मैं बाहरी बिजली स्रोत से भी बिजली का उत्पादन करता हूं और पुनः आरंभ कर रहा हूं।
NccWarp9
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.