要开始使用物联网 (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 天线。
ESP-01 模块的顶面,搭载 ESP8266 Wi-Fi 芯片。此照片根据 CC-BY-SA 4.0 许可。
ESP-01 售价 2 美元,仅比您的拇指指甲稍大,似乎是开始 ESP8266 和 IoT 世界的完美选择,但它确实存在一些限制。首先,您需要一个 USB 转串口转换器来对其进行编程。其次,您需要一个 3.3 伏电源来为其供电。它也不适合面包板,因此您需要使用跳线或适配器。最后,仅暴露了两个 GPIO 引脚,这使得该设备有用,但不如具有更多可用引脚的 Arduino 有用。总的来说,ESP-01 是一款非常紧凑的设备,适用于成品项目,但对于入门和原型设计来说,有更好的板卡。
对于入门和原型设计,我推荐 NodeMCU 或 WeMos 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 开发板,它基于 ESP8266 Wi-Fi 芯片。此照片根据 CC-BY-SA 4.0 许可。
WeMos 也制造了几款基于 ESP8266 的板卡。D1 复制了 Arduino Uno 的外形尺寸,这使您可以重复使用许多您已经拥有的 Arduino 扩展板。D1 mini 和 D1 mini pro 像 NodeMCU 一样是面包板友好型的,但两者都比 NodeMCU 小。更紧凑的尺寸比 NodeMCU 暴露的 GPIO 引脚更少,但这些型号本身就配备了丰富的 扩展板。
您可以使用 ESP8266 做什么?简而言之,很多。您可以将传感器连接到它,并在 ESP8266 本身运行的 Web 服务器 上显示数据,或者将数据 记录在云端 或 MQTT 消息代理 中。反过来,您可以将显示器连接到 ESP8266 以跟踪 天气、飞机 或您想要的任何其他东西。其他示例包括使用 Amazon Alexa 进行家庭自动化 和 广播到您的电视。有关更多想法,请查看 Hackaday 和 YouTube。
总的来说,我发现 ESP8266 是我的创客工具包的完美补充,与我的 Raspberry Pi 和 Arduino 并驾齐驱。鉴于其低廉的成本和活跃的用户社区,您每天都会看到新的和令人兴奋的用例出现。
您是否尝试过 ESP8266?我很想在下面的评论中听到您的体验。
9 条评论