Arduino 可以安全地连接到 MQTT 吗?

Can Arduino connect securely to MQTT?

我有一个带有以太网扩展板的 Arduino Uno Rev 3。我可以使用它连接到安全的 MQTT 代理(使用端口 8883)吗?

我使用什么库?

Arduino Uno 只有 2kB 的 RAM 和 32kB 的程序内存——这是一个非常受限的设备,我认为它不足以实现任何类型的 SSL/TLS。

例如,WolfSSL 是为嵌入式设备设计的,但它声明它使用 20-100kB kB 的程序内存和 1-36kB 的 RAM:

https://www.wolfssl.com/wolfSSL/benchmarks-wolfssl.html

所以我怀疑唯一的选择是将加密卸载到另一台设备。

  1. 您可以在您的本地网络 (Raspberry Pi?) 上有一个 MQTT 代理,您的 Arduino(s) 通过端口 1883 连接到该代理,然后通过互联网通过端口 8883 安全地连接它们。
  2. 您可以使用ESP8266同时进行网络连接和加密。例如,ESP8266 Arduino 扩展板可用。
  3. 可能有一些其他类型的 IC,您可以将 TLS 加密卸载到,但仍然有 Arduino Uno 进行网络连接 - 但我不确定是否真的存在这样的东西。