Stap 2: programmeren
Momenteel zijn er 2 versies van LoRaWAN bibliotheken voor de Arduino:
1. https://github.com/matthijskooijman/arduino-lmic - deze bibliotheek is overgezet van IBM LoRaWAN in C bibliotheek. Het probleem is dat het een heleboel geheugen (meestal wegens AES coderingsalgoritmen deel gebruikt) en kan niet worden gebruikt als is op Arduino UNO vanwege die. Maar het kan worden gebruikt na het uitschakelen van sommige functies (die code kleiner maken).
2. https://github.com/things4u/LoRa-LMIC-1.51 - dit is dezelfde poort uit IBM bibliotheek maar met verschillende lib voor AES-coderingsalgoritmen (kleinere versie).
Ik had problemen met het runnen van een schets van de tweede optie en besloten om te stoppen op de eerste.
U doet hetzelfde moet u library downloaden via de link hierboven (Matthijs Kooijman versie) en zet het in uw omslag van de Arduino-'bibliotheken' (uitgepakt). Start de Arduino IDE, en u zult het zien in bibliotheken en voorbeelden.
Ten eerste ga naar de map met bibliotheek en open "config.h" bestand. Controleren van die lijn
'#define CFG_sx1276_radio 1' is commentaar en '//#define CFG_sx1272_radio 1' is toegelicht.
Uncomment lijnen "#define DISABLE_PING" en "#define DISABLE_BEACONS" om ruimte te besparen voor Arduino UNO (voor Mega mag u dit overslaan).
Open vervolgens in de Arduino IDE: bestand -> voorbeelden -> IBM LMIC kader -> ttn
Controleer moet pinnen, net als dit:
Pin toewijzing
Const lmic_pinmap lmic_pins = {.nss = 10, .rxtx = LMIC_UNUSED_PIN, .rst = 5, .dio = {2, 5, 6}};
NWKSKEY, APPSKEY, DEVADDR instellen als u het in uw netwerkserver in geslaagd.
Zie bijgevoegde bestanden als voorbeeld.
Upload uw schets aan de Arduino. Gedaan!
Het zal beginnen met het verzenden van pakketten naar uw gateway en vervolgens doorgestuurd naar de netwerkserver.
Als u 'loriot' ziet u mogelijk pakketten naar de server gaan op pagina: https://www.loriot.io/apps/gwtap.html?gw=B8-27-EB-... (leg hier MAC van uw GW)
En ook u berichten komen in uw server kunt controleren (zie foto's).
U kan HEX converteren naar ASCII-gegevens hier: http://www.rapidtables.com/convert/number/hex-to-a...
In mijn geval ' 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21' betekent "Hello, world!"
Volgende stappen:
Uw echte sensoren verbinden met arduino en het om gegevens te verzenden in plaats van "Hello World" programma.