Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Moduł Arduino UNO + WiFi ESP8266, opinia, uruchomienie, test

TechEkspert 28 Paź 2018 16:09 3966 41
  • Moduł Arduino UNO + WiFi ESP8266, opinia, uruchomienie, test
    Moduł Arduino UNO + ESP8266 na jednej płytce zawiera UNO oparte o ATmega328 i moduł WiFi oparty o ESP8266. Koszt modułu na portalach aukcyjnych to ~7$ Link. Moduł można zasilać z gniazda micro USB lub złącza DC 7-12V. Komunikacja z modułami odbywa się przez konwerter USB<->UART oparty o układ CH340. Arduino UNO pracuje z napięciem 5V, natomiast ESP8266 3.3V. Wyprowadzenia ESP8266 są dostępne na dodatkowym złączu, podobnie złącze ISP pozwalające na programowanie ATmega328 z ominięciem bootloadera:
    Moduł Arduino UNO + WiFi ESP8266, opinia, uruchomienie, test

    Przyglądając się PCB widać pewne niedokładności montażu, np. złącze uFL zewnętrznej anteny WiFi. Standardowo możemy wykorzystać antenę WiFi w postaci ścieżki na płytce drukowanej.
    Moduł Arduino UNO + WiFi ESP8266, opinia, uruchomienie, test

    Opis wyprowadzeń ESP8266 znajduje się po drugiej stronie płytki:
    Moduł Arduino UNO + WiFi ESP8266, opinia, uruchomienie, test

    Przy łączeniu wyprowadzeń ESP8266 i UNO należy pamiętać o różnych poziomach napięć, podobnie przy podłączaniu peryferiów.
    Po odpowiednim ustawieniu przełączników ESP8266 i ATmega328 mogą komunikować się z wykorzystaniem UART, podobnie ustawienie zworek pozwala na połączenie konwertera UART<->USB z wybranym modułem w celu programowania.




    Moduł Arduino UNO + WiFi ESP8266, opinia, uruchomienie, test

    Połączenie modułów po UART - DIP 1 i 2 ON
    Połączenie USB<->UART z ATmega328 - DIP 3 i 4 ON
    Połączenie USB<->UART z ESP8266 - DIP 5 i 6 ON
    Połączenie USB<->UART z ESP8266 w trybie programowania (GPIO0-GND) - DIP 5 i 6 i 7 ON

    Czy uważacie takie połączenie ATmega328 z ESP8266 na jednej płytce za sensowne?

    Arduino UNO może rozszerzać możliwości ESP8266 np. pod względem ilości I/O, ADC, PWM,
    odciążenie/buforowanie dla ESP przy realizacji pomiarów lub komunikacji z peryferiami, zwiększenie energooszczędności ESP8266 podobnie jak tutaj: Link

    Przełączanie miniaturowych przełączników do zmiany trybów jest niewygodne. Należy pamiętać o różnicy poziomów napięć między wyprowadzeniami modułu ESP i Arduino.

    Poniżej informacje jak zintegrować obie części modułu z Arduino, oraz wysyłać dane do Thingspeak:
    ESP8266 WIFI uruchmienie, start z IoT, Blynk, Thingspeak
    Arduino Uno pierwsze uruchomienie. DHT22, BMP180, FFT LED RGB.

    Praktyczny przykład wykorzystania modułu,
    przesyłanie danych z 6 kanałów ADC Arduno Uno, do Thingspeak poprzez WiFi ESP8266:

    Kod dla Arduino UNO,
    na czas programowania przełączamy w pozycję "ON" USB+MCU (przełączniki 3 i 4),
    na czas współpracy Arduino UNO z ESP8266 wybieramy opcję MCU+ESP (1,2).

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Kod dla ESP8266,
    na czas programowania ustawiamy w pozycji "ON" przełączniki 5,6,7,
    na czas działania ustawiamy w pozycji "ON" przełączniki 1,2,
    jeżeli chcemy obserwować komunikaty na terminalu szeregowym w pozycji "ON" ustawiamy przełączniki 5,6, lub 1,2,5,6.
    W kodzie zgodnie z opisem umieszczamy nazwę SSID naszej sieci WiFi, oraz hasło,
    a także klucz api thingspeak i nasz numer kanału.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    W efekcie otrzymujemy w ThingSpeak wykresy z wartością napięć na 6 kanałach Arduino UNO:
    Moduł Arduino UNO + WiFi ESP8266, opinia, uruchomienie, test


    Fajne! Ranking DIY
  • #2 28 Paź 2018 19:46
    krisRaba
    Poziom 25  

    Ciekawe, że wrzucili ESP na swoje PCB, a nie, jak to się często spotyka, w postaci dodatkowego modułu jak np. tutaj https://www.elektroda.pl/rtvforum/topic3512709.html (tutaj akurat ESP32, ale z ESP8266 też tak robią).
    Zastanawiam się, czy podział jest taki, że z modułami są "zachodnie kickstartery", gdzie na własnym PCB jest czasem niewiele więcej niż sam moduł ;), a bezpośrednie wykorzystanie w meega-tanich płytkach z dalekiego wschodu? ;) I czy przeważa tutaj sam koszt, czy dodatkowa robota?

  • #3 28 Paź 2018 20:03
    tmf
    Moderator Mikrokontrolery Projektowanie

    IMHO takie połączenie nie ma za wiele sensu. Po pierwsze różne domeny napięciowe. Super niewygodne 5V w tym przypadku, już mogli zasilić AVR z 3,3V co oszczędziłoby problemów. Poza tym nie widzę sensu w pakowaniu 8-bitowego AVR do układu z potężnym (w porównaniu do AVR) procesorem ARM, znajdującym się w ESP. Jesli brakuje pinów to można użyć ESP32 lub dodać jakieś ekspandery. Tu użycie prostego AVRa nie wydaje mi się celowe, bo sprzętowo niewiele wnosi (ubogość peryferii użytego AVR). Poza tym brak debuggera, też nie ułatwia życia. Jeśli komuś się to przyda to fajnie, w sumie cena nie powala.

  • #4 28 Paź 2018 20:22
    TechEkspert
    Redaktor

    Jest też połączenie ESP8266 i Arduino MEGA (ATmega2560) Link ~10$, czy dla takiego modułu widzicie zastosowania?
    Również będę miał okazję go przetestować.

  • #5 28 Paź 2018 20:25
    khoam
    Poziom 16  

    tmf napisał:
    Poza tym nie widzę sensu w pakowaniu 8-bitowego AVR do układu z potężnym (w porównaniu do AVR) procesorem ARM, znajdującym się w ESP.


    Tensilica Xtensa lx106 MCU to nie ARM, co do reszty się zgadzam.

  • #6 29 Paź 2018 08:17
    Szyszkownik Kilkujadek
    Poziom 32  
  • #7 29 Paź 2018 08:40
    tronics
    Poziom 36  

    Cytat:
    Poza tym nie widzę sensu w pakowaniu 8-bitowego AVR do układu z potężnym (w porównaniu do AVR) procesorem ARM, znajdującym się w ESP.

    Jak kolega wyżej zauważył tensilica to nie arm, a takie połączenie jest np. po to by w miarę dobrze wykorzystać deep sleep. Sam ESP może się z deep sleep wybudzić, ale ogranicza nas max czas deep sleep około 71min. Lepiej nadzór nad tym wrzucić na coś mniejszego i bardziej oszczędnego jeśli urządzenie ma się budzić rzadziej i przy spełnieniu określonych warunków. Sam ESP (8266) ma też stosunkowo niewielkie możliwości ADC (brak mux, 1V zakres) więc dodatkowy układ zajmujący się analogówką również stanowi tu uzupełnienie ESP. Nie zmienia to jednak faktu, że można by to zrobić i taniej, i lepiej... albo nie musieć robić wcale (przy ESP32).

  • #8 29 Paź 2018 09:56
    tmf
    Moderator Mikrokontrolery Projektowanie

    tronics napisał:
    Jak kolega wyżej zauważył tensilica to nie arm, a takie połączenie jest np. po to by w miarę dobrze wykorzystać deep sleep. Sam ESP może się z deep sleep wybudzić, ale ogranicza nas max czas deep sleep około 71min. Lepiej nadzór nad tym wrzucić na coś mniejszego i bardziej oszczędnego jeśli urządzenie ma się budzić rzadziej i przy spełnieniu określonych warunków.


    Trudno się z tym zgodzić. Sam protokół wifi i praca w tym trybie jest tak prądożerna, że zaoszczędzone mikroampery nie mają większego znaczenia. Lepiej byłoby użyć ESP32, który posiada możliwości łączności radiowej rzeczywiście minimalizującej pobór energii.
    tronics napisał:
    am ESP (8266) ma też stosunkowo niewielkie możliwości ADC (brak mux, 1V zakres) więc dodatkowy układ zajmujący się analogówką również stanowi tu uzupełnienie ESP.

    Akurat użyta ATMega w minimalnym tylko stopniu rozszerza możliwości ESP pod względem dostępnych układów peryferyjnych, o czym wyraźnie napisałem. Gdyby tam był procesor z rozbudowaną analogówką, licznymi timerami, czy interfejsami, to owszem, miałoby to sens. Natomiast ładowanie prostego AVR, który praktycznie nic nie ma, a ubogie porty szeregowe są wykorzystane do komunikacji z ESP i USB (poprzez dodatkowy scalak) IMHO nie ma sensu.

  • #9 29 Paź 2018 12:25
    khoam
    Poziom 16  

    TechEkspert napisał:
    Jest też połączenie ESP8266 i Arduino MEGA (ATmega2560) Link ~10$, czy dla takiego modułu widzicie zastosowania?
    Również będę miał okazję go przetestować.


    A może Arduino Due? "Następca" Uno, ale już na procesorzez ARM. Ma również wsparcie ze strony standardowego framework'a Arduino. Jest dostępny na alipowoli w cenie 15-16$ z wysyłką.

  • #10 29 Paź 2018 13:20
    pier
    Poziom 23  

    Jeśli esp8266 i niski pobór prądu w Deep sleep to płytka TrigBoard.
    Tylko nie wiem gdzie to kupić.

  • #11 29 Paź 2018 13:49
    tronics
    Poziom 36  

    SAMD21 to mogłaby być dobra opcja, interfejsów więcej niż mega328, jest DMA, jest 3.3V, jest event system, timerów trochę, dość dobry ADC i DAC, jest i USB. Można napisać firmware, który pozwoli przełączyć SAM w usb-serial i pchać soft do ESP bez przepinania zworek.

  • #12 29 Paź 2018 18:56
    TechEkspert
    Redaktor

    @krisRaba tak niestety widać oszczędności w jakości montażu, ale z czegoś niska cena musi się brać.

    @khoam Due to mógłby być dobry duet z esp8266, jednak do testu wezmę to co było dostępne w "puli". A jakie zastosowanie proponujesz dla Due+ESP?

    Te różnice 5V i 3.3V między ESP a Arduino Uno czasami mogą być zaletą,
    oba moduły są połączone po RS-232, peryferia 3.3V można podłączyć do ESP a 5V do Arduino,
    ale to tylko przykład, który nie zawsze (a być może rzadko) znajdzie praktyczne zastosowanie ze względu na wiele ograniczeń.

  • #13 29 Paź 2018 19:39
    khoam
    Poziom 16  

    TechEkspert napisał:
    Due to mógłby być dobry duet z esp8266, jednak do testu wezmę to co było dostępne w "puli". A jakie zastosowanie proponujesz dla Due+ESP?


    No generalnie wszędzie tam, gdzie kombinacja AVR+ESP8266 jest niewystarczająca ze względu na pamięć, czy zasoby procesora.
    W szczególności, w moim przypadku widzę Due, jako internetowy odbiornik radiowy Youtube, z ładnym wyświetlaczem OLED (bez odbioru wideo), ze wszystkimi tymi funkcjonalnościami, które są dostępne w "My Youtube", włącznie z buforowaniem utworów w warstwie dźwiękowej. Sterowanie z pilota, budzik, stacja pogody to przy okazji ;)
    Oczywiście to wszystko mógłbym zrobić na malince, ale na co dzień pracuję z linuksem, więc i tak mam to na pececie :)

  • #14 29 Paź 2018 20:01
    tronics
    Poziom 36  

    @khoam - rzecz w tym, że taniej to zrobisz na ESP32 (mouser - wersja z 2MB flash 2.7 euro) niż ATSAM3X8E 7 euro+ESP885 1MB 1,5 euro. Jedyny rzeczywisty problem, że framework arduino ESP32 jeszcze wspiera tak bardziej testowo niż rzetelnie. SAMD21 jest dużo tańsze i też jest wspierane przez arduino. W końcu siedzi w zero. Ale to też jeszcze nie to, chyba seria E była taka fajniejsza. Nie zmienia to faktu, że nadal dużo drożej niż ESP32 ;)

  • #15 29 Paź 2018 20:13
    khoam
    Poziom 16  

    tronics napisał:
    @khoam - rzecz w tym, że taniej to zrobisz na ESP32 (mouser - wersja z 2MB flash 2.7 euro) niż ATSAM3X8E 7 euro+ESP885 1MB 1,5 euro. Jedyny rzeczywisty problem, że framework arduino ESP32 jeszcze wspiera tak bardziej testowo niż rzetelnie. SAMD21 jest dużo tańsze i też jest wspierane przez arduino. W końcu siedzi w zero. Ale to też jeszcze nie to, chyba seria E była taka fajniejsza. Nie zmienia to faktu, że nadal dużo drożej niż ESP32 ;)


    Ale ESP32 to też nie jest ARM. Ponadto wsparcie środowiska programistycznego GNU czy Clang dla ARM jest zdecydowanie lepsze. Ponadto IMHO nie wróżę długiej przyszłości dla ESP32, sądzę że podzieli los AVR32. Oczywiście można wziąć pod uwagę SAMD21, ale wtedy jest mniej Flash Memory, mniej SRAM.

  • #16 29 Paź 2018 20:31
    tronics
    Poziom 36  

    Cytat:
    Ale ESP32 to też nie jest ARM

    To bez znaczenia jeśli używasz frameworka. Jeśli nie używasz to robienie tego na 2 różnych chipach tym bardziej daje się we znaki.
    Cytat:
    Ponadto IMHO nie wróżę długiej przyszłości dla ESP32

    No dobra, jeśli nie ESP to co? Cóż mamy z WiFi, parę realteków, texasów i mediateków. Z czego wydajnościowym rywali w zasadzie nie ma, bo z reguły jeśli już jest SoC z WiFi to rdzeń ARMowy (lub nie) jest dodatkiem. I to jeden, i to stosunkowo wolny. BLE to inna sprawa, bo tu są i STM32WB, i PSoC4,5,6 BLE, i nRF52 i mnóstwo innych. Ale wifi? No pokaż tą konkurencję dla hobbystów :) Nie ma. Można dodać moduł WiFi do mocnego ARMa, ale jak wyraźnie zaznaczyłem są to rozwiązania zdecydowanie droższe.

  • #17 29 Paź 2018 20:54
    krisRaba
    Poziom 25  

    khoam napisał:
    internetowy odbiornik radiowy Youtube

    hmm... jest taka opcja, by zaciągać muzykę z YT bez obrazu? Czy planowałeś pobierać całość, a odtwarzać tylko dźwięk?
    Pytam, bo często puszczam YT jako muzykę w tle i szkoda mi trochę tego transferu, nawet jeśli już całkiem nieźle potrafią to upakować.

  • #18 29 Paź 2018 20:59
    khoam
    Poziom 16  

    krisRaba napisał:
    Czy planowałeś pobierać całość, a odtwarzać tylko dźwięk?


    Dokładnie tak.

  • #19 29 Paź 2018 21:14
    TechEkspert
    Redaktor
  • #20 29 Paź 2018 21:28
    khoam
    Poziom 16  

    tronics napisał:
    To bez znaczenia jeśli używasz frameworka.

    Ten framework właśnie używa kompilatora i linkera GNU.

    tronics napisał:
    Można dodać moduł WiFi do mocnego ARMa, ale jak wyraźnie zaznaczyłem są to rozwiązania zdecydowanie droższe.

    Najchętniej poprzestałbym na dołączeniu adaptera WiFi do portu USB w cenie 13zł z dostawą.

    Dodano po 6 [minuty]:

    TechEkspert napisał:
    Czy jest jakiś przykładowy projekt tego typu "muzyka z YT" ?


    Wiele inspiracji może przynieść analiza kodów źródłowych youtube-dl. Wprawdzie jest napisany w pythonie, ale bardzo czytelnie i z licznymi komentarzami.

  • #21 30 Paź 2018 05:00
    rs6000
    Poziom 27  

    ESP8266 + VS1053 i radio internetowe śmiga aż miło, nie trzeba kombinować. Zwykły ESP taktowany 160MHz wystarczy, zrobiłem na tym radiobudzik z radiem internetowym, polecam. Obsługuje większość polskich stacji radiowych jak RMF, ZET i pozostałe.

    Pozdr

  • #22 30 Paź 2018 05:06
    tronics
    Poziom 36  

    Cytat:
    Ten framework właśnie używa kompilatora i linkera GNU

    Co nie ma prawie żadnego znaczenia dla osoby, która w nim pisze. Większość opcji jest ustawiona na sztywno, a żeby do określonych się dostać to trzeba się naszperać. Ma działać i działa. Bezobsługowo.
    Cytat:
    Najchętniej poprzestałbym na dołączeniu adaptera WiFi do portu USB w cenie 13zł z dostawą
    A sterownik napisze się sam ;)
    Wreszcie 13zł to mniej więcej ESP32 z 2MB flash on-die. Przewiduje kolega, że ESP spotka los AVR32, tymczasem realia są inne, bo gdy rodzina AVR32 się pojawiła to już miała 32 bitową konkurencję, solidną konkurencję. Prosiłem o wskazanie bezpośredniej konkurencji dla ESP32 w świecie WiFi. Proszę ponownie, bo najwidoczniej kolega to przeoczył.

  • #23 30 Paź 2018 13:08
    khoam
    Poziom 16  

    tronics napisał:
    Prosiłem o wskazanie bezpośredniej konkurencji dla ESP32 w świecie WiFi. Proszę ponownie, bo najwidoczniej kolega to przeoczył.

    Nic nie przeoczyłem. Nie ma się co unosić. IMHO największą konkurencją dla ESP32 jest samo ESP8266, ale każdy oczywiście może mieć swoją odrębną opinię w tej sprawie.

    tronics napisał:
    Co nie ma prawie żadnego znaczenia dla osoby, która w nim pisze. Większość opcji jest ustawiona na sztywno, a żeby do określonych się dostać to trzeba się naszperać. Ma działać i działa. Bezobsługowo.

    Używam na co dzień PIO, a nie Arduino IDE, więc patrzę na to trochę z innej perspektywy.

    rs6000 napisał:
    ESP8266 + VS1053 i radio internetowe śmiga aż miło, nie trzeba kombinować.

    A co to ma wspólnego z interfejsem programowym do Youtube?

  • #24 30 Paź 2018 13:55
    tronics
    Poziom 36  

    Cytat:
    Nie ma się co unosić.
    Skąd pomysł, że się uniosłem. Grzecznie zwróciłem uwagę, że kolega pominął moje pytanie. Nie ma ani emotek świadczących o irytacji, ani z kontekstu nie można wywnioskować, by było inaczej.
    Cytat:
    Używam na co dzień PIO, a nie Arduino ID

    Też używam PlatformIO i do tego bluepill ;) Więc to już zupełnie inna perspektywa.
    Cytat:
    IMHO największą konkurencją dla ESP32 jest samo ESP8266

    Z jednej strony tak, ale to głównie przez to, że wady 8266 nie uwidoczniają się w typowych hobbystycznych projektach.

  • #25 30 Paź 2018 18:14
    pier
    Poziom 23  

    rs6000 napisał:
    ESP8266 + VS1053 i radio internetowe śmiga aż miło, nie trzeba kombinować. Zwykły ESP taktowany 160MHz wystarczy, zrobiłem na tym radiobudzik z radiem internetowym, polecam. Obsługuje większość polskich stacji radiowych jak RMF, ZET i pozostałe.

    Pozdr


    Nie obsługuje dobrze tego co najważniejsze czyli OPEN FM. Gra ale kiepsko.

  • #26 30 Paź 2018 18:34
    rs6000
    Poziom 27  
  • #27 30 Paź 2018 21:51
    khoam
    Poziom 16  

    tronics napisał:
    Wreszcie 13zł to mniej więcej ESP32 z 2MB flash on-die.


    Gdzie za taką cenę można zakupić? Szukałem i nie znalazłem, a chętnie nabędę w tej cenie.

  • #28 31 Paź 2018 06:48
    PiotrLenarczyk
    Poziom 8  

    Przecież to bez sensu - ESP8266 jest ze dwa rzędy wielkości mocniejszy od AVR'ów. Gdzieś na gicie jest cały zestaw rejestrowo-ustawczy do ESP'ów. Dyskusje o tym co jest lepsze: ESP12/AVR ATXmega/STM8/MSP430/CortexM4F są dywagacjami wynikającymi tylko i wyłącznie z doświadczeń autorów, a nie obiektywnych porównań ( typu: opłacalności MIOPs*kiBps*kiB/PLN; zużycia mAh/rok w sleep; init delay; GPIO max freq.; noise levels; et cetera ).

  • #29 31 Paź 2018 09:14
    tronics
    Poziom 36  

    Cytat:
    ESP8266 jest ze dwa rzędy wielkości mocniejszy od AVR'ów

    I tu muszę niestety bardzo surowo odpowiedzieć. Po pierwsze nie rozumie kolega wyrażeń, którymi się posługuje. Po drugie nie zna kolega rzeczywistej wydajności rdzenia Xtensa (są porównania do AVR i STM), po trzecie nie rozumie kolega ograniczeń tego SoC/MCU. A w porównaniu do tych "słabych" atmeg to:
    1. SPI Master jest zajęty do komunikacji z flash, drugi sprzętowy SPI to slave więc jeśli podłączamy czujnik, ekspander czy cokolwiek na SPI to wykorzystujemy implementację programową
    2. I2C nie ma w ogóle sprzętowego, jest implementacja programowa. Atmega ma sprzętowe TWI
    3. Jest tylko timer, nie ma sprzętowego PWM. Realizacja PWM jest programowa na przerwaniach licznika. Częstotliwość bazowa PWM to 100-1000Hz przy ~14bitowej rozdzielczości. Innymi słowy PWM będzie obciążał procesor przerwaniami...
    4. Transmisja WiFi zabiera cykle procesora, aplikacja może ją zakłócić, a nie ma żadnych narzędzi czy możliwości ostrzeżenia, że już przekroczyliśmy limit. Ot zacznie się krzaczyć i tyle będziemy mieli. Dodatkowo źródeł wewn. resetu to specjalnie nie uświadczymy (np. watchdog, BOR)
    Proszę nie kreować ESP na siódmy cud świata, bo z pewnością takim nie jest.

  • #30 31 Paź 2018 10:53
    PiotrLenarczyk
    Poziom 8  

    ESP jest innego typu urządzeniem - np. najlepsze PWM uzyska się na jakimś układzie dedykowanym, lub trywialnym ASIC. Jeśli chodzi o AVR to jak już musiałem je oprogramowywać to najlepiej spisywały się ATmega3208 i ATXmega16D4. Ja bym wybrał jakieś ADUCM361 Analog Devices ( hobbystyczne EKG, EEG, holter i inne ), ale nie znam się - każdy robi jak umie.
    Post Scriptum: ATmega328 używane tylko jako sleep RTC do ESP jest zwyczajnie za drogie. W tej samej cenie jest moim zdaniem zauważalnie lepsze stm32L011.

  Szukaj w 5mln produktów