From 44342c223df5f3da23a747838f41f8fbc411d5a4 Mon Sep 17 00:00:00 2001 From: Lemonochrme Date: Mon, 2 Dec 2024 17:44:15 +0100 Subject: [PATCH] Display RN2483A LoRa Module test results on SSD1306 Oled --- platformio.ini | 5 +++- src/main.cpp | 67 ++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 58 insertions(+), 14 deletions(-) diff --git a/platformio.ini b/platformio.ini index 96fff1d..ef6b071 100644 --- a/platformio.ini +++ b/platformio.ini @@ -12,4 +12,7 @@ platform = espressif32 board = esp32dev monitor_speed = 115200 -framework = arduino \ No newline at end of file +framework = arduino +lib_deps = + adafruit/Adafruit SSD1306@^2.5.13 + adafruit/Adafruit GFX Library@^1.11.11 diff --git a/src/main.cpp b/src/main.cpp index 12bef06..ddff217 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,30 +1,71 @@ #include #include +#include +#include +#include -HardwareSerial mySerial(0); // Use UART0 (RX0, TX0) +#define SCREEN_WIDTH 128 // OLED display width, in pixels +#define SCREEN_HEIGHT 64 // OLED display height, in pixels -void setup() { - Serial.begin(115200); // Initialize Serial Monitor - mySerial.begin(57600); // Initialize RN2483A Serial communication +// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) +Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); - Serial.println("Testing RN2483A module..."); +void printSSD1306(String text) { + display.clearDisplay(); + display.setCursor(0, 0); + display.println(text); + display.display(); +} +void Init_SSD1306() { + // SSD1306 initialization + if(!display.begin(0x3C, 0x3C)) { // Address 0x3C for 128x64 + for(;;); + } + display.display(); + delay(2000); // Pause for 2 seconds + + display.clearDisplay(); + display.setTextSize(1); // Normal 1:1 pixel scale + display.setTextColor(SSD1306_WHITE); // Draw white text + display.setCursor(0, 0); // Start at top-left corner + + + display.println("SSD1306 Oled Initialized!"); + display.display(); + delay(1000); +} + +void test_RN2483A() { // Send a command to the RN2483A module - mySerial.println("sys get ver"); + Serial.println("sys get ver"); // Wait for a response delay(1000); // Read the response from the RN2483A module - while (mySerial.available()) { - String response = mySerial.readString(); - Serial.println("RN2483A Response: " + response); + while (Serial.available()) { + String response = Serial.readString(); + printSSD1306("RN2483A Response:"); + printSSD1306(response); } } + +void setup() { + // Initialize RN2483A Serial communication + Serial.begin(57600); + + // Initialize SSD1306 + Init_SSD1306(); + +} + void loop() { - // Idle loop - mySerial.begin(115200); - Serial.println("Idle..."); + test_RN2483A(); delay(1000); -} \ No newline at end of file +} + + + +