Keamanan yg canggih merupakan sebuah keniscayaan di jaman serba digital, didukung oleh semakin terjangkaunya modul-modul kontrol digital siap pakai. Pada seri tulisan kali ini akan dibahas secara mendalam mengenai perancangan sistem kunci digital berbasis ESP8266 - yg merupakan modul favorit kesukaan para pencipta mikrokontroler AVR 8 bit dengan keunggulan modul wifi siap pakai.
Praktek kali ini merupakan penggabungan dari berbagai library dari hardware esp8266 yg bisa anda pakai langsung atau dalam modul kit development yg bisa nda pilih seperti node mcu, wemoz, esp32 dan sebagainya. Untuk versi yang saya kembangkan meliputi bahasan seperti berikut :
- EspAsyncWebserver ( dari Me-No-Dev )
Merupakan librari popular dan sangat ampuh untuk membuat Async HTTP dan WebSocket Server pada ESP8266 Arduino. Dengan library ini memudahkan pekerjaan server yg bekerja diluar loop utama sehingga handal dalam melayani akses dari beberapa user secara bersama.
Contoh yg saya gunakan seperti pembuatan form sederhana dibawah ini, dimana wemos d1 saya berfungsi sebagai SoftAP
#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <WiFiClient.h>
AsyncWebServer server(80);
const char* PARAM_INPUT = "input";
const char *ssid = "coba";
const char* password = "sayamencoba";
String SendHTML()
{
String ptr = " <!DOCTYPE HTML><html><head> ";
ptr +="<title>CONTOH INPUTAN</title> ";
ptr +="<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"> ";
ptr +=" </head><body> ";
ptr +=" Masukkan Sesuatu disini ";
ptr +=" <br> ";
ptr +="<form action=\"/get\"> ";
ptr +=" Challenge: <input type=\"text\" name=\"input\"> ";
ptr +=" <input type=\"submit\" value=\"Submit\"> ";
ptr +="</form><br><br>";
ptr +="</body> ";
ptr +="</html> ";
return ptr;
}
void notFound(AsyncWebServerRequest *request) {
request->send(404, "text/plain", "Not found");
}
void setup(){
Serial.begin(9600);
WiFi.softAP(ssid, password );//AP
IPAddress apip = WiFi.softAPIP(); //alamat IP
Serial.print("Hubungkan wifi dan buka : \n"); //menuliskan alamat IP yang bisa dikunjungi
Serial.println(apip);
// Send web page dengan inputan berupa text
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(200, "text/html", SendHTML() );
});
// Send a GET request to <ESP_IP>/get?input=<inputMessage>
server.on("/get", HTTP_GET, [] (AsyncWebServerRequest *request) {
String inputMessage;
String inputParam;
// GET input1 value on <ESP_IP>/get?input=<inputMessage>
if (request->hasParam(PARAM_INPUT) ) {
inputMessage = request->getParam(PARAM_INPUT)->value();
inputParam = PARAM_INPUT;
}
else {
inputMessage = "No challenge ";
inputParam = "none";
}
Serial.print("param : ");
Serial.println(inputParam );
Serial.print("pesan : ");
Serial.println(inputMessage);
request->send(200, "text/html", "Dikirm dengan Param ("
+ inputParam + ") dengan pesan : " + inputMessage +
"<br><a href=\"/\">Return to Home Page</a>");
});
server.onNotFound(notFound);
server.begin();
}
void loop() {
// kosong
}
0 komentar:
Posting Komentar