Я пытаюсь использовать библиотеку PubNub на Кактус Микро Рев2 доска разработчиков. Эта плата в основном представляет собой Arduino Lillypad USB с подключенным чипом ESP8266 WiFi.
Цель: использовать PubNub для подписки на канал с помощью WiFi-интерфейса ESP8266.
Библиотека PubNub указывает, что она предназначена для работы с экраном Ethernet или WiFi.
Cactus Micro использует библиотеку espduino, где он взаимодействует с WiFi, используя поток SLIP. (Я думаю).
Как использовать библиотеку espduino вместо библиотеки щитов Ethernet или WiFi?
Для контекста:
Библиотека PubNub
/* By default, the PubNub library is built to work with the Ethernet
* shield. WiFi shield support can be enabled by commenting the
* following line and commenting out the line after that. Refer
* to the PubNubJsonWifi sketch for a complete example. */
//#define PubNub_Ethernet
#define PubNub_WiFi#if defined(PubNub_Ethernet)
#include <Ethernet.h>
#define PubNub_BASE_CLIENT EthernetClient
#elif defined(PubNub_WiFi)
#include <WiFi.h>
#define PubNub_BASE_CLIENT WiFiClient
Чтобы использовать библиотеку espduino в коде Arduino с MQTT, я делаю что-то вроде следующего, потому что espduino.h имеет класс MQTT.
// ESP8266 WiFi
#include <espduino.h>
#define PIN_ENABLE_ESP 13
#define SSID ".interwebs"#define PASS "meraki81"boolean wifiConnected = false;
ESP esp(&Serial1, &Serial, PIN_ENABLE_ESP);
// MQTT
#include <mqtt.h>
MQTT mqtt(&esp);
... snip
mqtt.connect("myBroker", 1883, false);
Я бы тогда ожидал / надеюсь сделать что-то подобное, чтобы использовать PubNub
PUBNUB pubnub(&esp);
... snip
pubnub.publish("news", "OLED board online");
Но это не работает, очевидно.
Ожидаемый метод заключается в использовании класса WiFiClient из библиотеки wifi shield:
// PubNub
WiFiClient *client;
client = PubNub.publish("news", "OLED board online");
Любые предложения, обходные пути, библиотеки, которые могут помочь? Я чувствую себя более комфортно с NodeJS, чем с C / C ++, поэтому просто пытаюсь обернуть голову вокруг него.
Спасибо!
Задача ещё не решена.
Других решений пока нет …