ESP-12E + IBM WATSON

O ESP8266 é um microcontrolador do fabricante chinês Espressif que inclui capacidade de comunicação por Wi-Fi.
Paulo Capel
Membro
Mensagens: 1
Registrado em: 22/Ago/2018, 02:44

ESP-12E + IBM WATSON

Mensagem por Paulo Capel » 22/Ago/2018, 02:59

Bom galera boa noite estou tendo um problema com a conexão do esp-12 com o servidor do ibm parece que ele nao esta se escrevendo nos topicos desejados, segui passo a passo os videos do fernando K mas nao estou obtendos respostas...
nas imagens mostro que consigo mandar a mensagem para o topico porem nao consigo obter atuaçoes no esp-12
Imagens

https://ibb.co/dSCDOK
https://ibb.co/fucPVz
https://ibb.co/cMrjVz

Anteriomente estava dando este erro no Watson

Closed connection from 189.***.49.***. The topic is not valid: iot-2/evt/commandR2/fmt/json The topic does not match an authorized rule

Eu coloquei a cripitografia TLS como Opcional nao sei se tem algo haver com isso...

A programação usada foi esta...
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <ArduinoJson.h>
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>

// Altere estes dados pelos obtidos ao cadastrar o novo dispopsitivo no Watson Iot
const String ORG = "******";
const String DEVICE_TYPE = "esp-cloud";
const String DEVICE_ID = "****";
#define DEVICE_TOKEN "***********;


// Pinos dos Relés
#define pinRele1 5
#define pinRele2 4
#define pinLED 2 //LED para mostrar conexão



const String CLIENT_ID = "d:" + ORG + ":" + DEVICE_TYPE + ":" + DEVICE_ID;
const String MQTT_SERVER = ORG + ".messaging.internetofthings.ibmcloud.com";

#define COMMAND_TOPIC_R1 "iot-2/cmd/commandR1/fmt/json"
#define COMMAND_TOPIC_R2 "iot-2/cmd/commandR2/fmt/json"

WiFiClient wifiClient;
PubSubClient client(MQTT_SERVER.c_str(), 1883, wifiClient);

void setup() {
Serial.begin(115200);

pinMode(pinRele1, OUTPUT);
pinMode(pinRele2, OUTPUT);
pinMode(pinLED, OUTPUT);

digitalWrite(pinLED, HIGH);

WiFiManager wifiManager;
wifiManager.setAPCallback(configModeCallback);
wifiManager.setSaveConfigCallback(saveConfigCallback);

//wifiManager.resetSettings();
wifiManager.autoConnect("BI-ESP8266-AP");


connectMQTTServer();
}

void loop() {
client.loop();
}

//Função responsável pela conexão ao servidor MQTT
void connectMQTTServer() {
Serial.println("Conectando ao servidor MQTT...");

if (client.connect(CLIENT_ID.c_str(), "use-token-auth", DEVICE_TOKEN)) {
Serial.println("Conectado ao Broker MQTT...");
client.subscribe(COMMAND_TOPIC_R1);
client.subscribe(COMMAND_TOPIC_R2);
client.setCallback(callback);

digitalWrite(pinLED, LOW);
} else {
Serial.print("erro = ");
Serial.println(client.state());
connectMQTTServer();
}
}

void callback(char* topic, unsigned char* payload, unsigned int length) {
Serial.print("topico ");
Serial.println(topic);

StaticJsonBuffer<30> jsonBuffer;
JsonObject& root = jsonBuffer.parseObject(payload);

if ( !root.success() ) {
Serial.println("Erro no Json Parse");
return;
}

int value = root["value"];

if (strcmp(topic, COMMAND_TOPIC_R1) == 0) {
digitalWrite(pinRele1, value);
} else {
digitalWrite(pinRele2, value);
}
}

void configModeCallback( WiFiManager *myWiFiManager) {
Serial.println("Entrou no modo de configuração");
Serial.println(WiFi.softAPIP());
Serial.println(myWiFiManager->getConfigPortalSSID());
}

void saveConfigCallback() {
Serial.println("Configuração salva");
Serial.println(WiFi.softAPIP());
}

Responder