Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
projekte:grossprojekte:lorawan:7_lora_node_scetch [2019/11/05 14:42] – [Metadaten, Payload] fablab_wiki | projekte:grossprojekte:lorawan:7_lora_node_scetch [2020/11/30 15:56] – fablab_wiki | ||
---|---|---|---|
Zeile 34: | Zeile 34: | ||
Die Bibliothek finden wir bei [[https:// | Die Bibliothek finden wir bei [[https:// | ||
Nach dem Import in die Arduino-IDE können wir schon fast loslegen. | Nach dem Import in die Arduino-IDE können wir schon fast loslegen. | ||
+ | (Stand 07.11.2020: Bibliothek Verson 3.2.0) | ||
**Fast?**\\ | **Fast?**\\ | ||
Zeile 56: | Zeile 57: | ||
//#define LMIC_USE_INTERRUPTS | //#define LMIC_USE_INTERRUPTS | ||
</ | </ | ||
- | Entfernt die beiden Schrägstriche vor der Zeile #define CFG_eu868 1. Speichern | + | Entfernt die beiden Schrägstriche vor der Zeile #define CFG_eu868 |
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
Nach einem Update der Bibliothek prüft, ob die Datei **" | Nach einem Update der Bibliothek prüft, ob die Datei **" | ||
Zeile 286: | Zeile 287: | ||
// Reset the MAC state. Session and pending data transfers will be discarded. | // Reset the MAC state. Session and pending data transfers will be discarded. | ||
LMIC_reset(); | LMIC_reset(); | ||
+ | LMIC_setLinkCheckMode(0); | ||
+ | LMIC.dn2Dr = SF9; | ||
+ | LMIC_setDrTxpow(DR_SF7, | ||
// Start job (sending automatically starts OTAA too) | // Start job (sending automatically starts OTAA too) | ||
do_send(& | do_send(& | ||
Zeile 301: | Zeile 304: | ||
In den Zeilen 56, 60 und 66 müssen wir irgendwelche Adressen eintragen. Dazu später mehr. Um dies vornehmen zu können, müssen wir vorher [[projekte: | In den Zeilen 56, 60 und 66 müssen wir irgendwelche Adressen eintragen. Dazu später mehr. Um dies vornehmen zu können, müssen wir vorher [[projekte: | ||
- | In Zeile 69 wird es schon etwas interessanter: | + | In Zeile 69 wird es schon etwas interessanter: |
Das ist der " | Das ist der " | ||
- | Zeile 74 erklärt sich auch fast von selbst. Wir erinnern uns, die Belegunbgszeit | + | Zeile 74 erklärt sich auch fast von selbst. Wir erinnern uns, die Belegungszeit |
Zeile 77 bis 82. | Zeile 77 bis 82. | ||
- | Etwas ganz Wichtiges. Hiermit definieren wir die Pins, an die der LoRa Chip angeschlossen ist. Da wir ein Graduino-Shield benutzen, ist hier unbedingt einen Anpassung nötig. | + | Etwas ganz Wichtiges. Hiermit definieren wir die Pins, an die der LoRa Chip angeschlossen ist. Da wir ein Dragino-Shield benutzen, ist hier unbedingt einen Anpassung nötig. |
Ersetzt diese Zeilen mit diesen Zeilen: | Ersetzt diese Zeilen mit diesen Zeilen: | ||
<code C [enable_line_numbers=" | <code C [enable_line_numbers=" | ||
Zeile 323: | Zeile 326: | ||
Schon hier merken wir, dass für die zeitliche Einteilung einer Datenübertragung die Loop-Schleife nicht verwendet werden kann. Für die Bereitstellung der Daten müssen wir also an anderer Stelle entsprechenden Code einfügen. Dies wäre z.B. bei Zeile 154. Dazu später mehr. | Schon hier merken wir, dass für die zeitliche Einteilung einer Datenübertragung die Loop-Schleife nicht verwendet werden kann. Für die Bereitstellung der Daten müssen wir also an anderer Stelle entsprechenden Code einfügen. Dies wäre z.B. bei Zeile 154. Dazu später mehr. | ||
- | Nehmen wir an, wir hätten das Thema Adressen geklärt und der Sketch würde compiliert werden, dann erhielten wir die Nachricht, dass auf dem Uno nur noch sehr wenig Speicherplatz übrig bliebe. Sollten wir also Sendoren | + | Nehmen wir an, wir hätten das Thema Adressen geklärt und der Sketch würde compiliert werden, dann erhielten wir die Nachricht, dass auf dem Uno nur noch sehr wenig Speicherplatz übrig bliebe. Sollten wir also Sensoren |
- | Etwas Speicher würde frei werden, wenn wir die Kommunikation | + | Etwas Speicher würde frei werden, wenn wir die Kommunikation |
Eine Idee wäre dieses über einen Compiler-Schalter zu bewerkstelligen. Dann könnte man auch gleich die " | Eine Idee wäre dieses über einen Compiler-Schalter zu bewerkstelligen. Dann könnte man auch gleich die " | ||
Ich habe das mal ganz brutal gelöscht und die wichtigen Passagen für die Erweiterung für Sensoren markiert. Dieser Sketch läßt genau 378 Byte für Variablen übrig. | Ich habe das mal ganz brutal gelöscht und die wichtigen Passagen für die Erweiterung für Sensoren markiert. Dieser Sketch läßt genau 378 Byte für Variablen übrig. | ||
Zeile 393: | Zeile 396: | ||
const unsigned TX_INTERVAL = 60; | const unsigned TX_INTERVAL = 60; | ||
- | // Pin Mapping für Graduino | + | // Pin Mapping für Dragino |
const lmic_pinmap lmic_pins = { | const lmic_pinmap lmic_pins = { | ||
.nss = 10, | .nss = 10, | ||
Zeile 448: | Zeile 451: | ||
// Reset the MAC state. Session and pending data transfers will be discarded. | // Reset the MAC state. Session and pending data transfers will be discarded. | ||
LMIC_reset(); | LMIC_reset(); | ||
- | LMIC_setClockError(MAX_CLOCK_ERROR * 2 / 100); | ||
- | LMIC_setupChannel(0, | ||
- | LMIC_setupChannel(1, | ||
- | LMIC_setupChannel(2, | ||
- | LMIC_setupChannel(3, | ||
- | LMIC_setupChannel(4, | ||
- | LMIC_setupChannel(5, | ||
- | LMIC_setupChannel(6, | ||
- | LMIC_setupChannel(7, | ||
- | LMIC_setupChannel(8, | ||
- | LMIC_setLinkCheckMode(0); | ||
- | LMIC.dn2Dr = SF9; | ||
- | LMIC_setDrTxpow(DR_SF7, | ||
// Start job (sending automatically starts OTAA too) | // Start job (sending automatically starts OTAA too) | ||
do_send(& | do_send(& | ||
Zeile 494: | Zeile 484: | ||
Glücklicherweise ermöglicht es uns TTN diese Daten direkt mit **copy** zu übernehmen und mit **paste** einzusetzen - ergibt schon keine Tippfehler.\\ | Glücklicherweise ermöglicht es uns TTN diese Daten direkt mit **copy** zu übernehmen und mit **paste** einzusetzen - ergibt schon keine Tippfehler.\\ | ||
\\ | \\ | ||
- | Holen wir uns also die Daten. In TTN anmelden, die gewünschte Applikation wählen und dann das Device für das wir die Daten benötigen. Auf der Übersichtsseite für das Device finden wir nun die Daten. | + | Holen wir uns also die Daten. |
+ | In TTN anmelden, die gewünschte Applikation wählen und danach | ||
\\ | \\ | ||
\\ | \\ | ||
Zeile 555: | Zeile 546: | ||
\\ | \\ | ||
\\ | \\ | ||
- | Stand: | + | ====Was bleibt noch offen==== |
+ | \\ | ||
+ | Natürlich bleiben noch einige Fragen bzw. Aufgaben offen. | ||
+ | |||
+ | * Einbinden des Programmcodes für diverse Sensoren | ||
+ | * Setzen des Nodes in den Schlafzustand außerhalb der Sendezyklen (z.B. um Batterie zu sparen) | ||
+ | * Mögliche Umstrukturierung der Software, um evtl doch die Loop-Schleife zu verwenden | ||
+ | |||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | Stand: | ||