윤원호gledel
Published © GPL3+

Temperature and humidity meter (iot)

Measuring temperature and humidity with Arduino and uploading it to the server

IntermediateShowcase (no instructions)22 hours18,524
Temperature and humidity meter (iot)

Things used in this project

Hardware components

AA Batteries
AA Batteries
×6
Arduino UNO
Arduino UNO
×1
DHT11 Temperature & Humidity Sensor (4 pins)
DHT11 Temperature & Humidity Sensor (4 pins)
×1
ESP8266 ESP-01
Espressif ESP8266 ESP-01
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

Temperature and humidity meter (iot)

Temperature and humidity meter (iot)

Code

Temperature and humidity meter (iot) code

Arduino
Temperature and humidity meter (iot) code
#include <SoftwareSerial.h>
#include <stdlib.h>
#include <DHT.h>
 
#define DHTPIN 4        // Set the SDA pin
#define DHTTYPE DHT11   // DHT22 (AM2302) Sensor type setting(I'm used dht11)
 
// Upload notification LED setting (Adunono On Board LED)
int ledPin = 13;
 
// Write API key for your own thingspeak channel
String apiKey = "your thingspeak channel Write API key";
 
SoftwareSerial ser(10,11 ); // Create RX / TX, create serial object
DHT dht(DHTPIN, DHTTYPE);
 
void setup() {
  dht.begin();
  // Notification LED output setting
  pinMode(ledPin, OUTPUT);
  // Serial communication speed 9600 baud rate setting
  Serial.begin(9600);
  // Start the software serial
  ser.begin(9600);
  //ESP8266 Reset
  ser.println("AT+RST");
}
 
void loop() {
  // blink LED on board
  digitalWrite(ledPin, HIGH);   
  delay(200);               
  digitalWrite(ledPin, LOW);
 
  // Read DHT11 value
  float temp = dht.readTemperature();
  float humi = dht.readHumidity();
 
  // Convert String
  char buf[16];
  String strTemp = dtostrf(temp, 4, 1, buf);
  String strHumi = dtostrf(humi, 4, 1, buf);
  
  Serial.println(strTemp);
  Serial.println(strHumi);
  
  // TCP connection
  String cmd = "AT+CIPSTART=\"TCP\",\"";
  cmd += "184.106.153.149"; // api.thingspeak.com connection IP
  cmd += "\",80";           // api.thingspeak.com connection port, 80
  ser.println(cmd);
   
  if(ser.find("Error")){
    Serial.println("AT+CIPSTART error");
    return;
  }
  
  // Set String, Data to send by GET method
  String getStr = "GET /update?api_key=";
  getStr += apiKey;
  getStr +="&field1=";
  getStr += String(strTemp);
  getStr +="&field2=";
  getStr += String(strHumi);
  getStr += "\r\n\r\n";
 
  // Send Data
  cmd = "AT+CIPSEND=";
  cmd += String(getStr.length());
  ser.println(cmd);
 
  if(ser.find(">")){
    ser.print(getStr);
  }
  else{
    ser.println("AT+CIPCLOSE");
    // alert user
    Serial.println("AT+CIPCLOSE");
  }
    
  // Thingspeak delay to meet minimum upload interval of 15 seconds
  delay(16000);  
}

Credits

윤원호

윤원호

1 project • 7 followers
Ordinary high school student who wants to enter science and engineering college
gledel

gledel

100 projects • 115 followers
Looking back on my childhood, I was happy when I was making something and I was proud of myself. "Making is instinct!"

Comments