monitor seriale con ESP32

solita richiesta di help, molto banale ...
sperimentando con ESP32, ho problemi di gestione della comunicazione seriale. In pratica, la seriale funziona ma, se trasmetto un carattere, non riesco a rilevarne la ricezione con Serial.available(), in modo poi, analizzando il carattere, da poter eseguire operazioni varie. Il software, al momento, ogni tanto manda alcune informazioni per dimostrare, tramite il monitor, di essere vivo. Ho letto che potrebbe trattarsi di un problema di handshaking, ma non so come intervenire.

grazie anticipatamente giorgeny

n primis, mi scuso per l'ignoranza sulla netiquette: provvederò in futuro.
Quando il software viene lanciato, sul monitor compaiono le scritte generate da ESP32 con il comando Serial.print, come pure il conteggio che faccio effettuare al processore per vrificarne la vitalità.
Quando però trasmetto un carattere, sembra non arrivare o non essere lpercepito dal serial.avalaible(9 e dal successivo serial.read(). Ho provato (poco convinto) ben tre moduli ESP32: tutti accettano il download ed eseguono il sw, salvo non rispondere ai caratteri provenienti dal monitor.

ciao,

stai parlando della seriale USB o di altra seriale ?
se USB...sei sicuro del baudrate?
posta il codice che vediamo

Mi riferisco alla seriale USB utilizzata per il doenload del codice e per connettere il monitor dell'IDE Arduino. Il baud rate è 115200 e funziona regolarmente per il download e per trasmettere da ESP32 al monitor stesso; da quest'ultimo non riesco però a comunicare con il modulo ESP, al momento connesso solo con il cavetto USB.
Il dispositivo funziona (gli sto facendo lampeggiare un led), ma non riesco ad intercettare la mia trasmissione (ammesso che parta realmente dal monitor verso il device esterno).
Il cosice, peraltro ipersemplice, è il seguente:

/*
14/032020 - dSPPRAY_01
versione inziale per il test di ESP32 per il progettino doorsoSPRAY
*/

//#include "BluetoothSerial.h" //Header File for Serial Bluetooth, will be added by default into Arduino
#include "driver/gpio.h"

//BluetoothSerial ESP_BT; //Object for Bluetooth

#include "D:____2020\Dante\dorsoSPRAY\sw\dSPRAY_01\declar.h"

void setup() {
// ESP_BT.begin("ESP32_test_01"); //Name of your Bluetooth Signal

Serial.begin(115200);
pinMode(batterie, INPUT); // analogico 7, g35

pinMode(RPM, INPUT_PULLUP); // contagiri
pinMode(trigger, INPUT_PULLUP); // grilletto

pinMode(pump, OUTPUT); // motore
pinMode(L_yellow, OUTPUT); // led ausiliario giallo
pinMode(L_blue, OUTPUT); // led integrato sulla scheda

delay(500);
Serial.println("Inizializzazione completata");
delay(500);
Serial.println("seconda trasmissione");
start_splash();
}

void loop() {
tick_count++;
if (tick_count > 750000) {
tick_count = 0;
count++;
Serial.println(count);
digitalWrite(L_blue, !digitalRead(L_blue));
}

if (Serial.available() > 0) {
serCHAR = Serial.read();
Serial.print("Ho ricevuto il carattere ");
Serial.println(serCHAR);
delay(2000);ui

}

//rispondi(); // risponde ai comandi manuali da seriale

/* if (ESP_BT.available()) //Check if we receive anything from Bluetooth
{
incoming = ESP_BT.read(); //Read what we recevive
Serial.print("Received:"); Serial.println(incoming);
if (incoming == 49)
{
digitalWrite(L_yellow, HIGH);
ESP_BT.println("LED turned ON");
}

if (incoming == 48)
{
digitalWrite(L_yellow, LOW);
ESP_BT.println("LED turned OFF");
}
} */

}

Vi sono altri segmenti di codice, dichiarazioni, header, ecc. ma sono solo parti accessorie.

grazie per l'attenzione giorgeny

Hai provato un semplice programma che fa un eco della seriale?

giorgeny:
Il cosice, peraltro ipersemplice, è il seguente:

Allora, intanto il codice devi racchiuderlo tra i tag "code" (vai in modifica del tuo post, quindi metti i tag [code] ... [/code]).

Poi nel codice "ipersemplice" non hai bisogno di mettere tutto il path di quello header file "declar.h". Se lo metti nella stessa cartella dello sketch invece di:

#include "D:____2020\Dante\dorsoSPRAY\sw\dSPRAY_01\declar.h"

basta:

#include "declar.h"

A parte questi dettagli, per quanto riguarda il tuo problema, tu dici:

non riesco ad intercettare la mia trasmissione (ammesso che parta realmente dal monitor verso il device esterno).

ma se da ESP a monitor seriale vedi le scritte (i Serial.print()) puoi capire se l'ESP ha ricevuto quello che scrivi perché ti scriverebbe "Ho ricevuto il carattere": vedi queste scritte o no? Ossia vedi quelle del setup ma non vedi "Ho ricevuto il carattere" o non vedi nessuna?

>giorgeny: ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo