/********* Rui Santos Complete project details at https://RandomNerdTutorials.com/ttgo-lora32-sx1276-arduino-ide/ *********/ #define WIFI //Libraries for LoRa #include #include //Libraries for OLED Display #include #include #include #include #include //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 //433E6 for Asia //866E6 for Europe //915E6 for North America #define BAND 866E6 //OLED pins #define OLED_SDA 4 #define OLED_SCL 15 #define OLED_RST 16 #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RST); #include const char* ssid = "Home"; // WiFi SSID const char* password = "2Drittel%13579"; // WiFi Password const char* mqttServer = "192.168.2.71"; const int mqttPort = 1883; const char* clientID = "lora_esp_32"; const char* channelName = "/Drive/CMD/#"; long interval = 1000; // Sende-Intervall in ms WiFiClient MQTTclient; PubSubClient client(MQTTclient); const int relay = 22; const int check = 23; void callback(char* topic, byte* payload, unsigned int length) { //String payload_buff; //for (int i=0;i 5000) { // Try to reconnect. lastReconnectAttempt = now; if (reconnect()) { // Attempt to reconnect. lastReconnectAttempt = 0; } } } else { // Connected. client.loop(); } //try to parse packet int packetSize = LoRa.parsePacket(); if (packetSize) { //received a packet Serial.print("Received packet "); //read packet while (LoRa.available()) { LoRaData = LoRa.readString(); Serial.print(LoRaData); if (LoRaData.startsWith("!") == true) { client.publish("/drive/find","detect"); } else { LoRaData.toCharArray(buffer,LoRaData.length()); client.publish("/drive/volt",buffer); } } //print RSSI of packet int rssi = LoRa.packetRssi(); Serial.print(" with RSSI "); Serial.println(rssi); String b; b = String(rssi); b.toCharArray(buffer,b.length()+1); client.publish("/drive/rssi",buffer); // Dsiplay information display.clearDisplay(); display.setCursor(0,0); display.print("LORA "); display.setCursor(30,0); display.print(WiFi.localIP().toString()); display.setCursor(0,20); display.print("Received packet:"); display.setCursor(0,30); display.print(LoRaData); display.setCursor(0,40); display.print("RSSI:"); display.setCursor(30,40); display.print(rssi); display.display(); } }