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