NodeMcu- LED vezérlése webszerveren keresztül

LED vezérlése webszerveren keresztül

by Roboworld Hobbielektronika



Rövid leírás:

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>&nbsp;<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és
A leírás PDF-ben itt elérhető
A mintakód innen letölthető

Megjegyzések