简体   繁体   中英

Unexpected String when using BlueMix's Node-RED editor and MQTT->Debug Node

I'm following this tutorial, http://energia.nu/creating-an-iot-connected-sensor-with-energia-mqtt/

I see the pushed data, but the Node-RED editor constantly prints 'Hello World #XX'. I don't see anything in the code that would suggest where its coming from:

  #include <WiFi.h>
  #include <PubSubClient.h>
  #include <SPI.h> //only required if using an MCU LaunchPad + CC3100 BoosterPack. Not needed for CC3200 LaunchPad
  WiFiClient wclient;

  byte server[] = { 198, 41, 30, 241 }; //  Public MQTT Brokers: http://mqtt.org/wiki/doku.php/public_brokers
  byte ip[]     = { 172, 16, 0, 100 };

  char sensorRead[4];

  #define       WIFI_SSID         "SSID"
  #define       WIFI_PWD          "WIFIPASSWORD"

  PubSubClient client(server, 1883, callback, wclient);

  void callback(char* inTopic, byte* payload, unsigned int length){
  // Handle callback here
  }

  void setup()
  {
    //Initialize serial and wait for port to open:
    Serial.begin(115200);

    Serial.println("Start WiFi");
    WiFi.begin(WIFI_SSID, WIFI_PWD);
    while(WiFi.localIP() == INADDR_NONE) {
      Serial.print(".");
      delay(300);
    }
    Serial.println("");

    printWifiStatus();

  }

  void loop()
  {
    // read the input on analog pin:
    int sensorValue = analogRead(24);
    Serial.println(sensorValue);

    // convert into to char array
    String str = (String)sensorValue; 
    int str_len = str.length() + 1;  // Length (with one extra character for the null terminator)
    char char_array[str_len];  // Prepare the character array (the buffer) 
    str.toCharArray(char_array, str_len);  // Copy it over 

    // publish data to MQTT broker
    if (client.connect("LaunchPadClient")) {
      client.publish("outTopic", char_array);
      //client.subscribe("inTopic");
      Serial.println("Publishing successful!");
      client.disconnect();
    }

  }

  void printWifiStatus() {
    // print the SSID of the network you're attached to:
    Serial.print("SSID: ");
    Serial.println(WiFi.SSID());

    // print your WiFi shield's IP address:
    IPAddress ip = WiFi.localIP();
    Serial.print("IP Address: ");
    Serial.println(ip);
  }

NodeRedEditor

Is this because this is a free/trial account? Incidentally, it shows I'm using 512MB/2GB, which seems high... does it include the data sent, or is 512MB just the application size?

You are using a MQTT broker that is public to the world, anybody can publish data to any topic on that broker. The messages are probably coming from somebody else doing similar experiments to yourself.

outTopic is the sort of topic name that many people could be using to test, try changing it to some random string in both the publishing code and the MQTT In node in Node-RED.

As for the size in Bluemix, this is how much memory is assigned to your application, it is unlikely to be actually using anything near that amount at the moment.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM