AT пәрмені сериялық мониторда жауап бермейді

Мен AT командасын ESP8266 жіберуге тырысамын. Мен қайтадан жыпылықтаймын ESP8266 http://imgur.com/a/J8Ueh Мен осы нұсқаулықты орындадым http://remotexy.com/ru/help/esp8266- микробағдарламаны жаңарту/ және қате болмағандықтан, ол сәтті түрде жаңартылды деп үміттенемін.

Мен осы бағдарламаны жүктеген кезде http://www.pastebin.com/frhZY7tD Мен AT-ды сериялық мониторда 9600 б.т. жылдамдықпен командалар, содан кейін жауап бермейді.

Төменде менің схемам қалай көрінеді

enter image description here

#include "SoftwareSerial.h"

SoftwareSerial esp8266(2, 3);//RX, TX

void setup()
{
  Serial.begin(9600);//serial port used for debugging
  esp8266.begin(9600); //your ESP's baud rate might be different
}

void loop()
{
  if(esp8266.available()) //check if the ESP is sending a message
  {
    while(esp8266.available())
    {
      char c = esp8266.read(); //read the next character.

      Serial.write(c); //writes data to the serial monitor
    }
  }

  if(Serial.available())
  {
    delay(10); //wait to let all the input command in the serial buffer
   //read the input command in a string
    String cmd = "";
    while(Serial.available())
    {
      cmd += (char)Serial.read();
    }
   //send to the esp8266
    esp8266.println(cmd); 
  }
}

AT командасын орындауға тырысыңыз -

enter image description here

Жіберу түймешігін басқанда, төменде көрсетілгендей бос жауап көрсетіледі -

enter image description here

Қуат сымын ажыратып, оны қайтадан қосқанда, ол сериялық мониторда кейбір бұзылған хабарды басып шығарады. Мен RX-дегі кернеуді де тексердім, бұл шамамен 3,5 В болатын, ол да жақсы.

enter image description here

WiFi түйініне арналған бағдарламалық қамтамасыздандыруды ESP8266 , содан кейін AT бағдарламалық жасақтамадан кейін жыпылықтағаннан кейін бұл мәселемен айналысамын. AT-ның микробағдарламасы табысты орындалмаған сияқты, мен төмендегі команданы қолданып, бәрін өшіруге тырыстым.

esptool.py --port/dev/ttyUSB0 erase_flash

C:\Users\williams>esptool.py --port COM4 -b 9600 erase_flash
esptool.py v1.3
Connecting...................

A fatal error occurred: Failed to connect to ESP8266: Timed out waiting for pack
et header

Жоғарыда көрсетілген команданы орындамас бұрын, менің схемаға төмендегідей өзгерістер енгізді: -

enter image description here

Жаңарту

Мен ESP8266-ны 115200 жылдамдықта жаңарттым және бос бағдарламаны қотарып алдым, содан кейін ол AT командасына жауап бере бастады. Жоғарыда ғана өзгерген TX сияқты TX және RX-тан RX-ға дейін қосыламын. Жақсы!

AT


OK
AT


OK
AT+GMR

AT version:0.50.0.0(Sep 18 2015 20:55:38)
SDK version:1.4.0
compile time:Sep 18 2015 21:46:52
OK

Мен Arduino сериялы монитор терезесінен AT командаларын ESP8266 және ESP8266 жауаптарын командаға жібергім келеді. Мен жоғарыда тұрған бағдарламаны қашан жүктеп қойсам, ол жауап беруді тоқтатады, бұл бос экран сияқты нәтиже, бұл таңқаларлық. Жоқ?

5
@Nick Неліктен біреу басқа сілтемеге менің сілтемімді чатқа көшірді? Бұл жерде мағынасы жоқ, бұл «жауап» да емес. Сондай-ақ, сіз маған хабарласқан болсаңыз, мен хабарландыру алған жоқпын, бірақ сіз кез келген жағдайда да пайдаланбадыңыз.
қосылды автор WestDiscGolf, көзі
Сұраққа түсініктеме беру - бұл сұраққа жауап бермеу. Егер сізде жауап болса, оны жіберіңіз.
қосылды автор Nick Gammon, көзі
Пікірлер кеңейтілген талқылау үшін емес; бұл әңгіме сөйлесуге көшті .
қосылды автор Nick Gammon, көзі
Әңгімелесуге тек кейбір түсініктемелерді жылжыту оңай емес. Қажет болса, сол нақты пікірді қайта жібере аласыз. Мен айтып өткенімдей, сұрақтар бойынша түсініктемелер немесе ұзағырақ сұрақ-жауап сессиясы болуға арналмаған
қосылды автор Nick Gammon, көзі
Әрқайсысының айтқандары. Ең алдымен, сол шығарылымға көз жүгіртіп жатқанда «дұрыс емес багтық жылдамдығы» болды.
қосылды автор gaurwraith, көзі

