ESP 32 WROOM - Software Serial
Table of Contents
Personalizzazione dei PIN
In riferimento a quanto detto nella lezione precedente riepilogato nell'immagine seguente e nella tab. n. 1 installando la libreria EspSoftwareSerial by Dirk Kaar e' possibile modificare i PIN assegnati di default alle varie porte.
Figure 1: Schema PIN-OUT della board ESP32 WROOM
UART | Oggetto | RX IO | TX IO | CTS | RTS | Desc |
---|---|---|---|---|---|---|
UART0 | Serial | GPIO3 | GPIO1 | N / A | N / A | duplicazione della porta USB della ESP32 |
UART1 | Serial1 | GPIO9 | GPIO10 | GPIO6 | GPIO11 | Porta persononalizzabile |
UART2 | Serial2 | GPIO16 | GPIO17 | GPIO8 | GPIO7 | Porta personalizzabile |
La porzione di codice seguente mostra come personalizzare i PIN assegnati alla porta Serial2. Per commenti piu' dettagliati sul codice vds la Lezione sul costrutto MAP.
#include <SoftwareSerial.h> // la classe e' ottenuta installando la libreria EspSoftwareSerial by Dirk Kaar /* Associazione dei PIN della ESP32 alla board LoRa * G21 --> M0 * G19 --> M1 * V5 --> VCC * GND --> GND * G18 --> AUX * G16 --> TX * G17 --> RX */ #define BUTTON GPIO_NUM_12 // pin per il button che permette l'accesso alla shell #define M0 GPIO_NUM_21 #define M1 GPIO_NUM_19 #define AUX GPIO_NUM_18 #define TX GPIO_NUM_16 #define RX GPIO_NUM_17 // ... /* * una volta defniti i PIN si crea una struttura che modella la coppia * (nome PIN, numero PIN) di modo da poterla utilizzare in un vettore che poi potra' essere * passato a classi in cui sara' utilizzato * */ std::map<std::string, int> myPIN; // ... /* imposta il modo dei PIN */ pinMode(BUTTON, INPUT); pinMode(M0, OUTPUT); pinMode(M1, OUTPUT); pinMode(AUX, OUTPUT); pinMode(TX, OUTPUT); pinMode(RX, INPUT); /* costruisce l'array dei PIN */ sh.pin_push_back("BUTTON", BUTTON); sh.pin_push_back("M0", M0); sh.pin_push_back("M1", M1); sh.pin_push_back("AUX", AUX); sh.pin_push_back("TX", TX); sh.pin_push_back("RX", RX); // ... Serial2.setPins(myPIN["TX"], myPIN["RX"]); // Arduino RX <-- e220 TX, Arduino TX --> e220 RX LoRa_E220 e220ttl(&Serial2, myPIN["AUX"], myPIN["M0"], myPIN["M1"]); e220ttl.begin(); // ...