środa, 25 maja 2016

Arduino z ESP8266 - trzecie podejście

ESP-01


Mam 2 sztuki a w necie krytyka modułu ESP-0,1 że podatny na zakłócenia z powodu barku obudowy, niestabilny . Spróbuję go jednak użyć jako modułu w konfiguracji BLYNK <> ESP-01 <> Arduino <> RF433 by zestawić  drugą ścieżkę łączności Blynk'a z domowym systemem IoT tym razem bezprzewodowo.
 


Schemat połączenia do konwertera USB /TTL 3,3V ten sam jak poprzednio - tylko rezystory 1k do CH_PD i RST podwieszone do +3,3V. Noga GPIO2 wisi w powietrzu. (patrz schemat poniżej)

Kilka nieudanych prób i moduł zagadał na prędkości 115200. W programie ESP8266 Config wygląda to jeszcze lepiej. Połączenie z routerem domowym błyskawiczne. Co ważne - ustawienie prędkości na 9600 jest zapisywane do pamięci nieulotnej modułu tak więc reset i wyłączenie napięcia nie zmienia prędkości komunikacji (poza momentem startu gdzie wysyłane są komunikaty systemowe jak w poprzednim poście na prędkości 115200).  Ale po początkowych krzaczkach widzianych na prędkości 9600 na koniec wskakuje ładny komunikat  READY a za chwilę info o połączeniu się z siecią i pobraniu IP. Moduł działa i na moje oko bardziej stabilnie niż ESP-12.

Połączenie z Arduino


Wracam do prędkości 115200 i będę przyłączał moduł do sprzętowego RS232 UNO (piny 0 i 1). Gdyż ponieważ:
- prędkość ta zaszyta jest w ESP a nie chcę na razie kłopotów z przełączaniem prędkości modułu
- nie muszę instalować na razie biblioteki SerialSoft bo nie wiem jak działa
- mam większe zaufanie do hardwerowego seriala a pewność komunikacji z Blynk to podstawa całego systemu
- w rozwiązaniu docelowym Arduino RS232 nie będzie wykorzystywany więc szkoda go tak zostawić

To rozwiązanie wymusza rozłączanie linii Tx z ESP na moment wgrywania programu do UNO by coś wysyłane przez ESP nie zakłóciło transmisji. I oczywiście dodanie dzielnika napięcia na wyjściu Tx z Arduino (u mnie potencjometr 1,5 k). Na razie zostawiam zasilanie ESP z modułu konwertera czyli z osobnego USB - poprzez stabilizator DC/DC.

Schemat wygląda mniej więcej tak

Program

Skopiowałem go stąd >>>>>>>>> i oczywiście ...... nie działa. Komunikat na czerwono że coś pozmieniali w bibliotekach, trzeba wgrać nowe i patrzeć w przykładach.
Pobieram najnowszą bibliotekę >>>>>>>  patrzę w przykład i wszystko jasne - dwie podmienione biblioteki

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

Zamieniam, kompiluję i .......... nie działa
Brak biblioteki  ESP8266_HardSer.h. Sprawdzam - nie ma
nie ma w całym pliku /blynk-library-master.zip

Google  radzi pobrać i zainstalować w katalogu bibilotek dodatkowe katalogi
.......\Arduino\libraries\Blynk
........\Arduino\libraries\BlynkESP8266_HardSer
.........\Arduino\libraries\BlynkESP8266_SoftSer
..........\Arduino\libraries\SimpleTimer
Oczywiście są w wersji 0.3.4.zip i trzeba je przenieść ręcznie! opis i plik do pobrania tu >>>>>>

Przenoszę kompiluje ..... brak biblioteki. Acha - włączony Arduino IDE. Zamykam /otwieram aplikację, kompiluję .....przeszło!

Rozłączam kabelek od Tx modułu ESP i wgrywam program do UNO.
Kabelek na miejsce i odpalam monitor. Nic. Bo prędkość ma 9600. Zmieniam na 115200, zamykam i otwieram jeszcze raz. I miło popatrzeć

[19] Blynk v0.3.5-beta
[520] Connecting to marzenie
ATE0
AT+CWMODE?
AT+CWJAP="marzenie","a1b2c3c4e5"
AT+CIFSR
[5617] IP: +CIFSR:STAIP,"192.168.2.193"
+CIFSR:STAMAC,"5c:cf:7f:0f:ee:e2"

OK
AT+CIPMUX=0
[5638] Connected to WiFi
AT+CIPCLOSE
AT+CIPSTART="TCP","blynk-cloud.com",8442
AT+CIPSEND=37

Telefon, Blynk i D13 ....... i LED na UNO zapala się i gaśnie. Zaczynam lubić ten program :)

A to działający program
Dwie niedziałające biblioteki zostawiłem jako komentarz


cdn ................ teraz już napewno


Brak komentarzy:

Prześlij komentarz