LED vezérlése webszerveren keresztül
by Roboworld Hobbielektronika
Ebben a rövid leckében megismerkedünk, hogy NodeMcu-val, hogyan tudunk LED-et vezérelni vezetéknélküli hálózaton keresztül. A kommunikáció kulcsa az a webszerver, amely az előző leckében már említésre került.
Ehhez a leckéhez szükség van az ESP8266 toolkitre amelyenek a telepítéséről az első lecke szól.
Hardware:
vagy,
vagy,
Kapcsolási rajz
Fontos megjegyezni, hogy bár az ábra alapján a D1-es pinre csatlakoztatjuk a LED lábát, azonban a mintakódban ez GPIO5 jelent.
A lentebbi mintakód elején látni, hogy 3 db headert használunk. Ezek a könyvtárak már instalálásra kerültek miután az ESP8266 toolkitet telepítettük.
Néhány megjegyzés a mintakóddal kapcsolatban:
- A 6-7. sorban található WIFI SSID és Password (jelszó). A saját vezetéknélküli hálózatod nevét és jelszavát bekell oda írnod.
- A sting page tartalmazza a webszerverünk HTML kódját. A weboldalt megnyitva két nyomógomb látható. Ezzel tudjuk kapcsolgatni ki és be a LED-et
- A LED a D1-es pinre van csatlakoztatva
A mintakódot töltsd fel a NodeMCU-ra majd nyisd meg a Serial Monitort az Arduino IDE-ben. Valami ilyesmit kell látnod:
Ha ez fogad akkor az annyit jelent, hogy a NodeMCU sikeresen csatlakozott az otthoni hálózatodhoz és a webszerver sikeresen elindult. (A példa IP: 192.168.1.7)
Ott láthatod az IP címet, amelyet kimásolva és beillesztve a böngészőbe ( Mozilla Firefox, Google Chrome) eléred a weboldalt ahonnan vezérelni lehet a LED-et.
Az IP címet beírva a böngészőbe valami ilyesmit kell látnod:
Az ON gombra kattintva a LED bekapcsol, az OFF-ra kattintva pedig ki.
Mintakód:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
const char* ssid = "Roboworld.hu";//Írd át a te vezetéknélküli hálózatod nevére
const char* password ="987654321"; //Írd át a te vezetéknélküli hálózatod jelszavára
ESP8266WebServer server(80); // server port 80 (http port)
String page = "";
int LEDPin = 5;
void setup(void){
//A HTML kódja a weblapnak
page="<h1>Egyszeru NodeMCU Webszerver</h1><p><a href=\"LEDOn\"><button>ON</button></a> <a href=\"LEDOff\"><button>OFF</button></a></p>";
//make the LED pin output and initially turned off
pinMode(LEDPin, OUTPUT);
digitalWrite(LEDPin, LOW);
delay(1000);
Serial.begin(115200);
WiFi.begin(ssid, password); // WiFi csatlakozás kezdete
Serial.println("");
//Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Csatlakozva a(z) ");
Serial.println(ssid);
Serial.print("IP cim: ");
Serial.println(WiFi.localIP());
server.on("/", [](){
server.send(200, "text/html", page);
});
server.on("/LEDOn", [](){
server.send(200,"text/html", page);
digitalWrite(LEDPin, HIGH);
delay(1000);
});
server.on("/LEDOff", [](){
server.send(200, "text/html", page);
digitalWrite(LEDPin, LOW);
delay(1000);
});
server.begin();
Serial.println("Web server elindult!");
}
void loop(void){
server.handleClient();
}
LetöltésA leírás PDF-ben itt elérhető
A mintakód innen letölthető
Megjegyzések
Megjegyzés küldése