ESP8266可以取代Arduino吗?


15

我是一名业余爱好者,到目前为止已经将Arduino用于简单项目。现在,我想建立一个涉及可寻址LED的项目,我想在Arduino上为LED编写几个程序,然后在手机上选择要运行的程序。

我发现ESP8266是与我的Arduino交流的一种便宜的解决方案。在网络上搜索以了解如何使其工作,我发现它具有自己的MCU,可以在Arduino IDE中编写和上传我的代码!只需20美元的内存,80MHz的CPU和4MB的闪存,价格为3美元(不过我不确定这些数字,但即使是四分之一也很棒)!如果我只需要几个GPIO,为什么要使用Arduino UNO?这个模块可靠吗?


不,我不会在这里查询ESP8266的问题。此外,从标题来看,这显然是一个基于意见的问题,似乎与电子设备的使用有关,而不是其设计。不仅如此,而且为了消除任何疑问,您还提到“ arduino”。

1
内置的ESP8266处理器能够运行用户程序。使用的语言取决于您可以访问的内容。LOA是常用的。
罗素McMahon

10
@OlinLathrop如果人们使用诸如“ LM324”,“ BC337”,1N4148之类的术语,则通常认为它们已经众所周知,因此不需要分别包含运放,双极低功率NPN晶体管和硅小信号二极管。| ESP8266系列是一系列模块,在单个IC中具有WiFi +处理器和用于程序的配套存储器。这些都是非常众所周知的,如果您未遇到这些知识,则非常值得了解。虽然还没有像LM324那样普遍存在,但它们很可能是总体上最常见的“ IOT” WiFi接口。
罗素·麦克马洪

3
我真的认为这个问题不应该被否定
玛拉基书

3
@ linhartr22从报价www.lua.org/about.html:葡萄牙语“的Lua”(发音LOO啊)的意思是“月亮”。因此,它既不是首字母缩写词也不是缩写词,而是名词。更具体地说,“ Lua”是一个名称,地球月球的名称和语言的名称。像大多数名称一样,它应该以小写字母开头,即“ Lua”。请不要将其写为“ LUA”,这既丑陋又令人困惑,因为那样一来,它便成为对不同人具有不同含义的首字母缩写。所以,请写正确的“ Lua”!
消失了

Answers:


11

好吧,问题“它可以代替Arduino吗?”的答案-是的,在许多情况下可以。
是否会成为“ Arduino杀手”-我对此表示怀疑。
我的家庭中有多个arduinos和ESP,办公室中有1个ESP,它们是我自制的(并且一直在开发中)智能家居解决方案的一部分,以24/7的速度运行,以及1-2台PC。最重要的是,我有几个涉及ESP的实验/未完成的项目。
因此,从我不那么有限的经验来看,这是ESP与Arduino相比的优缺点:

内置的++++ Internet连接!
++更快的时钟和更多的内存。
+在3V3上运行(大多数,但不是所有的Arduino都是5V),因此它可以直接连接3v3设备(如大多数显示模块),而无需电平转换器。
+“基本” ESP-12E的价格与Arduino nano或pro micro差不多。

-“基本” ESP-12E的间距为2.0毫米,而不是2.54毫米,这使它难以承受。
-有些突破使原型制作更容易,但它们增加了成本,并在面包板/原型板上占用了太多空间。
-除非您在Lua中进行编程,否则最常见的突破-NodeMCU-价格更高,并且引脚被重新映射,非常烦人,这仅适用于非常简单的项目。IMO,它应仅用于原型制作。
-它们以3v3电压运行,因此很难连接5V模块,完全导通大多数MOSFET等
。-它们在电源方面非常挑剔。
-当不传输时,它们比Arduino消耗更多的功率,而在传输时则消耗更多功率。
-对于电池供电的项目,它们几乎总是更糟-您需要3v3稳压器(具有静态电流),您需要睡很多时间(并且需要为此断开GPIO16),并且一天结束时需要增加arduino +功率无线电将完成相同的工作,同时电池续航时间将大大延长。
-它们具有较少的GPIO引脚,并且其中一些必须在启动时设置电压(GPIO0-高,GPIO2-高或浮动,GPIO15-低),而且它们在启动时“摆动”一些IO引脚,通常使它们无法用于许多设备。
-它们只有一个ADC,据我所知,它比已经很慢的Arduino ADC慢,而且您只能在0-1.1V(内部参考)上使用它。
-许多Arduino库开箱即用或已经移植,但许多库没有。您要么自己移植它们,要么等待某人这样做。总的来说,Arduino社区变得更大,更成熟,因此为Arduino提供了大多数“菜鸟友好”的教程,库等。

