2 sensors with the same device

Hey, can we add 2 different sensors which are connecting to the same device to Cayenne platform? Thank you

welcome to the cayenne community @sara.loukili.lasri. yes we can connect. can you provide more detail about the sensors and device.

Thank you for your answer, I tried to connect DHT11 and luminosity sensors with NODEMCU 8266, the values of the luminosity sensor are displayed but the other of DHT11 aren’t. when I disconnect the luminosity sensor the values of DHT11 are displayed. I don’t know where is the problem.

can you share the code you are using.

#include<CayenneMQTTESP8266.h>
#include<DHT.h>

#define CAYENNE_DEBUG 
#define CAYENNE_PRINT Serial 
int lightPin = A0;  //define a pin for Photo resistor
int ledPin=13;


char ssid[] = "";
char password[] = "";

char username[]="";
char mqtt_password[]="";
char client_id[]="";

#define DHTPIN 4
#define DHTTYPE DHT11   
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  
  Cayenne.begin(username, mqtt_password, client_id,ssid,password);
  pinMode(2,OUTPUT);//the plue led in esp8266
  digitalWrite(2,HIGH);// this digital write to set off the led
   //pinMode( ledPin, OUTPUT );

}

void loop() {
  
 Cayenne.loop();
 float temp = dht.readTemperature(true);
 float hum = dht.readHumidity();
 int sensorValue = analogRead(lightPin);
 float voltage = sensorValue * (5.0 / 1023.0);// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V)

 Cayenne.virtualWrite(1,temp, TYPE_TEMPERATURE, UNIT_FAHRENHEIT);
 Cayenne.virtualWrite(2,hum, TYPE_RELATIVE_HUMIDITY, UNIT_PERCENT);
  Cayenne.virtualWrite(4,voltage, TYPE_TEMPERATURE,UNIT_FAHRENHEIT );

}

CAYENNE_IN(0)
{
  digitalWrite(2, !getValue.asInt());
}

delete all the widgets from the dashboard and Give the below code a try.

#include<CayenneMQTTESP8266.h>
#include<DHT.h>

#define CAYENNE_DEBUG 
#define CAYENNE_PRINT Serial 
int lightPin = A0;  //define a pin for Photo resistor
int ledPin=13;


char ssid[] = "";
char password[] = "";

char username[]="";
char mqtt_password[]="";
char client_id[]="";

#define DHTPIN 4
#define DHTTYPE DHT11   
DHT dht(DHTPIN, DHTTYPE);
unsigned long lastMillis = 0;

void setup() {
  
  Cayenne.begin(username, mqtt_password, client_id,ssid,password);
  pinMode(2,OUTPUT);//the plue led in esp8266
  digitalWrite(2,HIGH);// this digital write to set off the led
   //pinMode( ledPin, OUTPUT );

}

void loop() {
  
 Cayenne.loop();
 float temp = dht.readTemperature(true);
 float hum = dht.readHumidity();
 int sensorValue = analogRead(lightPin);
 float voltage = sensorValue * (5.0 / 1023.0);// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V)
  if (millis() - lastMillis > 10000) {
    lastMillis = millis();
 Cayenne.virtualWrite(1,temp, "temp", "f");
 Cayenne.virtualWrite(2,hum, "rel_hum", "p");
  Cayenne.virtualWrite(4,voltage, "voltage","v");
}
}

CAYENNE_IN(0)
{
  digitalWrite(2, !getValue.asInt());
}

Oh, I’m so grateful, It’s working, what are the supported parameters of the virtualWrite function: the last 2 parameters (the type of sensor and unit?). Thank you for your help.

Thank you so much for your help.

1 Like