TTGO LoRa32 SX1276 OLED Arduino

Buongiorno a tutti, da poco ho comprato 2 schede TTGO LoRa32 SX1276 OLED per fare un progetto. Ho visto che si possono programmare con Arduino quindi ho subito iniziato a sperimentare iniziando dall'esempio base di mandare e ricevere dei messaggi a grandi distanze, fino a qua funziona tutto alla grande. Per il mio progetto avrei bisogno di leggere dei dati tramite il modulo MAX485 per poi mandarli a un modulo TTGO LoRa32 SX1276 OLED che mi crea la pagina WEB. Questo modulo ha a disposizione 2 porte seriali, una e collegata anche all'uscita USB che poi si può utilizzare per visualizzare delle informazioni direttamente sul computer e per caricare i vari programmi. Ho collegato il modulo MAX485 sui pin RX e TX principali e ho usato i pin 13 e 12 per fare la selezione se usare il modulo per scrivere o leggere i dati. Il codice che utilizzo e il seguente:


#include <ModbusMaster.h>
#define MAX485_DE      13
#define MAX485_RE_NEG  12
ModbusMaster node;
void preTransmission()
{
  digitalWrite(MAX485_RE_NEG, 1);
  digitalWrite(MAX485_DE, 1);
}
void postTransmission()
{
  digitalWrite(MAX485_RE_NEG, 0);
  digitalWrite(MAX485_DE, 0);
}
void setup()
{
  pinMode(MAX485_RE_NEG, OUTPUT);
  pinMode(MAX485_DE, OUTPUT);
  // Init in receive mode
  digitalWrite(MAX485_RE_NEG, 0);
  digitalWrite(MAX485_DE, 0);
  Serial.begin(115200);
  node.begin(1, Serial2);
  node.preTransmission(preTransmission);
  node.postTransmission(postTransmission);
}
bool state = true;
void loop()
{
  uint8_t result;
  uint16_t data[6];
  result = node.writeSingleCoil(0x0002, state);
  state = !state;
  result = node.readInputRegisters(0x3100, 16);
  if (result == node.ku8MBSuccess)
  {
    Serial.print("Vbatt: ");
    Serial.println(node.getResponseBuffer(0x04)/100.0f);
    Serial.print("Vload: ");
    Serial.println(node.getResponseBuffer(0xC0)/100.0f);
    Serial.print("Pload: ");
    Serial.println((node.getResponseBuffer(0x0D) +
                    node.getResponseBuffer(0x0E) << 16)/100.0f);
  }
  delay(1000);
}

Questo codice, se uso un'arduino Nano,Mega o Uno funziona senza problemi ma con questo modulo esce scritto:
esptool.py v3.0-dev
Serial port COM8
Connecting.......
Chip is ESP32-D0WDQ6-V3 (revision 3)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 26MHz
MAC: 08:3a:f2:66:a3:3c
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Warning: Could not auto-detect Flash size (FlashID=0xffffff, SizeID=0xff), defaulting to 4MB
Compressed 8192 bytes to 47...

A fatal error occurred: Timed out waiting for packet content
A fatal error occurred: Timed out waiting for packet content

Qualcuno saprebbe dirmi il perche'? Metto in allegato il link per trovare la piedinatura della scheda:

Grazie mille a tutti :slight_smile:

Se occupi i pin rx/tx che credo siano in comune con la usb, non puoi fare upload.
Prova a staccare e lasciare liberi rx/tx per fare upload

nid69ita avevo anche io lo stesso dubbio ma non trovo uno schema elettrico della scheda per capire se sono in comune oppure no. Pero io utilizzo la U2_TXD e la U2_RXD quindi teoricamente quelli collegati alla presa usb sono i pin U0_TXD e U0_RXD pero posso comunque provare a fare l'upload senza collegare niente e poi vedo se funziona. Ma se uso la porta seriale posso comunque visualizzare i valori sul computer oppure no?

Anche io non conosco quella scheda. In teoria usando la seriale 2 non dovrebbe dare problemi in upload.
Per essere sicuri meglio fare upload senza nulla attaccato.
Poi al link vedo che seleziona una board specifica TTGO etc.... ma nel testo che riporti con errore, dice "Chip is ESP32-D0WDQ6-V3" sicuro di aver selezionato la board giusta ?

A post was split to a new topic: SHT31 temp/humidity sensor

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.