话虽这么说,ESP8266仍然是伟大的和非常有用的。甚至Lua对于快速的小型项目也很有用。在大多数需要Internet连接的情况下,它们似乎是最好的解决方案。在许多其他情况下,实际上使用ESP还是Arduino都没有关系。有时Arduino(或小的ATTiny85)是更好的选择。
一如既往,“正确的工作工具”是必经之路。
或组合工具。


2
强烈不同意将ESP用作具有UART接口的Arduino的辅助设备是“错误的”。您自己指出了原因-如果要使用尚未移植到ESP的库,为什么不将Arduino作为主要设备并使用ESP做好一项工作?或者,如果您更熟悉8位AVR设备,并且能够以5美元的价格购买功能强大的WiFi插件,为什么不这样做呢?在工程学中,除了愚蠢之外,没有对与错的方法,只要它可行-或多或少都适合于特定的挑战。
stefandz

2
通过UART与ESP连接的arduino(或attiny)没有错。感觉“错误”的是使用AT命令并让Arduino解析HTML请求和响应等。它确实可以工作(我已经做到了),但听起来是错误的-“逻辑”方式适用于功能更强大的芯片( ESP)充当主服务器,并将特定任务转移到功能较弱的芯片上,而不是相反。在大多数情况下,这也是更简单的方法-在Arduino上摆弄AT命令解析既不有趣也不高效。是的,您必须以这种方式对两个芯片进行编程,这很不方便。
Mishony

1
可能值得编辑您的答案以包括此说明。
stefandz

1
因为其余答案是好的,但是最后一句话不清楚,并且会误导恕我直言。澄清那些寻求答案的人将有助于那些不了解为什么这可能是个坏主意的人-并使他们摆脱没有明确推理的“正当错”之类的想法。但是答案是您的-显然,您可以自由地做自己认为合适的事情。
stefandz

1
如果您确实需要使用Arduino和ESP(而不只是ESP),则仍然可以使用串行通信,但是在更高级别上-例如Arduino向ESP发送“ temp = 26.5”,则您在ESP上的代码识别出该错误,然后将HTTP请求发送到Thingspeak.com或其他任何内容。为此,您必须同时对Arduino和ESP进行编程,这有点不方便,但并不比不熟悉AT命令更难。在许多情况下,您可以简单地放弃Arduino而仅使用ESP。
Mishony

1

是的,有几个I / O引脚,因此理论上您可以驱动一个或几个LED或使用I / O端口扩展器(I2C)。

是的,您可以开发软件并将其下载到低成本模块中。类似于Arduino的角度只是实现此目的的一种方法。它不是ARM,因为可能会让人相信。但是有一个用于esp8266的gnu工具链,等等。是80或160MHz,32位RISC,一些闪存,一些ram。


1

如果可以对其进行编程,那么直接控制灯光当然是可行的。它没有Arduino那样的大量I / O引脚,但是只要您有足够的工作要做,它肯定会降低成本,尺寸和电源要求。


1
@Dow您可以在ebay / aliexpress上找到甚至更好的价格。
达科

1
对于我的应用程序来说,一个IO就足够了,但是ESP-12提供了几个IO,10位ADC等等。其实我以1.78 USD的价格从Aliexpress买了一台ESP-01!检查github.com/esp8266/Arduino以在Arduino IDE中使用ESP。您只需要一个USB到串行转换器。或通过Google NodeMCU将其全部集成到一个板上。

1

Arduino Uno开发板和ESP模块并不相同,但是只要ESP8266的GPIO提供您的应用程序所需的硬件,它就能正常工作。

我关注的问题之一是认证。该产品已获得多项认证,您需要检查您的版本是否也通过了认证。您可以通过输入2AC7Z作为受让人代码,从FCC搜索页面中查找制造商的认证(和一些文档)。您使用的板可能取决于这些板,或者需要他们自己的认证。

正如您所注意到的,它可以作为板子类型添加到Arduino工具中,这使最熟悉的人更容易使用它。

我刚刚检查了补助金,所有这三个补助金都要求WiFi天线距离所有人至少20厘米。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.