Arduino LoRa Sensor Med InAir9B Radio

Arduino LoRa Sensor Med InAir9B Radio

Indholdsfortegnelse:

Anonim

Her beskriver jeg trin for trin hvordan man laver en LoRa-sensor med LoRaWAN-stak baseret på inAir9B-modulet og Arduino UNO (det samme kan anvendes på Mega).

Har ikke fundet en komplet vejledning hvor som helst på nettet og besluttede at gøre det.

I sidste ende vil du være klar til at bruge LoRa end node sende 'Hello World' besked hvert minut.

Som det er et eksempel på LoRaWAN, antager jeg, at du allerede har LoRa gateway.

Hvad du skal bruge:

1. Arduino UNO (Mega eller andet)

2. inAir9B modul (af årsag kan du prøve det samme med andet modul, men det er uden for denne vejledning)

3. Ledninger og bordbræt

4. LoRa gateway

5. PC eller bærbar computer med Arduino IDE

6. LoRa Network server for at se dine data kommer (jeg bruger loriot.io her)

Forberedelse:

Tilslut Gateway til din netværksserver:

1) Den nemmeste måde er at bruge gratis konto på loriot.io. Tilmeld dig der og tilføj din gateway. Det giver alle instruktører at opsætte din gateway og downloade tilpasset software, hvis det kræves. Når du er færdig med det, kan du se din Gateway som 'online' og 'Connected'

2) Opret et netværksprogram i din sever.

3) Generer ny enhed i din ansøgning. Dette vil give dig indstillinger som "Device EUI", DevADDR, NWKSKEY, APPSKEY og nogle andre, som vi ikke har brug for nu.

forsyninger:

Trin 1: Ledningsmodul

Nogle af mine moduler iAir9B var med loddeben (højre på billedet) og nogle jeg lodret af mig selv (venstre på billedet). Presoldered moduler har ben over etiketterne, som ikke er overbevisende fra min POV, fordi hvis du bruger breadboard, kan du ikke se, hvad der er skrevet på det. Så mine moduler loddede jeg med benene nedad. Men det er op til dig, hvad du skal vælge.

Forbind inAir9B til Arduino som følger:

inAir9B - Arduino

D0 - 2

D1 - 5

D2 - 6

CS - 10

0V-GND

3V3 - 3,3V

SI - MOSI (på ICSP header)

SO - MISO (på ICSP header)

CK - SCK (på ICSP header)

For pins på ICSP header se billede

Trin 2: Programmering

Der er i øjeblikket 2 versioner af LoRaWAN biblioteker til Arduino:

1. http://github.com/matthijskooijman/arduino-lmic - dette bibliotek er hentet fra IBM LoRaWAN i C-biblioteket. Problemet med det er, at det bruger en masse hukommelse (for det meste på grund af AES-opskrivningsdelen) og kunne ikke bruges som på Arduino UNO på grund af det. Men det kan bruges efter at deaktivere nogle funktioner (hvilket gør koden mindre).

2. http://github.com/things4u/LoRa-LMIC-1.51 - Dette er den samme port fra IBM-biblioteket, men med forskellige lib for AES-opskrift (mindre version).

Jeg havde problemer med at køre en skitse fra anden mulighed og besluttede at stoppe på den første.

For at gøre det samme skal du downloade biblioteket fra linket ovenfor (Matthijs Kooijman version) og lægge det i din mappe fra Arduino 'libraries (unzipped). Genstart derefter Arduino IDE, og du vil se det i biblioteker og eksempler.

Først og fremmest gå til mappen med bibliotek og åben 'config.h' fil. Kontrollér den linje

'#define CFG_sx1276_radio 1' er ikke kommenteret og '// # define CFG_sx1272_radio 1' kommenteres.

Uncomment lines '#define DISABLE_PING' og '#define DISABLE_BEACONS' for at spare plads til Arduino UNO (for Mega kan du springe over dette).

Åbn derefter i Arduino IDE: Fil -> Eksempler -> IBM LMIC framework -> ttn

Check pins, skal være som denne:

// Pin kortlægning

const lmic_pinmap lmic_pins = {.nss = 10,.rxtx = LMIC_UNUSED_PIN,.rst = 5,.dio = {2, 5, 6},};

Indstil NWKSKEY, APPSKEY, DEVADDR, som du klarte det på din netværksserver.

Se vedhæftede filer som eksempel.

Upload din skitse til Arduino. Færdig!

Det vil begynde at sende pakker til din gateway og derefter videresendes til Netværksserver.

Hvis du bruger 'loriot', kan du se pakker på din server på siden: http: //www.loriot.io/apps/gwtap.html? Gw = B8-27-EB -… (læg MAC af din GW her)

Og også du kan kontrollere meddelelser, der kommer i din server (se billeder).

Du kan konvertere HEX til ASCII data her: http: //www.rapidtables.com/convert/number/hex-to-a …

I mit tilfælde '48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 'betyder' Hej verden! '

Næste skridt:

Tilslut dine rigtige sensorer til arduino og programmér den til at sende data i stedet for "Hello World".