Arduino Sensor LoRa Dengan Radio InAir9B

Arduino Sensor LoRa Dengan Radio InAir9B

Isi kandungan:

Anonim

Di sini saya akan menerangkan langkah demi langkah bagaimana membuat sensor LoRa bekerja dengan timbunan LoRaWAN berdasarkan modul inAir9B dan Arduino UNO (sama boleh digunakan untuk Mega).

Tidak menemui tutorial lengkap di mana sahaja di Web dan memutuskan untuk membuatnya.

Pada akhirnya anda akan bersedia untuk menggunakan nod akhir LoRa yang menghantar mesej 'Hello World' setiap minit.

Oleh kerana ia adalah contoh LoRaWAN saya menganggap anda sudah mempunyai pintu masuk LoRa.

Apa yang anda perlukan:

1. Arduino UNO (Mega atau lain-lain)

2. modul inAir9B (sebab anda boleh mencuba sama dengan modul lain tetapi keluar dari skop panduan ini)

3. Wayar dan papan pemutus

4. Pintu masuk LoRa

5. PC atau komputer riba dengan Arduino IDE

6. pelayan Rangkaian LoRa untuk melihat data anda akan datang (saya menggunakan loriot.io di sini)

Penyediaan:

Hubungkan Gateway ke pelayan rangkaian anda:

1) cara paling mudah adalah menggunakan akaun percuma di loriot.io. Daftar di sana dan tambah gerbang anda. Ia menyediakan semua instruksen untuk menyediakan gateway anda dan memuat turun perisian yang disesuaikan jika diperlukan. Apabila anda selesai dengan itu, anda akan melihat Gateway anda sebagai 'talian' dan 'Bersambung'

2) Buat Aplikasi Rangkaian yang anda pilih.

3) Buat peranti baru dalam aplikasi anda. Ini akan memberi anda tetapan seperti 'Device EUI', DevADDR, NWKSKEY, APPSKEY dan beberapa yang lain yang kita tidak perlukan sekarang.

Bekalan:

Langkah 1: Modul Pendawaian

Sesetengah modul saya diAir9B adalah dengan kaki yang dipateri (tepat pada gambar) dan beberapa saya disolder oleh saya sendiri (kiri pada gambar). Modul presoldered mempunyai kaki di atas label yang tidak convinient dari POV saya kerana jika anda menggunakan papan roti anda tidak dapat melihat apa yang ditulis di atasnya. Jadi modul saya disolder dengan kaki ke bawah. Tetapi terpulang kepada anda apa yang harus dipilih.

Sambungkan inAir9B ke Arduino seperti berikut:

inAir9B - Arduino

D0 - 2

D1 - 5

D2 - 6

CS - 10

0V -GND

3V3 - 3.3V

SI - MOSI (di pengepala ICSP)

SO - MISO (pada header ICSP)

CK - SCK (pada header ICSP)

Untuk pin pada pengepala ICSP lihat gambar

Langkah 2: Pengaturcaraan

Kini terdapat 2 versi perpustakaan LoRaWAN untuk Arduino:

1. http://github.com/matthijskooijman/arduino-lmic - perpustakaan ini dipindah dari IBM LoRaWAN di perpustakaan C. Masalahnya ialah ia menggunakan banyak ingatan (sebahagian besarnya disebabkan oleh bahagian AES encription) dan tidak dapat digunakan seperti pada Arduino UNO kerana itu. Tetapi ia boleh digunakan selepas melumpuhkan beberapa ciri (yang membuat kod lebih kecil).

2. http://github.com/things4u/LoRa-LMIC-1.51 - ini adalah pelabuhan yang sama dari pustaka IBM tetapi dengan lib yang berbeza untuk AES encription (versi yang lebih kecil).

Saya mempunyai masalah dengan menjalankan lakaran daripada pilihan kedua dan memutuskan untuk berhenti pada yang pertama.

Untuk melakukan perkara yang sama, anda perlu memuat turun perpustakaan dari pautan di atas (versi Matthijs Kooijman) dan masukkannya ke dalam folder perpustakaan 'Arduino' anda (unzipped). Kemudian mulakan semula IDE Arduino dan anda akan melihatnya dalam perpustakaan dan Contoh.

Pertama sekali pergi ke folder dengan pustaka dan buka fail 'config.h'. Semak garis itu

'#define CFG_sx1276_radio 1' tidak ditulis dan '// # define CFG_sx1272_radio 1' telah mengulas.

Uncomment lines '#define DISABLE_PING' and '#define DISABLE_BEACONS' to save space for Arduino UNO (for Mega you can skip this).

Kemudian buka IDE Arduino: Fail -> Contoh -> Rangka kerja IBM LMIC -> ttn

Semak pin, sepatutnya seperti ini:

// Pemetaan pin

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

Tetapkan NWKSKEY, APPSKEY, DEVADDR semasa anda menguruskannya dalam pelayan Rangkaian anda.

Lihat fail yang dilampirkan sebagai contoh.

Muat naik lakaran anda kepada Arduino. Selesai!

Ia akan mula menghantar pakej ke gerbang anda dan kemudian dikemukakan kepada Server Rangkaian.

Sekiranya anda menggunakan 'loriot' anda mungkin melihat paket akan pergi ke pelayan anda di halaman: http: //www.loriot.io/apps/gwtap.html? Gw = B8-27-EB -… (masukkan MAC GW anda di sini)

Dan juga anda boleh menyemak mesej yang datang dalam pelayan anda (lihat gambar).

Anda boleh menukar HEX ke data ASCII di sini: http: //www.rapidtables.com/convert/number/hex-to-a …

Dalam kes saya '48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 'bermaksud' Hello, world! '

Langkah seterusnya:

Sambungkan sensor sebenar anda kepada arduino dan programkannya untuk menghantar data dan bukannya "Hello World".