使用 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 在许多 IoT 用例中是一个 可靠的选择,但当您真正只想读取传感器并将读数发送到云中的服务器时,它通常显得有些过头。Raspberry Pi 不仅可能增加您项目的 成本、复杂性和功耗,而且它还运行着需要修补的完整操作系统,并且比简单的微控制器具有更大的攻击面。当涉及到 IoT 设备和安全 时,越简单越好,这样您就可以花更多时间进行创造,而减少花在修补您已经创造的东西上的时间。

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 的外部闪存。与以 16MHz 运行、只有 2KB SRAM、32KB 闪存、1KB EEPROM 且价格贵几倍的 Arduino UNO 相比,这些规格令人印象深刻。另一个很大的区别是 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 小。更紧凑的尺寸比 NodeMCU 暴露的 GPIO 引脚更少,但这些型号本身就配备了丰富的 扩展板

您可以使用 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 的 I/O 数量与 Arduino 不同,并且 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 接口。如果有一个 IoT(实际上是我的局域网)奖项,我提名 ESP8266。


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

回复 ,作者:Mace Moneta

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

我也为 MicroPython 投一票 - 它太棒了。

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

Creative Commons 许可协议本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.