How to use ArduinoUno EthernetSheld DHT22

Nice to meet you.
My name is Taisuke Hori.
I’m from Fukushima,Japan.

I will try posting for the first time .

I want to display a graph of the temperature and humidity using DHT22.

It was a sketch , such as the following , but it does not appear.

Become offline display in the app.
It is able to communicate IP is displayed in the serial monitor.

[0] Blynk v0.2.5-beta
[0] Getting IP…
[27] My IP: 192.○○○.○○.○○
[5001] Connecting to cloud.blynk.cc:8442
[5531] Ready (ping: 273ms).

What is the cause?

My sketch


#define BLYNK_PRINT Serial
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>

#include <SimpleTimer.h>
#include <DHT.h>
#define DHTPIN 12
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

*char auth[] = “My Token”;

SimpleTimer timer;

void setup()
{
Serial.begin(9600);
Blynk.begin(auth);

timer.setInterval(1000L, sendUptime);
}

void sendUptime()
{

float h = dht.readHumidity();
float t = dht.readTemperature();

Blynk.virtualWrite(10, t); // virtual pin
Blynk.virtualWrite(11, h); // virtual pin
}

void loop()
{
Blynk.run();
timer.run();
}

Dear @horisuke

I am not sure you can read the DHT22 every 1 second. It’s more likely to be every 2 seconds:

timer.setInterval(2000L, sendUptime);

Other than that, the DHT22 comes in 2 forms. In a module where you just follow a simple wiring diagram …

or just the standalone sensor without the module, in which case you need to add a 10Kohm resistor between vcc and data pins …

Have a look at let me know how it goes.

Cheers,
Murilo

1 Like

Dear @murilopicanco

Thank you for your polite reply.

I tried immediately.

It was successful !!

But,value of the temperature and the humidity becomes zero .

It was operating normally where I tried DHT22 in a different sketch.
DHT22 is not broken.

What is the case?

You said your arduino is aways offline.

DHT dht(DHTPIN, DHTTYPE);

*char auth[] = "My Token";

SimpleTimer timer;

void setup()

Here where is written “my token” you have to put your token (you can find it in your projoct options)

Dear @jesio94

Thank you for your reply.

I have already set in my token.

Dear @horisuke

You have a lot of wiring issues there in your photo where the DHT22 (white sensor) is displayed, so please follow this:

  • Remove all of your wires.
  • Connect Arduino 5V pin directly to the DHT22 Vcc (+) pin.
  • Connect the Arduino ground pin (GND) directly to the DHT22 ground (-) pin.
  • Connect the 10kOhm resistor between the DHT22 Vcc (+) pin and the Data (out) pin.

So only 3 wires. Try that.

Cheers
Murilo

Dear @murilopicanco

I tried.
But,It unsuccessful.

What is the case?


My sketch

#define BLYNK_PRINT Serial   

#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>

#include <SimpleTimer.h>
#include <DHT.h>
#define DHTPIN 12 
#define DHTTYPE DHT22   
DHT dht(DHTPIN, DHTTYPE);


char auth[] = "    MY TOKEN       ";  

SimpleTimer timer;

void setup()
{
  Serial.begin(9600); 
  Blynk.begin(auth);

  timer.setInterval(2000L, sendUptime);
}

void sendUptime()
{

  float h = dht.readHumidity();
  float t = dht.readTemperature();
  
  Blynk.virtualWrite(10, t); 
  Blynk.virtualWrite(11, h);  
}

void loop()
{
  Blynk.run();
  timer.run();
}

My Blynk display

Hi @horisuke

Right Ok. 2 things for you to check:
Below this:
float h = dht.readHumidity();
float t = dht.readTemperature();
Add this:
Serial.println(h);
Serial.println(t);
And check the Serial monitor if the numbers are coming out correctly from the sensor.

Also …
What you are doing with your sketch is Pushing information every 2 seconds but the Graph Widget does not have a Push mode (at least not on iOS yet) so it may be an issue.

Delete your Graphs and add 2 Display widgets for example. In the frequency select Push and connect the Vpins that you are using now (V10 and V11).

Let me know how it goes.

Cheers

Dear @murilopicanco

Thank you tell me always.

The different error came out.

[301] DHCP Failed!
[0] Blynk v0.2.5-beta
[1] Getting IP…
[301] DHCP Failed!
[0] Blynk v0.2.5-beta
[1] Getting IP…
[301] DHCP Failed!
[0] Blynk v0.2.5-beta
[0] Getting IP…
[301] DHCP Failed!
[1] Blynk v0.2.5-beta
[1] Getting IP…
[302] DHCP Failed!
[1] Blynk v0.2.5-beta
[1] Getting IP…
[302] DHCP Failed!
[1] Blynk v0.2.5-beta
[1] Getting IP…

It seems to be a network error.
I think that it is a break in the cable.
After restoration also will write.

Dear @murilopicanco

Network is led.
The cause was a disconnection.
And it was finally successful !!

Thank you.

The sketch I was changed as follows:

#define DHTPIN 12   →  #define DHTPIN 2

I wonder if No12 is broken ?

I was English not well.
But,Thank you for becoming empathetic

I think I also want to study English.

1 Like

I’m glad it is working.

Pin 12 is also used by the Arduino Ethernet shield so if you have the shield still connected like your photo it may not work. I don’t think it’s broken.
Try it without the shield :wink:

Cheers

Where is your
dht.begin();
statement???

Pin No. 12 is used in Ethernet shield.
I did not know that.

Thank you.
Very helpful.

Dear @mrohner

Thank you for your comment.

Sorry, I do not know mean statement.

What is statement?

You have to start the DHT with
DHT.begin();
in the setup

// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain

#include "DHT.h"

#define DHTPIN 5     // what pin we're connected to

// Uncomment whatever type you're using!
#define DHTTYPE DHT11   // DHT 11 
//#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

// Connect pin 1 (on the left) of the sensor to +5V
// NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1
// to 3.3V instead of 5V!
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor

// Initialize DHT sensor for normal 16mhz Arduino
DHT dht(DHTPIN, DHTTYPE);
// NOTE: For working with a faster chip, like an Arduino Due or Teensy, you
// might need to increase the threshold for cycle counts considered a 1 or 0.
// You can do this by passing a 3rd parameter for this threshold.  It's a bit
// of fiddling to find the right value, but in general the faster the CPU the
// higher the value.  The default for a 16mhz AVR is a value of 6.  For an
// Arduino Due that runs at 84mhz a value of 30 works.


void setup() {
  Serial.begin(9600); 
  Serial.println("DHTxx test!");
 
  dht.begin();
}

void loop() {
  // Wait a few seconds between measurements.
  delay(2000);

  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  // Read temperature as Celsius
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit
  // float f = dht.readTemperature(true);
  
  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) ) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

 
  Serial.print("Humidity: "); 
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: "); 
  Serial.print(t);
  Serial.println(" *C ");
   
}

Dear @mrohner

Thank you for teaching.

I am fun thanks to you.