Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*********
- Rui Santos
- Complete project details at https://RandomNerdTutorials.com/ttgo-lora32-sx1276-arduino-ide/
- *********/
- //Libraries for LoRa
- #include <SPI.h>
- #include <LoRa.h>
- #include <Adafruit_Sensor.h>
- #include <Adafruit_BME280.h>
- //Libraries for OLED Display
- #include <Wire.h>
- #include <Adafruit_GFX.h>
- #include <Adafruit_SSD1306.h>
- //define the pins used by the LoRa transceiver module
- #define SCK 5
- #define MISO 19
- #define MOSI 27
- #define SS 18
- #define RST 14
- #define DIO0 26
- #define SEALEVELPRESSURE_HPA (1013.25)
- Adafruit_BME280 bme ; // = Adafruit_BME280(0x76, &Wire1)
- float temperature, humidity, pressure, altitude;
- //433E6 for Asia
- //866E6 for Europe
- //915E6 for North America
- #define BAND 915E6
- //OLED pins
- #define OLED_SDA 4
- #define OLED_SCL 15
- #define BME_SDA 21
- #define BME_SCL 22
- #define OLED_RST 16
- #define SCREEN_WIDTH 128 // OLED display width, in pixels
- #define SCREEN_HEIGHT 64 // OLED display height, in pixels
- //packet counter
- int counter = 0;
- Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RST);
- void setup() {
- //reset OLED display via software
- pinMode(OLED_RST, OUTPUT);
- digitalWrite(OLED_RST, LOW);
- delay(20);
- digitalWrite(OLED_RST, HIGH);
- Wire1.begin(BME_SDA, BME_SCL);
- bme.begin();
- //
- //initialize OLED
- Wire.begin(OLED_SDA, OLED_SCL);
- if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3c, false, false)) { // Address 0x3C for 128x32
- Serial.println(F("SSD1306 allocation failed"));
- for(;;); // Don't proceed, loop forever
- }
- display.clearDisplay();
- display.setTextColor(WHITE);
- display.setTextSize(1);
- display.setCursor(0,0);
- display.print("LORA SENDER ");
- display.display();
- //initialize Serial Monitor
- Serial.begin(9600);
- Serial.println("LoRa Sender Test");
- //SPI LoRa pins
- SPI.begin(SCK, MISO, MOSI, SS);
- //setup LoRa transceiver module
- LoRa.setPins(SS, RST, DIO0);
- if (!LoRa.begin(BAND)) {
- Serial.println("Starting LoRa failed!");
- while (1);
- }
- Serial.println("LoRa Initializing OK!");
- display.setCursor(0,10);
- display.print("LoRa Initializing OK!");
- display.display();
- delay(2000);
- }
- void loop() {
- temperature = bme.readTemperature();
- humidity = bme.readHumidity();
- pressure = bme.readPressure() / 100.0F;
- altitude = bme.readAltitude(SEALEVELPRESSURE_HPA);
- Serial.print("Temperature = ");
- Serial.println(temperature);
- Serial.print("Humidite = ");
- Serial.println(humidity);
- Serial.print("Pression = ");
- Serial.println(pressure);
- Serial.print("Altitude = ");
- Serial.println(altitude);
- Serial.print("Sending packet: ");
- Serial.println(counter);
- //Send LoRa packet to receiver
- LoRa.beginPacket();
- LoRa.print("hello ");
- LoRa.println(counter);
- LoRa.print("Temperature ; ");
- LoRa.println(temperature);
- LoRa.endPacket();
- display.clearDisplay();
- display.setCursor(0,0);
- display.println("LORA SENDER");
- display.setCursor(0,20);
- display.setTextSize(1);
- display.print("LoRa packet sent.");
- display.setCursor(0,30);
- display.print("Counter:");
- display.setCursor(50,30);
- display.print(counter);
- display.display();
- display.setCursor(0,40);
- display.print("Temperature :");
- display.setCursor(80,40);
- display.print(temperature);
- display.display();
- counter++;
- delay(10000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement