【问题标题】:Arduino + esp8266 + mqttArduino + esp8266 + mqtt
【发布时间】:2016-06-05 21:32:34
【问题描述】:

我的智能家居系统有一个mqtt + nodejs 服务器。首先,我试图让我的mqtt + nodejs 服务器上的 LED 闪烁。

我用nodemcu 板做了这个。我为此使用了pubsubclient.h,但我想添加更多传感器和 LED。因此,我决定使用 Arduino mega + esp8266。我想通过 esp8266 连接到我的服务器。问题是我不能将pubsubclient.h 与 Arduino mega + esp8266 一起使用。

然后我开始使用 AT 命令连接到 wifi。现在可以连接wifi了,但是现在不知道怎么用mqtt了。

我找到了一个库espduino,但它需要特殊的连接。

如何在我的项目中使用 AT 命令和 Mqtt?

【问题讨论】:

标签: arduino mqtt esp8266


【解决方案1】:

您可能应该尝试使用多路复用器(例如4051)。您可以将 4 个 IO 端口扩展到 8 个 IO(或 1 个模拟 + 3 个 IO 到 8 个模拟端口)。如果你想要更多的端口,比如4067,那么你可以从 5 个端口中获得 16 个。

esp8266 比普通的 Arduino(带有 ATMEGA328 芯片)强大得多,它也比 ArduinoMega 便宜,所以尽量把它作为你的微控制器(如果你已经在使用它)。

【讨论】:

    【解决方案2】:

    您需要指定 WiFi 或以太网客户端实例以通过 MQTT 库建立与代理的连接。因此,在进行串行通信时,您需要有一个串行 Arduino 库,它可以与 ESP 一起使用并实现协议头和协议栈。

    您可以使用WiFiEsp library 创建 WiFi 的客户端实例。因此,您将能够将您的客户端作为参数传递给 PubSubClient 构造函数。这是示例:

    WiFiEspClient espClient;
    PubSubClient client(espClient);
    

    正如您提到的,另一个串行库是espduino。你可以按照它的指南,像这样使用 Arduino 的 MQTT 库:

    #include <SoftwareSerial.h>
    #include <espduino.h>
    #include <mqtt.h>
    
    SoftwareSerial debugPort(2, 3); // RX, TX
    ESP esp(&Serial, &debugPort, 4);
    MQTT mqtt(&esp);
    

    祝你好运!

    【讨论】:

      【解决方案3】:

      我建议你试试Homie-esp8266。我认为它将适合您当前的设置。它支持 MQTT、简单的 wifi 配置和无线 (OTA) 固件更新。 documentation 也很简单。这是我目前在智能家居项目中使用的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多