ESP32

嵌入式

  1. 特定功能:嵌入式是为了完成特定的物理功能,如温度捕捉、机器人。
  2. 特定组合:通过小巧的不可修改的硬件、软件,协同后直接发布。后期,不太好修改硬件或者软件(可以修改,但一般不会主动修改)。
  3. 一次成型:很难进行二次改造。因为组合比较特定,硬件和软件之间的 api 都是私有的,无法迁移。

ESP32

它本身是芯片,台积电加工,40 纳米制程 (中国应该也能造了)。

官方提供了主板,即芯片 + 板 + 辅助硬件,产品名如 ESP32-devkit-6 等。

开发人员可以在主板上进行开发工作。

开发流程:

  1. 部署环境。官方已经支持 mac、linux、window 下的 IDE 开发。
  2. SDK。官方提供完善的 SDK 和 Api。Api 可以控制 LED、摄像头等大量硬件。
  3. 开发 & 测试。通过 IDE 编写完代码,可将生成的 二进制 bin 文件上传到 ESP32 中,并完成运行。
    1. 硬件输出:如果有 LED 等,代码中可以控制针脚,完成高低电平的设定,可以看到效果。
    2. 软件输出:可以在 IDE 中看到 ESP32 print 的 值。

原理:

  1. ESP32 是完全的芯片,无 OS,所以只能无脑的执行指令。因配置较弱,只能执行编译好的非常小巧的二进制 bin 文件。
  2. 在启动后,主动执行 boot 引导的 bin 文件。
  3. 没有很好的内存管理,必要的使用,需要自己进行内存控制。

周边:

  1. 通过 ESPHome,可以不用写代码,仅仅使用别人写好的软件,自己增加一些 yaml 配置,即可编译一个完善的 bin 出来。可以控制家里的 小米扫地机 等。

局限性:

一个 ESP32 或者 主板,只能支持一个 bin 文件的执行。启动后,默认加载指定位置的 bin 文件,且只有 1 个。(相当于 pc,启动后 boot 引导操作系统。这里引导烧录的 bin 文件)

树莓派

性能强劲的计算机,但尺寸小、耗电低,适用于复杂一些的嵌入式场景。