Minggu : ke-3
Praktek : NodeMCU sebagai client dan acces point wifi dengan 1 LED
--------------------------------------------------------------------------------------------------------------------------------------
Install nodemcu
1. File -> preferences
Masukkan url : http://arduino.esp8266.com/stable/package_esp8266com_index.json
2. Ikuti
3. Search ini
4. Masukan Kode
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
ESP8266WebServer server(80);
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.println("");
Serial.print(".");
delay(500);
Serial.println("");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
pinMode(13, OUTPUT);
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
ESP8266WebServer server(80);
void setup() {
Serial.begin(115200);
// memulai koneksi wiFi NodeMCU ke Akses Poin
WiFi.begin(ssid, password);
Serial.println("");
while (WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.println("terkoneksi dengan API");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
void handleOnConnect(){
Serial.println("web root");
}
void handleLedOn(){
Serial.println("LED menyala!");
}
void handleLedOff(){
Serial.println("LED mati");
}
void handleNotFound(){
Serial.println("Alamat web tidak ada");
}
void loop() {
server.handleClient();
digitalWrite(13, HIGH);
// turn the LED on
delay(1000);
digitalWrite(13, LOW);
// turn the LED off
delay(1000);
}
ESP8266WebServer server(80);
void setup() {
Serial.begin(115200);
// memulai koneksi wiFi NodeMCU ke Akses Poin
WiFi.begin(ssid, password);
Serial.println("");
while (WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.println("terkoneksi dengan API");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
void handleOnConnect(){
Serial.println("web root");
server.send(200, "text/plain", "web root");
}
void handleLedOn(){
Serial.println("LED menyala!");
server.send(200, "text/plain", "LED menyala");
}
void handleLedOff(){
Serial.println("LED mati");
server.send(200, "text/plain", "LED mati");
}
void handleNotFound(){
Serial.println("Alamat web tidak ada");
server.send(404, "text/plain", "Alamat web tidak ketemu");
}
void loop() {
server.handleClient();
digitalWrite(13, HIGH);
// turn the LED on
delay(1000);
digitalWrite(13, LOW);
// turn the LED off
delay(1000);
}
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
ESP8266WebServer server(80);
void setup() {
Serial.begin(115200);
// memulai koneksi wiFi NodeMCU ke Akses Poin
WiFi.begin(ssid, password);
Serial.println("");
while (WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.println("terkoneksi dengan API");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
void handleOnConnect(){
LEDStatus = LOW;
Serial.println("web root");
server.send(200, "text/html", tampilkanHTML());
}
void handleLedOn(){
LEDStatus = HIGH;
Serial.println("LED menyala!");
server.send(200, "text/html",tampilkanHTML());
}
void handleLedOff(){
LEDStatus = LOW;
Serial.println("LED mati");
server.send(200, "text/html", tampilkanHTML());
}
void handleNotFound(){
Serial.println("Alamat web tidak ada");
server.send(404, "text/plain", "Alamat web tidak ketemu");
}
// digitalWrite(13, HIGH);
// // turn the LED on
// delay(1000);
// digitalWrite(13, LOW);
// // turn the LED off
// delay(1000);
}
15. Hasil
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
ESP8266WebServer server(80);
void setup() {
Serial.begin(115200);
// memulai koneksi wiFi NodeMCU ke Akses Poin
WiFi.begin(ssid, password);
Serial.println("");
while (WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.println("terkoneksi dengan API");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
void handleOnConnect(){
LEDStatus = LOW;
Serial.println("web root");
server.send(200, "text/html", tampilkanHTML());
}
void handleLedOn(){
LEDStatus = HIGH;
Serial.println("LED menyala!");
server.send(200, "text/html",tampilkanHTML());
}
void handleLedOff(){
LEDStatus = LOW;
Serial.println("LED mati");
server.send(200, "text/html", tampilkanHTML());
}
void handleNotFound(){
Serial.println("Alamat web tidak ada");
server.send(404, "text/plain", "Alamat web tidak ketemu");
}
String tampilkanHTML (){
String ptr = "<!DOCTYPE html> <html>\n";
ptr +="<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0,
user-scalable=no\">\n";
ptr +="<title>Mengontrol LED</title>\n";
ptr +="<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-
align: center;}\n";
ptr +="body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;} h3 {color:
#444444;margin-bottom: 50px;}\n";
ptr +=".button {display: block;width: 80px;background-color: #1abc9c;border: none;color:
white;padding: 13px 30px;text-decoration: none;font-size: 25px;margin: 0px auto
35px;cursor: pointer;border-radius: 4px;}\n";
ptr +=".button-on {background-color: #1abc9c;}\n";
ptr +=".button-on:active {background-color: #16a085;}\n";
ptr +=".button-off {background-color: #34495e;}\n";
ptr +=".button-off:active {background-color: #2c3e50;}\n";
ptr +="p {font-size: 14px;color: #888;margin-bottom: 10px;}\n";
ptr +="</style>\n";
ptr +="</head>\n";
ptr +="<body>\n";
ptr +="<h1>ESP8266 Web Server</h1>\n";
ptr +="<h3>Menggunakan Mode Station (STA)</h3>\n";
if(LEDStatus){
{ptr +="<p>Status LED: ON</p><a class=\"button button-off\"
href=\"/ledoff\">OFF</a>\n";}
}else{
{ptr +="<p>Status LED: OFF</p><a class=\"button button-on\" href=\"/ledon\">ON</a>\
n";}
}
ptr +="</body>\n";
ptr +="</html>\n";
return ptr;
}
void loop() {
server.handleClient();
digitalWrite(13, LEDStatus);
// digitalWrite(13, HIGH);
// // turn the LED on
// delay(1000);
// digitalWrite(13, LOW);
// // turn the LED off
// delay(1000);
}
17. Hasil
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
IPAddress local_ip(192,168,1,1);
IPAddress gateway (192, 168, 1, 1);
IPAddress subnet (255, 255, 255, 0);
ESP8266WebServer server(80);
void setup() {
//sebagai access point
Serial.begin(115200);
WiFi.softAP(ssid, password);
WiFi.softAPConfig(local_ip, gateway, subnet);
Serial.println("");
Serial.println("terkoneksi dengan API");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
void handleOnConnect(){
LEDStatus = LOW;
Serial.println("web root");
server.send(200, "text/html", tampilkanHTML());
}
void handleLedOn(){
LEDStatus = HIGH;
Serial.println("LED menyala!");
server.send(200, "text/html",tampilkanHTML());
}
void handleLedOff(){
LEDStatus = LOW;
Serial.println("LED mati");
server.send(200, "text/html", tampilkanHTML());
}
void handleNotFound(){
Serial.println("Alamat web tidak ada");
server.send(404, "text/plain", "Alamat web tidak ketemu");
}
return ptr;
}
void loop() {
server.handleClient();
digitalWrite(13, LEDStatus);
// digitalWrite(13, HIGH);
// // turn the LED on
// delay(1000);
// digitalWrite(13, LOW);
// // turn the LED off
// delay(1000);
}
2. Hasil
TAMBAH 2 LED
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
IPAddress local_ip(192,168,1,1);
IPAddress gateway (192, 168, 1, 1);
IPAddress subnet (255, 255, 255, 0);
ESP8266WebServer server(80);
server.on("/", handleOnConnect);
server.on("/led1-on", handleLed1On);
server.on("/led1-off", handleLed1Off);
server.on("/led2-on", handleLed2On);
server.on("/led2-off", handleLed2Off);
server.onNotFound(handleNotFound);
server.begin();
Serial.println("Web Service dimulai!");
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}
void handleOnConnect() {
Serial.println("Web root");
LED1Status = LOW;
LED2Status = LOW;
server.send(200, "text/html", tampilkanHTML());
}
void handleLed1On() {
Serial.println("LED menyala!");
LED1Status = HIGH;
server.send(200, "text/html", tampilkanHTML());
}
void handleLed1Off() {
Serial.println("LED mati!");
LED1Status = LOW;
server.send(200, "text/html", tampilkanHTML());
}
void handleLed2On() {
Serial.println("LED menyala!");
LED2Status = HIGH;
server.send(200, "text/html", tampilkanHTML());
}
void handleLed2Off() {
Serial.println("LED mati!");
LED2Status = LOW;
server.send(200, "text/html", tampilkanHTML());
}
void handleNotFound() {
Serial.println("Alamat tidak ditemukan!");
server.send(404, "text/plain", "Address is Not Found");
}
String tampilkanHTML() {
String ptr = "<!DOCTYPE html> <html>\n";
ptr +="<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0,
user-scalable=no\">\n";
ptr +="<title>Mengontrol LED</title>\n";
ptr +="<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-
align: center;}\n";
ptr +="body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;} h3 {color:
#444444;margin-bottom: 50px;}\n";
ptr +=".button {display: block;width: 80px;background-color: #1abc9c;border: none;color:
white;padding: 13px 30px;text-decoration: none;font-size: 25px;margin: 0px auto
35px;cursor: pointer;border-radius: 4px;}\n";
ptr +=".button-on {background-color: #1abc9c;}\n";
ptr +=".button-on:active {background-color: #16a085;}\n";
ptr +=".button-off {background-color: #34495e;}\n";
ptr +=".button-off:active {background-color: #2c3e50;}\n";
ptr +="p {font-size: 14px;color: #888;margin-bottom: 10px;}\n";
ptr +="</style>\n";
ptr +="</head>\n";
ptr +="<body>\n";
ptr +="<h1>ESP8266 Web Server</h1>\n";
ptr +="<h3>Menggunakan Mode Station (STA)</h3>\n";
if(LED1Status){
{ptr +="<p>Status LED 1: ON</p><a class=\"button button-off\" href=\"/led1-
off\">OFF</a>\n";}
}else{
{ptr +="<p>Status LED 1: OFF</p><a class=\"button button-on\" href=\"/led1-
on\">ON</a>\n";}
}
if(LED2Status){
{ptr +="<p>Status LED 2: ON</p><a class=\"button button-off\" href=\"/led2-
off\">OFF</a>\n";}
}else{
{ptr +="<p>Status LED 2: OFF</p><a class=\"button button-on\" href=\"/led2-
on\">ON</a>\n";}
}
ptr +="</body>\n";
ptr +="</html>\n";
return ptr;
}
void loop() {
server.handleClient();
digitalWrite(led1, LED1Status);
digitalWrite(led2, LED2Status);
}
HASIL