Control 5 Relay dengan WemosD1 mini atau dengan Node MCU
Beberapa waktu yang lalu saya pernah posting mengenai cara setting arduino IDE untuk WEMOS D1 mini kali ini saya akan mencoba share cara membuat webserver dengan Wemos D1 mini untuk mengendalikan 5 relay sekaligus, dalam sebuah webpage. Yang harus dipersiapkan adalah board Wemos D1 mini, Arduino IDE yang sudah di set agar support ESP8266. Berikut langkah langkahnya:
1. Pastikan Library berikut ini telah tersedia, karena saya menggunakan ESP8266 core 2.1.0 library
berikut ini telah tersedia, berikut adalah library yang dibutuhkan :
- <ESP8266WiFi.h>
- <ESP8266WebServer.h>
- <ESP8266mDNS.h>
2. Kemudian anda bisa mengisikan kode program seperti berikut ini pada sketch anda :
/********* Created by: Cahyo Hertanto For : Secureinstruments.blogspot.com *********/ #include <ESP8266WiFi.h> #include <ESP8266WebServer.h> #include <ESP8266mDNS.h> MDNSResponder mdns; // Replace with your network credentials const char* ssid = "Your'e ROUTER SSID"; const char* password = "Your'e Router Password"; const int led = LED_BUILTIN; // Declaring pin WemosD1 mini/node MCU pin int gpio0Pin = 0; int gpio2Pin = 2; int gpio3Pin = 4; int gpio4Pin = 5; int gpio5Pin = 13; ESP8266WebServer server(80); String webPage = ""; void setup(void) { webPage += "<h1>ESP8266 Relay Control</h1><p>Relay 1 <a href=\"pin=ON1\"><button>ON</button></a> <a href=\"pin=OFF1\"><button>OFF</button></a></p>"; webPage += "<p>Relay 2 <a href=\"pin=ON2\"><button>ON</button></a> <a href=\"pin=OFF2\"><button>OFF</button></a></p>"; webPage += "<p>Relay 3 <a href=\"pin=ON3\"><button>ON</button></a> <a href=\"pin=OFF3\"><button>OFF</button></a></p>"; webPage += "<p>Relay 4 <a href=\"pin=ON4\"><button>ON</button></a> <a href=\"pin=OFF4\"><button>OFF</button></a></p>"; webPage += "<p>Relay 5 <a href=\"pin=ON5\"><button>ON</button></a> <a href=\"pin=OFF5\"><button>OFF</button></a></p>"; // Set Default state of Pin pinMode(gpio0Pin, OUTPUT); digitalWrite(gpio0Pin, LOW); pinMode(gpio2Pin, OUTPUT); digitalWrite(gpio2Pin, LOW); pinMode(gpio3Pin, OUTPUT); digitalWrite(gpio3Pin, LOW); pinMode(gpio4Pin, OUTPUT); digitalWrite(gpio4Pin, LOW); pinMode(gpio5Pin, OUTPUT); digitalWrite(gpio5Pin, LOW); // Set bautrate for serial comm Serial.begin(115200); WiFi.begin(ssid, password); Serial.println(""); delay(500); Serial.println("Try to Connect Into AP"); Serial.println(""); delay(500); // Wait for connection while (WiFi.status() != WL_CONNECTED) { digitalWrite(led, 1); delay(100); digitalWrite(led, 0); } Serial.println(""); Serial.print("Connected to "); Serial.println(ssid); Serial.print("IP address: "); Serial.println(WiFi.localIP()); if (mdns.begin("esp8266", WiFi.localIP())) { Serial.println("MDNS responder started"); } server.on("/", []() { server.send(200, "text/html", webPage); }); server.on("/pin=ON1", []() { server.send(200, "text/html", webPage); Serial.println("GPIO0 = HIGH"); digitalWrite(gpio0Pin, HIGH); delay(1000); }); server.on("/pin=OFF1", []() { server.send(200, "text/html", webPage); Serial.println("GPIO0 = LOW"); digitalWrite(gpio0Pin, LOW); delay(1000); }); server.on("/pin=ON2", []() { server.send(200, "text/html", webPage); Serial.println("GPIO2 = HIGH"); digitalWrite(gpio2Pin, HIGH); delay(1000); }); server.on("/pin=OFF2", []() { server.send(200, "text/html", webPage); Serial.println("GPIO2 = LOW"); digitalWrite(gpio2Pin, LOW); delay(1000); }); server.on("/pin=ON3", []() { server.send(200, "text/html", webPage); Serial.println("GPIO3 = High"); digitalWrite(gpio3Pin, HIGH); delay(1000); }); server.on("/pin=OFF3", []() { server.send(200, "text/html", webPage); Serial.println("GPIO3 = LOW"); digitalWrite(gpio3Pin, LOW); delay(1000); }); server.on("/pin=ON4", []() { server.send(200, "text/html", webPage); Serial.println("GPIO4 = High"); digitalWrite(gpio4Pin, HIGH); delay(1000); }); server.on("/pin=OFF4", []() { server.send(200, "text/html", webPage); Serial.println("GPIO4 = LOW"); digitalWrite(gpio4Pin, LOW); delay(1000); }); server.on("/pin=ON5", []() { server.send(200, "text/html", webPage); Serial.println("GPIO5 = High"); digitalWrite(gpio5Pin, HIGH); delay(1000); }); server.on("/pin=OFF5", []() { server.send(200, "text/html", webPage); Serial.println("GPIO5 = LOW"); digitalWrite(gpio5Pin, LOW); delay(1000); }); server.begin(); Serial.println("Server is Ready"); } void loop(void) { server.handleClient(); } |
3. Anda bisa mencoba mengcompile serta mengupload kode program tersebut ke board yang anda miliki dan jangan lupa pengaturan jenis board dan port dimana board anda terhubung pada setting arduino IDE
4. Jika telah di upload buka serial monitor pada Arduino IDE dan reset board yang anda miliki untuk melihat local ip yang didapat oleh ESP8266 setelah melakukan koneksi dengn wireless router.
5. Buka webbrowser, jika board yang anda pergunakan dan ketikkan local ip yang terbaca pada serial monitor Arduino IDE pada alamat url sehingga akan tampil seperti berikut ini :
6. Untuk anda pengguna WEMOS D1 mini atau node MCU anda dapat menekan tombol ON pada Relay no2. hal ini dikarenakan builtin led pada kedua board tersebut aktif LOW untuk menghasilkan sebaliknya anda dapat mengubah program pada bagian relay2 kondisi ON nilai outputnya menjadi LOW dan sebaliknya pada kondisi OFF.
Anda dapat menguji pin yang lain dengan menggunakan breadboard dan led untuk mengetahui keluaran pin yang lainnya.
Semoga bermanfaat.
4. Jika telah di upload buka serial monitor pada Arduino IDE dan reset board yang anda miliki untuk melihat local ip yang didapat oleh ESP8266 setelah melakukan koneksi dengn wireless router.
5. Buka webbrowser, jika board yang anda pergunakan dan ketikkan local ip yang terbaca pada serial monitor Arduino IDE pada alamat url sehingga akan tampil seperti berikut ini :
6. Untuk anda pengguna WEMOS D1 mini atau node MCU anda dapat menekan tombol ON pada Relay no2. hal ini dikarenakan builtin led pada kedua board tersebut aktif LOW untuk menghasilkan sebaliknya anda dapat mengubah program pada bagian relay2 kondisi ON nilai outputnya menjadi LOW dan sebaliknya pada kondisi OFF.
Anda dapat menguji pin yang lain dengan menggunakan breadboard dan led untuk mengetahui keluaran pin yang lainnya.
Semoga bermanfaat.
Control 5 Relay dengan WemosD1 mini atau dengan Node MCU
Reviewed by cahyohertanto
on
July 11, 2017
Rating:
No comments: