L'ESP8266 peut-il remplacer Arduino?

15

Je suis un amateur et j'ai utilisé Arduino jusqu'à présent pour des projets simples. Maintenant, je veux construire un projet impliquant des LED adressables, je veux écrire plusieurs programmes sur l'Arduino pour les LED et sur mon téléphone, je sélectionne ceux à exécuter.

J'ai trouvé ESP8266 comme une bonne solution bon marché pour parler à mon Arduino. En recherchant sur le Web pour apprendre à le faire fonctionner, j'ai trouvé qu'il avait son propre processeur et que je pouvais écrire et télécharger mon code dans Arduino IDE! 20 Ko de RAM, processeur 80 MHz et 4 Mo de flash pour 3 USD (cependant je ne suis pas sûr de ces chiffres mais même un quart est génial) !! Si je n'ai besoin que de quelques GPIO, pourquoi utiliser un Arduino UNO? Ce module est-il fiable?

ahmadx87
la source
Non, je ne vais pas chercher ce qu'est un ESP8266 pour répondre à une question ici. En outre, d'après le titre, il s'agit clairement d'une question d'opinion, et il semble qu'il s'agisse de l'utilisation d'un appareil électronique plutôt que de sa conception. Non seulement cela, mais pour effacer tout doute, vous mentionnez "arduino".
1
Le processeur ESP8266 interne est capable d'exécuter des programmes utilisateur. La langue utilisée dépend de ce à quoi vous avez accès. LOA est couramment utilisé.
Russell McMahon
10
@OlinLathrop Si les gens utilisent des termes tels que "LM324", "BC337", 1N4148, il est généralement admis qu'ils sont suffisamment connus pour comprendre que l'inclusion d'opamp, d'un transistor bipolaire NPN de faible puissance et d'une petite diode de signal en silicium n'est pas nécessaire pour comprendre. | La famille ESP8266 est une gamme de modules avec processeur WiFi + dans un seul CI et une mémoire associée pour le programme. Ceux-ci sont très bien connus et quelque chose de très intéressant à savoir si vous ne les avez pas rencontrés. Bien qu'ils ne soient pas (encore) aussi omniprésents que par exemple un LM324, ils sont probablement l'interface Wi-Fi "IOT" la plus courante dans l'ensemble.
Russell McMahon
3
Je ne pense vraiment pas que cette question mérite un avis négatif
Malachi
3
@ linhartr22 Citant de www.lua.org/about.html : "Lua" (prononcé LOO-ah) signifie "Lune" en portugais. En tant que tel, ce n'est ni un acronyme ni une abréviation, mais un substantif. Plus précisément, "Lua" est un nom, le nom de la lune terrestre et le nom de la langue. Comme la plupart des noms, il doit être écrit en minuscules avec un capital initial, c'est-à-dire "Lua". Veuillez ne pas l'écrire comme "LUA", ce qui est à la fois laid et déroutant, car il devient alors un acronyme avec des significations différentes pour différentes personnes. Alors, s'il vous plaît, écrivez "Lua" à droite!
parti le

Réponses:

11

Eh bien, la réponse à la question "Peut-il remplacer Arduino" - oui, dans de nombreux cas, c'est possible.
Que ce soit "le tueur Arduino" - j'en doute.
Il y a plusieurs Arduinos et ESP dans ma maison et 1 ESP dans mon bureau fonctionnant 24h / 24 et 7j / 7 dans le cadre de ma solution de maison intelligente maison (et constamment en développement), ainsi que 1 à 2 PC. En plus de cela, j'ai plusieurs expériences / projets inachevés impliquant l'ESP.
Donc, d'après mon expérience pas si limitée, voici les avantages et les inconvénients d'ESP par rapport à Arduino:

++++ connectivité Internet intégrée!
++ Horloge plus rapide et plus de mémoire.
+ Fonctionne sur 3V3 (la plupart, mais pas tous les Arduinos sont 5V) afin qu'il puisse interfacer les appareils 3v3 (comme la plupart des modules d'affichage) directement, sans décalage de niveau.
+ L'ESP-12E "de base" coûte à peu près autant qu'un Arduino nano ou pro micro.

