Arduino Pro Mini - Lora - Bug

OP #7584001
Lesenswert?

Guten Morgen,

ich bin leider mit meinem Latein am Ende. Aus diesem Grund versuche ich es hier, vielleicht kann mir jemand von euch helfen.

Folgendes Projekt:

Ich nutze einen Arduino Pro Mini mit Reedkontakt und LORA Modul (SX1276). Ich verbinde mich mit dem TTN Netzwerk (thethingsnetwork.org).

Das Projekt soll eine "Alarmanlage" darstellen. Ich sende in regelmäßigen Abständen (20Min) ein WatchDog Signal. Sobald die Tür aufgeht, sende ich zwei direkte Alarmpakete im Abstand von 30 Sek. Wenn die Tür offen stehen bleibt ein weiteres Alarm Paket alle 10 Min.

Wenn die Tür zu geht, soll wieder alle 20 min das Watchdog Signal gesendet werden.

--> Und genau hier ist das Problem. Diese Umschaltung nach einem Alarm erfolgt nicht zuverlässig. Meistens steigt das System dann aus und es wird kein LORA Paket mehr gesendet.

Die Lora Verbindung wir mit einem kleinen OS gesteuert. Das Watchdog Signal wird immer in die Warteschlange eingereiht. Wenn ein Alarm Paket geschickt wird, wird die Warteschleife gelöscht und Sofort ein Paket gesendet. Sobald ein Paket gesendet wurde, wird ein neues Watchdog Paket eingereiht (so die Theorie).

Im Code wird an zwei Stellen ein Lora Paket gesendet:

  1. (Watchdog-Paket -- Send Queue) https://github.com/CK1-CK/Arduino-Pro-Mini-LoRa-Sensor-Node/blob/f299601155e563add1cc1e9ad8488c02aba3da2d/src/lorawan.cpp#L166

  2. (Alarm-Paket -- Direktversand ) https://github.com/CK1-CK/Arduino-Pro-Mini-LoRa-Sensor-Node/blob/f299601155e563add1cc1e9ad8488c02aba3da2d/src/main.cpp#L28

Vielleicht kennt sich jemand von euch mit LORA und dem LMiC aus.

Dokumentation LMIC:

https://github.com/CK1-CK/Arduino-Pro-Mini-LoRa-Sensor-Node/blob/master/Documentation/Documentation_IBM_LMiC-v1.5.pdf

Ich bin wirklich über jeden Tipp dankbar.

Viele Grüße UTGMK

Beitrag #7584729 wurde von einem Moderator gelöscht.
OP #7586696
Lesenswert?

Um ehrlich zu sein, spielt die CPU glaube ich keine Rolle.

Mein Projekt ist ein Fork von https://github.com/JackGruber/Arduino-Pro-Mini-LoRa-Sensor-Node

Die Verbindung und WatchDog funktionieren auch zuverlässig bis es zu dem ersten "Alarm/Tür auf" kommt. Dann kommt das System ins straucheln. Manchmal geht der WatchDog dann wieder weiter, manchmal hängt sich das System auf.

Ich habe mir auch schon Gedanken gemacht, ob ich die Fair Use Policy verletze (https://www.thethingsnetwork.org/docs/lorawan/duty-cycle/#fair-use-policy)

Ich sollte aber eigentlich im Rahmen der Fair Use Policy sein.

(WatchDog 20min, WatchDog 20min, Alarm 1 30Sek, Alarm 2 30Sek, Alarm 3 10Min, Alarm 4 10Min, WatchDog 20min)

Nur WatchDogs: 72 Pakete/24h

Mit Alarm der 15Min ansteht: 75 Pakete/24h

Auf jeden Fall, wenn ich den Arduino neu starte, wählt sich das System neu ins TTN ein und sendet wieder zuverlässig bis zum nächsten Alarm. Dann beginnt das Glücksspiel von neuem.

Viele Grüße UTGMK

#7586744
Lesenswert?

Heinz M. schrieb:

Um ehrlich zu sein, spielt die CPU glaube ich keine Rolle.

Definitiv. Das Dokument wird nur als Grundlage fur das Projekt verwendet worden sein.

Heinz M. schrieb:

Die Verbindung und WatchDog funktionieren auch zuverlässig bis es zu dem ersten "Alarm/Tür auf" kommt. Dann kommt das System ins straucheln. Manchmal geht der WatchDog dann wieder weiter, manchmal hängt sich das System auf.

Hast du die Funktion mal ohne das LoRa-Geraffel ausprobiert?

OP #7587573
Lesenswert?

Ja klar habe ich, bevor ich mit Lora angefangen habe, die Funktionen getestet und mir auf der Konsole ausgeben lassen wenn ein Alarm anstand bzw. ich den Reed Kontakt wieder geschlossen habe.

Es sind viele Faktoren zu berücksichtigen:

  • LMIC OS inkl. Jobs, SendQueue etc.
  • TTN

Leider etwas frustrierend.

Viele Grüße UTGMK

#7587585
Lesenswert?

https://github.com/CK1-CK/Arduino-Pro-Mini-LoRa-Sensor-Node/blob/master/gerber/promini_rfm95.jpg

Wenn ich sowas sehe, krieg' ich 'n Föhn! Wenn da was sendet, egal ob LORA, SIM oder WLAN, wird gepulst Leistung gezogen. Da gehören Ablock Cs an die Anschlüsse (Elko und KerKo) und Masse und Ub dürfen den gsamten zur Verfügung stehenden Platz nutzen. Ne Klospülumg wird auch nicht per Trinkhalm angeschlossen :P

OP #7588001
Lesenswert?

Gerald B. schrieb:

https://github.com/CK1-CK/Arduino-Pro-Mini-LoRa-Sensor-Node/blob/master/gerber/promini_rfm95.jpg

Wenn ich sowas sehe, krieg' ich 'n Föhn! Wenn da was sendet, egal ob LORA, SIM oder WLAN, wird gepulst Leistung gezogen. Da gehören Ablock Cs an die Anschlüsse (Elko und KerKo) und Masse und Ub dürfen den gsamten zur Verfügung stehenden Platz nutzen. Ne Klospülumg wird auch nicht per Trinkhalm angeschlossen :P

Diese Schaltung habe ich nicht übernommen, die kommt direkt von JackGruber (https://github.com/JackGruber/Arduino-Pro-Mini-LoRa-Sensor-Node/blob/master/gerber/promini_rfm95.jpg). Die Massefläche hätte ich über die komplette Platine gelegt und nicht nur als Leitung ausgeführt.

Ich habe es aber auch nicht viel besser gelöst -.- Ich habe das SX1276 Modul mit kurzen Leitungen direkt an den Arduino angelötet (ohne Dock-Platine) und ebenfalls keine Kondensatoren verbaut. Das Datenblatt bzw. das Referenz-Design empfiehlt Entkoppel-Kondensatoren (siehe Screenshot).

Die Massefläche auf dem SX1276 Modul ist jetzt auch nicht überragend groß (https://m.media-amazon.com/images/I/512qGb-SYNL._SY445_SX342_QL70_ML2_.jpg).

Auch wenn ich dadurch Leistung verliere reicht es immer noch im Stadtgebiet 2,6km weit zu senden.

Wir driften aber auch etwas vom Thema ab.

Das Problem ist immer noch, dass nach den zwei Alarm Paketen die Umschaltung zurück auf WatchDog Mode nicht funktioniert.

Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren