ESP32 | Arduino sketches for the ESP32

 by   kriswiner C++ Version: Current License: No License

kandi X-RAY | ESP32 Summary

kandi X-RAY | ESP32 Summary

ESP32 is a C++ library typically used in Internet of Things (IoT), Arduino applications. ESP32 has no bugs, it has no vulnerabilities and it has low support. You can download it from GitHub.

These are sketches I have found to run on my own 1.4" x 0.7" ESP32 development board pictured below. These are mostly for using I2C sensors with the ESP32 but I intend to make use of all of the peripherals of the ESP32 and I will post working sketches as I do so. The board is open source and the design can be found here. Now you can buy this ESP32 Development Board on Tindie.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              ESP32 has a low active ecosystem.
              It has 121 star(s) with 40 fork(s). There are 26 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 16 open issues and 6 have been closed. On average issues are closed in 10 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of ESP32 is current.

            kandi-Quality Quality

              ESP32 has no bugs reported.

            kandi-Security Security

              ESP32 has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              ESP32 does not have a standard license declared.
              Check the repository for any license declaration and review the terms closely.
              OutlinedDot
              Without a license, all rights are reserved, and you cannot use the library in your applications.

            kandi-Reuse Reuse

              ESP32 releases are not available. You will need to build from source code and install.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of ESP32
            Get all kandi verified functions for this library.

            ESP32 Key Features

            No Key Features are available at this moment for ESP32.

            ESP32 Examples and Code Snippets

            No Code Snippets are available at this moment for ESP32.

            Community Discussions

            QUESTION

            why "A stack overflow in task iot_thread has been detected" is coming continuously?
            Asked 2021-Jun-14 at 22:09

            I'm working on an aws/amazon-freertos project. In there I found some unusual error "A stack overflow in task iot_thread has been detected".

            Many time I got this error and somehow I managed to remove it by changing the code.

            I just want to know what this error means actually?

            As per what I know, it simply means that the iot_thread ask stack size is not sufficient. So it's getting overflow.

            Is this the only reason why this error comes or can there be another reason for this?

            If yes then where should I increase the stack size of the iot_thread task?

            Full Log:

            ...

            ANSWER

            Answered 2021-Jun-14 at 22:05

            It simply means that the iot_thread ask stack size is not sufficient. [...] Is this the only reason why this error comes or can there be another reason for this?

            Either it is insufficient you your stack usage is excessive (due to recursion error or instantiation of instantiation of large objects or arrays. Either way the cause is the same. Whether it is due insufficient stack or excessive stack usage is a matter of design an intent.

            If yes then where should I increase the stack size of the iot_thread task?

            The stack for a thread is assigned in the task creation function. For a dynamically allocated stack that would be the xTaskCreate() call usStackDepth parameter:

            Source https://stackoverflow.com/questions/67970388

            QUESTION

            ESP32 - Webserver webpage with variable content
            Asked 2021-Jun-14 at 19:29

            I have a ESP32 configured as webserver. I have multiple webpages, that I include as files

            for example index.h

            ...

            ANSWER

            Answered 2021-Jun-14 at 19:29

            You should post a Minimal, Reproducible Example to get detailed advice. Otherwise we can only guess what's your framework, language, web server etc.

            Depends on how your web server works. If it's simple and wants to you to give it the entire page at once, you'll have to allocate a chunk of RAM (e.g. dynamically from heap, or perhaps during compile-time from the data section) and generate the web page in there before handing it to the server.

            In extremely simple cases you can just snprintf() the entire page and hand it over:

            Source https://stackoverflow.com/questions/67970017

            QUESTION

            Esp8266 WiFi STA cannot see Esp32 WiFi AP network, why?
            Asked 2021-Jun-14 at 07:45

            Started to develop a wiresless 'cable' solution (with websockets) between two ESPs, a wireless serial 'cable' between computer and a serial device to mimick a direct wired connection. Was working great however just accidentally fried one of the ESPs (short a serial cable connection to higher voltage - sigh) when testing. Replaced one of the ESP32s with an ESP8266. Suspect this should work however it did not.

            The problem is the ESP8266 (client) cannot find the network of the ESP32 (server). Why it doesn't work? My computer can see the server and can connect. Fried ESP32 the same, no problem.

            Tried the WiFiScan demo on the ESP8266 and can detect all other WiFi SSIDs/MACs in neighborhood however cannot detect the ESP32 server it's SSID/MAC.

            Why it doesn't work? What is the difference and how can I solve this?

            ESP32 - code of the server

            ...

            ANSWER

            Answered 2021-Jun-14 at 07:45

            WiFi channels 12-14 are not used in some countries (e.g. US). Perhaps the ESP32 AP picked one of those channels, and ESP8266 is configured by default with settings from a country which doesn't allow them. Set the AP channel to some reasonably safe value in range 1-11.

            I can see that the default channel should be 1, but I'd suggest experimenting with it, perhaps setting it to 6:

            Source https://stackoverflow.com/questions/67963133

            QUESTION

            ESP32 - Webserver with 2 webpages and one form
            Asked 2021-Jun-13 at 17:23

            I need to program a ESP32 to act as webserver and have 2 simple pages.

            The first one should contain a form that the user has to fill in. (one text box, one dropdown and one checkbox.) The form has a submit button, and when it is pressed, the values are written to the ESP32, and a new page is presented. This new page will the update its content dynamically via AJAX calls.

            I've found and seen countless tutorials and managed to make the second AJAX page that updates on its own without refreshing. I am not able to undertand tough how I can make the / root page with the form to submit its data, AND to forward to the second page.

            So basically the questions are 3:

            1. how can i have more than one page on a ESP32?
            2. how can I submit a form so that the values get stored in variables on the ESP?
            3. how can the submit button forward to the next page?

            Thank you

            -----EDIT:------

            I found an answer to questions 1 and 3 with this sample: https://www.arduinoslovakia.eu/blog/2019/4/esp8266---http-server-s-viac-strankami?lang=en

            question 2 is still open tough. Thank you!

            ...

            ANSWER

            Answered 2021-Jun-13 at 17:23

            You need to parse the incoming url, depending on the request you are sending with your form. The most common is a POST request, regarding to HTML forms.

            If you send a POST request to your ESP, then your data will be in the body and you should parse in there. You will get a request like this (Reference: https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST)

            Source https://stackoverflow.com/questions/67958897

            QUESTION

            HOW to setup Windows 10 + VSCode + pymakr for Python programming + Micropython + ESP-IDF for esp32?
            Asked 2021-Jun-11 at 19:32

            I started several attempts to get this complex working. As mentioned in so many other discussions the micropython modules are not recognized, e.g. machine. Python modules like numpy were also not found.

            I think, the python environment is not working correctly and the modules are there but not found. But, there is no recommendation or tutorial that really solves this. How can I set this up?

            What I did so far:

            1. manually installed all components according to tutorials

            2. another way: installed the pything coding pack which contains a lot of stuff.

            3. The Windows paths have the correct folder paths to the components.

            4. I set the obviously correct python interpreter in vscode

            5. connection/communication with board is working. I can set up codes which dont contain micropython modules.

            6. in other IDE's like thonny/mu the modules are found.

            7. I also installed a python venv: I could install numpy inside this venv and later it was found in vscode (wasn't found before) when I used the venv python as interpreter in vscode. But I wasn't succesful with micropython in venv.

            PS: I can use the micropython modules like machine or network and upload the sketch to the esp32 board. It is working on the board. But I cant run any of the sketches in vscode. I think that Vscode uses cpython instead of micropython but shouldn't this be working after the installations I mentioned?

            ...

            ANSWER

            Answered 2021-May-24 at 00:00

            It sounds like you're confusing modules you install on the machine running Visual Studio Code and modules you install in Micropython on the ESP32.

            They're totally separate.

            Python on your Windows machine can use venv.

            MicroPython doesn't use venv at all (there apparently is a clone of venv for MicroPython but it's not readily apparent what it does or why or how you'd use it). It is a completely separate instance of Python from the one on your Windows machine, and it doesn't operate the same way. Modules you install under venv won't be visible or usable by MicroPython. Numpy in particular is not available for MicroPython.

            Many modules need to be written specially to work with MicroPython. MicroPython isn't running in a powerful operating system like Windows, MacOS or Linux. It's running in a highly constrained environment that lacks much of the functionality of those operating systems, and that has extremely little memory and storage compared to them. You can't expect that a module written for regular Python will just work on MicroPython (and likewise, many MicroPython modules use hardware features like I2C or SPI access that may not be available on more powerful, general purpose computers).

            Only modules available with upip will be available for MicroPython. They'll need to be installed in the instance of MicroPython running on the ESP32, not in the instance of Python running under Windows. They're two, totally separate instances of Python.

            Source https://stackoverflow.com/questions/67647095

            QUESTION

            ESP32 storage size of 'netif' isn't known, how to fix this error?
            Asked 2021-Jun-11 at 08:13

            Hi I'm trying to get this code block to run in the mainline of one of the examples provided with ESP-IDF (denoted by arrows)

            ...

            ANSWER

            Answered 2021-Jun-11 at 08:13

            The root cause of this error is that the struct esp_netif_t is a private type in the netif implementation. You're not supposed to create any objects of this type, only pass around handles (pointers) to it.

            I suspect you've misunderstood what esp_netif_get_netif_impl_name() does. According to the API doc it takes a handle to a esp_netif_t and returns the name corresponding to this interface.

            What you seem to be after is retrieving the handle to your interface in the first place. For this the (rather terse) API doc suggest a few other functions, e.g. esp_netif_get_handle_from_ifkey(...) for searching for interfaces using something called interface key (no idea, sorry, but google helps there) or esp_netif_next(...) for iterating over interfaces.

            According to this forum post you might want to try something like this:

            Source https://stackoverflow.com/questions/67919610

            QUESTION

            UDP and TCP/IP packet size in TOIT
            Asked 2021-Jun-10 at 12:17

            While experimenting with a UDP server that runs on esp32, I found that the size of the received packet is limited to 1500 bytes: 20 (IP header) + 8 (UDP header) + 1472 (data), (although in theory UDP as if can support packets data up to 64K). This means that in order to transfer a larger amount of data, the client must split it into several chunks and send them one after the other, and on the server side, this data will need to be restored. I think that the overhead of such a solution will be quite high. I also know that TOIT provides TCP/IP connection. Naturally, the packet size is also limited in the case of TCP/IP. This is 64K (65535 bytes). Does TOIT have any additional restrictions on the TCP/IP connection, or 64K value is fact also for TOIT?

            ...

            ANSWER

            Answered 2021-Jun-10 at 12:17

            As described in this question/answer, it's a matter of avoiding packet fragmentation. Sending packages above this size will force the system to split them up into multiple fragments of size MTU, with each of them being individually unreliable. As memory is already very limited on embedded systems, sending large (> MTU) packages where all fragments has to arrive before it can be processed, can be very unfortunate for the overall application behavior as it can time out or go out-of-memory.

            Instead the application should look at a streaming pipeline (perhaps even TCP to handle the unreliable aspects as well).

            As TCP/IP is a streaming protocol, any sized "packages" can be sent, as they are automatically split into fragments of size MTU. Note that the data is received in "random"-sized packages, though the order of the bytes is fully preserved.

            Source https://stackoverflow.com/questions/67836543

            QUESTION

            P10 Led Matrix 64x32 not show true in pixeltime (PxMatrix library) with ESP8266 NodeMCU
            Asked 2021-Jun-10 at 09:17

            I am learning how to control P10 Led matrix 64x32 with NodeModule MCU ESP8266, I google and found this library https://github.com/2dom/PxMatrix and this tutorial https://www.instructables.com/RGB-LED-Matrix-With-an-ESP8266/. I believed that I wire between P10 and ESP8266 in true way in the tutorial, but that P10 led does not display as the example:

            The true result will be:

            This is my wire diagram:

            This is my code:

            ...

            ANSWER

            Answered 2021-Jun-10 at 09:17

            I fixed this by adding

            display.setPanelsWidth(2);

            display.setMuxPattern(SHIFTREG_ABC_BIN_DE);

            because my led is combined by 2 matrix 32x16.

            Source https://stackoverflow.com/questions/67522932

            QUESTION

            Sending Sensor Data to Firebase using ESP32+Sim800L
            Asked 2021-Jun-08 at 05:47

            I have a TTGO T-CALL ESP32+Sim800L board and I want to send accelerometer data to Firebase. I am using the TinyGSM library which supports SSL/https connections for Sim800L. I am currently sending dummy data to see if it works but it is giving me a failed flag. Why is it not sending data to Firebase?

            ...

            ANSWER

            Answered 2021-Jun-08 at 05:47

            I didn't find a lot of resources online, however, I did manage to do this and I made a GitHub repo for anyone who needs help with the same.

            Basically as Firebase accepts only Https requests, it is not possible to formulate that on most microcontrollers and GSM modules. To circumvent this problem, I created a php server to which I can send an HTTP POST request and the script can get the data from it and push it to Firebase with a php firebase library.

            Source https://stackoverflow.com/questions/67224717

            QUESTION

            Any solution for file upload problem on Arduino ESP32 via http
            Asked 2021-Jun-07 at 16:04

            First the problem.

            The user can upload file from the web with ajax. If the file is relatively big, the uploading takes a while. If the user's connection is lost or something happens during the uploading process, the file is going to be damaged or empty.

            How should I secure the upload process so the file remains the same if it fails for some reason?

            I'm using the following libraries on the Arduino ESP32:

            I have a basic file upload handler on my esp32 which looks like this:

            ...

            ANSWER

            Answered 2021-May-20 at 06:45

            It seems to me that the problem solved.

            I have managed to replace the String buffer with a char one in external memory. It seems stable but requires more testing. I'll post the solution but if anyone has a better approach feel free to comment here.

            Thanks.

            Source https://stackoverflow.com/questions/67598802

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install ESP32

            You can download it from GitHub.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/kriswiner/ESP32.git

          • CLI

            gh repo clone kriswiner/ESP32

          • sshUrl

            git@github.com:kriswiner/ESP32.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link