2017-01-15 1 views
0

Actuellement, mon croquis publie une valeur de capteur par sujet. Je tiens à publier deux messages d'un sujet comme thisMQTT publie deux valeurs dans un sujet

arduino

void loop() 
{ 
    if (!client.connected()) { 
    reconnect(); 
    } 
    client.loop(); 

int chk = DHT.read11(DHT11_PIN); 
    int t = DHT.temperature; 
    int h = DHT.humidity; 

    char buffer[10]; 
    dtostrf(t,0, 0, buffer); 
    client.publish("Sensor/Temperature", buffer); 
    Serial.println(buffer); 
    dtostrf(h,0, 0, buffer); 
    client.publish("Sensor/Humidity",buffer); 
    delay(1000); 
} 

Je vous ce croquis pour stocker dans mon MongoDB. Actuellement, je n'accepte qu'un sujet et un message.

server.JS

client.on('message', function (topic, message) { 
     var messageObject = { 
      topic: topic, 
      message: message.toString(), 
      Time: new Date() 
     }; 

     collection.insert(messageObject, function(error, result) { 
      if(error != null) { 
       console.log("ERROR: " + error); 
      } 
     }); 
    }); 

Comment puis-je pousser deux valeurs de capteur à un seul sujet de mon Arduino?

Merci pour votre effort.

+0

Il ne pas être toutes coutures une question ou une description d'un problème – hardillb

+0

@hardillb post Mise à jour – Ekom

+0

Quel est le problème avec l'exemple de code que vous avez fourni? – hardillb

Répondre

0

J'ai trouvé une solution très appropriée à cela. J'espère que ça aide quelqu'un.

void loop() 
{ 
    if (!client.connected()) { 
    reconnect(); 
    } 
    client.loop(); 

int chk = DHT.read11(DHT11_PIN); 
    int t = DHT.temperature; 
    int h = DHT.humidity; 
    snprintf (msg, 75, "temperature %d humidity %d ledStatus %s", t,h,ledStatus); 
    Serial.print("Publish message: "); 
    Serial.println(msg); 
    client.publish("outTopic", msg); 
    delay(6000); 
}