Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

Arduino UNO and ESP8266 Based Wi-Fi Temperature and Humidity Monitor

View and Edit Project In Cirkit DesignerImage of Arduino UNO and ESP8266 Based Wi-Fi Temperature and Humidity Monitor

Circuit Documentation

Summary

The circuit in question is designed to collect temperature and humidity data using a DHT11 sensor, process the data with an Arduino UNO microcontroller, and transmit the data over WiFi using an ESP8266 ESP-01 WiFi module. The Arduino UNO serves as the central processing unit, interfacing with the DHT11 sensor and the ESP8266 module for data acquisition and wireless communication, respectively.

Component List

Arduino UNO

ESP8266 ESP-01 WiFi Module

DHT11 Humidity and Temperature Sensor

Wiring Details

Arduino UNO

ESP8266 ESP-01 WiFi Module

DHT11 Humidity and Temperature Sensor

Documented Code

Arduino UNO Code

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

ESP8266 ESP-01 WiFi Module Code

#include <ThingSpeak.h>
#include <DHT.h>

#define DHTPIN 5 // DHT data pin connected to Arduino pin 5
#define DHTTYPE DHT11 // DHT11 (DHT Sensor Type)
DHT dht(DHTPIN, DHTTYPE); // Initialize the DHT sensor
#define SSID "YourWiFiSSID" // "WiFi Name"
#define PASS "YourWiFiPassword" // "Password"
#define IP "184.106.153.149" // thingspeak.com IP
String msg = "GET /update?key=YourWriteAPIKey"; // Change it with your key...

float temp;
int hum;
String tempC;
int error;

void setup() {
  Serial.begin(115200); // Use default 115200 baud rate.
  Serial.println("AT");
  delay(5000);
  if (Serial.find("OK")) {
    connectWiFi();
  }
}

// Additional functions for WiFi connection would be here.

DHT11 Humidity and Temperature Sensor Code

#include <SimpleDHT.h>

// for DHT11,
// VCC: 5V or 3V
// GND: GND
// DATA: 5
int pinDHT11 = 5;
SimpleDHT11 dht11;

void setup() {
  // Start working...
  Serial.begin(9600);
  Serial.println("Temperature and Humidity Data");
}

void loop() {
  delay(250);

  // Read without samples.
  byte temperature = 0;
  byte humidity = 0;
  int err = SimpleDHTErrSuccess;
  if ((err = dht11.read(pinDHT11, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
    Serial.print("Read DHT11 failed, err=");
    Serial.println(err);
    delay(1000);
    return;
  }
  Serial.print((int)temperature);
  Serial.print(" *C, ");
  Serial.print((int)humidity);
  Serial.println(" *H");

  // DHT11 sampling rate is 1HZ.
  delay(1500);
}

Note: The actual implementation of the functions for connecting the ESP8266 to WiFi and sending data to ThingSpeak is not included in the provided code snippet. Additional code is required to complete the functionality.