使用 ESP8266 以低于 6 美元的价格为您的微控制器项目启用互联网

535 位读者喜欢这篇文章。
Internet-enable your microcontroller projects for under $6 with ESP8266

 

Billie Grace Ward 在 Flickr 上发布。CC BY 2.0

要开始使用物联网 (IoT),您的设备需要,嗯,互联网连接。基本的 Arduino 微控制器默认情况下不具备互联网连接,因此您要么需要为它们添加以太网、Wi-Fi 扩展板或适配器,要么购买具有内置互联网连接的 Arduino。除了复杂性之外,这两种方法都会增加成本,并消耗已经很宝贵的 Arduino 闪存 RAM 以用于程序空间,这限制了您可以执行的操作。

另一种方法是使用 Raspberry Pi类似的单板计算机,它运行像 Linux 这样的完整操作系统。Raspberry Pi 在 许多物联网用例中是一个可靠的选择,但当您真正想做的只是读取传感器并将读数发送到云端的服务器时,它通常会显得大材小用。Raspberry Pi 不仅可能会提高您项目的 成本、复杂性和功耗,而且它还运行着需要修补的完整操作系统,并且它比简单的微控制器具有更大的攻击面。当涉及到 物联网设备和安全性 时,越简单越好,这样您就可以花更多时间制作,而花更少时间修补您已经制作的东西。

ESP8266 Wi-Fi 芯片在 2014 年上市时,几乎没有英文文档,创客社区对此很感兴趣,但并未完全理解其全部潜力。由于其低成本(2 美元)和一个热爱挑战的充满活力的社区,创客们很快弄清楚了如何使用 ESP8266 为他们的 Arduino 启用 Wi-Fi。随着他们越来越多的协作,他们意识到 ESP8266 可以充当独立的微控制器,无需 Arduino,每隔几个月快速发展一次。社区很快将 ESP8266 支持添加到 Arduino IDE,使 ESP8266 像 Arduino 一样易于编程。作为微控制器的低成本 Wi-Fi 启用器微控制器本身,ESP8266 很快成为业内人士眼中的 地板蜡和甜点配料

ESP8266 到底是什么?ESP8266 是由 乐鑫科技 制造的 32 位 RISC CPU。它的时钟默认以 80MHz 运行,它具有 64KB 的指令 RAM、96KB 的数据 RAM,并支持高达 16MB 的外部闪存。与 Arduino UNO 相比,这些规格令人印象深刻,Arduino UNO 以 16MHz 运行,仅具有 2KB 的 SRAM、32KB 的闪存、1KB 的 EEPROM,而且价格是其几倍。另一个很大的区别是 ESP8266 的工作电压为 3.3 伏,而大多数 Arduino 的工作电压为 5 伏。在将您现有的 Arduino 知识和项目扩展到 ESP8266 时,请记住这种电压差异,以防止 魔术烟雾

尽管芯片是相同的,但许多开源硬件制造商开发了 令人眼花缭乱的模块和板卡阵列,具有独特的功能,因此请明智地选择。最大的区别是暴露的引脚数量、用于程序存储的闪存 RAM 大小以及外形尺寸。

在 2014 年使 ESP8266 声名鹊起的模块是 ESP-01,如下图所示,您可以在其中看到 ESP8266 芯片、闪存 RAM 芯片和内置 Wi-Fi 天线。

Top side of the E-01 module hosting an ESP8266 MCU.

ESP-01 模块的顶面,该模块搭载 ESP8266 Wi-Fi 芯片。此照片根据 CC-BY-SA 4.0 获得许可。

ESP-01 售价 2 美元,仅比您的拇指指甲稍大,似乎是开始 ESP8266 和 IoT 世界的完美选择,但它确实有一些限制。首先,您需要一个 USB 转串口转换器来对其进行编程。其次,您需要一个 3.3 伏的电源来为其供电。它也不方便面包板,因此您需要使用跳线或适配器。最后,仅暴露了两个 GPIO 引脚,这使得该设备很有用,但不如拥有更多可用引脚的 Arduino 那样有用。总的来说,ESP-01 是一款非常紧凑的设备,适用于成品项目,但对于入门和原型设计,有更好的板卡。

对于入门和原型设计,我推荐 NodeMCUWeMos D1 系列。这些低于 6 美元的设备通过提供内置 USB 转串口连接、(大部分)面包板友好性以及暴露大部分(如果不是全部)可用的 ESP8266 GPIO 引脚来弥补 ESP-01 的局限性。

NodeMCU 最初引人注目是因为它配备了专门的固件,使您可以使用 Lua 脚本语言对其进行编程。对于像我这样的铁杆 Arduino 爱好者,您也可以使用 Arduino IDE 及其类似 C 语言的编程语言。在(大部分)面包板友好性方面,NodeMCU 有 几个版本,外形尺寸略有不同。就个人而言,我喜欢 NodeMCU v2,因为它足够窄,可以安装在面包板中,您可以在每侧使用一排面包板引脚。v1 和 v3 版本更宽,NodeMCU 需要并排跨越两个面包板。判断 NodeMCU 是否为 v2 的简单方法是确认 USB 转串口芯片是方形的 CP2102(如下图所示),而较宽的版本通常使用矩形的 CH340G。

