Czy ESP8266 może zastąpić Arduino?


15

Jestem hobbystą i do tej pory używałem Arduino do prostych projektów. Teraz chcę zbudować projekt z adresowalnymi diodami LED, chcę napisać kilka programów na Arduino dla diod LED, a na telefonie wybieram te, które mają być uruchomione.

Znalazłem ESP8266 jako dobre i tanie rozwiązanie do rozmowy z moim Arduino. Szukając w Internecie, aby dowiedzieć się, jak to działa, okazało się, że ma na nim swoje własne MCU i mogę pisać i przesyłać mój kod w Arduino IDE! 20kB pamięci RAM, procesor 80 MHz i 4 MB pamięci flash za 3 USD (nie jestem jednak pewien tych liczb, ale nawet jedna czwarta jest świetna) !! Jeśli potrzebuję tylko kilku GPIO, dlaczego warto korzystać z Arduino UNO? Czy ten moduł jest niezawodny?


Nie, nie zamierzam sprawdzać, czym jest ESP8266, aby odpowiedzieć na pytanie tutaj. Poza tym z tytułu jest to pytanie oparte na opiniach i wydaje się, że chodzi raczej o użycie urządzenia elektronicznego niż o jego konstrukcję. Nie tylko to, ale aby usunąć wszelkie wątpliwości, wspominasz o „arduino”.

1
Wewnętrzny procesor ESP8266 może uruchamiać programy użytkownika. Używany język zależy od tego, do czego masz dostęp. LOA jest powszechnie stosowana.
Russell McMahon

10
@OlinLathrop Jeśli ludzie używają terminów takich jak „LM324”, „BC337”, 1N4148, ogólnie przyjmuje się, że są wystarczająco dobrze znani, że włączenie opamp, bipolarnego tranzystora NPN o niskiej mocy i krzemowej diody sygnałowej, odpowiednio, nie jest wymagane do zrozumienia. | Rodzina ESP8266 to seria modułów z procesorem WiFi + w jednym układzie scalonym i pamięcią towarzyszącą dla programu. Są to bardzo dobrze znane i coś niezwykle wartego poznania, jeśli ich nie spotkałeś. Chociaż nie są (jeszcze) tak wszechobecne, jak np. LM324, są prawdopodobnie najbardziej powszechnym interfejsem WiFi „IOT”.
Russell McMahon

3
Naprawdę nie sądzę, że to pytanie zasługuje na negatywne
Malachi

3
@ linhartr22 Cytując z www.lua.org/about.html : „Lua” (wymawiane LOO-ah) oznacza po portugalsku „Księżyc”. Jako taki nie jest ani akronimem, ani skrótem, ale rzeczownik. Mówiąc dokładniej, „Lua” to nazwa, nazwa księżyca Ziemi i nazwa języka. Podobnie jak większość nazwisk, powinno być pisane małymi literami z kapitałem początkowym, czyli „Lua”. Proszę nie pisać go jako „LUA”, co jest zarówno brzydkie, jak i mylące, ponieważ wtedy staje się akronimem o różnych znaczeniach dla różnych ludzi. Więc proszę, napisz „Lua” dobrze!
odszedł

Odpowiedzi:


11

Cóż, odpowiedź na pytanie „Czy może zastąpić Arduino” - tak, w wielu przypadkach może.
Czy byłby to „zabójca Arduino” - wątpię w to.
W moim domu jest wiele arduinos i ESP i 1 ESP w moim biurze, działający 24 godziny na dobę, 7 dni w tygodniu, jako część mojego własnego (i ciągle rozwijanego) rozwiązania inteligentnego domu, wraz z 1-2 komputerami. Ponadto mam kilka eksperymentów / niedokończonych projektów z udziałem ESP.
Tak więc, z mojego niezbyt ograniczonego doświadczenia, oto zalety i wady ESP w porównaniu do Arduino:

++++ wbudowana łączność internetowa!
++ Szybszy zegar i więcej pamięci.
+ Działa na 3V3 (większość, ale nie wszystkie Arduino mają 5 V), więc może bezpośrednio łączyć urządzenia 3v3 (jak większość modułów wyświetlających), bez przełączników poziomów.
+ „Podstawowy” ESP-12E kosztuje około tyle, ile Arduino nano lub pro micro.