- L'ESP-12E "de base" a un pas de 2,0 mm et non de 2,54 mm, ce qui rend la tâche difficile à utiliser.
- Il existe des cassures qui facilitent le prototypage, mais elles augmentent le coût et prennent trop de place sur une planche à pain / protoboard.
- L'évasion la plus courante - NodeMCU - est plus chère et a des broches remappées, une gêne majeure, sauf si vous la programmez en Lua, ce qui n'est acceptable que pour des projets très simples. OMI, il doit être utilisé uniquement pour le prototypage.
- Ils fonctionnent sur 3v3, ce qui rend difficile l'interface des modules 5V, allume complètement la plupart des MOSFET, etc.
- Ils sont extrêmement pointilleux sur leur alimentation.
- Ils consomment beaucoup plus d'énergie que l'Arduino lorsqu'ils ne transmettent pas et beaucoup plus lorsqu'ils transmettent.
- Ils sont presque toujours pires pour les projets alimentés par batterie - vous avez besoin d'un régulateur 3v3 (qui a un courant de repos), vous devez beaucoup dormir (et vous avez besoin de GPIO16 pour cela) et à la fin de la journée un arduino + un faible -la radio de puissance fera le même travail tout en restant beaucoup plus longtemps sur batterie.
- Ils ont moins de broches GPIO et certains d'entre eux doivent avoir défini des tensions au démarrage (GPIO0 - élevé, GPIO2 - élevé ou flottant, GPIO15 - faible), ils "agitent" également certaines de leurs broches IO au démarrage, ce qui les rend souvent inutilisables pour de nombreux appareils.
- Ils n'ont qu'un seul ADC, et à ma connaissance, il est plus lent que les ADC Arduino déjà lents, en plus vous ne pouvez l'utiliser qu'avec 0-1.1V (référence interne).
- De nombreuses bibliothèques Arduino fonctionnent immédiatement ou sont déjà portées, mais beaucoup ne le font pas. Vous devez soit les porter vous-même, soit attendre que quelqu'un le fasse. En général, la communauté Arduino est beaucoup plus grande et plus mature, donc la plupart des didacticiels, bibliothèques, etc., "noob-friendly" sont fournis pour l'Arduino.

Cela dit, l'ESP8266 est toujours génial et extrêmement utile. Même Lua est utile pour les petits projets rapides. Dans la plupart des cas où une connexion Internet est requise, ils semblent être la meilleure solution. Dans de nombreux autres cas, que vous utilisiez ESP ou Arduino n'a pas d'importance. Et parfois, l'Arduino (ou le petit ATTiny85) est le meilleur choix.
Comme toujours, «le bon outil pour le travail» est la voie à suivre.
Ou une combinaison d'outils.

