Server Monitor Suhu dan Kelembaban Ruangan Dengan Wemos D1 Mini

Wemos D1 Mini yang diotaki ESP8266 memang mangasyikkan. Karena dia sudah memiliki modul WiFi dan punya kompatibilitas dengan Arduino sehingga memudahkan kita membuat piranti IoT dengan mudah dan cepat.

Saya pun membuat sebuah web server mungil yang dapat mengindera suhu dan kelembaban ruangan. Selain Wemos D1 Mini, saya memerlukan modul DHT11. Ternyata library dan contoh untuk membuatnya sudah bertebaran di dunia maya. Jadi tinggal menyesuaikan sedikit sudah bisa langsung jalan. Asyik ya?

Koneksi

Wemos D1 Mini DHT11
3V3 VCC
D1 DATA
G GND


WhatsApp Image 2016-08-31 at 13.29.22

Source Code

Wemos D1 Mini dikonfigurasikan untuk menjadi web server yang mendengarkan koneksi dari port 80. Output sengaja dibuat dalam format json supaya nantinya bisa dibaca oleh Smartphone.

Saya memanfaatkan LED bawaan Wemos untuk indikator request pembacaan sensor.

#include <DHT.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>

#define DHTPIN D1
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

IPAddress ip(192, 168, 43, 100);
IPAddress gateway(192, 168, 43, 1);
IPAddress subnet(255, 255, 255, 0);

const char* ssid = "Zendewo";
const char* pass = "password";

ESP8266WebServer server(80);

void handle_root() {
  server.send(200, "text/plain", "{\"Product ID\":\"NCS_DHT_00001\", \"Product Name\":\"NCS Temperatur and Humidity Sensor\", \"Date\":\"2016-08-31\", \"Author\":\"Emanuel Setio Dewo\", \"Email\":\"setio.dewo@gmail.com\"}");
  delay(100);
}

void setup() {
  pinMode(BUILTIN_LED, OUTPUT);
  digitalWrite(BUILTIN_LED, HIGH);
  
  Serial.begin(115200);
  delay(10);
  dht.begin();  
  Serial.println("NCS Sensor Server");
  Serial.print("Connecting");

  WiFi.begin(ssid, pass);
  WiFi.config(ip, gateway, subnet);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to: ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  server.on("/", handle_root);

  server.on("/sensor", []() {
    digitalWrite(BUILTIN_LED, LOW);
    float h = dht.readHumidity();
    float t = dht.readTemperature();
    if (isnan(h) || isnan(t)) {
      server.send(200, "text/plain", "{\"Suhu\":\"ERR\", \"Lembab\":\"ERR\"}");
    }
    else {
      server.send(200, "text/plain", "{\"Suhu\":"+String(t)+", \"Lembab\":"+String(h)+"}");
    }
    digitalWrite(BUILTIN_LED, HIGH);
  });

  server.begin();
  Serial.println("NCS DHT server started");
}

void loop() {
  server.handleClient();
}

Testing

Untuk mengetesnya cukup mudah. Cukup buka browser dari laptop/hape yang terkoneksi dengan wifi yang sama dengan Wemos. Ketikkan IP dari Wemos di browser.

espwebserver1

Pada contoh saya menampilkan informasi produk di root. Untuk mendapatkan pembacaan suhu & kelembaban bisa menambahkan /sensor di belakang URL.

espwebserver2

Tulisan sejenis: Pemantau Suhu dan Kelembaban Udara dengan Wemos D1 Mini dan DHT11

Iklan

4 pemikiran pada “Server Monitor Suhu dan Kelembaban Ruangan Dengan Wemos D1 Mini

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.