Harshan.M
Published © GPL3+

ESP8266 IoT Temperature & Humidity Monitoring

An IoT-based system that monitors real-time temperature and humidity using ESP8266, DHT11, and KiwisIoT Dashboard.

BeginnerFull instructions provided1 hour34
ESP8266 IoT Temperature & Humidity Monitoring

Things used in this project

Hardware components

Adafruit Feather HUZZAH with ESP8266 WiFi
Adafruit Feather HUZZAH with ESP8266 WiFi
×1
Solderless Breadboard Half Size
Solderless Breadboard Half Size
×1
USB-A to Mini-USB Cable
USB-A to Mini-USB Cable
×1
DHT11 Temperature & Humidity Sensor (4 pins)
DHT11 Temperature & Humidity Sensor (4 pins)
×1
Male/Female Jumper Wires
Male/Female Jumper Wires
×1

Software apps and online services

KiwisIoT
Kiwistron KiwisIoT
Arduino IDE
Arduino IDE

Story

Read more

Schematics

ESP8266 IoT Temperature & Humidity Monitoring

Code

# ESP8266 IoT Temperature & Humidity Monitoring

C/C++
/*
 * Project: DHT11 Temperature and Humidity Monitoring with ESP8266 and KiwisIoT
 * Project ID: KIWISIOT-004
 * Board: ESP8266 NodeMCU
 * Sensor: DHT11
 */

#include <ESP8266WiFi.h>
#include <KiwisIoT.h>
#include <DHT.h>

const char* ssid = "YOUR_WIFI_NAME";
const char* pass = "YOUR_WIFI_PASSWORD";

const char* topic = "YOUR_DASHBOARD_TOPIC_ID";

#define DHT_PIN D5
#define DHT_TYPE DHT11

DHT dht(DHT_PIN, DHT_TYPE);

KiwisIoT kiwisiot(ssid, pass, topic);

void sendDHTData() {

  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();

  if (isnan(temperature) || isnan(humidity)) {

    Serial.println();
    Serial.println("Failed to read DHT11!");

    return;
  }

  Serial.println();
  Serial.println("---------- DHT11 MONITORING ----------");

  Serial.print("Temperature: ");
  Serial.print(temperature, 1);
  Serial.println(" °C");

  Serial.print("Humidity: ");
  Serial.print(humidity, 1);
  Serial.println(" %");

  String temperatureData = String(temperature, 1);

  kiwisiot.send("0", temperatureData);

  Serial.print("Sent to KiwisIoT Channel 0: ");
  Serial.println(temperatureData);

  String humidityData = String(humidity, 1);

  kiwisiot.send("1", humidityData);

  Serial.print("Sent to KiwisIoT Channel 1: ");
  Serial.println(humidityData);
}

void setup() {

  Serial.begin(115200);

  Serial.println("     DHT11 MONITORING     ");

  dht.begin();

  Serial.println("DHT11 initialized");

  Serial.println("Connecting to KiwisIoT...");

  kiwisiot.begin();

  Serial.println("KiwisIoT initialized");
  Serial.println("Starting temperature and humidity monitoring...");
}

void loop() {

  kiwisiot.run();

  static unsigned long lastSend = 0;

  if (millis() - lastSend >= 2000) {

    lastSend = millis();

    sendDHTData();
  }

  delay(100);
}

Credits

Harshan.M
4 projects • 1 follower

Comments