/* This is a simple example show the Heltec.LoRa recived data in OLED. The onboard OLED display is SSD1306 driver and I2C interface. In order to make the OLED correctly operation, you should output a high-low-high(1-0-1) signal by soft- ware to OLED's reset pin, the low-level signal at least 5ms. OLED pins to ESP32 GPIOs via this connecthin: OLED_SDA -- GPIO4 OLED_SCL -- GPIO15 OLED_RST -- GPIO16 by Aaron.Lee from HelTec AutoMation, ChengDu, China 成都惠利特自动化科技有限公司 www.heltec.cn this project also realess in GitHub: https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series */ #include "heltec.h" #define BAND 868E6 //you can set band here directly,e.g. 868E6,915E6 String rssi = "RSSI --"; String packSize = "--"; String packet ; void LoRaData(){ Heltec.display->clear(); Heltec.display->setTextAlignment(TEXT_ALIGN_LEFT); Heltec.display->setFont(ArialMT_Plain_10); Heltec.display->drawString(0 , 15 , "Received "+ packSize + " bytes"); Heltec.display->drawStringMaxWidth(0 , 26 , 128, packet); Heltec.display->drawString(0, 0, rssi); Heltec.display->display(); } 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() { //WIFI Kit series V1 not support Vext control Heltec.begin(true /*DisplayEnable Enable*/, true /*Heltec.Heltec.Heltec.LoRa Disable*/, true /*Serial Enable*/, true /*PABOOST Enable*/, BAND /*long BAND*/); // LoRa.setSpreadingFactor(8); // put in standby mode LoRa.setSignalBandwidth(125E3); LoRa.setCodingRate4(4); LoRa.setSyncWord(0x12); //0x34 LoRa.setPreambleLength(8); Heltec.display->init(); Heltec.display->flipScreenVertically(); Heltec.display->setFont(ArialMT_Plain_10); delay(1500); Heltec.display->clear(); Heltec.display->drawString(0, 0, "Heltec.LoRa Initial success!"); Heltec.display->drawString(0, 10, "Wait for incoming data..."); Heltec.display->display(); delay(1000); //LoRa.onReceive(cbk); LoRa.receive(); } void loop() { int packetSize = LoRa.parsePacket(); if (packetSize) { cbk(packetSize); } delay(10); }