带双继电器和 STM8S103 的 ESP8266

物联网 ESP8266 微控制器
2021-06-06 07:17:12

我正在为我的一个项目寻找带有双继电器的 ESP8266 板。是的 Sonoff Dual - 完全满足了我的所有需求,除了焊接和需要更多 GPIO 的部分之外,我希望它们可以访问。

环顾四周,这个产品引起了我的注意。一切看起来都很好,但我突然注意到在 ESP8266 芯片之外还有一个 STM 微处理器。

  1. 我很高兴听到这种系统(双 MCU)的优缺点。

  2. 由于我使用 Arduino IDE 编写自己的代码,因此当 ESP8266 仅提供 wifi 连接时,访问是如何完成的。

3个回答

我成功地在我的项目中使用了这块板tctech.cc的中继板编程非常容易。

以下是如何从 ESP01 模块控制继电器:

使用 UART 115200 bps(某些板可能是 9600)将其发送到 TX 引脚:

  • 继电器 1 开启: 0xA0, 0x01, 0x01, 0xA2
  • 继电器 1 关闭: 0xA0, 0x01, 0x00, 0xA1
  • 继电器 2 开启: 0xA0, 0x02, 0x01, 0xA3
  • 继电器 2 关闭: 0xA0, 0x02, 0x00, 0xA2

(如果您获得 4 个中继版本...)

  • 继电器 3 开启: 0xA0, 0x03, 0x01, 0xA4
  • 继电器 3 关闭: 0xA0, 0x03, 0x00, 0xA3
  • 继电器 4 开启: 0xA0, 0x04, 0x01, 0xA5
  • 继电器 4 关闭: 0xA0, 0x04, 0x00, 0xA4

格式如下:

  1. 第一个字节0xA0
  2. 第二个字节:继电器编号(第一个是0x01
  3. 第三个字节:命令(0x00-off,0x01-on)
  4. 第四个字节:先前字节的总和

您提供的产品链接包含 ESP-01 模块。ESP 或 wifi 模块仅用于通过 wifi 或服务器进行通信,它将通过 UART 将数据发送到 STM8 控制器,进一步的控制将通过 STM8 完成您需要检查 ESP 的 Rx 和 Tx 线-01接STM8的Rx和Tx。如果是,则 STM8 将仅比较接收到的字符串并打开或关闭继电器。

为了在 Arduino 上使用您自己的代码,如前所述,访问将通过 UART 完成

我无法评论模块或使用不同 MCU 的优缺点

我很高兴听到这种系统(双 MCU)的优缺点。

我之前在机器人应用中使用过两台 STM32 MCUS,其中一个 MCU 负责处理 32 个模拟信号,这意味着要实时读取和处理 32 个 ADC 通道。采样率越高越好。另一个 MCU 负责多个 PID 控制器、电池管理、蓝牙连接、控制伺服系统和直流电机。所以优点是:

  • 负载均衡、分离的系统部件,职责明确大量的模拟信号处理与 PID 控制器、电机驱动等没有冲突。它可以在另一个 MCU 上以最高优先级运行,而不会影响系统的其他部分。
  • 增加硬件的复杂性,导致一个降低软件的复杂性(老实说,这也可能是一个骗局,具体取决于应用程序。)

关于有问题的继电器板,我没有看到任何可以证明两个 MCU 合理的要求。仅使用 ESP 就可以实现。

现在说到缺点:

  • 第一个缺点是成本额外的 MCU 及其补充电路(编程接口、电源等)将花费更多。增加的 PCB 尺寸也是如此。
  • 由于继电器板上的 MCU 选择不同,开发过程中引入了更多复杂性,因为 MCU 来自不同的制造商。它们需要不同的工具链、编程工具、SDK 等。(在我的示例中,我们使用了两个 STM32 MCU,所以这不是问题。)

由于我使用 Arduino IDE 编写自己的代码,因此当 ESP8266 仅提供 wifi 连接时,访问是如何完成的。

其他答案很好地总结了 STM8 需要通过 UART 发出的命令,因此您可以在将 STM8 与相同的 UART 命令接口时更改 ESP 上的程序。STM8 将像 GPS 或 GS​​M 模块一样充当外部外围设备。因此,您可以在 ESP 上创建一个 MQTT 客户端,该客户端将订阅某个主题,而不是使用演示应用程序来控制中继。

幸运的是 ESP-01 可以从板上移除,这使得它更容易刷新,如何使用 Arduino UNO 对 ESP8266 (ESP-01) 模块进行编程您不必为 STM8 以及它位于相同的 UART 线路上而烦恼。