使用 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 和物联网世界的完美选择,但它确实存在一些限制。首先,您需要一个 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 的项目中为您节省了一个组件),信号强度更好,Wi-Fi 更可靠,并且预加载了最新的固件。

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

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


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

回复 作者:Mace Moneta

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

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

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

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