ESP8266 Over The Air (OTA) Programming Without Reset Using Arduino IDE (Mac OSX and Windows)

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ธ.ค. 2024

ความคิดเห็น • 120

  • @pcb1962
    @pcb1962 6 ปีที่แล้ว +3

    Very good, thank you. I'm already using your '15 second from restart' idea on my light switches, together with Andreas's reed switch idea for the reset, now I don't need to bother with the reed switch, thank you!

    • @datasith
      @datasith  6 ปีที่แล้ว +1

      It's awesome to hear that this is useful for an actual project. Thanks for sharing that info with me!

  • @UNgineering
    @UNgineering 3 ปีที่แล้ว +1

    so simple yet so elegant! i've just started messing with OTA programming and kept running into a wall with http server and OTA running side by side.
    i did one thing differently though - i implemented an async wait function, so it's not blocking the main loop.

  • @leedevries5660
    @leedevries5660 5 ปีที่แล้ว +6

    Great tutorial. You speak very clearly and at a rate that can be absorbed by a learner. Well done!

    • @datasith
      @datasith  5 ปีที่แล้ว

      Thank you for the kind comment. I certainly try my best, and feel I've improved over time (still ways to go). I'm glad people like yourself find it useful. Thanks for watching!

  • @sprink88
    @sprink88 5 ปีที่แล้ว +2

    Cisco - thank you so much for your tutorials. I went from zero to (very nearly) hero RE ESP8266 and OTA with these two tutorials.
    Simple, well explained, and no showing off... (apart from that neat trick with the LED - digitalWrite(2, !digitalRead(2)); ) That is cool!
    Thanks++

    • @datasith
      @datasith  5 ปีที่แล้ว

      thank you for the kind comment, it makes me really happy to hear that you enjoyed it and thought it was useful!

    • @bradygrady7787
      @bradygrady7787 3 ปีที่แล้ว

      Sorry to be offtopic but does someone know a method to get back into an instagram account?
      I stupidly lost the login password. I would love any help you can offer me!

    • @immanuelhassan9072
      @immanuelhassan9072 3 ปีที่แล้ว

      @Brady Grady Instablaster :)

    • @bradygrady7787
      @bradygrady7787 3 ปีที่แล้ว

      @Immanuel Hassan Thanks so much for your reply. I found the site thru google and I'm in the hacking process atm.
      Seems to take quite some time so I will reply here later with my results.

    • @bradygrady7787
      @bradygrady7787 3 ปีที่แล้ว

      @Immanuel Hassan It worked and I finally got access to my account again. Im so happy!
      Thank you so much, you saved my ass!

  • @harryjunior8377
    @harryjunior8377 4 ปีที่แล้ว +2

    Brilliant tutorial Thank you very much.
    I just wanted to add a finding of my own...
    If you open a second instance of Adruino and set port to the USB Com Port you can still have access to the Serial monitor in the second Arduino IDE whilst still be able upload via WiFi from the First Adduino IDE. Handy for debugging.
    Harry

    • @datasith
      @datasith  4 ปีที่แล้ว

      Thanks for the kind words. That's awesome, thanks for sharing!

  • @kallenanka12
    @kallenanka12 6 ปีที่แล้ว +2

    Thankyou , this is what I kneed, very clear and informative explenation for us who still is new to OTA. I like Your videos, please keep making them for us. Once again, a big thanx!

    • @datasith
      @datasith  6 ปีที่แล้ว

      Thank you for watching the video and for the kind comment. I'm glad you liked it!

  • @leedevries5660
    @leedevries5660 5 ปีที่แล้ว +3

    It worked quite OK, but I found that on a running system with 6 MQTT nodes which run all the time, if I turned up with my notebook to upgrade firmware on any node, the Arduino IDE does not
    see the controllers WiFi port. It only sees the port when ArduinoOTA.handle() is executed.
    What I do is I execute that function once a minute WHEN THE OTA flag is NOT set.
    At most the laptop only has to wait for a minute before the WiFi ports are recognized.

    • @datasith
      @datasith  5 ปีที่แล้ว

      I'm glad you were able to work things out!

    • @bgable7707
      @bgable7707 4 ปีที่แล้ว

      How to regain access to the ip address port from the IDE
      Another solution is to add a "fake programmer" to the "Tools" menu drop down.
      1st, on Windows10, find the file "programmers.txt" . The one that worked for me was: C:\Users\joe\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.3\programmers.txt.
      2. Add the following lines at the bottom of programmers.txt file, save it, restart the IDE.
      # ESP Wemos #2 50:02:91:AA:BB:CC (just a comment line)
      arduinoOTA142.name=ESP-Wemos-OTA (Drop down menu text)
      arduinoOTA142.program.tool=arduinoOTA (Don't know, just part of the IDE code)
      arduinoOTA142.ip=192.168.10.142 (The static dhcp IP addr)
      3. Select "Tools", scroll down to Programmers and your devices should show up there.
      This is used instead of the com port which you typically choose.
      Note: I reserve my IP's in my router's DHCP pool, ie, MAC to IP is always the same.
      See "OTA Upload from IDE without 'network port'" in the article at:
      github.com/jandrassy/ArduinoOTA

  • @originalthehrao
    @originalthehrao 3 ปีที่แล้ว

    what is the point of OTA if serial monitor is not supported. is it possible to direct the serial port data to a webserver so the serial port output can be seen on the webpage.

  • @AdityaSingh-in9lr
    @AdityaSingh-in9lr 2 ปีที่แล้ว

    Hey, I want to use NodeMCU ESP8266 to flash code on STM32 based MCU, what are the steps should I take ?

  • @MrDenisJoshua
    @MrDenisJoshua 5 ปีที่แล้ว

    I tryed on NodeMCU and the webserver it's ok.
    I then choose the net port and put NodeMCU in Restarting...
    Then I take an error: "07:00:00 [ERROR]: No Answer" :-(
    Can you help me please ?
    Thanks a lot

    • @datasith
      @datasith  5 ปีที่แล้ว

      After flashing the OTA firmware over serial, physically reset the NodeMCU before doing OTA (don't hold down the button, just press it once). After a few seconds, you should be able to upload the new firmware from the net port. Let me know if that works!

    • @balkrishnasoni8806
      @balkrishnasoni8806 3 ปีที่แล้ว

      @@datasith I have same problem, I did reset ESP, but still same error - NO answer

  • @ericBcreator
    @ericBcreator 4 ปีที่แล้ว

    Nice informative videos about OTA programming!
    I've been thinking about implementing it in some of my projects as well.
    Why didn't you choose to just call the OTA.handle in the main loop, say every second? Performance issues?
    Or would the Arduino IDE time out (does it need a continuous handle loop)?

    • @datasith
      @datasith  4 ปีที่แล้ว

      Thanks!
      Yup, your instincts are correct. Whereas you can get it to work, if you start adding more tasks in your main loop like reading from sensors, moving motors, etc., then timing becomes an issue and OTA will suffer. With beefier processors like the ESP32 you can bypass this by using a separate core, but for the ESP8266 what I used is one of the better ways of handling OTA. HTH!

  • @rayleblanc7209
    @rayleblanc7209 3 ปีที่แล้ว

    I have a mega 2560(ch340) pro micro running my project. Can sketches be uploaded wirelessly through an esp32 UART ports ?

  • @asishtechnovia
    @asishtechnovia ปีที่แล้ว

    Is it possible to do this process if the arduino and system are not conected to the same Wi-Fi. I want to know if we can do this if both are connected via internet, at two different locations

  • @chandanbhatia3382
    @chandanbhatia3382 4 ปีที่แล้ว

    Thanks for video. I am facing one issue, Not sure if its IDE issue or something else. I tried your code from github but I am unable to find any option to see network port in Tools->Port. I can see only COM ports option. Any suggestion? I m using latest Arduino IDE 1.8.12 in widows 10. Do we have any other option to validate.

  • @atonesir
    @atonesir 4 ปีที่แล้ว

    Your videos have really helped me learn the 8266, and the OTA stuff is awesome. However, no one ever really takes it to the next step to show how to incorporate code within the OTA feature -- Even a basic water sensor sketch. So, how does one make full-featured sketches incorporate into OTA code?

    • @datasith
      @datasith  4 ปีที่แล้ว

      you're right, i'll add it to the list! thanks for watching!

    • @lawaver
      @lawaver 4 ปีที่แล้ว

      @@datasith Hi, thanks for your excellent videos. I also need to know how and where to insert my code in your OTA code. Do you have any idea when this will be available. Kind regards....

  • @dozog
    @dozog 5 ปีที่แล้ว

    One problem I see for larger code.
    You opened your IDE and made small modification to a rather bigger code than this minimalistic example.
    You want to upload, so you go to your browser and type the setflag thing.
    Now you will have 15 seconds to close your IDE, open it again, find and select the OTA port in the IDE and hit upload.
    As far as I understand the procedure, the IDE will at least have to start sending data to the device within 15 seconds.
    That's not realistic with bigger code.
    Or does your sketch broadcast it's OTA port even when the ota_flag is not set?

    • @datasith
      @datasith  5 ปีที่แล้ว

      Old sketch waited 15 seconds. New sketch doesn't. You can configure the OTA flag with an HTTP request.

  • @PowerJiang
    @PowerJiang 6 ปีที่แล้ว

    Hi Cisco, ESP01 also have procedure problem in OTA. As we know, ESP01 is programmed in shorting GPIO0 to GND. Normal operation in open of GPIO0. This also a good challenge for me. Do you have good idea ?

    • @datasith
      @datasith  5 ปีที่แล้ว

      What's the problem, you can load OTA software once, and then each time after you upload the code using OTA. Am I missing something? Sorry for the late reply!

  • @chndrakntpatil
    @chndrakntpatil 5 ปีที่แล้ว

    I am getting no answer error message. I tried every thing. No use. Have esp8266 12e. And use arduino r3 and jumper wire to flash initially. Ota doesn't work.

    • @datasith
      @datasith  5 ปีที่แล้ว

      make sure your mdns is woking and you can access the board both by its IP address and local domain name

  • @seantalbot3178
    @seantalbot3178 6 ปีที่แล้ว

    Hi Cisco,
    Two great videos, thank you. I am using two boards, i.e. an ESP32OLED (wifi and BT) and a Wemos D1 (wifi). The sketch compiles fine for both boards, but the wifi com port only appears for the ESP32. The OTA functionality works well on the ESP32. When I plug in the D1, and change boards on the IDE, the wifi com port disappears. Naturally I have run through the same setup steps for the D1. Any ideas? Thanks

    • @datasith
      @datasith  5 ปีที่แล้ว

      That's very off, I wonder why. If the code uploads to the Wemos D1, it means that the board is okay so it's a software thing. I realize it's been 8 months so hopefully you figured it out, if not, by all means let me know (apologies for the late reply).

  • @belenjimenezg
    @belenjimenezg 5 ปีที่แล้ว

    Hi! I have ESP32. I'm using the library httpUpdate for OTA Updates. What is the difference between httpUpdate and ArduinoOTA? Thanks

    • @datasith
      @datasith  5 ปีที่แล้ว

      Outside of a few function calls it should work just the same. Thanks for watching my videos!

  • @harveyschneider9644
    @harveyschneider9644 5 ปีที่แล้ว +1

    If the upload fails at 0% the firewall on your computer is blocking the ESP from downloading the file.

    • @datasith
      @datasith  5 ปีที่แล้ว

      Thanks for sharing, Harvey!

  • @BatNenko-NJS
    @BatNenko-NJS 3 ปีที่แล้ว

    Very good tutorial 👌 👍 👏 this is a great function!

  • @The_Unobtainium
    @The_Unobtainium 4 ปีที่แล้ว

    It's just so good. Could make a video how to optimize the OTA code to avoid that annoying 15 sek delay? Maybe we can use some script to poll esp8266 for reset and start OTA immediately?

    • @datasith
      @datasith  4 ปีที่แล้ว

      Heya, funnily enough, I made one already without the annoying delay: th-cam.com/video/gFK2EDNpIeM/w-d-xo.html
      HTH!

  • @sulaimangari2745
    @sulaimangari2745 5 ปีที่แล้ว

    thank you, have been looking for this

    • @datasith
      @datasith  5 ปีที่แล้ว

      I'm glad you found it useful!

  • @MayankArora2
    @MayankArora2 4 ปีที่แล้ว

    Nice demo and tutorial. Thanks

  • @alcidesmarcano
    @alcidesmarcano 6 ปีที่แล้ว

    Very useful video Cisco! Thanks

    • @datasith
      @datasith  6 ปีที่แล้ว +1

      You're welcome Alcides, I'm glad you found it useful!

  • @alx8439
    @alx8439 2 ปีที่แล้ว

    Why to spin up the whole web server to manipulate with this, instead of just keep calling OTA.handle() in the program main loop unconditionally

  • @daedalus5483
    @daedalus5483 5 ปีที่แล้ว

    Hello Cisco, thank you very much for your work. It doesn't necessarily have something to do with the content of this video, however, I was wondering how one can regain access to error messages, especially those in ArduinoOTA.onError, without a terminal window. Thank you for your time.

    • @datasith
      @datasith  5 ปีที่แล้ว +2

      One idea would be to log them to a file on SPIFFS, which would be accessible from a webpage (i.e., creating a route that filestreams the file). What do you think?

  • @gopalakrishnanr.4659
    @gopalakrishnanr.4659 6 ปีที่แล้ว

    Hi Thank
    I tried in nodeMCU, it is working, is there any posible ways to do the OTA from other network means remotely
    Assumption esp connected in a Wi-Fi

    • @datasith
      @datasith  5 ปีที่แล้ว

      Yes, you can setup a route to receive the firmware and make the update. It's not strictly OTA, but it's a way of updating the firmware wirelessly. HTH!

  • @maxr382
    @maxr382 5 ปีที่แล้ว

    Thank you for this video. Very helpfull. I see you modified w/in loop, but can one also modify setup section?

    • @datasith
      @datasith  5 ปีที่แล้ว +1

      Thanks! Yes you can also modify the setup section.

  • @Ed19601
    @Ed19601 3 ปีที่แล้ว

    Honestly I dont understand what you are trying to show here. I have been using OTA long time already and the OTA handle does not interfere at all and I can update over the air any time I want

  • @EnergeticWaves
    @EnergeticWaves 5 ปีที่แล้ว

    what is the t for in uint8_t

    • @datasith
      @datasith  5 ปีที่แล้ว

      Don't mean this as disrespectful: google it.

  • @TheAlibigdeli
    @TheAlibigdeli 6 ปีที่แล้ว

    very nice topic
    like always great, but as i saw you missed about telling linux users about "avahi" installation to be able to use mdns
    :) thanks again

    • @TheAlibigdeli
      @TheAlibigdeli 6 ปีที่แล้ว

      o btw take a look at this might come handy
      tttapa.github.io/ESP8266/Chap01%20-%20ESP8266.html

    • @datasith
      @datasith  6 ปีที่แล้ว

      Good point! My thinking is that Linux users should be able to figure it out :) Thanks for sharing the link!

  • @bravekhan4470
    @bravekhan4470 6 ปีที่แล้ว

    love u bro for such informative videos. God bless you.

    • @datasith
      @datasith  6 ปีที่แล้ว +1

      Awesome! I'm happy you found the content useful.

  • @SoilHealthpk
    @SoilHealthpk 4 ปีที่แล้ว

    Very good tutorial - thanks

  • @makerun6927
    @makerun6927 4 ปีที่แล้ว +1

    Very Nice Explanation

    • @datasith
      @datasith  4 ปีที่แล้ว

      Thanks and welcome to my channel!

  • @hammasmajeed3715
    @hammasmajeed3715 6 ปีที่แล้ว

    Thanks, you are making very useful video. keep it up (y)

    • @datasith
      @datasith  6 ปีที่แล้ว

      You're welcome! I'm glad you find it useful.

  • @johnacsyen
    @johnacsyen 6 ปีที่แล้ว

    Can you provide the link for the CH340g driver

    • @datasith
      @datasith  6 ปีที่แล้ว

      It's in the video description under "Detailed guide for getting started with the WeMos ESP8266 Development Board..."

  • @vishalalex
    @vishalalex 4 ปีที่แล้ว

    Thanks. I have seen some firmwares that allows ota upgrade via wifi without going through lots of code. If you are aware, pls make a video about it.

  • @ramakant610
    @ramakant610 6 ปีที่แล้ว

    Arduino: 1.8.5 (Windows 7), Board: "NodeMCU 0.9 (ESP-12 Module), 80 MHz, Flash, 4M (1M SPIFFS), v2 Lower Memory, Serial, None, Only Sketch, 115200"
    C:\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Arduino\hardware -hardware C:\Users
    ama\AppData\Local\Arduino15\packages -tools C:\Arduino\tools-builder -tools C:\Arduino\hardware\tools\avr -tools C:\Users
    ama\AppData\Local\Arduino15\packages -built-in-libraries C:\Arduino\libraries -libraries C:\Users
    ama\Documents\Arduino\libraries -fqbn=esp8266:esp8266:nodemcu:CpuFrequency=80,VTable=flash,FlashSize=4M1M,LwIPVariant=v2mss536,Debug=Serial,DebugLevel=None____,FlashErase=none,UploadSpeed=115200 -ide-version=10805 -build-path C:\Users
    ama\AppData\Local\Temp\arduino_build_943895 -warnings=none -build-cache C:\Users
    ama\AppData\Local\Temp\arduino_cache_281809 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.xtensa-lx106-elf-gcc.path=C:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2 -prefs=runtime.tools.esptool.path=C:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\tools\esptool\0.4.13 -prefs=runtime.tools.mkspiffs.path=C:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\tools\mkspiffs\0.2.0 -verbose C:\Users
    ama\Desktop\sensor\otawireless\otawireless.ino
    C:\Arduino\arduino-builder -compile -logger=machine -hardware C:\Arduino\hardware -hardware C:\Users
    ama\AppData\Local\Arduino15\packages -tools C:\Arduino\tools-builder -tools C:\Arduino\hardware\tools\avr -tools C:\Users
    ama\AppData\Local\Arduino15\packages -built-in-libraries C:\Arduino\libraries -libraries C:\Users
    ama\Documents\Arduino\libraries -fqbn=esp8266:esp8266:nodemcu:CpuFrequency=80,VTable=flash,FlashSize=4M1M,LwIPVariant=v2mss536,Debug=Serial,DebugLevel=None____,FlashErase=none,UploadSpeed=115200 -ide-version=10805 -build-path C:\Users
    ama\AppData\Local\Temp\arduino_build_943895 -warnings=none -build-cache C:\Users
    ama\AppData\Local\Temp\arduino_cache_281809 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.xtensa-lx106-elf-gcc.path=C:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2 -prefs=runtime.tools.esptool.path=C:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\tools\esptool\0.4.13 -prefs=runtime.tools.mkspiffs.path=C:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\tools\mkspiffs\0.2.0 -verbose C:\Users
    ama\Desktop\sensor\otawireless\otawireless.ino
    Using board 'nodemcu' from platform in folder: C:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2
    Using core 'esp8266' from platform in folder: C:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2
    Detecting libraries used...
    "C:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-g++" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-IC:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/include" "-IC:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/lwip2/include" "-IC:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/libc/xtensa-lx106-elf/include" "-IC:\Users
    ama\AppData\Local\Temp\arduino_build_943895/core" -c -w -Os -g -mlongcalls -mtext-section-literals -fno-exceptions -fno-rtti -falign-functions=4 -std=c++11 -ffunction-sections -fdata-sections -w -x c++ -E -CC -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DDEBUG_ESP_PORT=Serial -DARDUINO=10805 -DARDUINO_ESP8266_NODEMCU -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD="ESP8266_NODEMCU" -DESP8266 "-IC:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266" "-IC:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\variants
    odemcu" "C:\Users
    ama\AppData\Local\Temp\arduino_build_943895\sketch\otawireless.ino.cpp" -o "nul"
    "C:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-g++" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-IC:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/include" "-IC:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/lwip2/include" "-IC:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/libc/xtensa-lx106-elf/include" "-IC:\Users
    ama\AppData\Local\Temp\arduino_build_943895/core" -c -w -Os -g -mlongcalls -mtext-section-literals -fno-exceptions -fno-rtti -falign-functions=4 -std=c++11 -ffunction-sections -fdata-sections -w -x c++ -E -CC -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DDEBUG_ESP_PORT=Serial -DARDUINO=10805 -DARDUINO_ESP8266_NODEMCU -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD="ESP8266_NODEMCU" -DESP8266 "-IC:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266" "-IC:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\variants
    odemcu" "-IC:\Arduino\libraries\Keyboard\src" "C:\Users
    ama\AppData\Local\Temp\arduino_build_943895\sketch\otawireless.ino.cpp" -o "nul"
    "C:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-g++" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-IC:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/include" "-IC:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/lwip2/include" "-IC:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/libc/xtensa-lx106-elf/include" "-IC:\Users
    ama\AppData\Local\Temp\arduino_build_943895/core" -c -w -Os -g -mlongcalls -mtext-section-literals -fno-exceptions -fno-rtti -falign-functions=4 -std=c++11 -ffunction-sections -fdata-sections -w -x c++ -E -CC -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DDEBUG_ESP_PORT=Serial -DARDUINO=10805 -DARDUINO_ESP8266_NODEMCU -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD="ESP8266_NODEMCU" -DESP8266 "-IC:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266" "-IC:\Users
    ama\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\variants
    odemcu" "-IC:\Arduino\libraries\Keyboard\src" "C:\Users
    ama\AppData\Local\Temp\arduino_build_943895\sketch\otawireless.ino.cpp" -o "C:\Users
    ama\AppData\Local\Temp\arduino_build_943895\preproc\ctags_target_for_gcc_minus_e.cpp"
    In file included from C:\Users
    ama\Desktop\sensor\otawireless\otawireless.ino:1:0:
    C:\Arduino\libraries\Keyboard\src/Keyboard.h:25:17: fatal error: HID.h: No such file or directory
    #include "HID.h"
    ^
    compilation terminated.
    Using library Keyboard at version 1.0.1 in folder: C:\Arduino\libraries\Keyboard
    exit status 1
    Error compiling for board NodeMCU 0.9 (ESP-12 Module).

    • @datasith
      @datasith  6 ปีที่แล้ว

      The error tells you what's wrong.

  • @DmitriNesterov
    @DmitriNesterov 4 ปีที่แล้ว +1

    I know this joke! You have a wireless programmer in your power bank! 😁👍

    • @datasith
      @datasith  4 ปีที่แล้ว +1

      thanks for watching!

  • @ramakant610
    @ramakant610 6 ปีที่แล้ว

    how to store data of ota programing if sensor is connected

    • @datasith
      @datasith  6 ปีที่แล้ว

      You can save the data either to an SD card or SPIFFS so that it doesn't get erased when you upload a new program.

    • @ramakant610
      @ramakant610 6 ปีที่แล้ว

      collect result like serial monitor

    • @datasith
      @datasith  6 ปีที่แล้ว

      @@ramakant610 the data will be stored in a text file in the SD card or SPIFFS.

    • @ramakant610
      @ramakant610 6 ปีที่แล้ว

      @@datasith after ota programming , i am unable to store data in putty or not see the data in serial monitor..if serial monitor open it will gives error while uploading code wirelessly

    • @datasith
      @datasith  6 ปีที่แล้ว

      ​@@ramakant610 Serial Monitor and Putty show the data transferred over USB. For OTA programming, there's no USB connection. You can see the data if you store it in a variable (RAM), or a text file in SPIFFS or SD Card, and then serve it over HTTP as a using the server.on() and server.streamFile() functions.

  • @MrDenisJoshua
    @MrDenisJoshua 5 ปีที่แล้ว

    Can this code work on NodeMCU V3 also please ? thanks.

    • @datasith
      @datasith  5 ปีที่แล้ว

      Yep, you just need to select the right board from the Tools menu.

    • @MrDenisJoshua
      @MrDenisJoshua 5 ปีที่แล้ว

      @@datasith Yeah… thanks a lot :-)

  • @madhukeshnp
    @madhukeshnp 5 ปีที่แล้ว

    Can this be done out side the LAN ?

    • @datasith
      @datasith  5 ปีที่แล้ว

      Yes but it requires a WAN-accessible server where you can upload the firmware file. Once uploaded then the server needs to notify the ESP8266 that a new firmware file is available. It's doable by yourself, but tricky. If you check @AndreasSpiess channel, he has a service that does this for you.

    • @madhukeshnp
      @madhukeshnp 5 ปีที่แล้ว

      @@datasith thats really interesting. It would be great if you do a tutorial on it. I haven't come across any such tutorials on TH-cam. I wish you you teach us how to do it. Thank you in advance.

  • @lodesmets9815
    @lodesmets9815 6 ปีที่แล้ว

    Very useful and well explained video

    • @datasith
      @datasith  6 ปีที่แล้ว +1

      Thanks, Lode, for the kind words. I'm glad you found it useful!

  • @balaramaraju4135
    @balaramaraju4135 6 ปีที่แล้ว

    Can i upload code to esp8266 through ota from Android??

    • @datasith
      @datasith  6 ปีที่แล้ว +1

      In theory yes, but you'd need to find an app to do so-or write your own. I think there's a way of uploading .bin files through the webserver, and have the ESP8266 update its firmware once you do. I'll do a demo in the future if this is possible.

    • @balaramaraju4135
      @balaramaraju4135 6 ปีที่แล้ว

      @@datasith Thank you😊

  • @petebowcott8348
    @petebowcott8348 4 ปีที่แล้ว

    Thanks so much for this, it's such a great explanation as ever!! and it worked straight out of the box like a dream! I also managed to change it to work with ESPAsyncWebServer with no problems!
    I am also looking at your tutorial "ESP8266 Web Server Upload Files Quick To SPIFFS Flash Memory Over HTTP w/ Arduino IDE", as I will also probably want to be making changes to the pages my esp8266 is serving.
    I notice (in reading the code to try and understand it more, I don't like to just cut and paste ...) that the ArduinoOTA.onStart appears to be able to update the SPIFFS as an alternative to the sketch, but I have no idea where ArduinoOTA.getCommand() is set to U_FLASH and can't find anything about setting it to U_SPIFFS? Any ideas or should I just use the curl command over HTTP as explained in your video?
    Thanks again for all of your help, you make exploring the esp extremely clear and accessible to me!!
    Pete

    • @datasith
      @datasith  4 ปีที่แล้ว

      hey pete, i'm glad you found it useful-and, most of all, that it worked!
      that is a really good question, to which i don't have a perfect answer as i haven't tried it myself. on the IDE, i suspect if you select the option "ESP8266 Sketch Data Upload" it'll send the contents of the sub-directory "data" inside your sketch folder to flash. obviously, there's an underlying tool that i had to teach myself about today (thank you!):
      what you'd want, outside of the IDE, is something along the lines of "python3 espota.py -i -I -p -P [-a password] -s -f " to send your data to the flash file system. here's more info about espota:
      github.com/esp8266/Arduino/blob/master/tools/espota.py
      really, really good question!

  • @ArtyMars
    @ArtyMars 2 ปีที่แล้ว

    Bro is Jacked :P

  • @neilvermeulen5283
    @neilvermeulen5283 5 ปีที่แล้ว

    Thank you Cisco.

    • @datasith
      @datasith  5 ปีที่แล้ว +1

      No problem, Neil. Thank _you_ for being a viewer all this time!

  • @masar-at
    @masar-at 6 ปีที่แล้ว

    this is helpfull.
    thank you

    • @datasith
      @datasith  6 ปีที่แล้ว +1

      You're very welcome, John. It makes me happy you found it useful!

  • @pattheitguy
    @pattheitguy 3 ปีที่แล้ว

    How can 7 not like?

  • @madhukeshnp
    @madhukeshnp 5 ปีที่แล้ว

    Brilliant!

    • @datasith
      @datasith  5 ปีที่แล้ว

      Thank you!

  • @googleuser6875
    @googleuser6875 ปีที่แล้ว

    Great!

  • @nichtverstehen2045
    @nichtverstehen2045 ปีที่แล้ว

    this is exactly how hackers owned the internet. by realizing that web apps have unprotected "/reset" urls. it should be illegal to teach like this in 21st century.
    it's sad truth that people who teach on youtube know little to nothing about proper software development. they just finished reading some arduino book and copy examples from it to teach others.

  • @jheijkamp
    @jheijkamp 6 ปีที่แล้ว

    hello Cisco,
    a good video but still a thumbs down. why the music? it distracts from what you tell. if I want to hear music then I will go to the right channel on youtube. continue with your good explanation videos (without The music).
    greeting,
    Jan

    • @datasith
      @datasith  6 ปีที่แล้ว

      Hello Jan.
      As you said, there are many channels on TH-cam. If my music bothers you, go to a different channel where videos have no music. Continue with your rude comments (just not on my channel).
      Greeting,
      Cisco

    • @jheijkamp
      @jheijkamp 6 ปีที่แล้ว

      hello Cisco.
      I am sorry. I was not mean to be rude. the music is disturbing when I want to follow what you say. maybe this is because English is not my mother tongue and if you only focus on English speaking people then that is ok. I think it's a shame that a good explanation in my eyes is negated by music that is not important for what you want to say.
      greeting,
      Jan

  • @EnergeticWaves
    @EnergeticWaves 5 ปีที่แล้ว

    why do you have });

    • @datasith
      @datasith  5 ปีที่แล้ว

      Don't mean this as disrespectful: google it.

  • @vtech8716
    @vtech8716 6 ปีที่แล้ว

    very good

    • @datasith
      @datasith  6 ปีที่แล้ว

      Thank you! I'm glad you liked it.

  • @tcurdt
    @tcurdt 6 ปีที่แล้ว

    Restarting via unsecured HTTP endpoint - grand idea. (sarcasm)

    • @datasith
      @datasith  6 ปีที่แล้ว +2

      Thanks for clarifying, I wouldn’t have guessed otherwise. If you’re looking at *introductory* TH-cam videos for a project where anything more secure is required, you’re gonna have a bad time.