Build an ESP8266 Web Server with Arduino IDE - Code and Schematics

Поделиться
HTML-код
  • Опубликовано: 13 июл 2024
  • For complete project details (schematics + source code), visit ► randomnerdtutorials.com/esp82...
    Like my page on Facebook:
    / randomnerdtutorials
    Add me on Google+:
    plus.google.com/+RuiSantosdotme
    Follow me on twitter:
    / ruisantosdotme
    Subscribe for more projects like this!
    bit.ly/subscribeRNT
  • НаукаНаука

Комментарии • 299

  • @RuiSantosdotme
    @RuiSantosdotme  6 лет назад +30

    You can always find the the schematics and source code at ► randomnerdtutorials.com/esp8266-web-server/

    • @MayckBernales
      @MayckBernales 6 лет назад

      Rui Santos. I need help, My router don't give me the ip address and the code is = to your code, naturaly whith my ip en pass, can you help me whith this please. Thank.

    • @ayanbhattacharjee2745
      @ayanbhattacharjee2745 5 лет назад

      thank you so much for making this video, but I want to know why doesn't the esp-01 code doesn't work once you unplug and then reconnect?

    • @suryachappidi3337
      @suryachappidi3337 5 лет назад

      i'm unable to install libraly can you give that library link seperatly through git hub

    • @allinone-nm6xl
      @allinone-nm6xl 4 года назад

      I cant control it from another router

    • @miodice3
      @miodice3 4 года назад

      Ayan Bhattacharjee i am pretty new to this but i think the IP address is assigned by the WiFi router, so when you reconnect it can be a different IP address than the original one

  • @ih4286
    @ih4286 2 года назад +9

    I don't think I've ever been this happy to see 2 LED's light up before😁 Thanks!

  • @b1tzmast3r
    @b1tzmast3r 5 лет назад +15

    so straightforward, clear and EXACTLY what I was looking for!! thank you!

  • @TheTubejunky
    @TheTubejunky 3 года назад +1

    I know this video is older but..
    VERY WELL EXPLAINED! I understood the code mostly but having you go through it in fragments was very much useful! Thank You sir!

  • @tonysicily2687
    @tonysicily2687 3 года назад +1

    Worked FIRST TIME, I am truly grateful, I can now ‘play’ with a piece of working code and change it to suit.
    Although I have been coding for many years, and have been building Arduino projects for the last 18 months, webservers and IoT scared me, a total black art. You demystified this, and gave me a chance to start on my own IoT projects.
    Thank you
    Next stage is to add images, to make it look nicer. 👍😀

  • @robertmontgomery4752
    @robertmontgomery4752 5 лет назад +1

    Excellent introduction to using a web server with the ESP8266. Clear and concise as a great starting point for other applications. Thank you!

  • @frohlichfridolin2274
    @frohlichfridolin2274 6 лет назад

    This is my first projekt with ESP8266 01. IT WORKS! THANK YOU very much. Im so happy!

  • @keithmacedo4083
    @keithmacedo4083 6 лет назад

    thank you so much!!!! I tried a lot of other codes and yours was the only one that worked with 4 leds.

  • @renatosantos1971
    @renatosantos1971 4 года назад

    Thank to friend Rui Santos for sharing this very well explained tutorial, which worked perfectly on both NodeMCU and ESP8266 01.

  • @AlphaScratchGaming
    @AlphaScratchGaming 2 года назад

    High quality tutorial, much appreciated.

  • @larsinsgd
    @larsinsgd 6 лет назад +7

    Very well explained. Thank you very much

  • @jjl6519
    @jjl6519 5 лет назад

    Thanks for a great video, one of the best tutorials on this subject.

  • @siripong-gd8ft
    @siripong-gd8ft 3 месяца назад

    Thank you, Rui Santos. It works. You explained very very clear, no need to edit code, work at first time.

  • @jackywoo4975
    @jackywoo4975 5 лет назад

    exactly what I am looking for and it works well, many thanks

  • @josephkohilan6230
    @josephkohilan6230 4 года назад

    Thank you so much for the code and explanation. Very clearly explained

  • @Poshoo
    @Poshoo 4 года назад

    just what I needed! I modified some things to give it my personal touch and it worked very well! Thank you for sharing this!!

  • @user-gh7dx2kz6o
    @user-gh7dx2kz6o 2 месяца назад

    It has been running successfully. Thank you

  • @heaven4261
    @heaven4261 5 лет назад

    Thank you very much for your easy explanation.
    It's a great program.
    And simple and good design CSS

  • @hosseinbehdarvandi1504
    @hosseinbehdarvandi1504 3 года назад

    Best tutorial I ever seen. completely useful !!!

  • @kenoalbatros
    @kenoalbatros 3 года назад

    Very well explained, thank you!

  • @Moercstar
    @Moercstar 5 лет назад

    nice project
    the web interface looks fine

  • @kmeenu
    @kmeenu 4 года назад

    Thank you so much it was very helpful!

  • @WahyuHidayat-my1ky
    @WahyuHidayat-my1ky 5 лет назад

    Thank you very much, works well with ESP8266-01 with PlatformIO IDE

  • @mdabdullahalmasum7493
    @mdabdullahalmasum7493 5 лет назад

    It works bro....Great explanation ... Thank you :)

  • @bunyaminkaplan2410
    @bunyaminkaplan2410 8 месяцев назад

    that was really really good mann

  • @ac4cars656
    @ac4cars656 2 года назад

    Excellent, finally got it work, Thanks!!

  • @freddybeck326
    @freddybeck326 Год назад

    Thanks , really good video!😄

  • @ronbrown4551
    @ronbrown4551 5 лет назад

    THANK YOU !! This helped me out so much

  •  4 года назад

    Excelente!!! É simples e eficiente! Muito Obrigado!

  • @doctordhd
    @doctordhd 6 лет назад

    Great tutorial, thank you!

  • @ab9te534
    @ab9te534 4 года назад

    Thanks for the explanation on what everything does to build the webpage. Do you have any video showing how I could do text input and output on the webpage and pass it along into variables?

  • @jorgelinares9686
    @jorgelinares9686 3 года назад

    Big fan of your site, keep up with the good work!

  • @ammarrashid3535
    @ammarrashid3535 3 года назад

    thank you so much
    It worked without any hiccups

  • @hritiktheopgamer4122
    @hritiktheopgamer4122 Год назад

    great video 🔥🔥🔥🔥🔥 clear as water

  • @hyper_gz2247
    @hyper_gz2247 11 месяцев назад

    Thanks a lot broo, it worked so perfectly!!

  • @victor7ultimate
    @victor7ultimate 6 лет назад

    Nice one bro! wish i can give more than 0ne thumbs up for this vid tut

  • @cristiantalos4042
    @cristiantalos4042 5 лет назад

    this is super cool! great video! is it possible to create dynamic "dashboards" (user interface that shows real-time data on graphs and other interfaces) using this method? or is it just static html?

  • @101appsCoZa
    @101appsCoZa 4 года назад

    great tutorial. thanks very much!

  • @abobobo943
    @abobobo943 5 лет назад

    Very well explained .Thanks

  • @timmorgan3673
    @timmorgan3673 6 лет назад

    Many thanks for a great tutorial

  • @hersonali8
    @hersonali8 4 года назад

    Excelent video and well explained, it is what I was looking for.
    Thank you for share your knowledge for us.
    I subscribe to your channel right now

  • @stevenlee1726
    @stevenlee1726 6 лет назад +5

    Thank you. It works with ESP8266-01. Program using Arduino. Change GPIO4 to GPIO0 and GPIO5 to GPIO2

    • @MA-ty4yf
      @MA-ty4yf 5 лет назад

      ruclips.net/video/LrNd83p3XTw/видео.html

  • @unbreakable566
    @unbreakable566 6 лет назад

    Great video!

  • @DanielJLopes
    @DanielJLopes 5 лет назад +1

    Bom trabalho companheiro! :) Vou tentar usar noções do teu código para meter um daqueles relés integrados com uma ESP-01 - que usam a porta série :)

  • @Leandroribeiro-dg5db
    @Leandroribeiro-dg5db 6 лет назад

    muito bom parabéns! simples e funcional.
    very good! simple at functionallity

  • @Ed19601
    @Ed19601 3 года назад

    Great. Nowadays async webservers seem to be more popular, but in this case the traditional webserver works just as well

  • @joanmontoyamoya
    @joanmontoyamoya 4 года назад

    Great tutorial!
    Thanks a lot for sharing :)

  • @googledrivedata703
    @googledrivedata703 Год назад

    Superb..thanks bro

  • @venug2617
    @venug2617 Год назад

    Your explanation is exemplary....

  • @rengaw1949
    @rengaw1949 Год назад

    Funktioniert super sehr gut erklärt

  • @darminaxel5809
    @darminaxel5809 5 лет назад +1

    Thank you so much. This video is so well explained and your schematics and codes are flawless. I took your design and added some PhP and javascript. You can now control
    the LED from anywhere in the world. All thanks to you.

    • @ALasmry707
      @ALasmry707 5 лет назад

      Please I need the PHP and javascript files I'm trying to do the same but did't work

    • @darminaxel5809
      @darminaxel5809 5 лет назад

      @@ALasmry707 do you know anything about port forwarding?

    • @ALasmry707
      @ALasmry707 5 лет назад

      Darmin Axel not really I’m a beginner but I have my own hosting and domino that I wanna use for this project. If you can help me with the sample of code that will be appreciated

    • @darminaxel5809
      @darminaxel5809 5 лет назад

      Do a little research on port forwarding. You need to own a domain to do this. If you do not own a domain, you're going to have to type type your internet iP address in your browser to turn on the lights .
      Here go here
      darmin.ca/led.php
      That's my website. I'm using php to tell my server to connect to my home router and connect to the esp and turn on the lights

    • @darminaxel5809
      @darminaxel5809 5 лет назад

      @@ALasmry707 ok good , u got your own domain. Um.. lets chat somewhere else.

  • @rgmtb
    @rgmtb 5 лет назад

    Thank you for this video. Would it be possible for you to create one based on ESP8266 soft access point and how we can connect to it to setup the wifi of the device? Just about all of the videos I've seen on the ESP8266 have you hard code the wifi info into the base code. That's kind of a bummer having to recompile the code to use the device on a different network. Is this covered in your home iot course? Thank you.

  • @JimzZel
    @JimzZel 3 года назад

    Thank you was a very usefull tutorial!

  • @luisrodriguez5857
    @luisrodriguez5857 5 лет назад

    Excelente ,muchas gracias por el aporte!

  • @supermax1392
    @supermax1392 6 лет назад

    Very well explained 👍👍

  • @justken5
    @justken5 3 года назад

    thank you Rui ; worked like a charm

    • @MesinNegara
      @MesinNegara 3 года назад

      you install what version on board esp8266?

  • @eneiasmg
    @eneiasmg 3 года назад

    Muito obrigado! Ajudou-me muito a entender a comunicação por http.

  • @focomoon748
    @focomoon748 5 лет назад

    verry cool !!!สุดยอดจริงๆครับจะนำไปลองใช้ดูนะครับ

  • @jacquesokes
    @jacquesokes 5 лет назад +1

    I would like to know, as the web server, is it possible to add some javascript code to the client.println in order to do additional JS stuff on the data and represent it through the webpage?

  • @ignaciocubillos2786
    @ignaciocubillos2786 5 лет назад

    Excellent tutorial!!

  • @josecorreia2584
    @josecorreia2584 4 года назад

    Rui, in my case I have to change the label of the button, to fit the right state of it (button class).
    If I would want to create a button just a few seconds ON or with controlled time ON, what is the best approach? Tks

  • @MayckBernales
    @MayckBernales 6 лет назад +5

    Your explain is the better frien, I don't stand very mush the english but, I can stand your explain, thank so mush. From chile thank.

  • @jasonlodder8591
    @jasonlodder8591 4 года назад

    Thank you!

  • @elricho72
    @elricho72 6 лет назад

    Great job!, You could in the future do the same but that the spy is connected to some arduino card and control it through it. Thanks!

  • @banditboy6444
    @banditboy6444 6 лет назад

    Great vid

  • @JeffMillington
    @JeffMillington 6 лет назад

    Excellent!
    Thank you

  • @darminaxel5809
    @darminaxel5809 4 года назад

    Used this and changed it a bit. Now I can turn on the lights from anywhere in the world.

  • @NothingBootz
    @NothingBootz 2 года назад

    Hey just a question, With what kind of commands can I show a picture, draw(box,line,traingle) or animation commands?

  • @ruttergolbo9083
    @ruttergolbo9083 4 года назад

    I just want to say thank u so much.

  • @vvnnable
    @vvnnable 3 года назад

    thank you so Much

  • @emrullahtuna5785
    @emrullahtuna5785 5 лет назад

    Thank you very much i try it web server.

  • @joaofernandesrycenation5921
    @joaofernandesrycenation5921 4 года назад

    Olá! Hello! Descobri o canal sem querer. Estava mesmo à procura de um canal deste género! PS: Descobri logo que eras português nos primeiros segundos do vídeo devido ao sotaque. Keep it up ;)

  • @islamic.things.313
    @islamic.things.313 3 года назад

    Thank you much

  • @jtcp27031
    @jtcp27031 6 лет назад

    thanks! i was looking exactly for this, im making an android app to work with this :)

    • @RuiSantosdotme
      @RuiSantosdotme  6 лет назад +1

      I'm glad it was helpful Juan! Thanks for watching

  • @diyelectronics3158
    @diyelectronics3158 4 года назад

    Nice video

  • @yawarsaeed6499
    @yawarsaeed6499 4 года назад

    Thanks for sharing such an awesome project. Can you please add Physical Push Button Switches with Status Feedback to operate the same with those Switches as well.
    Awaiting your positive response . Thanks

  • @user-iy9lb5jk6b
    @user-iy9lb5jk6b 6 лет назад

    Спасибо! Все доходчиво расжовано :)

  • @allersvp
    @allersvp 4 года назад

    Hello AWESOME Rui , Wish u r doing well
    thanks you Rui sharing your effort with us... really saved us and helped us a lot ... one more q please, how can we have a static ip so we don't need to open the serial port every time i reboot it to know the new dhcp random ip

  • @karimsafwat4423
    @karimsafwat4423 4 года назад

    you are amazing

  • @MarcSanclimens
    @MarcSanclimens 4 года назад +1

    Thanks for this tutorial, how can I add two external pushbuttons to (local) control both leds as well as through the website?

    • @tonyxforce
      @tonyxforce 3 года назад

      write this before void setup():
      int in1=0;
      int in2=0;
      #define inpin5 1;
      #define inpin4 2;
      and in the void setup():
      pinMode(inpin5,INPUT);
      and into the loop:
      in1 = DigitalRead(inpin5);
      if(in1==HiGH){
      digitalWrite(5,HIGH);
      }
      else
      {
      digitalWrite(5,LOW);
      }
      in2 = DigitalRead(inpin4);
      if(in2==HiGH){
      digitalWrite(4,HIGH);
      }
      else
      {
      digitalWrite(4,LOW);
      }
      (the input pin for the led at the pin4 is at 1 and for the led at the pin 5 is pin1)

  • @Carlos-um3xg
    @Carlos-um3xg 2 года назад

    hey, its work fine tranks my friend 🙂

  • @jeffreyosborne6747
    @jeffreyosborne6747 6 лет назад +1

    Excellent Video and guide. Worked right out of the box. With the excellent code comments I was able to easily identify how to add an additional button and LED to control. As a suggestion, with remote applications, the battery condition is very important. It would be good if programs like these are extended a little to show the battery voltage using analogue pin reading.

    • @RuiSantosdotme
      @RuiSantosdotme  6 лет назад

      Awesome! That was the goal of my tutorial and I'm glad it was easy to follow. Unfortunately for Wi-Fi devices that require a constant Wi-Fi connection is not a good idea to use batteries, because it will drain your battery very quickly...

    • @jeffreyosborne6747
      @jeffreyosborne6747 6 лет назад

      Yes Rui, I'm beginning to see that now as I play more with the ESP. However in duty cycled sensor applications it is obviously OK to use battery (which is different to this app). I'm curious, with the ESP in one of the low power "sleep" modes, is it possible wake the device to perform a function and put it to sleep again. I know I'm stretching the envelope :). With the quality of your tutorials, I'll be registering for your courses! Thanks J

  • @cri8tor
    @cri8tor 5 лет назад

    Will the Web Server Arduino work with the iPhone 4S?
    Cheers

  • @josecorreia2584
    @josecorreia2584 4 года назад

    Hi, Rui, this project it's mixable with other one with esp32 cam that you done before? I'm assuming that we can use gpio pins in esp32 for switches and at the same time using the live camera over the webserver. I'm planning to use as a doorbell, without audio. It is feasible?
    Tks in advance

    • @scoopiezz
      @scoopiezz 2 месяца назад

      yeah dont think he cared

  • @glynnmason8205
    @glynnmason8205 5 лет назад +1

    this was very usefull got this working in a matter of minutes but my device said version number 0.9 that didn't work in Arduino I tried version 1.0 that worked something to watch out for

  • @fisunerd
    @fisunerd 4 года назад

    Hello Rui.
    Should we switch from get to post method? I mean, get is very likely to be sniffed out.

  • @JohnDoe-km7ch
    @JohnDoe-km7ch 5 лет назад

    thank you

  • @rodamps7321
    @rodamps7321 4 года назад +2

    Hi Rui, good night. I'm Marcos (Barueri-Sao Paulo-Brazil) how do I change one of the buttons to momentary? (for use on garage door)
    Thank you.

    • @tonyxforce
      @tonyxforce 3 года назад

      /*********
      Rui Santos
      Complete project details at randomnerdtutorials.com
      *********/
      // Load Wi-Fi library
      #include
      // Replace with your network credentials
      const char* ssid = "do you really";
      const char* password = "want to know";
      // Set web server port number to 80
      WiFiServer server(80);
      // Variable to store the HTTP request
      String header;
      // Auxiliar variables to store the current output state
      String output5State = "off";
      String output4State = "off";
      // Assign output variables to GPIO pins
      const int output5 = 5;
      const int output4 = 4;
      // Current time
      unsigned long currentTime = millis();
      // Previous time
      unsigned long previousTime = 0;
      // Define timeout time in milliseconds (example: 2000ms = 2s)
      const long timeoutTime = 2000;
      void setup() {
      Serial.begin(9600);
      // Initialize the output variables as outputs
      pinMode(output5, OUTPUT);
      pinMode(output4, OUTPUT);
      // Set outputs to LOW
      digitalWrite(output5, LOW);
      digitalWrite(output4, LOW);
      // Connect to Wi-Fi network with SSID and password
      Serial.print("Connecting to ");
      Serial.println(ssid);
      WiFi.begin(ssid, password);
      while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      Serial.print(".");
      }
      // Print local IP address and start web server
      Serial.println("");
      Serial.println("WiFi connected.");
      Serial.println("IP address: ");
      Serial.println(WiFi.localIP());
      server.begin();
      }
      void loop(){
      WiFiClient client = server.available(); // Listen for incoming clients
      if (client) { // If a new client connects,
      Serial.println("New Client."); // print a message out in the serial port
      String currentLine = ""; // make a String to hold incoming data from the client
      currentTime = millis();
      previousTime = currentTime;
      while (client.connected() && currentTime - previousTime = 0) {
      Serial.println("GPIO 5 on");
      output5State = "on";
      digitalWrite(output5, HIGH);
      delay(100);
      digitalWrite(output5, LOW);
      } else if (header.indexOf("GET /5/off") >= 0) {
      Serial.println("GPIO 5 off");
      output5State = "off";
      digitalWrite(output5, LOW);
      } else if (header.indexOf("GET /4/on") >= 0) {
      Serial.println("GPIO 4 on");
      output4State = "on";
      digitalWrite(output4, HIGH);
      delay(100);
      digitalWrite(output4, LOW);
      } else if (header.indexOf("GET /4/off") >= 0) {
      Serial.println("GPIO 4 off");
      output4State = "off";
      digitalWrite(output4, LOW);
      }

      // Display the HTML web page
      client.println("");
      client.println("");
      client.println("");
      // CSS to style the on/off buttons
      // Feel free to change the background-color and font-size attributes to fit your preferences
      client.println("html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}");
      client.println(".button { background-color: #195B6A; border: none; color: white; padding: 16px 40px;");
      client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}");
      client.println(".button2 {background-color: #77878A;}");

      // Web Page Heading
      client.println("ESP8266 Web Server");

      // Display current state, and ON/OFF buttons for GPIO 5
      client.println("GPIO 5 - State " + output5State + "");
      // If the output5State is off, it displays the ON button
      if (output5State=="off") {
      client.println("ON");
      } else {
      client.println("OFF");
      }

      // Display current state, and ON/OFF buttons for GPIO 4
      client.println("GPIO 4 - State " + output4State + "");
      // If the output4State is off, it displays the ON button
      if (output4State=="off") {
      client.println("ON");
      } else {
      client.println("OFF");
      }
      client.println("");

      // The HTTP response ends with another blank line
      client.println();
      // Break out of the while loop
      break;
      } else { // if you got a newline, then clear currentLine
      currentLine = "";
      }
      } else if (c != '
      ') { // if you got anything else but a carriage return character,
      currentLine += c; // add it to the end of the currentLine
      }
      }
      }
      // Clear the header variable
      header = "";
      // Close the connection
      client.stop();
      Serial.println("Client disconnected.");
      Serial.println("");
      }
      }

  • @ANTHONYBOOTH
    @ANTHONYBOOTH 5 лет назад

    NICE ONE DUDE!!! ...WORKS FANTASTIC!!! ....can't understand why my smartfone wont connect to the gui via the address given by DHCP on my system; - it only works if I connect to the devices OWN built in AP (unsecured) ...How do I secure that one???

  • @MrAbdinejad
    @MrAbdinejad 4 года назад

    Hi, Thanks for sharing this nice project. Can we do this with stm32f103c8t6 + esp8266 wifi module, instead of NodeMCU board?
    And Control stm32f103c8t6 via web server?

  • @akhtar2024
    @akhtar2024 5 лет назад

    can it be made accessible from anywhere or only local area network?

  • @jeffreyosborne6747
    @jeffreyosborne6747 6 лет назад +1

    With small code modification, you can put the ESP8266 in static IP address mode

    • @ANTHONYBOOTH
      @ANTHONYBOOTH 5 лет назад

      Please DO TELL!!! ...I am looking in the direction of the ESP8266WiFi.h component (trying to find it) ...the code given here works ...but WHERE does IT mention DHCP; - and why does the browser on my PC access it from my networks DHCP ...but my smartfone gets an address ONLY off the BUILT IN DHCP on the Device; - WHERE did the 192.168.4.0 network come from???

  • @morpheuz2006
    @morpheuz2006 6 лет назад

    Parabéns mt bom

  • @gayansaranga2860
    @gayansaranga2860 6 лет назад

    Its awesome.. please help me. can you please explain how to create this to access from any network

  • @sohaeb-ot9ci
    @sohaeb-ot9ci 5 лет назад

    Hello. Is this connection only on the same network or anywhere in the world?

  • @comrades2272
    @comrades2272 4 года назад

    Which is the protocol used to communicate with nodemcu?

  • @romycruz4498
    @romycruz4498 3 года назад

    Hi Rui, the gpio displays off, but the button displays on and vice versa. Can it be changed so that both are on or off? Or it would be better if the gpio status won't be displayed. Also can we change the title instead of ESP8266 can we change it to something else. Thanks.

  • @odaysaed1766
    @odaysaed1766 4 года назад

    hi thank you for this information can you show how we can track nodemcu by api key in gcp

  • @JohnyRodri
    @JohnyRodri 3 года назад

    Thanks ma man

  • @mahesh_d
    @mahesh_d 5 лет назад

    Hi
    Can you help with the esp8266 in home automation?
    I'm using it for home automation and the problem is when it reboots as the power gone, it automatically turns everything on .
    I don't need anything to be on state.
    Please help with it ?