5 жауаптар

ESP-ның AT бағдарламалық жасақтамасы жоғары жылдамдығын арттыру үшін конфигурацияланған болуы мүмкін, 115200 типтік. SoftwareCerial тек қана 9600 боге дейін сенімді жұмыс істейді. 115200-дегі «сенімді жеткілікті» жіберуге болады, себебі ESP-ның жауаптары бұзылуы мүмкін. Сондықтан сізге қажет: ESP-тің Bood жылдамдығын азайтыңыз немесе Uno-ның терминал шығаруынан бас тарту және Uno-ның кодын жаңарту қажет болған сайын компьютеріңізді қайта қосу қиындық тудыратын ESP үшін Uno-ның аппараттық жүйелі портын пайдаланыңыз. Мен ESP-ның бауды жылдамдығын егжей-тегжейлі өзгерту процесін сипаттадым бұл жауап .

Жаңарту: әртүрлі AT-комментаторлармен таныс емеспін; менің ESP-лерімнің барлығы микробағдарлама арқылы іске қосылған; «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


There is no AT+CIOBAUD command listed in my ESP8266 AT Instruction Set document rev 1.5.3). The only one listed that affects baud rate - and the one I use - is:

AT+UART_DEF=,,,,

, немесе:

AT+UART_DEF=9600,8,1,0,0

9600 боду, 8 бит, 1 стоп-бит, теңдестірілмеген, ағынды басқармайды. Бәлкім, білесіз бе, бірақ, егер сіз ESP-тің борттық жылдамдығын өзгерткеннен кейін, жергілікті BUD жылдамдығын сәйкес келмейінше, байланысыңызды жоғалтасыз деп ескеріңіз.

Жаңарту2:

Бұл бағдарлама pastebin.com/dquCNYJj Мен дұрыс емес екенімді білмеймін   істейді

Бұл код SoftwareSerial бағдарламасын 115200 байтқа орнатады; бұл жылдамдықта деректерді алу үшін жеткілікті жылдам жұмыс істей алмайды.

Жаңарту 3:

ESP бағдарламасының жаңартылған нұсқасын сәтсіз аяқтағаннан кейін не болып жатқанын білу қиын немесе қиын. Скриншотыңыздағы нәтиже ESP мен терминал арасындағы боад сәйкессіздігінің нәтижесі емес. ESP-ге таза бағдарламалық жасақтаманы жаңартып алу керек, ол дұрыс жауап беруге және кез-келген басқа мәселелерді диагностикалауға мүмкіндік береді.

Жаңарту 4:

Мен бір нәрсе туралы айтып жатқанын білмеймін, егер бұл туралы білсеңіз, кешіріңіз. біз кем дегенде үш түрлі бағдар туралы әңгіме қозғауымыз мүмкін:

  1. ESP бағдарламасына жаңа бағдарламалық жасақтама жыпылықтау кезінде қолданылатын жылдамдық;
  2. Жүктелген кезде, жаңа микробағдарлама тыңдауды бастайтын әдепкі жылдамдық;
  3. ESP арасындағы жаңа бағдарламамен және Arduino немесе ESP-ге қатысты басқа да құрылғылармен кез келген уақытта қолданылатын нақты мөлшер.

Менің жеке тәжірибем зауытта орнатылған AT Interpreter микробағдарламасында қолданылған. Мен ешқашан оны жаңартуды қажет етпедім, сондықтан жеке тәжірибем жоқ (1).

(2) және (3) Arduino бағдарламаланатын болады. Жаңа ESP-ды алғаш рет қолданған кезде (немесе оны тек Interpreter-ті қайтадан жаңартқаннан кейін), ол зауыттық-әдепкі бауды жылдамдықта тыңдайды (менің барлық 115200-ге дейін әдепкі бойынша). Ағымдық мөлшерлемені (қайта жүктеу кезінде сақталмаған) және/немесе әдепкі бауды (болашақ сеанстар үшін сақталған) өзгертуге болатын пәрмендер бар.

