• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
ESP8266-01 (Black) problem z komunikacją
#1
Witam, 
od dłuższego czasu zmagam się z dość dziwnym problem, a mianowicie problemem z komunikacją z ESP8266 przez Arduino Uno. Sam moduł spisuje się jak najbardziej ok, jeśli jest podłączony przez USB-UART. Mogę spokojnie poustawiać sobie tryby przez komunikację AT-Commands, postawić serwer oraz się z nim skomunikować. 
Niestety problem jest, gdy chcę zrobić to samo przez Arduino Uno i bibliotekę SoftwareSerial.h.  Napisałem prosty program, który wykonał się poprawnie tylko raz i to dzisiaj, ku mojemu zdziwieniu (nawet nie jestem w stanie powiedzieć co wpłynęło na jego zadziałanie), jednak po wyłączeniu i włączeniu zasilania problem pojawił się ponownie.  Dla jednej kompilacji programu wykonuje się tylko jedna komenda AT, pierwsza z góry. Następne nie są wykonywane. Całość wygląda tak, jakby: 
a) SoftwareSerial się zmroził po wykonaniu jednej komendy i nie przesyłał ich więcej (jednak po dodaniu funkcji odczytującej w loopie, co widać na screenie, SoftwareSerial nasłuchuje)
b) Co bardziej prawdopodobne, moduł ESP dostał jakiegoś zmrożenia po otrzymaniu pierwszej komendy i nie chciał dalej się wykonywać i co najgorsze, nie wiem co może być tym spowodowane. Brak pamięci? 

Całość podłączenia wygląda następująco: 

ESP 
VCC - 3,3 V (Z zasilacza 9V, 0,6A przez stabilizator LF33CV, dwa kondensatory przy stabilizatorze, wejściowy 10uF, wyjściowy 4,7uF) 
GND - GND 
TX - RX (arduino pin 7) 
RX - TX (arduino pin 8 przez dzielnik napięciowy do zmniejszenia napięcia 3,3V) 
CH_PD - 3,3V 
RST - 3,3V (ale akurat tu bez różnicy czy jest podłączony czy nie, w obu przypadkach nie działa)

Wgrana wersja oprogramowania: 
AT version:0.21.0.0
SDK version:0.9.5

Wiem, że wersja nie jest najnowsza, jednak próbowałem już z innymi i niestety też się nie udawało. Co więcej, nowsze wersje nie działają domyślnie na 9600 baud, a po zmianie programowej z 115200 na 9600 moduł zaczynał szaleć. 

Męczę się z tym problemem już od paru dni i naprawdę nie wiem co może być nie tak, tym bardziej, że tak jak wspomniałem, dzisiaj układ wyjątkowo i jednorazowo zaskoczył (screen również poniżej). Próbowałem już chyba wszystkiego, dodawałem delay'e pomiędzy linijki, zmieniałem piny dla SoftwareSerialu.... 
Już na sam koniec chciałbym dodać, że projekt który chciałbym wykonać wiąże się z postawieniem serwera i wysyłaniem danych z komputera do ESP8266, a następnie na atmegę gdzie następować będzie sterowanie silnikiem. Dlatego jeśli jest inny sposób na napisanie programu niż z wykorzystaniem komend AT, to byłbym wdzięczny za wskazówki, gdyż jestem laikiem w tych sprawach. 

Tak wygląda nie działający kod: 
[Obrazek: 037fbda5657d0249.png]

Tak wyglądał ten jeden raz kiedy działało: 
[Obrazek: a65bbf29a6744cf7.jpg]
 
Odpowiedź
#2
Może po prostu SoftwareSerial nie podaje prawidłowej częstotliwości transmisji. Podepnij go pod sprzętowy UART, status wyświetlaj na wyświetlaczu lub diodach.
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
#3
Witam. Mam identyczny problem. Czy udało Ci się znaleźć rozwiązanie?
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości