Skocz do zawartości

ESP8266 - Timeout reached. Command aborted.Waiting answer from ESP


Adam87

Pomocna odpowiedź

Witam,
Wpadł mi do głowy pewien pomysł na domowy serwer www na którym wstępnie będę wyświetlał temperaturę pieca.

Chciałem w tym celu użyć moduł ESP8266 12-e jednakże mam straszny problem z wgraniem programu na to urządzenie ( firmware udało mi się ogarnąć ).

Poniżej opisze dokładnie co i jak:

1. Układ podłączony jest w sposób następujący

a. Do komunikacji USB – UART wykorzystałem moduł FTDI. Moduł zainstalowany na COM4, pracuje z prędkością 115200 .

b. Podłączenie kabelków:

Reset modułu podłączony z GND przejściówki

TxD przejściówki z RxD modułu ESP8266

RxD przejściówki z TxD modułu ESP8266

Vcc przejściówki z Vcc modułu ESP8266

GND przejściówki z GND modułu ESP8266

GPIO15 modułu połączony przez rezystor 2k z GND przejściówki

GPIO2 modułu podłączony przez rezystor 2k z VCC przejściówki

GPIO0 modułu podłączony z GND przejściówki

CH_P0 modułu podłączony przez rezystor 2k z VCC przejściówki

2. Żeby wejść w tryb programowania zdejmuję najpierw GND z sygnału reset a następnie GND z GPIO0 i przepinam je na Vcc. Wówczas otrzymuje coś takiego

Doczytałem się że komunikat Can't autodetect firmware, because proper answer not received (may be unknown firmware). jest bugiem I nie należy się nim przejmować więc zakładam że póki co wszystko odbywa się poprawnie.

Nie wiem skąd te krzaki skoro prędkość w programie i kompie się zgadzają. Czasem mam te Krzaczki a czasem nie.

3. Korzystając z tutoriala w necie, chciałem wgrać prostą komendę

 print("Kurs Programowania ") 

więc wpisałem ją w okienko, zapisałem, chciałem wgrać do ESP i wyskoczył Time Out. Nie mam zielonego pojęcia dlaczego..

Proszę o pomoc i przepraszam jeżeli wylądowałem w złym dziale.

Link do komentarza
Share on other sites

Żeby programować swój moduł w lua, to najpierw musisz wgrać w niego jako firmware interpreter lua. W tym celu łączysz wszystko tak jak napisałeś, tylko bez resetu i z GPIO0 podłączonym do GND i wgrywasz firmware nodemcu. Jak już to zrobisz, to wtedy podłączasz GPIO0 do VCC (przez opornik) i używasz modułu normalnie -- wgrywanie w niego skryptów nie wymaga już kombinowania z GPIO0.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Dzieki za podpowiedź. Coś tam ruszyło ale teraz mam kolejny problem..

Chciałem wgrać na próbę poniższy kod z obrazka:

Jak widać po wciśnięciu send to ESP otrzymuje Timed out i ciężko mi stwierdzić czemu. Tak jakby po jakimś czasie urywało komunikację? Czy może ustawiając IP tracę z nim kontakt ( co było by głupie bo komunikuje się po USB ).

Poniżej logi, widać wyraźnie że tracę komunikację po ustawieniu IP.