Mishony
la source
2
Pas du tout d'accord qu'il est "tout simplement faux" d'utiliser un ESP comme périphérique secondaire à un Arduino avec une interface UART. Vous en expliquez vous-même les raisons - si vous souhaitez utiliser des bibliothèques qui ne sont pas encore portées sur l'ESP, pourquoi ne pas avoir l'Arduino comme périphérique principal et utiliser l'ESP pour bien faire un travail? Ou si vous êtes plus familier avec les appareils AVR 8 bits et que vous pouvez vous permettre 5 $ pour un addon WiFi très performant, pourquoi ne pas le faire? En ingénierie, à l'exclusion de la stupidité, il n'y a pas de bonne ou de mauvaise façon, à condition que cela fonctionne - seulement plus ou moins approprié à un défi particulier.
stefandz
2
Il n'y a rien de mal à avoir un arduino (ou attiny) connecté à ESP via UART. Ce qui semble "mal", c'est d'utiliser les commandes AT et d'avoir les requêtes et réponses HTML d'analyse Arduino, etc. Cela fonctionne bien (je l'ai fait), mais sonne mal - la manière "logique" serait pour la puce la plus puissante (la ESP) pour agir en tant que maître et décharger des tâches spécifiques sur la puce la moins puissante, et non l'inverse. La plupart du temps, c'est aussi le moyen le plus simple - manipuler les commandes AT en analysant l'Arduino n'est ni amusant ni efficace. Oui, vous devez programmer les deux puces de cette façon, ce qui n'est pas pratique.
Mishony
1
Il pourrait être utile de modifier votre réponse pour inclure cette clarification.
stefandz
1
Parce que le reste de la réponse est bonne, mais cette dernière phrase n'est pas claire et trompeuse à mon humble avis. Clarifier pour ceux qui cherchent des réponses aiderait ceux qui ne comprennent pas pourquoi cela pourrait être une mauvaise idée - et les éloignerait de l'idée qu'il y a une telle chose comme "juste mal" sans raisonnement clair. Mais la réponse est la vôtre - vous êtes évidemment libre de faire comme bon vous semble.
stefandz
1
Si vous avez vraiment besoin d'utiliser un Arduino ET un ESP (au lieu de simplement l'ESP), vous pouvez toujours utiliser la communication série, mais à un niveau supérieur - par exemple, Arduino envoie "temp = 26,5" à l'ESP, votre code sur l'ESP reconnaît cela et envoie une demande HTTP à thingspeak.com ou autre. Pour que cela fonctionne, vous devez programmer à la fois l'Arduino et l'ESP, ce qui est un peu gênant, mais pas vraiment plus difficile que de jouer avec les commandes AT. Dans de nombreuses situations, vous pouvez simplement abandonner l'Arduino et utiliser uniquement l'ESP.
Mishony
1

Oui, il y a quelques broches d'E / S, donc en théorie, vous pouvez piloter une ou quelques LED ou utiliser un extenseur de port d'E / S (I2C) par exemple.

Et oui, vous pouvez développer des logiciels et les télécharger même dans les modules à faible coût. L'angle de type Arduino n'est qu'une façon de le faire. Ce n'est pas un ARM comme on pourrait le croire. Mais il existe une chaîne d'outils GNU pour le esp8266, etc. Oui 80 ou 160 MHz, RISC 32 bits, certains flash, certains ram.

old_timer
la source
1

Si vous pouvez le programmer, alors bien sûr, il est viable de contrôler directement vos lumières. Il n'a pas un grand nombre de broches d'E / S comme l'Arduino, mais tant que vous en avez assez pour faire le travail, il diminue certainement le coût, la taille et les besoins en énergie.


la source
1
@Dow, vous pouvez trouver un prix encore meilleur sur ebay / aliexpress.
Darko
1
Pour mon application, un E / S suffit, mais ESP-12 fournit plusieurs E / S, ADC 10 bits et bien plus encore. En fait, j'ai acheté un ESP-01 pour 1,78 USD (d'Aliexpress)! Consultez github.com/esp8266/Arduino pour utiliser votre ESP dans Arduino IDE. vous avez juste besoin d'un convertisseur USB vers série. Ou google NodeMCU pour tout regrouper sur une seule carte.
1

La carte Arduino Uno et le module ESP ne sont pas les mêmes, mais tant que le GPIO de l'ESP8266 fournit le matériel dont vous avez besoin pour votre application, cela fonctionnera.

L'une de mes préoccupations est la certification. Le produit a reçu plusieurs certifications, vous devez vérifier si votre version est également certifiée. Vous pouvez rechercher les certifications du fabricant (et de la documentation) à partir de la page de recherche FCC en entrant 2AC7Z comme code de bénéficiaire. La carte que vous utilisez peut en dépendre ou nécessiter sa propre certification.

Comme vous l'avez remarqué, il peut être ajouté en tant que type de carte à l'outil Arduino, ce qui facilite beaucoup la tâche des hobiests.

Je viens de vérifier les subventions et toutes les trois exigent que l'antenne WiFi soit maintenue à au moins 20 cm de toutes les personnes.

le_top
la source