NodeMCU development board

NodeMCU 开发板,它基于 ESP8266 Wi-Fi 芯片。此照片根据 CC-BY-SA 4.0 获得许可。

WeMos 也生产了几款基于 ESP8266 的板卡。D1 复制了 Arduino Uno 的外形尺寸,这使您可以重复使用许多您已有的 Arduino 扩展板。D1 miniD1 mini pro 与 NodeMCU 一样方便面包板,但两者都比 NodeMCU 更小。更紧凑的尺寸暴露的 GPIO 引脚比 NodeMCU 少,但这些型号本身就配备了丰富的 扩展板

您可以使用 ESP8266 做什么?简而言之,很多。您可以将传感器连接到它,并将数据 在 ESP8266 本身运行的 Web 服务器上呈现,或者将数据 记录在云端记录到 MQTT 消息代理。反过来,您可以将显示器连接到 ESP8266 以跟踪 天气飞机 或您想要的任何其他东西。其他示例包括 使用 Amazon Alexa 进行家庭自动化广播到您的电视。有关更多想法,请查看 HackadayYouTube

总的来说,我发现 ESP8266 是我的创客工具包的完美补充,与我的 Raspberry Pi 和 Arduino 并驾齐驱。鉴于其低成本和充满活力的用户社区,您将每天看到新的和令人兴奋的用例出现。

您是否尝试过 ESP8266?我很乐意在下面的评论中听到您的体验。

标签
User profile image.
David Egts | 红帽北美公共部门首席技术专家。鼓手、摩托车骑手、计算机极客、丈夫、父亲和教义问答教师。在 Twitter 上关注我 @davidegts,并查看我共同主持的播客!

9 条评论

我使用过 NodeMCU V1 和原始 ESP-01。我将 ESP-01 与 Maple Mini 克隆版一起使用,因为 Maple 克隆版具有多个 3.3V 串口,并且与 ESP-01 接口良好。请注意,Maple Mini (STM32) 和 ESP8266 都非常容易集成到最新的 Arduino IDE 中,因此您可以在 Linux、Windows 或 Mac 上为它们开发,并编写 Arduino 到 Maple 到 ESP8266 的代码。

我期待 NodeMCU V2,因为原始 NodeMCU 很难与面包板一起使用,因为它与面包板的整个宽度相同。我有几个 V1,它们是一个挑战。

此外,ESP8266 没有与 Arduino 相同数量的 I/O,并且 A/D 仅限于一个,输入端最大电压为 1V。有一些限制,但它非常便宜,速度很快(可以将时钟增加到 160MHz),并且包含 wifi。

您可能想在 ESP8266 上尝试的一个很棒的新项目是 MicroPython——在 ESP8266 上原生运行 Python(没有操作系统)。您可以直接在 ESP8266 上编写和运行简单的 Python 3 脚本(在 Linux 上编写和测试,复制到 ESP8266 并在那里运行)。
MicroPython 将不断发展,并且非常值得关注。

感谢您的反馈 Wade!一篇关于 MicroPython 本身的文章将很有吸引力!

与 Lua 脚本相比,您对此有何看法?

回复 ,作者:Wade Hampton (未验证)

我可以帮助撰写关于 MicroPython 的文章。我还没有使用过 Lua 环境。

回复 ,作者:DaveEgts

我现在已经在几个项目中使用过 ESP8266。对于刚入门的人,我推荐较新的 ESP-01S 版本。不同之处在于闪存为 1MB 而不是 512KB,蓝色 LED 连接到 GPIO2(在许多需要 LED 的项目中为您节省了一个组件),信号强度更好,WiFi 更可靠,并且预加载了最新的固件。

在使用过几个 SBC(Raspberry Pi 1+2、Odroid C1、Linksprite PCDuino3 Nano)之后,我冒险进入了 ESP8266。我印象非常深刻,不仅是功能和易用性,还有您不需要实现的功能。例如,一旦您的代码连接到 WiFi,ESP 将在您无需任何额外代码的情况下,在连接丢失时重新建立连接。

这是一个很棒的设备。唯一的缺点是我现在想在所有东西上都安装 WiFi 接口。如果有一个物联网(实际上在我的情况下是局域网)奖项,我提名 ESP8266。


我正在寻找 esp 以在多输出操作中使用它,通过继电器控制整个电路板,并且我不想使用大量硬件,是否可以将 esp 直接连接到继电器。使其具有成本效益
谢谢

回复 ,作者:Mace Moneta

我是微控制器新手,感谢您的分享。

我也为 MicroPython 投一票 - 它很棒。

另一个值得考虑的板卡,虽然成本更高,是 Adafruit Feather HUZZAH with ESP8266 WiFi (https://www.adafruit.com/product/2821)。它的成本更高,但在板卡上有一些额外的功能。此外,它还有一些不错的附加板卡,您可以堆叠起来,称为 Feathers,例如 GPS、SD 卡、蓝牙等

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.