Hallo zusammen, ich habe mir eine kleine Wetterstation gebastelt, die via "The Things Network" Ihre Daten an mein Smart Home System weitergibt. Ich betreibe auch mein eigenes, aber öffentliches TTN Gateway, das läuft soweit prima. Ich würde jetzt aber gerne auch Daten an die Wetterstation zurücksenden, finde aber ums verrecken keinen einzigen Codeschnipsel der das vorsieht. Ich benutze aktuell das Adafruit Feather 32u4 mit RFM9X LoRa Radio Chip. Aber so langsam beschleicht mich der Verdacht, dass das "The Things Network" zwar das Hochladen von Daten ermöglicht, aber den anderen Weg zum Node hin nicht? Oder bin ich da auf dem Holzweg? Viele Grüße, Bastian
Doch, klar kannst du Daten zum Device senden. Die Richtung heisst im Jargon Downlink und über die TTN Console kannst du das ausprobieren. Wann gesendet wird hängt von deiner Devicekonfiguration ab. Die häufig verwendetete, weil Energie sparende Klasse A bietet einen Downlink nur unmittelbar nach dem Versand eines Uplinkpaketes an.
Bastian schrieb: > "The Things Network" zwar das Hochladen von Daten ermöglicht, aber den > anderen Weg zum Node hin nicht? Oder bin ich da auf dem Holzweg? Das kommt auch auf die Lib an die du verwendest. Wenn du TinyLoRa verwendest liegst du richtig mit der Annahme nur senden zu können. Wenn du MCCI-LMIC verwendest, ist Empfangen prinzipiell möglich. Aber wenn du nur ein eigenes Gateway hast mit einem Kanal oder so, dann ist bei LMIC auch noch einiges an Finetuning nötig. Anderenfalls versucht deine Node das gesamte Kanalraster zu benutzen und schießt damit 80% der Pakete nutzlos in den Äther.
Hier ein Beispiel für die LMIC: https://github.com/mcci-catena/arduino-lmic/blob/master/examples/ttn-otaa/ttn-otaa.ino
1 | case EV_TXCOMPLETE: |
2 | Serial.println(F("EV_TXCOMPLETE (includes waiting for RX windows)")); |
3 | if (LMIC.txrxFlags & TXRX_ACK) |
4 | Serial.println(F("Received ack")); |
5 | if (LMIC.dataLen) { |
6 | Serial.print(F("Received ")); |
7 | Serial.print(LMIC.dataLen); |
8 | Serial.println(F(" bytes of payload")); |
9 | }
|
Die empfangenen Bytes stehen dann an LMIC.frame+LMIC.dataBeg.
Super vielen Dank, arbeite mich jetzt durch die LMIC durch. Melde mich wenn ich weiter bin.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.