- „Podstawowy” ESP-12E ma podziałkę 2,0 mm, a nie 2,54 mm, co sprawia, że ​​praca z nim jest trudna.
- Istnieją wybicia, które ułatwiają prototypowanie, ale zwiększają koszty i zajmują zbyt dużo miejsca na płycie pilśniowej / protoboardzie.
- Najczęstszy breakout - NodeMCU - jest droższy i ma odwzorowane szpilki, poważna irytacja, chyba że programujesz go w Lua, co jest odpowiednie tylko dla bardzo prostych projektów. IMO powinien być używany tylko do prototypowania.
- Działają na 3v3, co utrudnia interfejs modułów 5V, w pełni włącza większość tranzystorów MOSFET itp.
- Są wyjątkowo wybredne w kwestii zasilania.
- Pobierają znacznie więcej mocy niż Arduino, gdy nie nadają i znacznie więcej podczas nadawania.
- Są prawie zawsze gorsze w przypadku projektów zasilanych bateryjnie - potrzebujesz regulatora 3v3 (który ma prąd spoczynkowy), musisz dużo spać (i potrzebujesz na to GPIO16), a na koniec dnia arduino + niski - radio z napędem wykona tę samą pracę i będzie działać znacznie dłużej na baterii.
- Mają mniej styków GPIO, a niektóre z nich muszą mieć ustawione napięcia podczas uruchamiania (GPIO0 - wysoki, GPIO2 - wysoki lub zmienny, GPIO15 - niski), a także „poruszają” niektóre ze swoich styków IO podczas uruchamiania, często uniemożliwiając ich użycie wiele urządzeń.
- Mają tylko jeden ADC i według mojej wiedzy jest wolniejszy niż już wolne ADC Arduino, a ponadto możesz go używać tylko z 0-1.1 V (wewnętrzne odniesienie).
- Wiele bibliotek Arduino działa od razu po instalacji lub jest już przeniesionych, ale wiele nie. Musisz albo sam je przenieść, albo poczekać, aż ktoś to zrobi. Ogólnie rzecz biorąc, społeczność Arduino jest znacznie większa i bardziej dojrzała, więc większość samouczków, bibliotek itp. Jest dostępna dla Arduino.

To powiedziawszy, ESP8266 jest nadal świetny i niezwykle użyteczny. Nawet Lua jest przydatna do szybkich małych projektów. W większości przypadków, gdy wymagana jest łączność z Internetem, wydają się być najlepszym rozwiązaniem. W wielu innych przypadkach nie ma znaczenia, czy użyjesz ESP, czy Arduino. A czasem Arduino (lub mały ATTiny85) jest lepszym wyborem.
Jak zawsze „właściwym narzędziem do pracy” jest droga.
Lub kombinacja narzędzi.


2
Zdecydowanie nie zgadzam się, że „po prostu niewłaściwe” jest używanie ESP jako dodatkowego urządzenia do Arduino z interfejsem UART. Sam podajesz powody - jeśli chcesz używać bibliotek, które nie są jeszcze przeniesione do ESP, dlaczego nie masz Arduino jako podstawowego urządzenia i używać ESP do dobrego wykonania jednego zadania? Lub jeśli jesteś bardziej zaznajomiony z 8-bitowymi urządzeniami AVR i możesz sobie pozwolić na 5 USD za bardzo sprawny dodatek WiFi, dlaczego tego nie zrobić? W inżynierii, wyłączając głupotę, nie ma właściwego lub niewłaściwego sposobu, pod warunkiem, że działa - tylko mniej lub bardziej odpowiedni do konkretnego wyzwania.
Stefan

