🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    M5Stack (basic/grey) as WiFi AP ?

    M5stack Grey
    3
    17
    27.7k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • MatiM
      Mati
      last edited by

      Its not true its req connection to m5stack. Grab UIFlow-Desktop-IDE
      https://m5stack.com/pages/download

      Change stack device to usb mode and go play with it without api =]

      1 Reply Last reply Reply Quote 0
      • T
        Thrasher
        last edited by

        Thanks Mati, but Im doing that since day 1, problem is there's no code examples/blocks/anything to set up wifi ap with it

        1 Reply Last reply Reply Quote 0
        • lukasmaximusL
          lukasmaximus
          last edited by

          Hi @Thrasher I'm not sure whether this is exactly what you are trying to do but I wrote a simple web server program in micropython, maybe it can help you https://www.hackster.io/lukasmaximus89/m5stack-micropython-simple-web-server-20a4c4

          T 1 Reply Last reply Reply Quote 0
          • T
            Thrasher @lukasmaximus
            last edited by

            @lukasmaximus said in M5Stack (basic/grey) as WiFi AP ?:

            Hi @Thrasher I'm not sure whether this is exactly what you are trying to do but I wrote a simple web server program in micropython, maybe it can help you https://www.hackster.io/lukasmaximus89/m5stack-micropython-simple-web-server-20a4c4

            Hi lukasmaximus, yes, I saw your project yesterday, problem is it requiers router/access point so M5Stack connects to it as client first. I want M5Stack to be access point itself (e.g. when you configure M5Stack at first boot to connect, M5Stack creates access point with web server)

            1 Reply Last reply Reply Quote 0
            • lukasmaximusL
              lukasmaximus
              last edited by

              Hi @Thrasher I was able to configure the AP of the M5Stack with the following code but as of yet have been unable to setup the webserver on it maybe you will be more successfull than me:

              from m5stack import *
              from m5ui import *
              from uiflow import *
              import socket
              import network
              ap = network.WLAN(network.AP_IF)
              ap.active(True)
              ap.config(essid='ESP32Luke')
              ap.config(authmode=3, password='123456789')
              
              T 1 Reply Last reply Reply Quote 0
              • T
                Thrasher @lukasmaximus
                last edited by Thrasher

                @lukasmaximus oh great Lukas, thanks! I will start trying now, couldnt find those those commands documented anywhere.
                Thanks!
                However, where's DHCP settings? Like IP range and such? :)

                1 Reply Last reply Reply Quote 0
                • lukasmaximusL
                  lukasmaximus
                  last edited by

                  check the network and wlan pages in the official micropython docs
                  https://docs.micropython.org/en/latest/library/network.WLAN.html

                  T 1 Reply Last reply Reply Quote 0
                  • T
                    Thrasher @lukasmaximus
                    last edited by

                    @lukasmaximus Ok, thank you, digging it

                    1 Reply Last reply Reply Quote 0
                    • T
                      Thrasher
                      last edited by

                      Im bumping this, couldnt find anything there.. Need an example of webserver (as simple as possible..)

                      1 Reply Last reply Reply Quote 0
                      • lukasmaximusL
                        lukasmaximus
                        last edited by

                        If you had taken the time to try and combine the code I gave you for the AP connection and the webserver code from my hackster project, you'd find it wasn't that hard. Even a guy with my limited abilities was able to bust out a quick concept in a few minutes.

                        from m5stack import *
                        from m5ui import *
                        from uiflow import *
                        import network
                        
                        try:
                            import usocket as socket
                        except:
                            import socket
                        
                        def web_page():
                            html = """<html><body>M5Stack AP Server</body></html>"""
                            return html
                        
                        ap = network.WLAN(network.AP_IF)
                        ap.active(True)
                        ap.config(essid='ESP32Luke')
                        ap.config(authmode=3, password='123456789')
                        lcd.clear()
                        
                        response = None
                        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                        s.bind(('192.168.4.1',80))
                        s.listen(5)
                        
                        while True:
                            conn, addr = s.accept()
                            request = conn.recv(1024)
                            request = str(request)
                            print ('Content = %s' % request)
                            lcd.print('Content = %s' % request,0,50,0xffffff)
                            if ap.isconnected() == True:
                                lcd.print('connected',0,0,0xffffff)
                            else:
                                lcd.print('not connected',0,0,0xffffff)
                            response = web_page()
                            conn.send('HTTP/1.1 200 OK\n')
                            conn.send('Content-Type: text/html\n')
                            conn.send('Connection: close\n\n')
                            conn.sendall(response)
                            conn.close()
                        
                        T 1 Reply Last reply Reply Quote 3
                        • T
                          Thrasher @lukasmaximus
                          last edited by Thrasher

                          @lukasmaximus
                          Thanks, I've tried this code and it workes great.
                          I've edited it a bit to fit my project,
                          I made a simple htlm page to display
                          it has 4 field to input string data.
                          Now question is - how do I obtain entered data? I know old solution with parsing resulted url to obtain data from it (its not much convinient and pretty primeval way but still working)
                          Im new to micropython, is it possible to get submitted data directly into variables so I can use them in my future code?
                          Thanks

                          upd: I've found uRequests library, but I can't think realise how to implent it within m5stack ecosystem

                          1 Reply Last reply Reply Quote 0
                          • lukasmaximusL
                            lukasmaximus
                            last edited by

                            @Thrasher glad you got it to work and sorry if I may have come across rude, bad day at work. I haven't tried to have any input fields on the pages I have created I'm afraid so cant help you there. I have seen various info about urequests it seems like a simpler and more robust way to implement this sort of stuff, I am currently researching it. If I come up with anything I will be sure to post it here.

                            T 1 Reply Last reply Reply Quote 0
                            • T
                              Thrasher @lukasmaximus
                              last edited by

                              @lukasmaximus
                              No prob, I was just bit upset with some M5Stack features aswell, its all good, Im still new to ESP32 itself and as usual lacking time to discover it.
                              uRequests seem to be fine for this task, I'm trying to work with VS Code but most of examples lead to M5Stack and UIFlow libraries,
                              Guess I should start with something eaasy like blinking leds first :D

                              Overall idea is:
                              I got couple devices (maybe 3 of them) driven by own controllers (Atmega family)
                              I want M5Stack to connect to them through i2c
                              M5Stack runs webserver, whenever I connect it, I got 2 buttons like read and write, once I press read it gets atmega devies statuses and shows in browser, than I can edit them, press write and it will send new parameters.
                              I've got atmega devices ready, html page, m5stacks, wires but can't figure out how to combine it all together
                              I did similar job with atmegas some years ago and I remember I used to parse url to get params from it (GET method), but thought there's some advanced libraries already exist. I'd go MQTT but it requiers broker device which I dont want to have

                              Thanks

                              1 Reply Last reply Reply Quote 0
                              • T
                                Thrasher
                                last edited by

                                @lukasmaximus Hey, I've just noticed you've updated hackster.io guide, great job, I nearly finished my project and it works fine with arduino IDE, but I want to make it work on micropython

                                1 Reply Last reply Reply Quote 0
                                • lukasmaximusL
                                  lukasmaximus
                                  last edited by lukasmaximus

                                  Thanks, hope it can be helpful. I want to do more with it but haven't had time to work any more on the project since. If you don't mind would you be able to make a brief guide on how you got it working on arduino, it would help a lot of people out

                                  1 Reply Last reply Reply Quote 0
                                  • T
                                    Thrasher
                                    last edited by Thrasher

                                    @lukasmaximus
                                    Sure, I can try, was never good in making guides but could be an intetesting expierence for me aswell

                                    Will try to move my project on micropython with help of your guide, as said time is our enemy :]

                                    I also want to add new feature, right now my html form looks like

                                    Name:input field

                                    I want to add current values label to html form, so when I open html I can see current value sent to it by esp32 (M5Stack in our case)

                                    It actually a good project which gives a lot of knowledge with tcp/ip, html, css (and even javascript), C, micropython, basic electronics. I would recommend to make something similar for everyone who is starting to explore IoT and embedded things

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post