ну это совсем просто
создаешь кнопку,при нажатии контроллеру отправляется запрос,его нужно распарсить и выполнить требуемое
для кнопки можно обработать событие ONCLICK,либо традиционным способом
<form action="demo.cgi" method="get">
<button type="submit" value="Submit">Отправить</button>
</form>
вот сам парсер
void parseRequest(EthernetClient cl) {
allowMarkers = false;
// index request
if (StrContains(HTTP_req, "GET / ") || StrContains(HTTP_req, "GET /index.htm")) {
if (openIndexFile(partSuffix(currentDesign))) {sendHtmlAnswer(cl);} else {webFile = SD.open(F("404.htm"));}
allowMarkers = true;
}
else if (StrContains(HTTP_req, GET)) {
// files requests
if (StrContains(HTTP_req, HTM_EXT)) {if (openWebFile()) {sendHtmlAnswer(cl);} else {webFile = SD.open(F("404.htm"));} allowMarkers = true;}
else if (StrContains(HTTP_req, ".css")) {if (openWebFile()) {sendCssAnswer(cl);} else {sendErrorAnswer("", cl);}}
else if (StrContains(HTTP_req, ".js")) {if (openWebFile()) {sendJsAnswer(cl);} else {sendErrorAnswer("", cl);}}
else if (StrContains(HTTP_req, ".pde")) {if (openWebFile()) {sendJsAnswer(cl);} else {sendErrorAnswer("", cl);}}
else if (StrContains(HTTP_req, ".png")) {if (openWebFile()) {sendPngAnswer(cl);} else {sendErrorAnswer("", cl);}}
else if (StrContains(HTTP_req, ".jpg")) {if (openWebFile()) {sendJpgAnswer(cl);} else {sendErrorAnswer("", cl);}}
else if (StrContains(HTTP_req, ".gif")) {if (openWebFile()) {sendGifAnswer(cl);} else {sendErrorAnswer("", cl);}}
else if (StrContains(HTTP_req, ".ico")) {if (openWebFile()) {sendIcoAnswer(cl);} else {sendErrorAnswer("", cl);}}
// Ajax requests
else if (StrContains(HTTP_req, "request_dash")) {sendXmlAnswer(cl); checkPage(); responseDash(cl);}
else if (StrContains(HTTP_req, "request_generic")) {sendXmlAnswer(cl); setLeds(); responseGeneric(cl);}
else if (StrContains(HTTP_req, "request_settings")){sendXmlAnswer(cl); setSettings(); responseSettings(cl);}
else if (StrContains(HTTP_req, "request_themes")) {sendXmlAnswer(cl); setTheme(); responseThemes(cl);}
else if (StrContains(HTTP_req, "request_control")) {sendXmlAnswer(cl); setControl(); responseControl(cl);}
else if (StrContains(HTTP_req, "request_noo")) {sendXmlAnswer(cl); setNoo(); responseNoo(cl);}
else if (StrContains(HTTP_req, "request_mr1132")) {sendXmlAnswer(cl); setMr1132(); responseMr1132(cl);}
else if (StrContains(HTTP_req, "req_el_control")) {sendXmlAnswer(cl); setElectroCtrl(); responseElectroCtrl(cl);}
else if (StrContains(HTTP_req, "req_el_freq")) {sendXmlAnswer(cl); checkOscill(); responseElectroFreq(cl);}
else if (StrContains(HTTP_req, "request_sdcard")) {sendXmlAnswer(cl); responseSd(cl);}
else if (StrContains(HTTP_req, "request_network")) {sendXmlAnswer(cl); responseNetwork(cl);}
else if (StrContains(HTTP_req, "request_nrf24")) {sendXmlAnswer(cl); responseNrf24(cl);}
} // else if (StrContains(HTTP_req, GET))
} // parseRequest ( )