Arduino LoRa Sensor med InAir9B Radio (2 / 2 steg)
Steg 2: programmering
Det finns för närvarande 2 versioner av LoRaWAN bibliotek för Arduino:
1. https://github.com/matthijskooijman/arduino-lmic - detta bibliotek är portade från IBM LoRaWAN i C-bibliotek. Problemet med det är att den använder mycket minne (mest på grund av AES encription delen) och inte kunde användas som är på Arduino UNO på grund av detta. Men det kan användas efter att inaktivera vissa funktioner (som gör koden mindre).
2. https://github.com/things4u/LoRa-LMIC-1.51 - detta är samma port från IBM bibliotek men med olika lib för AES encription (mindre version).
Jag hade problem med att driva en skiss från andra alternativet och beslutat att stoppa på den första.
För att göra samma sak bör du hämta bibliotek från länken ovan (Matthijs Kooijman version) och lägga den i mappen Arduino "bibliotek" (uppackade). Starta sedan om Arduino IDE och du kommer att se den i bibliotek och exempel.
Först och främst gå till mappen med biblioteket och öppna "config.h" fil. Kontrollera att raden
'//#define CFG_sx1272_radio 1' är kommenterade '#define CFG_sx1276_radio 1' är okommenterade.
Ovanlig linjen '#define DISABLE_PING' och "#define DISABLE_BEACONS" att spara utrymme för Arduino UNO (för Mega kan du hoppa över detta).
Öppna sedan i Arduino IDE: Arkiv -> exempel -> IBM LMIC ram -> ttn
Kolla bör stiften, vara så här:
PIN-mappning
CONST lmic_pinmap lmic_pins = {.nss = 10, .rxtx = LMIC_UNUSED_PIN, .rst = 5, .dio = {2, 5, 6}};
Ställa in NWKSKEY, APPSKEY, DEVADDR som du klarade av det i din nätverksserver.
Se bifogade filer som exempel.
Ladda upp din skiss till Arduino. Gjort!
Det kommer att börja skicka paket till din gateway och sedan vidarebefordras till nätverksserver.
Om du använder "loriot" kan du se paket kommer till din server på sidan: https://www.loriot.io/apps/gwtap.html?gw=B8-27-EB-... (Lägg MAC av din GW här)
Och även du kan kontrollera meddelanden som kommer i din server (se bilder).
Du kan konvertera HEX till ASCII data här: http://www.rapidtables.com/convert/number/hex-to-a...
I mitt fall ' 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21' betyder "Hello, world!"
Nästa steg:
Anslut din verkliga sensorer till arduino och programmera den att skicka data i stället för "Hello World".