LoRa-Verbindung Heltec Wireless Stick <--> Arduino nano funktioniert nicht

Hallo zusammen, ich bin ziemlich neu in dieser ganzen Arduino Sache, und beschäftige mich momentan mit LoRa.
Ich möchte für meinen alten VW-Bus T4 letztlich zwei "Telemetrie-Sensoren" bauen, zum einen zur Überwachung der Batteriespannung, zum anderen zur Kontrolle, ob die Standheizung läuft (die ich aktuell über ein GSM-Modul schalten kann).

Hierzu hab ich zunächst mal zum Einstieg ein ganz einfaches Projekt gebastelt.

Auf der einen Seite ein Arduino Nano mit einem DHT21-Sensor und einem SX1276 breakout board, auf der anderen Seite ein Heltec Wirelessboard. Da ich bisher nur ganz wenig Ahnung vom Programmieren habe, hab ich mal fertige Codes hergenommen, die man so online auf diversen Projektseiten findet. Das Nano mit dem DHT21 funktioniert auch problemlos. Im Serial Monitor, wird mir angezeigt dass die Messwerte als Packages gesendet werden. Mit einem Arduino Uno und einem zweiten SX1276 breakout board kontte ich diese Packages auch empfangen. Super Sache!

Nun hab ich mir aber eine Heltec Wireles Stick gekauft. Mit diesem funktioniert das Empfangen der Packages vom Arduino Nano aber leider garnicht. Als Code habe ich hier den Beispiel-Code aus der Heltec ESP32-Lib verwendet.

CODE Arduino Nano+DHT21+SX1276

#include <SPI.h>
#include <Arduino.h>
#include <LoRa.h>
#include "DHT.h"
#define DHTPIN 4     
#define DHTTYPE DHT21   



DHT dht(DHTPIN, DHTTYPE);
int hum;
float temp; //Stores temperature value


void setup() {

Serial.begin(9600);
    dht.begin();
    while (!Serial);
    Serial.println("LoRa Sender");

if
 (!LoRa.begin(868E6)) {
    Serial.println("Starting LoRa failed!");
    while (1);
}

}

void loop() 
{
temp = dht.readTemperature();
hum = dht.readHumidity();

Serial.println("Sending packet: ");

// send packet
LoRa.beginPacket();
LoRa.print("Humidity: ");
LoRa.print(hum);
LoRa.print("%");
LoRa.print(" Temperature:");
LoRa.print(temp);
LoRa.print("C");

Serial.print("Humidity: ");
Serial.print(hum);
Serial.print("%");
Serial.print(" Temperature:");
Serial.print(temp);
Serial.println("C");
Serial.println(""); 

LoRa.endPacket();
delay(5000);
}

Code für Heltec Wireless Stick Receiver

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 is also available on GitHub:
  https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series
*/
#include "heltec.h" 
#include "images.h"

#define BAND    868E6  //you can set band here directly,e.g. 868E6,915E6
String rssi = "RSSI --";
String packSize = "--";
String packet ;

void logo(){
  Heltec.display->clear();
  Heltec.display->drawXbm(0,5,logo_width,logo_height,logo_bits);
  Heltec.display->display();
}

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*/);
 
  Heltec.display->init();
  Heltec.display->flipScreenVertically();  
  Heltec.display->setFont(ArialMT_Plain_10);
  logo();
  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);
}

ich habe zuletzt mit verschieden Einstellungen des SF rumprobiert, aber... ich bekomme keine Einstellung hin mit der der Wireless Stick daten empfangen könnte. Deswegen wäre ich sehr dankbar wenn von euch jemand ne gute Idee hätte.

Besten Dank.
Phil

ich weis nicht ob es dir schmeckt, aber ich hätte mit zwei gleichen Modulen begonnen - zwei dieser "Heltec" ... und dann mal eine Kommunikation so aufbauen wie die Vorschläge vom Hersteller kommen.

Ich unterstelle so einen Sketch dann auch um einen DHT zu erweitern ist einfacher.

Verlinke das Heltec board. Datenblatt, repository vom Code - weil so kennen wir den Inhalt von

#include "heltec.h" 

nicht.
Prüfe - ob du irgendwelche Brücken setzen musst.

Und wo hast du den Wireles Stick jetzt angeschlossen ?

vielen dank schon mal für eure Antworten.

Der Grund dass ich mich für zwei verschiende Boards entschieden hab, war, dass ich im Auto ein Board mit niedrigem Stromverbrauch verbauen wollte, damit mir das Board nicht die Batterie leersaugt. Und vor allem hatte ich noch Nanos rumliegen, brauchte dann aber ein Board mit Display.

Ansonsten, klar, sicher besser mit 2 gleichen Boards.

Heltec Repository
Heltec Wireless Stick

Was meinst du mit "Brücken"?

5V USB-Stromversorgung.
Der Heltec Stick ist ja wegen des Displays der Empfänger.

Besten Dank

Ich kann leider nicht erkennen, was das für ein Stick ist.
Poste doch mal den Link zur Hardware.

ich habs oben eingefügt

Steckbrücken, Jumper die zu setzen sind. Kenn ich halt von anderen Lora Boards. Deiner scheint keine zu haben.

korrekt, gibts nicht.

Ok, da muss ich passen.

kein Problem, trotzdem Danke. :wink:

Warum schaltest LoRa ab, wenn du es doch offensichtlich nutzen möchtest?
Oder wurde nur der Wert angepasst und der Kommentar ist kaputt?

Diese Meldung ist wohl irreführend, weil nirgendwo geprüft wird, ob das stimmt.

Ein Gedanke dennoch.
Funktioniert der Stick grundsätzlich, also mit anderen "Testsketchen" ?

Über das bin ich auch gestolpert. das ist der original Beispielsketch aus dem ESP32-Repository der Firma Heltec da möchte man meinen, dass die doch nocht das LoRa in nem Testsketch für LoRa ausschalten. Ich habs mal auf false gesetzt, das hat das Problem nicht gelöst.

oh jee, ich merke schon, diese Testsketches sind ehr nicht so toll.

soweit ich das beurteilen kann schon.

Dann müsstes du doch auch Text oder andere Ding auf dem Display anzeigen können.
Erst wenn das sicher funktioniert, macht der Lora Versuch Sinn.

Hätte ich sagen sollen. genau an dieser Stelle bleibt das Modul hängen. Offensichtlich, weil eben keine Daten empfangen werden.
Aber ja, das Display funktioniert.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.