ESP8266 Static IP Address Using Arduino Example
In this tutorial we will learn how to use static IP address for ESP8266/NodeMCU. We learn with a LED on off control tutorial with simple web server with static IP to our ESP. Follow given below steps. If you are not familiar with Arduino IDE, Visit This : Arduino Support for ESP8266 with simple test code
1- Required Header files
#include <ESP8266WiFi.h> #include <WiFiClient.h> //ESP Web Server Library to host a web page #include <ESP8266WebServer.h>
2- WiFi IP configuration variables
Define Device IP address, Gateway (i.e. wifi router ip), subnet mask and dns. You can get this information from your laptops WiFi connection details.
//Static IP address configuration IPAddress staticIP(192, 168, 43, 90); //ESP8266 static ip IPAddress gateway(192, 168, 43, 1); //IP Address of your WiFi Router (Gateway) IPAddress subnet(255, 255, 255, 0); //Subnet mask IPAddress dns(8, 8, 8, 8); //DNS const char* deviceName = "iotbyhvm.ooo";
3- Connecting to WiFi Router with Above Configuration
Static IP configuration can be applied to ESP using WiFi.config statement.
WiFi.config(staticIP, subnet, gateway, DNS)
Use this command before WiFi begin. WiFi.hostname is optional, it is used to give name to ESP8266 to identify in WiFi router.
WiFi.disconnect(); //Prevent connecting to wifi based on previous configuration WiFi.hostname(deviceName); // DHCP Hostname WiFi.config(staticIP, subnet, gateway, dns); WiFi.begin(ssid, password); WiFi.mode(WIFI_STA); //WiFi mode station (connect to wifi router only) // Wait for connection while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); }
Complete Code of ESP8266 Static IP Address
This code makes a NodeMCU as webserver and controls onboard LED using web interface.
Change the IP settings, SSID and Password as per your WiFi router and upload.
/* * ESP8266 NodeMCU LED Control over WiFi * Using Static IP Address for ESP8266/NodeMCU * https://iotbyhvm.ooo */ #include <ESP8266WiFi.h> #include <WiFiClient.h> //ESP Web Server Library to host a web page #include <ESP8266WebServer.h> //Our HTML webpage contents in program memory const char MAIN_page[] PROGMEM = R"=====( <!DOCTYPE html> <html> <body> <center> <h1>WiFi LED on off demo: 1</h1><br> Ciclk to turn <a href="ledOn">LED ON</a><br> Ciclk to turn <a href="ledOff">LED OFF</a><br> <hr> <a href="https://iotbyhvm.ooo">IoTbyHVM.OOO</a> </center> </body> </html> )====="; //Static IP address configuration IPAddress staticIP(192, 168, 43, 90); //ESP static IP address IPAddress gateway(192, 168, 43, 1); //IP Address of your WiFi Router (Gateway) IPAddress subnet(255, 255, 255, 0); //Subnet mask IPAddress dns(8, 8, 8, 8); //DNS const char* deviceName = "iotbyhvm.ooo"; //On board LED Connected to GPIO2 #define LED 2 //SSID and Password of your WiFi router const char* ssid = "yourssid"; const char* password = "yourpassword"; //Declare a global object variable from the ESP8266WebServer class. ESP8266WebServer server(80); //Server on port 80 //=============================================================== // This routine is executed when you open its IP in browser //=============================================================== void handleRoot() { Serial.println("You called root page"); String s = MAIN_page; //Read HTML contents server.send(200, "text/html", s); //Send web page } void handleLEDon() { Serial.println("LED on page"); digitalWrite(LED,LOW); //LED is connected in reverse server.send(200, "text/html", "LED is ON"); //Send ADC value only to client ajax request } void handleLEDoff() { Serial.println("LED off page"); digitalWrite(LED,HIGH); //LED off server.send(200, "text/html", "LED is OFF"); //Send ADC value only to client ajax request } //============================================================== // SETUP //============================================================== void setup(void){ Serial.begin(115200); WiFi.begin(ssid, password); //Connect to your WiFi router Serial.println(""); //Onboard LED port Direction output pinMode(LED,OUTPUT); //Power on LED state off digitalWrite(LED,HIGH); WiFi.disconnect(); //Prevent connecting to wifi based on previous configuration WiFi.hostname(deviceName); // DHCP Hostname WiFi.config(staticIP, subnet, gateway, dns); WiFi.begin(ssid, password); WiFi.mode(WIFI_STA); //WiFi mode station (connect to wifi router only) // Wait for connection while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } //If connection successful show IP address in serial monitor Serial.println(""); Serial.print("Connected to "); Serial.println(ssid); Serial.print("IP address: "); Serial.println(WiFi.localIP()); //IP address assigned to your ESP server.on("/", handleRoot); //Which routine to handle at root location. This is display page server.on("/ledOn", handleLEDon); //as Per <a href="ledOn">, Subroutine to be called server.on("/ledOff", handleLEDoff); server.begin(); //Start server Serial.println("HTTP server started"); } //============================================================== // LOOP //============================================================== void loop(void){ server.handleClient(); //Handle client requests }
Upload this code and observer serial monitor.
In this tutorial we’ve shown you ESP8266 Static IP Address Using Arduino Example. Do you have any questions? Leave a comment down below!
Thanks for reading. If you like this post probably you might like my next ones, so please support me by subscribing my blog.
We have other tutorials with ESP32 that you may find useful:
- Dynamic WLAN configuration for ESP32 Board | AutoConnect
- ArduinoOTA ESP32: Wi-Fi (OTA) Wireless Update from the Arduino IDE
- ESP32 with LoRa using Arduino IDE
- How To Use Grove-LCD RGB Backlight with NodeMCU
- NodeMcu to DHT Interface in Blynk app
- How To ON/OFF a bulb by Google voice assistant
- Arduino IDE | Arduino | Open Source Hardware/Softawre | Arduino Vs RPi
- WiFi LoRA 32 (V2) ESP32 | Overview | Introduction
- DHT11 sensor with ESP8266/NodeMCU using Arduino IDE
- Arduino Support for ESP8266 with simple test code
You may like also:
- Raspberry Pi – Introduction | Overview | Setup and Management | Tutorials
- MQTT | What is MQTT | MQTT in Depth | QoS | FAQs | MQTT Introduction
- How to set up Windows 10 IoT Core on the Raspberry Pi
- Best IoT Visual Programming Tools
- Arduino ESP32 support on Windows and Ubuntu
Pingback: GPIO pins of ESP8266 and How to use efficiently -IoTbyHVM