前文《物联网技术:开源物联网硬件项目 》中列举了一些物联网领域比较有影响力的开源硬件项目。很多朋友在留言中提到了国产的ESP系列(ESP8266、ESP32)的芯片及模组,也是在物联网项目中应用非常多的,本文就来介绍一下ESP系列。
ESP系列芯片是由国内的公司乐鑫科技(expressif)设计研发的,主要包括ESP8266芯片和ESP32系列芯片(ESP32、ESP32-C、ESP32-S)。此外乐鑫还提供了基于ESP芯片的模组,部分芯片也提供给其他模组生产厂商进行模组生产,比如安可信等。
乐鑫科技是一家专业的集成电路设计企业,采用Fabless(无晶圆厂)经营模式,主要主要从事物联网WiFi MCU通信芯片及其模组的研发、设计及销售。目前乐鑫科技已经在科创板上市,股东包括小米集团和海尔智家。
ESP8266
ESP8266芯片是32位MCU的Wi-Fi芯片,支持2.4GHzWi-Fi频段。主要特性包括:
- 单核 CPU 时钟频率高达 160 MHz
- +19.5 dBm 天线端输出功率,确保良好的覆盖范围
- 睡眠电流小于 20 μA,适用于电池供电的可穿戴电子设备
- 外设包括 UART,GPIO,I2S,I2C,SDIO,PWM,ADC 和 SPI
乐鑫以及其他模组厂商基于ESP8266开发了一系列WiFi模组,通常是把PCB天线集成在模组的电路板上,非常便于开发者用在自己设计的电路上,或者与其他开发板配合使用。
ESP32系列
ESP32被认为是ESP8266的继任者,两款芯片都是32位处理器。ESP32是双核CPU,而ESP8266是单核处理器。ESP32不仅增加了CPU内核,还支持蓝牙4.2/蓝牙低功耗(BLE)。开发者不仅可以用ESP32芯片开发WiFi应用,还可以开发蓝牙应用,基本上可以覆盖大部分物联网设备的无线通信需求。
总的来说,ESP32在以下几个方面具有优势:
- 功耗方面:ESP32的工作电流是5μA,相比ESP8266的20μA功耗更低。
- 时钟速度方面:ESP32的时钟速度比ESP8266快了两倍。
- 接口扩展方面:ESP32的GPIO引脚更多了,可以支持更多的连接。
ESP32芯片不仅有模组,也有开发板。乐鑫官方的ESP32-DevKitC 开发板既支持乐鑫的开源物联网开发框架 ESP-IDF,也支持 FreeRTOS。用户通过 FreeRTOS 可以轻松连接 AWS IoT、AWS Greengrass 及其他的 AWS 服务。前文《物联网关键技术:AWS物联网 》中曾经介绍过AWS的物联网服务。
ESP生态
因为ESP8266和ESP32系列产品的兼容性好,已经形成了自己的生态,可以支持多种开发方式。
首先是可以使用Arduino IDE编程环境对ESP8266开发板和ESP32开发板进行编程。使用Arduino IDE在ESP开发板上运行项目,网上有非常多的指南操作。
另一种方法对ESP32和ESP8266板进行编程的流行方法是使用MicroPython固件。MicroPython是针对微控制器和嵌入式系统的Python 3的重新实现。
此外还可以用Lua脚本来编程。NodeMCU是一个开源的物联网平台,使用Lua脚本语言编程。该平台基于eLua 开源项目,底层使用ESP8266 SDK。
我会持续更新关于物联网、云原生以及数字科技方面的文章,用简单的语言描述复杂的技术,也会偶尔发表一下对IT产业的看法,欢迎大家关注,谢谢。