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 |
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.
Pada contoh saya menampilkan informasi produk di root. Untuk mendapatkan pembacaan suhu & kelembaban bisa menambahkan /sensor
di belakang URL.
Tulisan sejenis: Pemantau Suhu dan Kelembaban Udara dengan Wemos D1 Mini dan DHT11
[…] Asyik kan? Untuk menjadikan Wemos menjadi web server pemantau suhu/kelembaban bisa ke: Server Monitor Suhu dan Kelembaban Ruangan Dengan Wemos D1 Mini […]
[…] ← Server Monitor Suhu dan Kelembaban Ruangan Dengan Wemos D1 Mini […]
itu di tool > boardnya pake yg mana mas?
Pakai “WeMos D1 R2 & Mini”