Esp32 and dht11 , problem sending measured data to thingspeak

Hello Forum,

I am having difficulty uploading the temp and humdity datas in the thingspeak. The code works perfectly with the esp8266 and i am able to recieve the data with but when i try with the esp32, it doesnt work. Anyone can figure out the problem .

I will attach the code here for dht11 with ESP32 to thingspeak

#include <ThingSpeak.h>

#include <WiFi.h>

#include <WiFiClient.h>

#include <WiFiServer.h>

#include <ESPAsyncWebServer.h>

#include <DHT.h>




String apiKey ="";       // Enter your Write API key from ThingSpeak
const long CHANNEL=;                                       // Give your wifi network name
const char* ssid = "";
const char* password = "";  // Give your wifi network password
const char* server = "api.thingspeak.com";

#define DHTPIN 4          //pin D0 where the dht11 is connected
 
DHT dht(DHTPIN, DHT11);

WiFiClient client;
 
void setup()
{
       Serial.begin(115200);
       delay(100);
       dht.begin();
 
       Serial.println("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()
{
 
      float h = dht.readHumidity();
      float t = dht.readTemperature();
     
              if (isnan(h) || isnan(t))
                 {
                     Serial.println("Failed to read from DHT sensor!");
                      return;
                 }

                         if (client.connect(server,80))   //   "184.106.153.149" or api.thingspeak.com
                      {
                           
                             String postStr = apiKey;
                             postStr +="&field1=";
                             postStr += String(t);
                             postStr +="&field2=";
                             postStr += String(h);
                             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.print("Temperature: ");
                             Serial.print(t);
                             Serial.print(" degrees Celcius, Humidity: ");
                             Serial.print(h);
                             Serial.println("%. Send to Thingspeak.");
                        }
          client.stop();
 
          Serial.println("Waiting...");
 
  // thingspeak needs minimum 15 sec delay between updates
  delay(1000);
}

Uh, why do You want to use the none functioning esp32 when the esp8266 works?

@Railroder this is because i require various pins and esp8266 got very limited no of pins

HI,
What do you mean by "doesnt work"?

Won't connect?
DHT11 won't load?
Can't get temperature and humidity readings to even Serial.print?

Tom... :slight_smile: