Hi,
I've been writing some tutorials about the ESP32 at my blog, which are available in the link bellow. I'm covering some basic topics, such as how to connect to a WiFi network or how to connect to MQTT broker, and some more advanced ones, such as using FreeRTOS in the Arduino IDE environment.
https://techtutorialsx.com/category/esp32/
Hope it helps others.
Best regards,
Nuno Santos
ESP32 Tutorials
ESP32 Tutorials
Nuno Santos
https://techtutorialsx.com/
https://techtutorialsx.com/
Re: ESP32 Tutorials
To help the search for specific content and to avoid new threads for each article, I will leave here a list of the tutorials available. I will try to keep it updated. Hope it helps.
Introductory tutorials
- Brief introduction to the ESP32: https://techtutorialsx.com/2017/04/24/esp32/
- Hello World application with the Arduino support: https://techtutorialsx.com/2017/04/24/e ... llo-world/
- Connecting to a WiFi network: https://techtutorialsx.com/2017/04/24/e ... i-network/
JSON
- Parsing JSON messages: https://techtutorialsx.com/2017/04/26/e ... sing-json/
- Creating JSON messages: https://techtutorialsx.com/2017/04/27/e ... n-message/
MQTT
- Publishing messages to a MQTT topic: https://techtutorialsx.com/2017/04/24/e ... qtt-topic/
- Subscribing to MQTT topic: https://techtutorialsx.com/2017/04/24/e ... qtt-topic/
- Sending JSON over MQTT: https://techtutorialsx.com/2017/04/29/e ... over-mqtt/
FreeRTOS general tutorials (Arduino support)
- Using FreeRTOS in the Arduino environment: https://techtutorialsx.com/2017/05/06/e ... functions/
- Creating FreeRTOS tasks: https://techtutorialsx.com/2017/05/06/e ... ng-a-task/
- Passing arguments to FreeRTOS tasks: https://techtutorialsx.com/2017/05/07/e ... rtos-task/
- Getting FreeRTOS tasks priority: https://techtutorialsx.com/2017/05/07/e ... -priority/
- FreeRTOS counting semaphores: https://techtutorialsx.com/2017/05/11/e ... emaphores/
ESP32 Dual core execution
- Getting ESP32 core where task is executing: https://techtutorialsx.com/2017/05/09/e ... tion-core/
- Running code on a specific ESP32 core: https://techtutorialsx.com/2017/05/09/e ... ific-core/
- ESP32 dual core execution speedup analysis: https://techtutorialsx.com/2017/05/16/e ... n-speedup/
SSD1306 OLED (Arduino core)
- Getting started with the display: https://techtutorialsx.com/2017/12/02/e ... d-display/
- Drawing a QR code on the SSD1306: https://techtutorialsx.com/2017/12/16/e ... a-qr-code/
- Redrawing a string: https://techtutorialsx.com/2017/12/03/e ... -a-string/
MISC (Arduino core)
- Using the pthreads library: https://techtutorialsx.com/2017/12/30/e ... s-library/
- Random number generation: https://techtutorialsx.com/2017/12/22/e ... eneration/
- Applying the HMAC SHA256 mechanism (mbed TLS): https://techtutorialsx.com/2018/01/25/e ... mechanism/
- Getting the free heap: https://techtutorialsx.com/2017/12/17/e ... free-heap/
- Basic authentication in HTTP GET requests: https://techtutorialsx.com/2018/01/03/e ... ntication/
- Base64 encoding: https://techtutorialsx.com/2017/12/09/e ... enconding/
- Software reset: https://techtutorialsx.com/2017/12/03/e ... are-reset/
- External interrupts: https://techtutorialsx.com/2017/09/30/e ... nterrupts/
- Timer interrupts: https://techtutorialsx.com/2017/10/07/e ... nterrupts/
- HTTPS GET Requests: https://techtutorialsx.com/2017/11/18/e ... t-request/
- HTTP POST Requests: https://techtutorialsx.com/2017/05/20/e ... -requests/
- HTTP GET Requests: https://techtutorialsx.com/2017/05/19/e ... -requests/
- Setting a socket server: https://techtutorialsx.com/2017/11/13/e ... et-server/
- Printing the firmware version of the MFRC522: https://techtutorialsx.com/2017/11/01/e ... e-version/
- Getting started with the aREST library: https://techtutorialsx.com/2017/10/12/e ... t-library/
- Using structs in the Arduino core: https://techtutorialsx.com/2018/03/15/e ... g-structs/
- The typedef keyword in the Arduino core: https://techtutorialsx.com/2018/03/15/e ... f-keyword/
- Controlling a relay: https://techtutorialsx.com/2018/02/17/e ... g-a-relay/
- Controlling a relay remotely with HTTP: https://techtutorialsx.com/2018/03/02/e ... -remotely/
- Variable length arrays: https://techtutorialsx.com/2018/02/13/e ... th-arrays/
- Testing uLisp (operating on top of Arduino core): https://techtutorialsx.com/2018/09/12/e ... ing-ulisp/
Async HTTP web server (Arduino)
- Serving jQuery: https://techtutorialsx.com/2018/09/11/e ... ng-jquery/
- Serving external css file (from file sustem): https://techtutorialsx.com/2018/09/17/e ... -css-file/
- Websocket endpoint and receiving data from JavaScript :https://techtutorialsx.com/2018/09/13/e ... et-client/
- Websocket endpoint sending data to JavaScript client: https://techtutorialsx.com/2018/09/11/e ... websocket/
- Serving image from SPIFFS file system: https://techtutorialsx.com/2018/08/24/e ... le-system/
- Serving HTML from SPIFFS file system: https://techtutorialsx.com/2018/08/24/e ... le-system/
JavaScript (ESPruino)
- Getting started with JavaScript on the ESP32: https://techtutorialsx.com/2017/10/15/e ... -espruino/
- Scanning WiFi Networks: https://techtutorialsx.com/2017/10/16/e ... -networks/
- Array map method: https://techtutorialsx.com/2017/10/21/e ... ap-method/
- Connect to WiFi: https://techtutorialsx.com/2017/10/21/e ... i-network/
- Using the SHA1 algorithm: https://techtutorialsx.com/2017/10/21/e ... algorithm/
- Convert number to string in different bases: https://techtutorialsx.com/2017/10/26/e ... ent-bases/
- Array every method: https://techtutorialsx.com/2017/10/30/e ... ry-method/
- Creating objects: https://techtutorialsx.com/2017/10/30/e ... t-objects/
Bluetooth Classic
- ESP32 Arduino Serial over Bluetooth: https://techtutorialsx.com/2018/03/13/e ... ving-data/
- ESP32 Arduino: Getting the Bluetooth Device Address: https://techtutorialsx.com/2018/03/09/e ... e-address/
- ESP32 Arduino: Serial communication over Bluetooth Hello World: https://techtutorialsx.com/2018/03/09/e ... llo-world/
- ESP32 Arduino Bluetooth Classic: Setting the device name: https://techtutorialsx.com/2018/03/06/e ... vice-name/
- ESP32 Arduino Bluetooth classic: Getting started: https://techtutorialsx.com/2018/03/04/e ... g-started/
- ESP32 Bluetooth: Advertising a SPP service with SDP: https://techtutorialsx.com/2017/07/17/e ... -with-sdp/
- ESP32 Bluetooth: Receiving data through RFCOMM: https://techtutorialsx.com/2017/07/09/e ... th-rfcomm/
- ESP32 Bluetooth: Finding the device with Python and BTStack: https://techtutorialsx.com/2017/07/09/e ... d-btstack/
- ESP32 Bluetooth: Using the BTstack library: https://techtutorialsx.com/2017/07/08/e ... k-library/
Videos
- ESP32 Arduino HTTP server remote reset: https://www.youtube.com/watch?v=R-vBr9nwNiI
- ESP32 Arduino get free heap: https://www.youtube.com/watch?v=TBHws3Dp_Jw
- ESP32 Arduino software reset: https://www.youtube.com/watch?v=VmKtrx3ocVc
- ESP32 Arduino parsing JSON: https://www.youtube.com/watch?v=iuHxPQB6Rx4
- ESP32 Arduino HTTP server control route HTTP methods: https://www.youtube.com/watch?v=o6ospheh6Xk
- ESP32 Arduino HTTP server multiple instances: https://www.youtube.com/watch?v=l7FGuj7Rf9E
- ESP32 Arduino HTTP server multiple routes: https://www.youtube.com/watch?v=9NePLF0aTUg
- ESP32 Arduino HTTP server get query parameters: https://www.youtube.com/watch?v=1aMNJ1VnuyQ
- ESP32 Arduino HTTP web server over soft AP: https://www.youtube.com/watch?v=vy2Rso3Qf1g
- ESP32 Arduino Soft AP: https://www.youtube.com/watch?v=6yL5kGVhSwI
- ESP32 Arduino HTTP web server serve HTML: https://www.youtube.com/watch?v=C9hSqwZmxN4
- ESP32 Arduino HTTP async web server get started: https://www.youtube.com/watch?v=BvePZCJ7tMY
- ESP32 Arduino Socket Client: https://www.youtube.com/watch?v=3bFcaTgUzfY
- ESP32 Arduino Getting SDK version: https://www.youtube.com/watch?v=RViHgMaRlCk
- ESP32 Arduino Bluetooth getting device address: https://www.youtube.com/watch?v=fxvoNpiqipQ
- ESP32 Arduino Serial over Bluetooth getting started: https://www.youtube.com/watch?v=884u3saDoi8
- HTTP POST requests: https://www.youtube.com/watch?v=LiQaPJ9UrSM
- HTTP GET requests: https://www.youtube.com/watch?v=s_2cw0k6lgs
- Connecting to WiFi network: https://www.youtube.com/watch?v=klIBePOzXpo
- Generating random numbers: https://www.youtube.com/watch?v=P5Dv6SWLQFM
- Base64 encoding: https://www.youtube.com/watch?v=puBICsjz5qk
- Espruino (JavaScript) scanning WiFi networks: https://www.youtube.com/watch?v=tmLp0WRSJbg
- Espruino (JavaScript) map function applied to arrays: https://www.youtube.com/watch?v=wEYnubdZm4M
- MicroPython HTTP webserver with picoweb: https://www.youtube.com/watch?v=wU7fSiS-mYg
- MicroPython applying filter function to lists: https://www.youtube.com/watch?v=IyCS2VYxhwo
- MicroPython applying map function to lists: https://www.youtube.com/watch?v=88SzqepM8MA
- MicroPython iterating lists: https://www.youtube.com/watch?v=IoeAJCGn7fg
- MicroPython changing elements of list: https://www.youtube.com/watch?v=99XfAN0T2J0
- MicroPython introduction to lists: https://www.youtube.com/watch?v=YXVPxFcJC3w
- MicroPython lambda functions: https://www.youtube.com/watch?v=vW8cmVabPbg
- MicroPython list files in the file system: https://www.youtube.com/watch?v=Sxtrg9TpW6U
- MicroPython hello world: https://www.youtube.com/watch?v=kVQJ4DFwPnQ
Introductory tutorials
- Brief introduction to the ESP32: https://techtutorialsx.com/2017/04/24/esp32/
- Hello World application with the Arduino support: https://techtutorialsx.com/2017/04/24/e ... llo-world/
- Connecting to a WiFi network: https://techtutorialsx.com/2017/04/24/e ... i-network/
JSON
- Parsing JSON messages: https://techtutorialsx.com/2017/04/26/e ... sing-json/
- Creating JSON messages: https://techtutorialsx.com/2017/04/27/e ... n-message/
MQTT
- Publishing messages to a MQTT topic: https://techtutorialsx.com/2017/04/24/e ... qtt-topic/
- Subscribing to MQTT topic: https://techtutorialsx.com/2017/04/24/e ... qtt-topic/
- Sending JSON over MQTT: https://techtutorialsx.com/2017/04/29/e ... over-mqtt/
FreeRTOS general tutorials (Arduino support)
- Using FreeRTOS in the Arduino environment: https://techtutorialsx.com/2017/05/06/e ... functions/
- Creating FreeRTOS tasks: https://techtutorialsx.com/2017/05/06/e ... ng-a-task/
- Passing arguments to FreeRTOS tasks: https://techtutorialsx.com/2017/05/07/e ... rtos-task/
- Getting FreeRTOS tasks priority: https://techtutorialsx.com/2017/05/07/e ... -priority/
- FreeRTOS counting semaphores: https://techtutorialsx.com/2017/05/11/e ... emaphores/
ESP32 Dual core execution
- Getting ESP32 core where task is executing: https://techtutorialsx.com/2017/05/09/e ... tion-core/
- Running code on a specific ESP32 core: https://techtutorialsx.com/2017/05/09/e ... ific-core/
- ESP32 dual core execution speedup analysis: https://techtutorialsx.com/2017/05/16/e ... n-speedup/
SSD1306 OLED (Arduino core)
- Getting started with the display: https://techtutorialsx.com/2017/12/02/e ... d-display/
- Drawing a QR code on the SSD1306: https://techtutorialsx.com/2017/12/16/e ... a-qr-code/
- Redrawing a string: https://techtutorialsx.com/2017/12/03/e ... -a-string/
MISC (Arduino core)
- Using the pthreads library: https://techtutorialsx.com/2017/12/30/e ... s-library/
- Random number generation: https://techtutorialsx.com/2017/12/22/e ... eneration/
- Applying the HMAC SHA256 mechanism (mbed TLS): https://techtutorialsx.com/2018/01/25/e ... mechanism/
- Getting the free heap: https://techtutorialsx.com/2017/12/17/e ... free-heap/
- Basic authentication in HTTP GET requests: https://techtutorialsx.com/2018/01/03/e ... ntication/
- Base64 encoding: https://techtutorialsx.com/2017/12/09/e ... enconding/
- Software reset: https://techtutorialsx.com/2017/12/03/e ... are-reset/
- External interrupts: https://techtutorialsx.com/2017/09/30/e ... nterrupts/
- Timer interrupts: https://techtutorialsx.com/2017/10/07/e ... nterrupts/
- HTTPS GET Requests: https://techtutorialsx.com/2017/11/18/e ... t-request/
- HTTP POST Requests: https://techtutorialsx.com/2017/05/20/e ... -requests/
- HTTP GET Requests: https://techtutorialsx.com/2017/05/19/e ... -requests/
- Setting a socket server: https://techtutorialsx.com/2017/11/13/e ... et-server/
- Printing the firmware version of the MFRC522: https://techtutorialsx.com/2017/11/01/e ... e-version/
- Getting started with the aREST library: https://techtutorialsx.com/2017/10/12/e ... t-library/
- Using structs in the Arduino core: https://techtutorialsx.com/2018/03/15/e ... g-structs/
- The typedef keyword in the Arduino core: https://techtutorialsx.com/2018/03/15/e ... f-keyword/
- Controlling a relay: https://techtutorialsx.com/2018/02/17/e ... g-a-relay/
- Controlling a relay remotely with HTTP: https://techtutorialsx.com/2018/03/02/e ... -remotely/
- Variable length arrays: https://techtutorialsx.com/2018/02/13/e ... th-arrays/
- Testing uLisp (operating on top of Arduino core): https://techtutorialsx.com/2018/09/12/e ... ing-ulisp/
Async HTTP web server (Arduino)
- Serving jQuery: https://techtutorialsx.com/2018/09/11/e ... ng-jquery/
- Serving external css file (from file sustem): https://techtutorialsx.com/2018/09/17/e ... -css-file/
- Websocket endpoint and receiving data from JavaScript :https://techtutorialsx.com/2018/09/13/e ... et-client/
- Websocket endpoint sending data to JavaScript client: https://techtutorialsx.com/2018/09/11/e ... websocket/
- Serving image from SPIFFS file system: https://techtutorialsx.com/2018/08/24/e ... le-system/
- Serving HTML from SPIFFS file system: https://techtutorialsx.com/2018/08/24/e ... le-system/
JavaScript (ESPruino)
- Getting started with JavaScript on the ESP32: https://techtutorialsx.com/2017/10/15/e ... -espruino/
- Scanning WiFi Networks: https://techtutorialsx.com/2017/10/16/e ... -networks/
- Array map method: https://techtutorialsx.com/2017/10/21/e ... ap-method/
- Connect to WiFi: https://techtutorialsx.com/2017/10/21/e ... i-network/
- Using the SHA1 algorithm: https://techtutorialsx.com/2017/10/21/e ... algorithm/
- Convert number to string in different bases: https://techtutorialsx.com/2017/10/26/e ... ent-bases/
- Array every method: https://techtutorialsx.com/2017/10/30/e ... ry-method/
- Creating objects: https://techtutorialsx.com/2017/10/30/e ... t-objects/
Bluetooth Classic
- ESP32 Arduino Serial over Bluetooth: https://techtutorialsx.com/2018/03/13/e ... ving-data/
- ESP32 Arduino: Getting the Bluetooth Device Address: https://techtutorialsx.com/2018/03/09/e ... e-address/
- ESP32 Arduino: Serial communication over Bluetooth Hello World: https://techtutorialsx.com/2018/03/09/e ... llo-world/
- ESP32 Arduino Bluetooth Classic: Setting the device name: https://techtutorialsx.com/2018/03/06/e ... vice-name/
- ESP32 Arduino Bluetooth classic: Getting started: https://techtutorialsx.com/2018/03/04/e ... g-started/
- ESP32 Bluetooth: Advertising a SPP service with SDP: https://techtutorialsx.com/2017/07/17/e ... -with-sdp/
- ESP32 Bluetooth: Receiving data through RFCOMM: https://techtutorialsx.com/2017/07/09/e ... th-rfcomm/
- ESP32 Bluetooth: Finding the device with Python and BTStack: https://techtutorialsx.com/2017/07/09/e ... d-btstack/
- ESP32 Bluetooth: Using the BTstack library: https://techtutorialsx.com/2017/07/08/e ... k-library/
Videos
- ESP32 Arduino HTTP server remote reset: https://www.youtube.com/watch?v=R-vBr9nwNiI
- ESP32 Arduino get free heap: https://www.youtube.com/watch?v=TBHws3Dp_Jw
- ESP32 Arduino software reset: https://www.youtube.com/watch?v=VmKtrx3ocVc
- ESP32 Arduino parsing JSON: https://www.youtube.com/watch?v=iuHxPQB6Rx4
- ESP32 Arduino HTTP server control route HTTP methods: https://www.youtube.com/watch?v=o6ospheh6Xk
- ESP32 Arduino HTTP server multiple instances: https://www.youtube.com/watch?v=l7FGuj7Rf9E
- ESP32 Arduino HTTP server multiple routes: https://www.youtube.com/watch?v=9NePLF0aTUg
- ESP32 Arduino HTTP server get query parameters: https://www.youtube.com/watch?v=1aMNJ1VnuyQ
- ESP32 Arduino HTTP web server over soft AP: https://www.youtube.com/watch?v=vy2Rso3Qf1g
- ESP32 Arduino Soft AP: https://www.youtube.com/watch?v=6yL5kGVhSwI
- ESP32 Arduino HTTP web server serve HTML: https://www.youtube.com/watch?v=C9hSqwZmxN4
- ESP32 Arduino HTTP async web server get started: https://www.youtube.com/watch?v=BvePZCJ7tMY
- ESP32 Arduino Socket Client: https://www.youtube.com/watch?v=3bFcaTgUzfY
- ESP32 Arduino Getting SDK version: https://www.youtube.com/watch?v=RViHgMaRlCk
- ESP32 Arduino Bluetooth getting device address: https://www.youtube.com/watch?v=fxvoNpiqipQ
- ESP32 Arduino Serial over Bluetooth getting started: https://www.youtube.com/watch?v=884u3saDoi8
- HTTP POST requests: https://www.youtube.com/watch?v=LiQaPJ9UrSM
- HTTP GET requests: https://www.youtube.com/watch?v=s_2cw0k6lgs
- Connecting to WiFi network: https://www.youtube.com/watch?v=klIBePOzXpo
- Generating random numbers: https://www.youtube.com/watch?v=P5Dv6SWLQFM
- Base64 encoding: https://www.youtube.com/watch?v=puBICsjz5qk
- Espruino (JavaScript) scanning WiFi networks: https://www.youtube.com/watch?v=tmLp0WRSJbg
- Espruino (JavaScript) map function applied to arrays: https://www.youtube.com/watch?v=wEYnubdZm4M
- MicroPython HTTP webserver with picoweb: https://www.youtube.com/watch?v=wU7fSiS-mYg
- MicroPython applying filter function to lists: https://www.youtube.com/watch?v=IyCS2VYxhwo
- MicroPython applying map function to lists: https://www.youtube.com/watch?v=88SzqepM8MA
- MicroPython iterating lists: https://www.youtube.com/watch?v=IoeAJCGn7fg
- MicroPython changing elements of list: https://www.youtube.com/watch?v=99XfAN0T2J0
- MicroPython introduction to lists: https://www.youtube.com/watch?v=YXVPxFcJC3w
- MicroPython lambda functions: https://www.youtube.com/watch?v=vW8cmVabPbg
- MicroPython list files in the file system: https://www.youtube.com/watch?v=Sxtrg9TpW6U
- MicroPython hello world: https://www.youtube.com/watch?v=kVQJ4DFwPnQ
Nuno Santos
https://techtutorialsx.com/
https://techtutorialsx.com/
Who is online
Users browsing this forum: No registered users and 72 guests