|
@ -0,0 +1,118 @@ |
|
|
|
|
|
# Testing the ESP32 and Arduino IDE |
|
|
|
|
|
## Introduction |
|
|
|
|
|
This repository shows the basic usage of the Arduino IDE with the ESP32 development board by implementing a blinking LED and serial communication. |
|
|
|
|
|
|
|
|
|
|
|
# Programming the ESP32 Board |
|
|
|
|
|
For this example course, we are going to use the ESP32-S WROOM, **please check what board you are using**. |
|
|
|
|
|
![](./esp32swroom.jpg) |
|
|
|
|
|
|
|
|
|
|
|
then, we need to install the Arduino IDE to program the ESP32. |
|
|
|
|
|
|
|
|
|
|
|
## Installing the Arduino IDE |
|
|
|
|
|
|
|
|
|
|
|
The Arduino IDE can be installed on *Windows, MacOS, or GNU Linux*, the Windows and MacOS installation is commonly using the installer. In the case of the *GNU Linux* it is highly recommended to use the distribution's package manger. In my case, the ArchLinux manager is *pacman*, thus use: |
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
sudo pacman -Sy arduino |
|
|
|
|
|
[sudo] password for gmarx: |
|
|
|
|
|
:: Synchronizing package databases... |
|
|
|
|
|
core 157.9 KiB 235 KiB/s 00:01 [####################################] 100% |
|
|
|
|
|
extra 1710.6 KiB 3.66 MiB/s 00:00 [####################################] 100% |
|
|
|
|
|
community 6.7 MiB 7.49 MiB/s 00:01 [####################################] 100% |
|
|
|
|
|
warning: arduino-1:1.8.19-1 is up to date -- reinstalling |
|
|
|
|
|
resolving dependencies... |
|
|
|
|
|
looking for conflicting packages... |
|
|
|
|
|
|
|
|
|
|
|
Packages (1) arduino-1:1.8.19-1 |
|
|
|
|
|
|
|
|
|
|
|
Total Installed Size: 59.36 MiB |
|
|
|
|
|
Net Upgrade Size: 0.00 MiB |
|
|
|
|
|
|
|
|
|
|
|
:: Proceed with installation? [Y/n] |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
**Note: The Arduino IDE requires Java jdk8 and jre8 installed on the OS.** |
|
|
|
|
|
|
|
|
|
|
|
**Note: You can install a Dark theme by [following these instructions]()** |
|
|
|
|
|
|
|
|
|
|
|
## Adding the ESP32 Boards |
|
|
|
|
|
The addition of the ESP32 boards requires to include a URL to download a *Board Manager* by clicking on `File -> Preferences` and pasting the URL `https://dl.espressif.com/dl/package_esp32_index.json` in the field *Additional Boards Manager URLs*: |
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
https://dl.espressif.com/dl/package_esp32_index.json |
|
|
|
|
|
``` |
|
|
|
|
|
![](./board.png) |
|
|
|
|
|
|
|
|
|
|
|
Next, we can install the ESP32 board on Arduino IDE by `Tools -> Board -> Boards Manager ...`, and writte `ESP32` to install the tools required to work with: |
|
|
|
|
|
|
|
|
|
|
|
![](./install-board.png) |
|
|
|
|
|
|
|
|
|
|
|
# Sample code to test ESP32 |
|
|
|
|
|
Before start programming the ESP32 board we have to select the proper board in the `Board` tool. Thus, again open and select the `Tools -> Bord -> DOIT ESP32 DEVKIT V1`. Then, paste the next code segtion to test the ESP32 board; the code is also the `blinking-serial.ino`file: |
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
/* |
|
|
|
|
|
* |
|
|
|
|
|
* Example code for ESP32-S: |
|
|
|
|
|
* The code blinks the onboard LED (at D2 in GPIO 02) every 0.500 seconds. |
|
|
|
|
|
* The code also prints by serial communcation the word "Hello" during the |
|
|
|
|
|
* ON stage of the LED, and then prints "World" during the OFF. |
|
|
|
|
|
* Gerardo Marx 19/Jul/2022 |
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
// this variable is defined in pins_arduino.h for DOIT ESP32 DEVKIT V1 |
|
|
|
|
|
// int LED_BUILTIN = 02; |
|
|
|
|
|
int LED_ONBOARD = 02; |
|
|
|
|
|
|
|
|
|
|
|
void setup() { |
|
|
|
|
|
// put your setup code here, to run once: |
|
|
|
|
|
pinMode(LED_BUILTIN, OUTPUT); |
|
|
|
|
|
//serial monitor setup |
|
|
|
|
|
Serial.begin(115200); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void loop() { |
|
|
|
|
|
// put your main code here, to run repeatedly: |
|
|
|
|
|
Serial.print("ON"); |
|
|
|
|
|
digitalWrite(LED_BUILTIN, HIGH); |
|
|
|
|
|
delay(500); |
|
|
|
|
|
// after delay |
|
|
|
|
|
Serial.print(" - OFF\n"); |
|
|
|
|
|
digitalWrite(LED_BUILTIN, LOW); |
|
|
|
|
|
delay(500); |
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
next, press `Crt-u` to compile and upload the code generated into the board. |
|
|
|
|
|
|
|
|
|
|
|
## The error `no module named serial` |
|
|
|
|
|
If you get an error like this: |
|
|
|
|
|
``` |
|
|
|
|
|
ModuleNotFoundError: No module named 'serial' |
|
|
|
|
|
exit status 1 |
|
|
|
|
|
Error compiling for board DOIT ESP32 DEVKIT V1. |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
then, it is necessary to install in python: |
|
|
|
|
|
``` |
|
|
|
|
|
pip3 install pyserial |
|
|
|
|
|
``` |
|
|
|
|
|
and must probably you will requiere pip3 python package manager: |
|
|
|
|
|
``` |
|
|
|
|
|
sudo pacman -Sy python-pip |
|
|
|
|
|
``` |
|
|
|
|
|
## `Permission denied: '/dev/ttyUSB0'` |
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
ls -l /dev/ttyUSB0 |
|
|
|
|
|
crw-rw---- 1 root uucp 188, 0 Aug 7 14:50 /dev/ttyUSB0 |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
sudo usermod -a -G uucp $USER |
|
|
|
|
|
groups |
|
|
|
|
|
libvirt uucp gmarx |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
**Note: you need to relogin into you session.** |
|
|
|
|
|
|
|
|
|
|
|
|