DataSender: start "Smart Mode"
SendToESP: Starting...
0
sending:uart.setup(0,9600,8,0,1)<CR><LF>
recv:u
recv:art.setup(0,9600
recv:,8,0,1)<CR><LF>
1
sending:<CR><LF>
recv:> 
2
sending:wifi.setmode(wifi.STATION)<CR><LF>
recv:wifi.set
recv:mode(wifi.STATI
recv:ON)<CR><LF>
3
sending:wifi.sta.config("FunBox-97B5", "XXX")<CR><LF>
recv:> 
recv:wifi.st
recv:a.config("FunBox
recv:-97B5", "XXX")

4
sending:wifi.sta.connect()<CR><LF>
recv:

recv:> 
recv:wifi.st
recv:a.connect()<CR><LF>
5
sending:wifi.ap.dhcp.stop()<CR><LF>
recv:> 
recv:wifi.ap.dhcp.st
recv:op()<CR><LF>
6
sending:wifi.sta.setip({<CR><LF>
recv:std
recv:in:1: attempt t
recv:o index field '
recv:dhcp' (a nil val
recv:ue)
recv:w
recv:ifi.sta.setip({

7
sending:ip = "192.168.1.51",<CR><LF>
recv:

Operation done. Duration = 1415 ms
Waiting answer from ESP - Timeout reached. Command aborted.
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Opis z aukcji,

wygląda że oryginał.

czy możliwe jest że moduł USB posiada za małą wydajność prądową?

Posiadam dokładnie coś takiego:

Zastanawiam się czy nie podpiąć zasilanie z tego koszyka. Z tego co rozumiem, musiałbym jedynie odpiąć VCC z modułu i na module zostawić wolne. Z kolei na płytce prototypowej w miejsce VCC z modułu musiał bym podłączyć VCC z baterii.

Link do komentarza
Share on other sites

Moduł USB *zdecydowanie* posiada za małą wydajność prądową na zasilanie ESP8266 -- ta płytka wymaga co najmniej 300mA w szczycie, a regulator napięcia na module USB jest słabiutki. Chyba, że regulator napięcia jest na płytce, a ty jej dostarczasz 5V bezpośrednio z USB -- wtedy w zależności od tego jak bardzo twój komputer przestrzega standardu, masz do dyspozycji od 100mA do 500mA.

Link do komentarza
Share on other sites

No i racja, podłączyłem wszystko przez koszyk z bateria, jedynie sygnaly Tx i Rx z przejściówką i program się wgrywa.

Wgrywa ale nie wykonuje..

Jeżeli dobrze rozumiem, Piny GPIO0 oraz GPIO2 podczas restartu powinny miec stan wysoki zeby program sie wykonywal?

Link do komentarza
Share on other sites

Działa 🙂

Udało mi wgrać pierwszy program. Co prawda jedynie proste hello, ale już działa 🙂

Podłączenie:

Jedynie dodatkowo przed programowanie musiałem jeszcze zresetować układ zdejmując GND z wejścia reset żeby układ połączył się z Esplorerem.

[ Dodano: 25-01-2017, 12:15 ]

Czy ktoś z was podłączał PT100 do ESP8266? Czy jest to wykonalne? Podłączyłem PT100 jednakże za każdym razem otrzymuję wartość 1024 bądź 0.

Link do komentarza
Share on other sites

PT100? Masz na myśli platynowy, rezystancyjny czujnik temperatury? A jak wyobrażasz sobie pomiar rezystancji wejściem analogowym? Przetwornik ADC mierzy napięcie - tylko to rozumie i przetwarza je na liczby z zakresu 0-1023. Musisz zbudować układ który spowoduje, że zmiany rezystancji czujnika zamienią się na zmiany napięcia. To generalnie nie jest trudne. Musisz tylko wiedzieć jakiego zakresu temperatur oczekujesz i jakiej precyzji pomiarów. Masz jakieś doświadczenie w budowaniu układów elektronicznych większe niż w programowaniu ESP?

Link do komentarza
Share on other sites

OK, nie chcę Cię zmuszać, ale jeśli planujesz zrobienie takiego czujnika to jednak może rozszerz swoją odpowiedź o planowany zakres i wymaganą dokładność albo przynajmniej napisz do czego to ma być? Temperatura za oknem? Piec CO? Piekarnik w kuchni? Wytrawiarka do płytek? I dlaczego akurat PT100? Bo taki masz, o takim słyszałeś że fajny czy akurat pasuje z powodu zakresu lub dokładności do Twojej aplikacji?

Czujników temperatury jest sto rodzajów, niektóre o niebo wygodniejsze w podłączeniu do wejścia ADC niż PT100. No, wysil się trochę..

Link do komentarza
Share on other sites

Wpadlem na pomysł żeby mierzyć temperaturę na piecu poprzez zastsowanie czujnika PT100. Czemu Pt 100? Bo taki mi po prostu przyszedł do głowy.

Chcę go zainstalować na rurze od cieplej wody która wychodzi z pieca.

Ostatnio ( nawet dzisiaj czytałem ) o czujniku DS18B20 ale muszę się jeszcze w to wszystko zgłębić.

Rozdzielczość nie musi być duża , 1 stopień wystarczy w zupełności.

Link do komentarza
Share on other sites

Rozumiem. Do DS18B20 znajdziesz mnóstwo gotowych kodów, nawet na ESP8266, bo chyba jest tam biblioteka interfejsu 1-wire. To czujnik inteligentny: sam mierzy temperaturę i wysyła do Ciebie wynik w postaci liczby. Podłączasz go do dowolnego pinu I/O a na dodatek możesz ich podpiąć kilka jednocześnie do tego samego kabelka. Każdy układ 18B20 ma swój unikalny adres który możesz odczytać więc nie pomylą się i z każdego możesz niezależnie czytać jego temperaturę. Kabelek nie może być zbyt długi więc z całego domu temperatur nie ściągniesz (są na to rady), ale wiele rur w jednym pomieszczeniu plus temperatura powierza plus na zewnątrz - raczej tak. Osiągana rozdzielczość jest nawet dużo wyższa, dokładność chyba z 0.5°C, zakres do 125°C więc do takich zastosowań wystarczy.

Powodzenia. Napisz jak poszło, ile dałeś czujników i jak działa 🙂

Link do komentarza
Share on other sites

Napewno się pochwalę 😃

Może zacząłem ze zbyt grubej rury, ale myślę że sobie z tym jakoś poradzę 🙂

Czy mógłby mi ktoś jeszcze sprecyzować jedną rzecz, a mianowicie:

Rozumiem że lua jest językiem pisanym na bazie języka C. Czy można tutaj stosować przemiennie lua i C, bądź samego C ?

Link do komentarza
Share on other sites

Rozumiem że lua jest językiem pisanym na bazie języka C. Czy można tutaj stosować przemiennie lua i C, bądź samego C ?

LUA nie jest pisana na bazie C i nie można używać ich przemiennie.

Możesz programować ESP8266 przy pomocy czystego C, albo przy pomocy Arduino, które jest w zasadzie C++ z kilkoma bibliotekami, ale wtedy nie będziesz mieć interaktywnej konsoli.

Możesz też dopisać funkcje w C do interpretera LUA, którego używasz, ale to wymaga trochę doświadczenia.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.