MEMORIZZAZIONE PORTATA su SD Card 

Test iniziale di trasmissione e ricezione tra due moduli differenti:

 

TRASMITTENTE:

SX1276 V2 Lora ESP32 LX6 Dual-Core 0.96 Pollici Blue OLED

WiFi Kit 32 Modulo CP2012 Scheda di Sviluppo IOT - 433-868-915MHz

 

 

// FILE: INVIO CONTATORE 21 7 2021
// SX1276 V2 Lora ESP32 LX6 Dual-Core
// SCHEDA TTGO LoRa32-OLED v2.1.6
// IDE:Arduino 1.8.14

#include <SPI.h>

#include <LoRa.h>

#include <Wire.h> 

#include "SSD1306.h"

#define SCK     5    // GPIO5  -- SX1278's SCK

#define MISO    19   // GPIO19 -- SX1278's MISO

#define MOSI    27   // GPIO27 -- SX1278's MOSI

#define SS      18   // GPIO18 -- SX1278's CS

#define RST     14   // GPIO14 -- SX1278's RESET

#define DI0     26   // GPIO26 -- SX1278's IRQ(Interrupt Request)

#define BAND  433E6

unsigned int counter = 0;

SSD1306 display(0x3c, 4, 15);

String rssi = "RSSI --";

String packSize = "--";

String packet ;

void setup() {

  pinMode(16,OUTPUT);

    digitalWrite(16, LOW);    // set GPIO16 low to reset OLED

  delay(50);

  digitalWrite(16, HIGH); // while OLED is running, must set GPIO16 in high

    Serial.begin(115200);

  while (!Serial);

  Serial.println();

  Serial.println("LoRa Sender Test");

    SPI.begin(SCK,MISO,MOSI,SS);

  LoRa.setPins(SS,RST,DI0);

  if (!LoRa.begin(433E6)) {

    Serial.println("Starting LoRa failed!");

    while (1);

  }

  //LoRa.onReceive(cbk);

//  LoRa.receive();

  Serial.println("init ok");

  display.init();

  display.flipScreenVertically(); 

  display.setFont(ArialMT_Plain_10);

     delay(1500);

}

void loop() {

  display.clear();

  display.setTextAlignment(TEXT_ALIGN_LEFT);

  display.setFont(ArialMT_Plain_10);

    display.drawString(0, 0, "Sending packet: ");

  display.drawString(90, 0, String(counter));

  Serial.println(String(counter));

  display.display();

  // send packet

  LoRa.beginPacket();

  LoRa.print("hello ");

  LoRa.print(counter);

  LoRa.endPacket();

   counter++;

  digitalWrite(2, HIGH);   // turn the LED on (HIGH is the voltage level)

  delay(1000);                       // wait for a second

  digitalWrite(2, LOW);    // turn the LED off by making the voltage LOW

  delay(1000);                       // wait for a second

}

 

 

RICEVENTE:

DollaTek LORA ESP32 V2.0 433MHz  OLED 0.96 Pollici SD

NOTA:  Pin 21 ==> Oled   SDA        Pin 22 ==> Oled   SCL

// FILE: RICEZIONE CONTATORE 21 7 2021
// SCHEDA TTGO LoRa32-OLED v2.1.6 DOLLATEK con SD
// IDE: Arduino 1.8.14
// RICEZIONE LORA 32 con SD non abilitata

#include <SPI.h>

#include <LoRa.h>

#include <Wire.h> 

#include "SSD1306.h"

 #define SCK     5    // GPIO5  -- SX1278's SCK

#define MISO    19   // GPIO19 -- SX1278's MISO

#define MOSI    27   // GPIO27 -- SX1278's MOSI

#define SS      18   // GPIO18 -- SX1278's CS

#define RST     14   // GPIO14 -- SX1278's RESET

#define DI0     26   // GPIO26 -- SX1278's IRQ(Interrupt Request)

#define BAND    433E6

 SSD1306 display(0x3c, 21, 22);

String rssi = "RSSI --";

String packSize = "--";

String packet ; 

void loraData(){

  display.clear();

  display.setTextAlignment(TEXT_ALIGN_LEFT);

  display.setFont(ArialMT_Plain_10);

  display.drawString(0 , 15 , "Received "+ packSize + " bytes");

  display.drawStringMaxWidth(0 , 26 , 128, packet);

  display.drawString(0, 0, rssi);

  display.display();

  Serial.println(rssi);

}

 void cbk(int packetSize) {

  packet ="";

  packSize = String(packetSize,DEC);

  for (int i = 0; i < packetSize; i++) { packet += (char) LoRa.read(); }

  rssi = "RSSI " + String(LoRa.packetRssi(), DEC) ;

  loraData();

void setup() {

  pinMode(16,OUTPUT);

  digitalWrite(16, LOW);    // set GPIO16 low to reset OLED

  delay(50);

  digitalWrite(16, HIGH); // while OLED is running, must set GPIO16 in high、

  Serial.begin(115200);

  while (!Serial);

  Serial.println();

  Serial.println("LoRa Receiver Callback");

  SPI.begin(SCK,MISO,MOSI,SS);

  LoRa.setPins(SS,RST,DI0); 

  if (!LoRa.begin(433E6)) {

    Serial.println("Starting LoRa failed!");

    while (1);

  }

  //LoRa.onReceive(cbk);

  LoRa.receive();

  Serial.println("init ok");

  display.init();

  display.flipScreenVertically(); 

  display.setFont(ArialMT_Plain_10);  

  delay(1500);

}

void loop() {

  int packetSize = LoRa.parsePacket();

  if (packetSize) { cbk(packetSize);  }

  delay(10);

}

Collegamento con un OLED supplementare (OLED principale sembra che non funzioni):

 

continua: