NodeMCU V3 ESP8266: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
Line 274: Line 274:
* [https://gist.github.com/igrr/0da0c4adc7588d9bd911  WebServer Custom Handler]
* [https://gist.github.com/igrr/0da0c4adc7588d9bd911  WebServer Custom Handler]
* [https://circuits4you.com/2018/02/02/esp8266-handle-not-found-pages-and-redirect Handle Page Not Found]
* [https://circuits4you.com/2018/02/02/esp8266-handle-not-found-pages-and-redirect Handle Page Not Found]
* [https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WebServer ESP8266WebServer]
* [https://www.cs.fsu.edu/~myers/c++/notes/references.html Pass By Reference]
* [https://www.cs.fsu.edu/~myers/c++/notes/references.html Pass By Reference]
* [https://randomnerdtutorials.com/esp8266-web-server/ WiFi Client Server]
* [https://randomnerdtutorials.com/esp8266-web-server/ WiFi Client Server]


|}
|}

Revision as of 20:34, 24 March 2020

WiFi Modes of Operation of ESP8266: There are three modes of WiFi Operation in the ESP8266 WiFi Module. Those are:

  1. Station Mode (STA)
  2. Soft Access Point (AP)
  3. Soft AP + Station

Station Mode

Only Access Point

#include "ESP8266WiFi.h"

const char* ssid = "ChorkeOrg_2.4GHz";
const char* pass = "academia";

void setup(void) {
  pinMode(D4, OUTPUT);
  Serial.begin(115200);
  WiFi.begin(ssid, pass);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print("*");
  }

  Serial.println("");
  Serial.println("WiFi connection Successful");
  Serial.print("The IP Address of ESP8266 Module is: ");
  Serial.print(WiFi.localIP());
}

void loop() {
  digitalWrite(D4, LOW);
  delay(1000);
  digitalWrite(D4, HIGH);
  delay(1000);
}

Multi Access Point

#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>

const char* ap0_ssid_50 = "ChorkeOrg";
const char* ap0_pasword = "chorke@bd/0A";
const char* ap0_ssid_24 = "ChorkeOrg_2.4GHz";

ESP8266WiFiMulti multi;

void setup(void) {
  pinMode(D4, OUTPUT);
  Serial.begin(115200);

  delay(10);
  Serial.println('\n');
  multi.addAP(ap0_ssid_24, ap0_pasword);
  multi.addAP(ap0_ssid_50, ap0_pasword);

  Serial.print("Connecting : ");
  while (multi.run() != WL_CONNECTED) {
    delay(500);
    Serial.print('>');
  }
  Serial.println('\n');
  Serial.print("Connected to: ");
  Serial.println(WiFi.SSID());
  Serial.print("IP address  : ");
  Serial.println(WiFi.localIP());
}

void loop() {
  digitalWrite(D4, LOW);
  delay(1000);
  digitalWrite(D4, HIGH);
  delay(1000);
}

Soft Access Point

#include "ESP8266WiFi.h"

const char* ssid = "ChorkeIot_2.4GHz";
const char* pass = "academia";

IPAddress local_IP(10, 10, 10, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress gateway(10, 10, 10, 1);

void setup(void) {
  pinMode(D4, OUTPUT);
  Serial.begin(115200);
  Serial.println();

  Serial.print("WNC Config: ");
  Serial.print(WiFi.softAPConfig(local_IP, gateway, subnet) ? "Ready" : "Failed!");

  Serial.println("SID Config: ");
  Serial.print(WiFi.softAP(ssid, pass) ? "Ready" : "Failed!");

  Serial.println("WAN Config: ");
  Serial.print(WiFi.softAPIP());
}

void loop() {
  digitalWrite(D4, LOW);
  delay(1000);
  digitalWrite(D4, HIGH);
  delay(1000);
}

Duel Mode

#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <ESP8266WiFiMulti.h>

const char* ssid = "ChorkeIot_2.4GHz";
const char* pass = "academia";

const char* ap0_ssid_50 = "ChorkeOrg";
const char* ap0_pasword = "chorke@bd/0A";
const char* ap0_ssid_24 = "ChorkeOrg_2.4GHz";

ESP8266WiFiMulti multi;

void setup(void) {
  pinMode(D4, OUTPUT);
  Serial.begin(115200);

  delay(10);
  Serial.println('\n');
  multi.addAP(ap0_ssid_24, ap0_pasword);
  multi.addAP(ap0_ssid_50, ap0_pasword);

  Serial.print("Connecting: ");
  while (multi.run() != WL_CONNECTED) {
    delay(500);
    Serial.print('>');
  }
  Serial.println('\n');
  Serial.print("Connected : ");
  Serial.println(WiFi.SSID());
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  if (MDNS.begin("esp8266")) {
    Serial.println("DNS OK!");
  }

  Serial.print("WNC Config: ");
  Serial.println(WiFi.softAPConfig(WiFi.localIP(), WiFi.gatewayIP(), WiFi.subnetMask()) ? "Ready" : "Failed!");

  Serial.print("SID Config: ");
  Serial.println(WiFi.softAP(ssid, pass) ? "Ready" : "Failed!");

  Serial.print("WAN Config: ");
  Serial.println(WiFi.softAPIP());
}

void loop() {
  digitalWrite(D4, LOW);
  delay(1000);
  digitalWrite(D4, HIGH);
  delay(1000);
}

Web Server

#include <WiFiClient.h>
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266WebServer.h>

const char* ssid = "ChorkeIot_2.4GHz";
const char* pass = "academia";

const char* ap0_ssid_50 = "ChorkeOrg";
const char* ap0_pasword = "chorke@bd/0A";
const char* ap0_ssid_24 = "ChorkeOrg_2.4GHz";

ESP8266WiFiMulti multi;
ESP8266WebServer server(80);

void handleRoot();
void handleNotFound();

void setup(void) {
  pinMode(D4, OUTPUT);
  Serial.begin(115200);

  delay(10);
  Serial.println('\n');
  multi.addAP(ap0_ssid_24, ap0_pasword);
  multi.addAP(ap0_ssid_50, ap0_pasword);

  Serial.print("Connecting: ");
  while (multi.run() != WL_CONNECTED) {
    delay(500);
    Serial.print('>');
  }
  Serial.println('\n');
  Serial.print("Connected : ");
  Serial.println(WiFi.SSID());
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  if (MDNS.begin("esp8266")) {
    Serial.println("DNS OK!");
  }

  server.on("/", handleRoot);
  server.onNotFound(handleNotFound);
  server.begin();
  Serial.println("HTTP server started");

  Serial.print("WNC Config: ");
  Serial.println(WiFi.softAPConfig(WiFi.localIP(), WiFi.gatewayIP(), WiFi.subnetMask()) ? "Ready" : "Failed!");

  Serial.print("SID Config: ");
  Serial.println(WiFi.softAP(ssid, pass) ? "Ready" : "Failed!");

  Serial.print("WAN Config: ");
  Serial.println(WiFi.softAPIP());
}

void loop() {
  server.handleClient();
  digitalWrite(D4, LOW);
  delay(1000);
  digitalWrite(D4, HIGH);
  delay(1000);
}

void handleRoot() {
  server.send(200, "text/plain", "Hello, Acadmeian!");
}

void handleNotFound() {
  server.send(404, "text/plain", "404: Not found");
}

References