Patel Darshil
Published © GPL3+

IOT Humidity And Temperature Display

This project will show how to make a graphical display of temperature and humidity.

EasyFull instructions provided1 hour4,690
IOT Humidity And Temperature Display

Things used in this project


Read more



Capture3 qp7vbguo5i


Untitled file

// Include Libraries
#include "Arduino.h"
#include "DHT.h"
#include "ESP8266.h"
#include "dweet.h"
#include "GraphicLCD.h"

// Pin Definitions
#define DHT_PIN_DATA	4

// Global variables and defines

// ====================================================================
// vvvvvvvvvvvvvvvvvvvv ENTER YOUR WI-FI SETTINGS  vvvvvvvvvvvvvvvvvvvv
const char *SSID     = "WIFI-SSID"; // Enter your Wi-Fi name 
const char *PASSWORD = "PASSWORD" ; // Enter your Wi-Fi password
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// ====================================================================

// These Dweet tokens have been auto generated for you.
char* const inputToken  = "36b7d7a2-8bfa-11e7-b3d8-424f06f8d21b_input";
char* const outputToken = "36b7d7a2-8bfa-11e7-b3d8-424f06f8d21b_output";

// object initialization
ESP8266 wifi;
Dweet dweet( &wifi, inputToken, outputToken);

// define vars for testing menu
const int timeout = 10000;       //define timeout of 10 sec
char menuOption = 0;
long time0;

// Setup the essentials for your circuit to work. It runs first every time your circuit is powered with electricity.
void setup() 
    // Setup Serial which is useful for debugging
    // Use the Serial Monitor to view printed messages
    while (!Serial) ; // wait for serial port to connect. Needed for native USB
    wifi.init(SSID, PASSWORD);
    menuOption = menu();

// Main logic of your circuit. It defines the interaction between the components you selected. After setup, it runs over and over again, in an eternal loop.
void loop() 
    if(menuOption == '1') {
    // DHT22 - Test Code
    // Reading humidity in %
    float dhtHumidity = dht.readHumidity();
    // Read temperature in Celsius, for Fahrenheit use .readTempF()
    float dhtTempC = dht.readTempC();
    Serial.print(F("Humidity: ")); Serial.print(dhtHumidity); Serial.print(F(" [%]\t"));
    Serial.print(F("Temp: ")); Serial.print(dhtTempC); Serial.println(F(" [C]"));
    else if(menuOption == '2') {
    // GraphicLCD - Test Code
    // The LCD Screen will display the text of your choice at the location (30,50) on screen. Counting from the top left corner: 30 pixels to the right and 50 pixels down  
    graphicLCD.setX(30);                     // 1. sets left-right indent for text to print. Change the value in the brackets (1 - left, 164 - right) for a different indent.
    graphicLCD.setY(50);                     // 2. sets top-bottom height for text to print. Change the value in the brackets (1 - top, 128 - bottom) for a different height.
    graphicLCD.print(" Rocks!");  // 3. prints the text in the brackets. Modify the text to get your own unique print.
    delay(1000);                               // 4. waits 1000 milliseconds (1 sec). Change the value in the brackets (1000) for a longer or shorter delay in milliseconds.
    graphicLCD.clear();                      // 5. wipes the screen
    delay(1000);                               // 6. waits 1000 milliseconds (1 sec). Change the value in the brackets (1000) for a longer or shorter delay in milliseconds.
    else if (menuOption == '3') {
    dweet.setDweet("DemoKey", "DemoValue"); // replace with your own (key, value) pairs to dweet your data
    //GET DWEETS  
    if(!strcmp(dweet.getValue() , "DemoEventName"))
        Serial.println("DemoEventName received!");
        // Do something
    if (millis() - time0 > timeout)
        menuOption = menu();

// Menu function for selecting the components to be tested
// Follow serial monitor for instrcutions
char menu()

    Serial.println(F("\nWhich component would you like to test?"));
    Serial.println(F("(1) DHT22"));
    Serial.println(F("(2) GraphicLCD"));
    Serial.println(F("(3) IOT"));
    Serial.println(F("(menu) send anything else or press on board reset button\n"));
    while (!Serial.available());

    // Read data from serial monitor if received
    while (Serial.available()) 
        char c =;
        if (isAlphaNumeric(c)) 
            if(c == '1') 
    			Serial.println(F("Now Testing DHT22"));
    		else if(c == '2') 
    			Serial.println(F("Now Testing GraphicLCD"));
    		else if(c == '3') 
    			Serial.println(F("Now Testing IOT"));
                Serial.println(F("illegal input!"));
                return 0;
            time0 = millis();
            return c;


Patel Darshil

Patel Darshil

4 projects • 46 followers
I am an Electronics Hobbyist pursuing my BE in Electronics and communication