2
Nie ma nic złego w tym, że arduino (lub attiny) jest połączone z ESP przez UART. To, co wydaje się „złe”, to używanie poleceń AT i analizowanie żądań i odpowiedzi HTML w Arduino itp. Z pewnością działa (zrobiłem to), ale brzmi źle - „logiczny” sposób byłby dla mocniejszego układu ( ESP), aby działać jako master i odciążyć określone zadania do mniej wydajnego układu, a nie na odwrót. W większości przypadków jest to również łatwiejszy sposób - majstrowanie przy analizie poleceń AT na Arduino nie jest ani zabawne, ani wydajne. Tak, musisz zaprogramować oba układy w ten sposób, co jest niewygodne.
Mishony,

1
Być może warto edytować swoją odpowiedź, aby uwzględnić to wyjaśnienie.
stefandz

1
Ponieważ reszta odpowiedzi jest dobra, ale to ostatnie zdanie jest niejasne i mylące. Wyjaśnienie tych, którzy szukają odpowiedzi, pomogłoby tym, którzy nie rozumieją, dlaczego może to być zły pomysł - i odciągnę ich od myśli, że istnieje coś takiego jak „po prostu źle” bez jasnego uzasadnienia. Ale odpowiedź należy do ciebie - oczywiście możesz robić to, co uważasz za stosowne.
stefandz

1
Jeśli naprawdę potrzebujesz Arduino ORAZ ESP (zamiast tylko ESP), możesz nadal korzystać z komunikacji szeregowej, ale na wyższym poziomie - na przykład Arduino wysyła „ESP = 26,5” do ESP, twój kod na ESP rozpoznaje to i wysyła żądanie HTTP do thingspeak.com lub cokolwiek innego. Aby to zadziałało, musisz zaprogramować zarówno Arduino, jak i ESP, co jest nieco niewygodne, ale nie tak naprawdę trudniejsze niż manipulowanie poleceniami AT. W wielu sytuacjach możesz po prostu porzucić Arduino i używać tylko ESP.
Mishony,

1

Tak, jest kilka pinów I / O, więc teoretycznie możesz sterować jedną lub kilkoma diodami LED lub użyć na przykład ekspandera portów I / O (I2C).

I tak, możesz opracować oprogramowanie i pobrać je nawet do tanich modułów. Kąt podobny do Arduino to tylko jeden ze sposobów, aby to zrobić. To nie jest ARM, jak można by uwierzyć. Istnieje jednak zestaw narzędzi GNU dla esp8266 itp. Tak 80 lub 160 MHz, 32-bitowy RISC, trochę flash, trochę RAM.


1

Jeśli możesz go zaprogramować, to oczywiście można bezpośrednio kontrolować swoje światła. Nie ma dużej liczby styków we / wy, jak Arduino, ale dopóki masz wystarczająco dużo do wykonania zadania, z pewnością obniża koszt, rozmiar i wymagania dotyczące zasilania.


1
@Dow możesz znaleźć jeszcze lepszą cenę na eBayu / aliexpress.
Darko,

1
Do mojej aplikacji wystarczy jedno We / Wy, jednak ESP-12 zapewnia kilka We / Wy, 10-bitowy ADC i wiele więcej. Właściwie kupiłem jeden ESP-01 za 1,78 USD (z Aliexpress)! Sprawdź github.com/esp8266/Arduino pod kątem używania ESP w Arduino IDE. potrzebujesz tylko konwertera USB na szeregowy. Lub google NodeMCU, aby uzyskać wszystko w jednym forum.

1

Płyta Arduino Uno i moduł ESP nie są takie same, ale dopóki GPIO ESP8266 zapewnia sprzęt potrzebny do aplikacji, będzie działał.

Jednym z moich problemów jest certyfikacja. Produkt otrzymał kilka certyfikatów, musisz sprawdzić, czy Twoja wersja jest również certyfikowana. Możesz sprawdzić certyfikaty producenta (i trochę dokumentacji) na stronie wyszukiwania FCC sprawdzić , wpisując 2AC7Z jako kod odbiorcy. Tablica, z której korzystasz, może zależeć od nich lub wymagać własnej certyfikacji.

Jak zauważyłeś, można go dodać do narzędzia Arduino jako typ planszy, co znacznie ułatwia hobiestom korzystanie z niego.

Właśnie sprawdziłem granty i wszystkie trzy wymagają od anteny WiFi co najmniej 20 cm wszystkich osób.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.