WiFi Control Your Micropython Project Using a Web Interface

Поділитися
Вставка
  • Опубліковано 16 лип 2024
  • Microcontrollers such as the ESP32 and Raspberry Pi Pico W have an inbuilt WiFi interface. This brings a very powerful communications system to your projects. Your code now has access to the full Internet and other devices can now interact with your project over the wireless signal.
    In this tutorial I'll show you how to connect to WiFi using Micropython on a Raspberry Pi Pico. We'll pull data from a web based API and then build a web page interface to allow use to control our microcontroller project and pull data from it.
    Make sure you check out the main project page on my website
    bytesnbits.co.uk/simple-micro...
    GitHub repository
    github.com/getis/pi-pico-w-si...
    Shorter Version
    • Wi-Fi on the Raspberry...
    0:00 Introduction
    4:00 Connect to a Wi-Fi network
    10:50 Get data from a web API
    23:00 Creating a web server on the Pi Pico
    32:00 Creating API end points - urls the Pico will serve
    33:50 Building the web page for project control
    39:00 Decoding the request data
    44:00 Creating your own Wi-Fi network - Access point mode

КОМЕНТАРІ • 76

  • @durimmiziraj4815
    @durimmiziraj4815 Рік тому +3

    Hands down, THE best tutorial I have ever come across.

    • @BytesNBits
      @BytesNBits  Рік тому

      Thanks. Glad you found it useful.

  • @patrickrobinson317
    @patrickrobinson317 23 дні тому

    Thanks for making this video and the ENTIRE series.
    Your work is greatly appreciated. 😊
    Patrick from Bethesda, Maryland, USA

  • @dougblanding8791
    @dougblanding8791 Рік тому +2

    Bob, Thanks for this fantastic series of tutorials on webserver for Pico.

    • @BytesNBits
      @BytesNBits  Рік тому

      Thank you very much. I hope you've found them useful.

  • @tenapier
    @tenapier Рік тому +2

    This is excellent! Thank you for your teaching and explanations, this is just what I needed to help learn the Pi Pico W and Micropython!

  • @RussellEveleigh
    @RussellEveleigh Рік тому +3

    I’m glad I found this video and your channel. Your explanation really helped me.
    I’m looking forward to the follow up with REST! Also, looking to learn a simple way to pass variables via get or post that can then be used elsewhere in the code.

    • @BytesNBits
      @BytesNBits  Рік тому +2

      Hi. Glad you found it useful. The REST API video should be out this weekend. It will cover data passing in both directions.

  • @MorrWorm8
    @MorrWorm8 Рік тому

    Bro!! A full video and posting a summary is such a great idea!! This is so awesome. Liked & Subscribed!!

    • @BytesNBits
      @BytesNBits  Рік тому +1

      Thanks for the sub!

    • @MorrWorm8
      @MorrWorm8 Рік тому

      @@BytesNBits no problem, well deserved!

  • @janinnz1261
    @janinnz1261 6 місяців тому

    This was a perfect beginner video ! You were very clear - Thank you !

    • @BytesNBits
      @BytesNBits  6 місяців тому

      Glad it was helpful!

  • @weyersjc
    @weyersjc 3 місяці тому

    Thank you, I wish more you tubers can adopt your way of explaining. Well done to you sir!

  • @ronkline8726
    @ronkline8726 Рік тому +1

    Very good explanation of each part of the program . Thank you !!

    • @BytesNBits
      @BytesNBits  Рік тому

      Thanks. I hope you found it useful.

  • @failureisnotoptional929
    @failureisnotoptional929 Рік тому +1

    Fantastic work, you sir are a Grade 1 communicator.

  • @rahulathsr
    @rahulathsr 6 місяців тому

    Loved your structured explanation!

  • @umutkayacan7659
    @umutkayacan7659 Рік тому +1

    I liked the drawing animation in the beginning, very cool indeed.

  • @rajbudhabhatti3449
    @rajbudhabhatti3449 6 місяців тому

    Thank you for developing such a great video. I managed to connect my pico to router and as a AP with first try. Excellent support. Thanks.

  • @yahmk3978
    @yahmk3978 Рік тому +2

    Thank you!

  • @marktompkins3180
    @marktompkins3180 11 місяців тому

    This excellent! I've studied micropython for a long time, and this the best tutorial that I have ever seen. Thank you very much sir for sharing this.

    • @BytesNBits
      @BytesNBits  11 місяців тому

      Glad it was helpful!

    • @marktompkins3180
      @marktompkins3180 11 місяців тому

      I have an idea for a project for you on your channel. It would be for a timelock device (like for a bank, but for personal use). It would comprise a scheduler, a calender, a schedule, perhaps an mqtt interface, and an a hardware interlock for actuating door lock relays. If you consult, and are interested, please quote me. I've looked at iec61131 and openplc to do this, but it has to be designed properly, and tested. Having an open source program would create a community, and I think that such a project would be very popular. I have a garden that I must tend, haven't coded for years, and also have other building construction that I is higher priority.

  • @elektron2kim666
    @elektron2kim666 Рік тому +1

    Awesome. 19:50: You can get the correct time every night or so (and at startup) - maybe from a button. I like clocks.

    • @BytesNBits
      @BytesNBits  Рік тому

      Yes. Having the Internet opens up a lot of useful opportunities.

  • @Andrey-rc6wp
    @Andrey-rc6wp 4 місяці тому

    By far the coolest nerd on UA-cam. Bro looks like a Chad and explains things like a Chad too 🫡

  • @rd-tk6js
    @rd-tk6js 5 місяців тому

    Very well explained, thanks !

    • @BytesNBits
      @BytesNBits  5 місяців тому

      Glad it was helpful!

  • @gmailmisev
    @gmailmisev Рік тому +1

    I watched this whole series today and learned a lot. Thank you for the videos! May i ask what editor you are using for the python code?

    • @BytesNBits
      @BytesNBits  Рік тому

      Thanks for our comments. I use PyCharm for coding in Python. The community edition is free. I did make a setup video a while back as an intro to micropython.

  • @user-ps6ir3ji8p
    @user-ps6ir3ji8p 10 місяців тому

    one of the best!

  • @bennybirgermllerjensen3223
    @bennybirgermllerjensen3223 Місяць тому

    Thanks!

    • @BytesNBits
      @BytesNBits  Місяць тому

      No problem! And thank you!

  • @TOMTOM-nh3nl
    @TOMTOM-nh3nl Рік тому

    Thank You

  • @3phasetinkerer
    @3phasetinkerer 9 місяців тому

    Thanks for this excellent video. I will expand this to a mobile robot control. Currently controlling using RC PWM via Pico and I though I could expand to DIY telemetry if the processing power and signal is solid.

    • @BytesNBits
      @BytesNBits  9 місяців тому

      Sounds great! Let me know how you get on.

  • @qualityphotos1
    @qualityphotos1 Рік тому +1

    Thank you ... I am an absolute beginner when it comes to MicroPython ... your video is excellent.
    Instead of the Raspberry Pi Pico I am using an ESP8266 Node MCU and the Mu editor.
    The only change that I found necessary to adapt your code to my ESP8266 was to change the 3 to a 5 when reporting a successful connection ... for some reason wlan.status() returns a different set of numbers when using an ESP8266.
    I look forward to your future videos

  • @TerribleShmeltingAccident
    @TerribleShmeltingAccident 9 місяців тому

    dig the channel name!

    • @BytesNBits
      @BytesNBits  9 місяців тому

      Thanks. I like it too!

  • @rd-tk6js
    @rd-tk6js Місяць тому

    Excellent tutorial, thanks ! I have one query. How do you actually load the simpleled.html file to PicoPi from PyCharm ?

    • @BytesNBits
      @BytesNBits  Місяць тому

      If you right click on a file you'll get the option to Run 'Flash..... This will upload it to the Pi Pico.

  • @wyngreece7
    @wyngreece7 9 місяців тому

    Excellent video! I have an sensor and i want to display new values every 2 seconds. Could this be done without refresh the page? Something like ajax method. Pico return the date to javascript, and javascript change data via ellement id

    • @BytesNBits
      @BytesNBits  9 місяців тому

      Yes. Create a read data API endpoint and use it to read the data every 2 seconds.

  • @MrBobWareham
    @MrBobWareham 10 місяців тому

    A very nice video, can I use ESP32 and Thonny to follow along with this tutorial?

    • @BytesNBits
      @BytesNBits  10 місяців тому

      This video should work fine on the ESP32. Some of the later videos in the series will need adjusting as the ESP32 handles multiple cores and async processing differently to the Pi Pico.

  • @tubenutzer0007
    @tubenutzer0007 7 місяців тому

    In terms of content, I am looking for a way to store the access data for the WLAN securely, i.e. not in a separate file as plain text. As the RP2040 does not have a CryptoChip, the integration of an external chip such as the ATECC608A would be a possibility. But to be honest, that's a bit too much for me without help...

    • @BytesNBits
      @BytesNBits  7 місяців тому

      Sounds like an interesting project.

  • @Neil264Hoskins
    @Neil264Hoskins 2 місяці тому

    In ap mode, did you need to turn off the sim on the phone?

    • @BytesNBits
      @BytesNBits  2 місяці тому

      The sim shouldn't get in the way. You should see it as just another wifi network to connect to.

  • @Amalokch
    @Amalokch 11 місяців тому

    Stupid question: is there a way to program the pi pico w over wifi?

    • @BytesNBits
      @BytesNBits  11 місяців тому

      Not such a stupid question. Not directly. You'd need some sort of base image running in the Pico that allows the files to be uploaded. I'm not sure if that exists yet for the Pico but it's not unfeasible. Have a search on Google.

    • @Amalokch
      @Amalokch 11 місяців тому

      @@BytesNBits Thanks for not calling it stupid 😀, I indeed did some google foo and found something called "OTA" (Over the air) update like JFrog, it seems is used for large companies when they need to updates hundreds of IoT devices (pi Pico w). Perhaps a future video about it?

  • @gaderishi
    @gaderishi Рік тому

    Can it be controlled by any place in the world

    • @BytesNBits
      @BytesNBits  Рік тому

      You'd need to expose your Pico through your router. By default your home router won't let external traffic onto your network - at least it shouldn't!!! You need to set up port forwarding to allow connections through your router to the Pico port 80 (HTTP port). Once you do that you can access the Pico on your home IP address (you'll find this in your router settings but note it can change over time unless you've got a static IP address).

    • @gaderishi
      @gaderishi Рік тому

      @@BytesNBits thank you

  • @tubeDude48
    @tubeDude48 Рік тому

    That piece of code at 24:00 is not in your github.

    • @BytesNBits
      @BytesNBits  Рік тому +1

      Hi. It's the simpleled.py file. The one on the GitHub repo is the final version. At 24 minutes we're just building up the code. Just comment out some of the url decoding bits. I hope this helps.

    • @tubeDude48
      @tubeDude48 Рік тому

      @@BytesNBits - OK, got it!

    • @jimcraig5727
      @jimcraig5727 Рік тому

      Very well explained tutorial. Looking forward to more on the Pico. You took a several month break, hope that isn't the case after this one.

    • @BytesNBits
      @BytesNBits  Рік тому

      @@jimcraig5727 Hi. Work got in the way as usual. Back on the electronics again. These projects take a bit more time to create.

    • @jimcraig5727
      @jimcraig5727 Рік тому

      @@BytesNBits I'm hoping you may expand this Pico WiFi tutorial to include a wifi manager. I'd like to be able to use my robot car projects on other networks without recoding each time. Your detailed, clear method of instruction would be beneficial.

  • @walangpart2
    @walangpart2 8 місяців тому

    please mention that pico w only supports 2.4 ghz speed or else you will destroy the brain of pico w users with only 5g wifi available LOL

    • @BytesNBits
      @BytesNBits  8 місяців тому

      Thanks for the tip. I forget there are routers without 2.4GHz.