wtorek, 28 czerwca 2016

ESP8266, ESP-01 kolejna odsłona

Dziś kolejne zajęcia z cyklu - ESP8266 z bliska.

Nowe sztuki ESP-01 trochę zaskoczyły mnie swoim działaniem. Pomijam drobiazg pracy z prędkością 9600 choć przy uruchamianiu początkowe komunikaty wysyłane są z prędkością 115k. Również po autoresecie (watchdog) ESP drukuje informacje na największej prędkości. Ale skomunikować się z nim można tylko na 9600.
Wykorzystuję płytkę BRAMA do wpięcia się z przejściówką USB/RS do modułu ESP
I tu mały problem. Przejściówka USB/RS232TTL mająca możliwość pracy z napięciem 3,3V wpięta do płytki brama nie działa najlepiej. Odbierane komunikaty są często nieczytelne na monitorze USB - zamiast OK poprawnych potwierdzeń komend wyskakują kwadraciki. Nie ma znaczenia czy komunikacja odbywa się poprzez dzielnik napięcia R1 i R2 czy z jego pominięciem.



Przejściówkę podłączam do złącza, w którym osadzone było NANO (piny 16,17,19,12) 1x1 tzn TX przejściówki do TX NANO itd. zwierając jednocześnie R2 i rozwierając R1.Coś ewidentnie zakłóca transmisję do lub z modułu ESP ale ciężko wyrokować co. Dla pewności dodałem kondensator 220nF równolegle z zasilaniem 3,3V ale bez rezultatów. Bez znaczenia również było to czy zasilam płytkę z 5V przejściówki USB czy z wydajnego i dobrze stabilizowanego zasilacza zewnętrznego.

W miejsce drogiej (28 zł)  przejściówki z ukladem FT232RL wstawiłem najtańszego (7,80,-) chińskiego klona z układem CH340. Rezystory R1 i R2 wróciły na swoje miejsca i 4 kabelki połączyły przejściówkę z płytką. I wszystko śmiga aż miło. Sprawdzenie drugiego układu - podobnie - jest OK.

Układ ESP- 01 zgłasza się wersją Vendor:www.ai-thinker.com Version:0.9.2.4 / Jan  8 2013.
już leciwa ale na razie taka jest i taka będzie.

Testy konfiguracyjne robię z wykorzystaniem ulubionego programiku ESP8266 Config.exe
Ustawienie prędkości, portu, connect i po chwili otwiera się monitor a obok przycisku Version pojawia się informacja o odczytanej z modułu wersji oprogramowania. 
Wszystko daje ustawić się bez problemu. Najpierw wyświetlenie listy dostępnych sieci  ListAP potem połączenie z wybraną siecią (kliknąć na nazwę w tabelce i dopisać hasło). Działa a najważniejsze że te ustawienia zapisywane są w pamięci Flash ESP. Widać to naciskając GetAP - po ponownym podaniu napięcia na ESP wyskakuje informacja o połączeniu i nazwie sieci do której moduł był uprzednio zalogowany.
Ponadto działa włączanie i wyłączanie watchdoga. A w nowyszych (firmware) o dwa lata nie. Dziwny ten świat... 

-----------------------------------
WAŻNE
W programie POMPA i BRAMA używam sprzętowego portu RS do komunikacji z ESP. Do obsługi tego portu muszę zainstalować biblioteki: (patrz program)

#include <ESP8266_HardSer.h>
#include <BlynkSimpleShieldEsp8266_HardSer.h>  
  

  
Nie są one dostępne w najnowszej wersji bibliotek BLYNKa (0.3.7) ale trzeba je ręcznie doinstalować z wersji 0.3.4 . Szczegóły opisane są  w linku. Z dyskusji na forach wynika że biblioteki te mogą mieć feler - bywa że nie logują się do zadanej w programie sieci. Pierwszym widocznym efektem jest komunikat w monitorze IDE wysyłany przez biblioteki BLYNK po komendzie
 ATE0
"" Failed to disable Echo""

 Po czymś takim można być pewnym, że moduł nie połączył i nie połączy się z siecią bo najprawdopodobniej szwankuje komunikacja z modułem.
Mam tak samo dla wszystkich nowych układów ESP  instalowanych w projektach.
Może przyczyną jest fakt pozostawania ESP w trybie pracy jako AP i nie można tego ustrojstwa zmusić do połączenia się z siecią jako klient. Szczegóły tutaj >>>>. Fabrycznie oprogramowane ESP domyślnie próbuje połączyć się z zapisaną w pamięci siecią a jeśli takowej nie ma lub nie jest dostępna to układ przechodzi w tryb pracy AP z adresem 192.168.4.1  Co prawda ESP winien być w stanie pracy AP+STA ale może coś nie działa prawidłowo. Lub  biblioteki BLYNKa nie zmieniają ustawień modułu z trybu AP na tryb STA (stacja). Czort wie. Trochę dużo tych niewiadomych.
Trzeba to zrobić ręcznie. Do tego znakomicie nadaje się nasz program ESP8266 Config.exe .
Jedno kliknięcie u układ ma zapisany na stałe tryb STA.
Dodatkowo, wpisanie do pamięci danych sieci logowania praktycznie uniezależnia nas od prawidłowej procedury  w programie Arduino - moduł łączy  się do zapamiętanej sieci natychmiast po podaniu napięcia bez czekania na prawidłowe komendy przesyłane z procesora. Nie ma przy tym żadnych przeszkód by w programie wywołać logowanie do innej sieci niż ta zapamiętana w pamięci ESP. Moduł będąc w trybie STA przyjmuje prawidłowo komendy BLYNka.

KONIEC UWAGI
-------------------------------
Trzeba będzie poszukać rzeczywistej przyczyny takiego zachowania się ESP w układzie z BLYNK. Na razie pozostanę przy obecnych bibliotekach dopóki działają i wstępnej konfiguracji modułów ESP8266 za pomocą w/w oprogramowania.

ERRATA

 Brak czasami logowania do sieci WiFi układu ESP spowodowane jest nie przyjęciem komendy AT ustawiającej ESP w stan STA. Wszystkie zakupione moduły poddaję zawsze "obróbce" programem ESP8266 Config.exe . i ręcznie ustawiam tryb pracy STA.

cdn.......

1 komentarz: