Hi leute,
Ich habe einen Arduino uno und einen ESP 8266 und von der Bibliothek PubSubClient das MQTT_esp8266 Beispiel. Ich wollte bisschen mit der Dashboard app rumspielen jedoch scheitert es schon an der Verbindung.
Bei der App muss ich folgende Daten Eingeben:
- Name
- Address
- Port
- username
- userpassword
Im Beispielcode lege ich username und passwort sowie die clientid an
username und passwort ist klar aber was ist mit der Adresse und namen?
Ich habe das so probiert die clientid als name und adresse die IP die mein router vergeben hat. Was mache ich falsch?
Du gibst zuwenig Infos.
Welcher ESP8266? Welche Beziehung hat der zum UNO?
Welcher MQTT-Server auf welchem Rechner?
Welcher Sketch? Welche Schaltung?
Gruß Tommy
Hi Tommy,
ich habe gerade erfolgreich meinen Uno über den Jordan geschickt. Deeeswegen habe ich meinen nodemcu rausgekramt und den Code Hochgeladen aber das selbe Problem.
Beim Sketch habe ich mich geirrt ich lade ihn mal mit hoch 
was ich nicht verstehe was du mit MQTT-Server meinst. Habe ich mich da falsch Informiert? Ich hatte angenommen ich lade den Code hoch und melde mich direkt an der App an
/*
//#define CAYENNE_DEBUG
#define CAYENNE_PRINT Serial
#include <CayenneMQTTESP8266.h>
// WiFi network info.
char ssid[] = "Meins";
char wifiPassword[] = "auchmeins";
// Cayenne authentication info. This should be obtained from the Cayenne Dashboard.
char username[] = "u";
char password[] = "p";
char clientID[] = "c";
void setup() {
Serial.begin(9600);
Cayenne.begin(username, password, clientID, ssid, wifiPassword);
}
void loop() {
Cayenne.loop();
}
// Default function for sending sensor data at intervals to Cayenne.
// You can also use functions for specific channels, e.g CAYENNE_OUT(1) for sending channel 1 data.
CAYENNE_OUT_DEFAULT()
{
// Write data to Cayenne here. This example just sends the current uptime in milliseconds on virtual channel 0.
Cayenne.virtualWrite(0, millis());
// Some examples of other functions you can use to send data.
//Cayenne.celsiusWrite(1, 22.0);
//Cayenne.luxWrite(2, 700);
//Cayenne.virtualWrite(3, 50, TYPE_PROXIMITY, UNIT_CENTIMETER);
}
// Default function for processing actuator commands from the Cayenne Dashboard.
// You can also use functions for specific channels, e.g CAYENNE_IN(1) for channel 1 commands.
CAYENNE_IN_DEFAULT()
{
CAYENNE_LOG("Channel %u, value %s", request.channel, getValue.asString());
//Process message here. If there is an error set an error message using getValue.setError(), e.g getValue.setError("Error message");
}
Nach meinen Kenntnissen (ich habe es noch nicht genutzt) braucht das MQTT-Protokoll einen Server, an den die ganzen Meldungen gehen.
Man möge mich korrigieren, wenn das nicht so ist.
Gruß Tommy
1:0 für Tommy
Ich habe selbst auch MQTT mit nodeMCU im Einsatz.
Wie der Name der Lib schon sagt handelt es sich um einen Client.
Ein oder mehrere Clients brauchen immer einen Server zum kommunizieren.
Der Server muss immer laufen und nimmt die MQTT Messages entgegen, speichert sie und verteilt sie an die subscribten Clients.
Mein mosquitto MQTT Server läuft auf einem RPi 3 und mehrere nodeMCU senden und empfangen die MQTT Messages. Außerdem kann man sich auch mit MQTT Apps auf einem Handy dort subscriben und publishen.
Lieben Gruß,
Chris