Problem with two (or more) DHT22 sensors connected to nodeMCU
Celso Fernando Baspineiro
on 17 Sep 2021
Latest activity Reply by Christopher Stapels
on 21 Sep 2021
My goal is to get the data from two DHT22 sensors, with a single sensor I had no problem but with two sensors I get only a few data and then it interrupts reporting "Read DHT22 failed." I share my code, any suggestions I appreciate
#include <SimpleDHT.h>
#include <ESP8266WiFi.h> String apiKey = "xxxxx";
const char* ssid = "xxxxx";
const char* password = "xxxxx";
const char* server = "api.thingspeak.com";
int pinDHT22 = D0;
int pinDHT221 = D1; SimpleDHT22 dht22(pinDHT22);
SimpleDHT22 dht221(pinDHT221); WiFiClient client;
void setup() {
Serial.begin(115200);
delay(10);
WiFi.begin(ssid, password);
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
}
void loop() {
byte temperatura = 0;
byte humedad = 0;
byte temperatura1 = 0;
byte humedad1 = 0; if (dht22.read(pinDHT22, &temperatura, &humedad, NULL)) {
Serial.print("Read DHT22 failed.");
return;
} if (dht221.read(pinDHT221, &temperatura1, &humedad1, NULL)) {
Serial.print("Read DHT221 failed.");
return;
} if (client.connect(server,80)) {
String postStr = apiKey;
postStr +="&field1=";
postStr += String((int)temperatura);
postStr +="&field2=";
postStr += String((int)humedad);
postStr +="&field3=";
postStr += String((int)temperatura1);
postStr +="&field4=";
postStr += String((int)humedad1); postStr += "\r\n\r\n";
client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(postStr.length());
client.print("\n\n");
client.print(postStr);
Serial.println("% send to Thingspeak");
}
client.stop();
Serial.println("Waiting…");
delay(120000);
}2 Comments
Time DescendingThanks for letting us know!
problem solved!
Sign in to participate