#include #include "font.h" #include #include "SSD1306.h" #include #include #define OLED_ADDR 0x3C #define OLED_SDA 4 #define OLED_SCL 15 #define OLED_RST 16 SSD1306 display(OLED_ADDR, OLED_SDA, OLED_SCL); #define SX1278_SCK 5 #define SX1278_MISO 19 #define SX1278_MOSI 27 #define SX1278_CS 18 #define SX1278_RST 14 #define SX1278_IRQ 26 #define BAND 915000000.00 #define spreadingFactor 7 #define SignalBandwidth 31.25E3 #define preambleLength 8 #define codingRateDenominator 8 //Analog Input #define ANALOG_PIN_0 36 #define ANALOG_PIN_1 37 #define ANALOG_PIN_2 38 #define ANALOG_PIN_3 39 byte localAddress = 0xBB; // address of this device byte dataBuf[]={0,0,0,0,0}; int counter = 0; void setup() { // Reset the display pinMode(OLED_RST, OUTPUT); digitalWrite(OLED_RST, LOW); delay(50); digitalWrite(OLED_RST, HIGH); // Initialize and wait for UART Serial.begin(115200); while (!Serial); // Initialize the display display.init(); display.flipScreenVertically(); display.setTextAlignment(TEXT_ALIGN_CENTER); // Start LoRa SPI.begin(SX1278_SCK, SX1278_MISO, SX1278_MOSI, SX1278_CS); LoRa.setPins(SX1278_CS, SX1278_RST, SX1278_IRQ); if(!LoRa.begin(BAND)) { Serial.println("Starting LoRa failed!"); while(1); } Serial.println("LoRa started successful!"); Serial.print("LoRa Frequency: "); Serial.print(BAND/1000000); Serial.println(" MHz"); Serial.println("LoRa Spreading Factor: "); Serial.println(spreadingFactor); LoRa.setSpreadingFactor(spreadingFactor); Serial.print("LoRa Signal Bandwidth: "); Serial.println(SignalBandwidth); LoRa.setSignalBandwidth(SignalBandwidth); LoRa.setCodingRate4(codingRateDenominator); LoRa.setPreambleLength(preambleLength); // Print an empty line Serial.println(); // Wait for a second delay(1000); } void loop() { // dataBuf={byte(localAddress),byte(ANALOG_PIN_0),byte(ANALOG_PIN_1),byte(ANALOG_PIN_2),byte(ANALOG_PIN_3),byte(ANALOG_PIN_3)} //Serial.print("Sending packet: "dataBuf"); Serial.println(counter); LoRa.beginPacket(); LoRa.write(dataBuf,5); LoRa.write(analogRead(ANALOG_PIN_0)); // LoRa.write(analogRead(ANALOG_PIN_1)); // LoRa.write(analogRead(ANALOG_PIN_2)); // LoRa.print(analogRead(ANALOG_PIN_3)); LoRa.endPacket(); Serial.println(localAddress); Serial.println(analogRead(ANALOG_PIN_0)); //Serial.println(analogRead(ANALOG_PIN_1)); //Serial.println(analogRead(ANALOG_PIN_2)); // Serial.println(analogRead(ANALOG_PIN_3)); display.clear(); display.drawString(63, 0, "SENDING"); display.drawString(63, 31, String(counter)); display.display(); counter++; delay(10000); }