Arduino бағдарламалық жасақтама сериялық портымен пайдалану үшін әдеттегідей 9600-ге дейін әдепкі мәнімді өзгерткім келеді. Бұл жаңа құрылғы үшін баптау, ESP арқылы сөйлесу үшін Arduino арқылы. («# ...» түсініктемесін жібермеңіз):

# Start talking at the ESP's default rate (115200 on my factory-fresh ones).
AT+RST                         # Reset
AT+UART_DEF=9600,8,1,0,0       # Default baud to 9600,N,8,1,no flow ctl
# Here, change the Arduino's port to match: 9600 in this case.
AT+CWMODE=1                    # Station mode (client)
ATE0                           # Command echo off

Енді ESP 9600 Bud режимінде тыңдауды тоқтатады, станция режимінде клиент ретінде, ешқандай команда эхоусыз.

1
қосылды
Иә, бұл кодекс 2 және 3-шрифттердегі ESP үшін «терминалдық бағдарлама». Сұрақтарыңызды осы ақпаратты жаңартыңыз: Не жұмысқа кірісті? Не істемейді, яғни сіз не істедіңіз; сіз не күтілуде; орнына не болды?
қосылды автор caryden, көзі
Жыпылықтаудың жылдамдығы мұнда маңызды емес - Ардуино мен ЭБС байланыс кезінде қолданылатын тарифтер. Олар осы бағдарламаны іске қосқан кезде Arduino-мен байланыс сеансын бастаған кезде (егер олар қазір болмаса) сәйкестендірілуі керек.
қосылды автор caryden, көзі
Мен өз сұрағымды жаңарттым. Сіз көре аласыз ба?
қосылды автор ajoos, көзі
Сіз ESP8266 үшін тұрақты AT құрылғысын ұсынасыз ба? AT бағдарламалық жасақтамаымен кейбір мәселе туындады деп ойлаймын, оны C: \ Users \ williams> esptool.py --port COM5 - baud 57600 write_flash 0 ai-thinker- 0.9.5.2.bin
қосылды автор ajoos, көзі
Рахмет JRobert. Ол @Rahul Rastogi ұсынды. Ол 115200 жылдамдықта жұмыс істейді, мен бос бағдарламаны жай ғана жүктеп алдым. Менің бағдарламамды іске қосқан кезде, ол AT пәрмендеріне жауап бермегендіктен жұмыс істемейді. Мен схеманы осы мәселе бойынша байланыстырдым. Сіз неге сонша түсініксіз бе? Бұл бағдарлама ESP8266 пәрмендерін жіберіп, ESP8266 жауапын оқып, оны Serial Monite
қосылды автор ajoos, көзі
Ия дәл осындай. Кейбір кодексте esp8266.begin (9600) сияқты өзгерістер енгізген кезде, менде сериялы мониторда бірдей жылдамдықты сақтадым, бұл жағдайда 9600.
қосылды автор ajoos, көзі
Мен бодтық жылдамдығын өзгертуге тырыстым, алдымен менің бағдарламамда, содан кейін сериал мониторында бірдей баговой жылдамдықты кері жүктеңіз. Мысалы, esp8266.begin (115200); , содан кейін компиляцияны кейінірек оны 115200 сериалы мониторға жүктеп, кейін AT + CIOBAUD = 9600 пәрмендерін орындаңыз. 9600, 38400, 57600, 74880, 115200-мен бірдей процедураны қайталаймын және сериялық мониторда кез келген пәрменді жібергенде, ол тек қана ешқандай жауап бермейді
қосылды автор ajoos, көзі
Егер сіз осы imgur.com/a/J8Ueh көрген болсаңыз, мен ESP 9600 жылдамдықта жылдамдықпен жыпылықтады
қосылды автор ajoos, көзі
Мен ESP және терминалда бірдей баг жылдамдығын сақтай отырып, әртүрлі жылдамдықта жылдамдықты сақтауға тырыстым, бірақ қазір ешқандай сәттілік жоқ, осы команда арқылы ESP8266 микробағдарламасын өшіруге тырысамын esptool.py --port COM4 -b 9600 erase_flash esptool.py v1.3 Қосылу .................. қате пайда болды: ESP8266-ке қосылу сәтсіз аяқталды: күту уақытын күту бума және тақырып
қосылды автор ajoos, көзі
Мен өз сұрағымды жаңарттым және қосымша мәлімет енгіздім. Қараңыз
қосылды автор ajoos, көзі
Бұл бағдарлама pastebin.com/dquCNYJj Мен дұрыс емес істеп жатқаныма сенімді емеспін
қосылды автор ajoos, көзі
Мен ұсынылған командаларды орындадым, бірақ жауап жоқ, бос жауап :( Бұл менің ESP8266 флэш-баптаулары imgur.com/a/scfty
қосылды автор ajoos, көзі

Сіздің соңғы суретіңізде Arduino құрылғыңыздың Rx-ін сіздің ESP8266 құрылғыңыздың Tx-іне және керісінше қосу керек.

Егер сіз мұны істесеңіз және ол жұмыс істемесе, мәселе коды немесе байланыстары бар ма екенін анықтау үшін мысал нобайын жүктеп көріңіз. Мен WiFiScan мысалын пайдалануды ұсынамын, себебі бұл мысал кодты өзгертуді немесе ESP8266Community тарапынан қарағанда басқа кітапханаларды қамтуды талап етпейді.

1
қосылды
SoftwareSerial esp8266 (2, 3);//RX, TX - бұл желі өз басқарады ма? немесе Arduino-дің RX/TX-ін пайдалану керек пе?
қосылды автор ajoos, көзі

Ең алдымен, ESP8266-ге сәйкес кернеу мен ток берілетінін тексеріңіз. Мен кернеу мен ток кернеуі болмаса, ол жұмыс істемейтінін көрдім.

Екіншіден, сіздің Rx, Tx ESP8266-ді Rx, Tx Arduino-ді қосыңыз. Содан кейін бір нәрсені жасаңыз, тек бос setup() және loop() функциясы бар бос эскизді кері жүктеңіз.

Содан кейін, сериялық мониторды ашыңыз, өзіңіздің жылдамдығын таңдаңыз (негізінен 9600 немесе 115200) және сіз бәрі аяқталды! Сериялық мониторды енгізу өрісі арқылы «AT» -ді жіберу сізге сериялық монитордың жауап терезесінде «OK» -ді көрсетеді.

0
қосылды
Жарайды .. түсіндім! Сен: «Бұл сіз ұсынғандай жұмыс істеді. Осылайша, ол 9600 жылдамдықпен жұмыс істеді, бірақ 115200 бут жылдамдығында емес.
қосылды автор Brendan Foote, көзі
Бос бағдарламаны іске қосқан кезде ол 115200 бут жылдамдықта жұмыс істеді. Мен өз сұрағымда және бірдей бағдар бойынша қадамдарды орындаған кезде, ол жұмыс істемейді
қосылды автор ajoos, көзі
Мен өз сұрағымды жаңарттым, оны тексеріңіз
қосылды автор ajoos, көзі
Бұл сіз ұсынғандай жұмыс істеді. Ол 115200 бут жылдамдығы бойынша жұмыс істейді. Менің бағдарламамды іске қосқан кезде ол жұмыс істемейді. Мен схеманы осы мәселе бойынша байланыстырдым. Сіз неге сонша түсініксіз бе? Бұл бағдарлама ESP8266 пәрмендерін жіберіп, ESP8266 жауаптарын оқып, оны Serial Monitor
қосылды автор ajoos, көзі

Бұл аппараттық құралға қосылу мәселесі мүмкін бе? ESP8266 деректер кестесіне сәйкес, кернеудің максималды кірісі 3,6В құрайды, бірақ Arduino-ге тікелей қосылса, Arduino сигнал шығысы 3.6 В-тан артық болады. (5 В айналасында шығу)

Table

Тікелей қосылудың орнына, сіз деңгейді бірінші рет ауыстыруды қалайсыз ба? (5V - 3,3В, керісінше)

(Бұл жерде ESP8266 деректер кестесіне сілтеме бар: https://nurdspace.nl/images/e /e0/ESP8266_Specifications_English.pdf )

0
қосылды
Пуго + USB-UART арқылы қосылуға тырыстым, ол жұмыс істемеді
қосылды автор ajoos, көзі
Менде ESP8266 RX-де 3.6V бар, мен мультиметрмен тексердім. Мен сондай-ақ 2хАА батареясымен жұмыс істеп көрдім, бірақ бірдей мәселе тудырды және 3.6 В дейін ESP8266 нұсқасын ұсындым, бірақ сәттілік болмады.
қосылды автор ajoos, көзі
AT-пәрмендерін USB-UART адаптері арқылы жіберуді жөн көрдіңіз бе?
қосылды автор T. Edison, көзі

Мынаны көріңіз:

/*
  Software serial multple serial test

 Receives from the hardware serial, sends to software serial.
 Receives from software serial, sends to hardware serial.

 The circuit:
 * RX is digital pin 2 (connect to TX of other device)
 * TX is digital pin 3 (connect to RX of other device)

 Note:
 Not all pins on the Mega and Mega 2560 support change interrupts,
 so only the following can be used for RX:
 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69

 Not all pins on the Leonardo and Micro support change interrupts,
 so only the following can be used for RX:
 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

 created back in the mists of time
 modified 25 May 2012
 by Tom Igoe
 based on Mikal Hart's example

 This example code is in the public domain.

 */
#include 

SoftwareSerial mySerial(2, 3);//RX, TX

void setup() {
 //Open serial communications and wait for port to open:
  Serial.begin(115200);
  while (!Serial) {
    ;//wait for serial port to connect. Needed for native USB port only
  }


 //Serial.println("Goodnight moon!");

 //set the data rate for the SoftwareSerial port
  mySerial.begin(115200);
 //mySerial.println("Hello, world?");
}

void loop() {//run over and over
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}
0
қосылды
Бұл кодтың неге бұл мәселені шешетінін түсіндіріңіз.
қосылды автор Hugo, көзі