- LoRaWAN memerlukan gerbang (frekuensi, rangkaian IP, pelayan) yang dikonfigurasikan dengan betul dan berdaftar dengan TTN untuk nod berkomunikasi.
- Peranti akhir didaftarkan dalam aplikasi TTN menggunakan DevEUI, JoinEUI/AppEUI dan AppKey (OTAA) atau NWKSKEY/APPSKEY/DEVADDR (ABP).
- Ia boleh menggunakan sensor komersial (SenseCAP, Decentlab, Dragino, Tabs) atau nod DIY dengan pustaka ESP32/Arduino dan LMIC untuk menghantar data ke TTN.
- TTN memudahkan penyepaduan dengan Node-RED dan platform luaran untuk menggambarkan dan mengeksploitasi data IoT yang dikumpul oleh rangkaian LoRaWAN.
Jika anda telah sampai ke tahap ini, itu kerana anda ingin tahu cara menyambungkan nod LoRaWAN ke TTN dari awal hingga akhir , tanpa meninggalkan apa-apa: gerbang, nod, sensor, pustaka, kunci dan konfigurasi rangkaian. Berita baiknya ialah anda tidak perlu menjadi pakar telekomunikasi; dengan panduan yang berstruktur dengan baik dan sedikit kesabaran, anda boleh menyediakan rangkaian LoRaWAN berfungsi anda sendiri dalam masa yang singkat.
Dalam baris berikut, anda akan melihat, langkah demi langkah, cara menyediakan get laluan, mendaftarkannya di The Things Network, menambah aplikasi dan peranti akhir dan memprogram nod LoRaWAN berdasarkan papan ESP32 atau Arduino, serta contoh dengan sensor komersial (SenseCAP, Decentlab, Dragino, Tabs Browan). Kami juga akan merangkumi butiran praktikal yang tidak selalu terdapat dalam manual: masalah kekunci biasa, pemilihan frekuensi, sambungan pin fizikal dan cara untuk mengesahkan bahawa semuanya benar-benar berkomunikasi dengan TTN.
Apakah LoRa dan LoRaWAN, dan mengapa perlu menggunakan TTN?
LoRa dan LoRaWAN adalah dua konsep yang berkaitan, tetapi ia tidak sama . LoRa ialah modulasi frekuensi radio kuasa rendah jarak jauh yang dimiliki oleh Semtech. LoRaWAN ialah protokol rangkaian yang bergantung pada LoRa untuk mengurus cara peranti akhir (nod) berkomunikasi dengan gerbang dan pelayan rangkaian.
Dalam rangkaian LoRaWAN yang biasa, terdapat dua komponen utama: get laluan dan nod . Get laluan bertindak sebagai "jambatan" antara dunia LoRa (radio) dan dunia IP (internet), menghantar paket ke pelayan LoRaWAN. Nod ialah sensor atau penggerak yang menghantar dan menerima maklumat menggunakan LoRa ke dan dari get laluan ini.
Untuk menyambungkan semua ini, anda memerlukan pelayan LoRaWAN. Anda boleh membayar untuk perkhidmatan persendirian (operator seperti Movistar, Vodafone atau platform seperti Loriot, Actility, Kerlink) atau menggunakan laluan komuniti menggunakan The Things Network (TTN), iaitu rangkaian awam dan terbuka yang diselenggara oleh komuniti.
TTN mempunyai kelebihan dalam menghormati tadbir urus data, bersikap neutral dan membenarkan anda menyumbang gerbang ke rangkaian . Di banyak bandar, orang ramai memasang gerbang atas inisiatif mereka sendiri dan sesiapa sahaja boleh mendapat manfaat daripada perlindungan ini tanpa sebarang kos selain perkakasan nod.
Frekuensi, Saluran dan Had LoRaWAN
Sebelum membeli sebarang peranti, adalah penting untuk memastikan frekuensi LoRa serasi dengan rantau anda . Bekerja di Eropah tidak sama dengan bekerja di Amerika Syarikat atau Asia; jika anda memilih jalur yang salah, peranti tersebut mungkin tidak berguna atau menyalahi undang-undang.
Di Eropah, jalur 868 MHz (EU868) digunakan terutamanya . Di Amerika Syarikat, jalur tipikal ialah 915 MHz (US915). Peruncit China menawarkan pelbagai jenis modul 433 MHz, yang mungkin menarik kerana harganya, tetapi ia tidak selalunya serasi dengan LoRaWAN atau sistem pengendalian negara anda.
Selain frekuensi, LoRaWAN disusun menjadi saluran, faktor penyebaran (SF) dan pelan frekuensi . SF mentakrifkan kelajuan dan julat: SF yang lebih tinggi bermaksud julat yang lebih besar tetapi juga lebih banyak masa di udara, yang menggunakan lebih banyak kuasa dan menempati lebih banyak ruang saluran.
Di Eropah, "peraturan 1%" yang terkenal terpakai : setiap peranti hanya boleh menduduki saluran radio untuk peratusan kecil masa, biasanya sekitar 1%. Ini mengehadkan kekerapan anda boleh menghantar data, dan merupakan salah satu sebab mengapa sensor LoRaWAN biasanya menghantar setiap beberapa minit, bukan setiap beberapa saat.
Penyediaan dan pemilihan perkakasan untuk gerbang dan nod
Untuk menyediakan rangkaian praktikal, anda memerlukan sekurang-kurangnya satu gerbang LoRaWAN dan satu atau lebih nod (sensor) . Anda boleh menggabungkan perkakasan daripada pengeluar yang berbeza, selagi ia mematuhi piawaian LoRaWAN dan beroperasi pada jalur frekuensi yang sama.
Satu model gerbang dalaman yang popular ialah Dragino LPS8 , yang mengintegrasikan penumpu SX1308 dan menyokong sehingga 10 saluran selari. Ia didatangkan dengan pra-konfigurasi dengan pelan frekuensi yang berbeza bergantung pada negara, dan di Eropah, ia beroperasi pada 868 MHz. Ia dikuasakan oleh 5V melalui USB-C dan bersambung ke rangkaian IP melalui RJ-45 atau Wi-Fi.
Contoh lain bagi gerbang yang berfungsi dengan baik dengan TTN termasuk RAK7289 (luar, lasak dan dengan pilihan LTE/4G) atau gerbang rasmi TTN-GW-868 MHz, yang direka untuk menggunakan liputan di bandar atau projek Bandar Pintar. Ia juga mungkin untuk membina gerbang sel tunggal dengan papan ESP32 dan modul LoRa SX1262 , seperti yang dilakukan dengan kit Wio-SX1262 dan Xiaomi ESP32S3.
Sebagai nod, anda mempunyai dua pilihan: gunakan sensor komersial yang sedia untuk LoRaWAN (SenseCAP S210x, Tabs Browan TBHH100, Dragino TrackerD, Decentlab, dll.) atau bina nod anda sendiri dengan papan pembangunan seperti TTGO LoRa32 V2.0, ESP32 + RMF95, modul Arduino + LoRa, dll.
Konfigurasikan gerbang LoRaWAN dan sambungkannya ke TTN
Langkah utama pertama dalam projek ini adalah untuk menyediakan dan menjalankan gerbang dan memaparkan "Connected" pada TTN . Walaupun setiap pengeluar mempunyai papan pemuka sendiri, langkah konseptualnya sangat serupa.
Dengan Dragino LPS8, sebagai contoh, anda boleh mengurusnya melalui SSH atau HTTP . Jika anda menyambungkannya melalui kabel RJ-45, anda perlu mengetahui alamat IP yang diberikan oleh pelayan DHCP (menggunakan pengimbas IP atau melalui penghala anda). Jika anda lebih suka persediaan awal melalui Wi-Fi, LPS8 mewujudkan rangkaiannya sendiri dengan SSID seperti "dragino-xxxxx" dan kata laluan lalai seperti "dragino+dragino". Mengakses alamat IP 10.130.1.1 akan membawa anda ke panel web, di mana nama pengguna dan kata laluan awal biasanya "admin/dragino".
Setelah masuk, anda akan melihat menu dengan beberapa bahagian, dan beberapa pilihan mungkin mempunyai palang merah yang menunjukkan bahawa konfigurasi tiada . Langkah pertama ialah memilih pelan frekuensi yang betul untuk kawasan anda dalam tab LoRa; di Eropah, ini ialah EU868 (kira-kira 868 MHz).
Seterusnya, ketik tab LoRaWAN atau Network Server . Di sana anda tentukan pelayan LoRaWAN yang akan disambungkan oleh get laluan. Untuk TTN, pilih "TTN" sebagai pembekal dan masukkan alamat pelayan Eropah (contohnya, eu1.cloud.thethings.network), dengan mengekalkan port UDP (biasanya 1700 untuk muat naik dan muat turun). Dalam bahagian yang sama, anda akan melihat ID Get Laluan atau EUI, yang akan kita perlukan kemudian dalam TTN.
Dalam bahagian Rangkaian, anda mengkonfigurasi cara get laluan bersambung ke internet : LAN, WAN atau Wi-Fi WAN. Untuk antara muka WAN, anda boleh memilih alamat IP statik atau DHCP; bila-bila masa yang mungkin, alamat IP statik melalui sambungan berwayar disyorkan untuk sambungan yang lebih stabil dan akses pengurusan yang lebih mudah. Bahagian LAN biasanya digunakan untuk rangkaian titik akses dalaman get laluan; adalah lebih baik untuk tidak menukar tetapan ini tanpa memahami sepenuhnya apa yang anda lakukan, kerana ia boleh menyelamatkan nyawa jika berlaku masalah.
Dalam bahagian WiFi, anda boleh melaraskan kedua-dua titik akses yang dijana oleh gerbang itu sendiri dan sambungannya ke rangkaian WiFi luaran . Untuk keselamatan, disyorkan untuk menukar SSID dan kata laluan lalai titik akses yang datang dari kilang.
Pada get laluan RAK7289, prosesnya adalah serupa: akses panel web, konfigurasikan alamat IP (statik atau DHCP) melalui Rangkaian → Antara Muka WAN , dan kemudian, dalam Rangkaian LoRa → Tetapan Rangkaian → Pemaju Paket, masukkan butiran pelayan TTN dan catatkan EUI Get Laluan untuk mendaftarkannya dengan TTN kemudian. Jika anda berada di belakang penghala yang menyediakan DHCP, anda boleh mencari alamat IP get laluan dengan melihat jadual pajakan (mengikut nama hos, contohnya, "RAK7289") atau menggunakan alat seperti nmap.
Pendaftaran Gateway di The Things Network
Sebaik sahaja gerbang mempunyai akses internet, anda perlu mendaftarkannya dengan TTN . Jika anda tidak mempunyai akaun, daftar dahulu di laman web The Things Network dan kemudian akses Konsol di rantau yang sepadan (contohnya, https://eu1.cloud.thethings.network/).
Dalam konsol, pilih bahagian Gerbang dan klik pada “Daftar gerbang” . TTN akan meminta ID Gerbang (nama unik dalam akaun anda) dan, bergantung pada jenis gerbang, Gerbang EUI. Untuk gerbang Dragino LPS8 yang menggunakan penghantar paket klasik, anda mesti memilih pilihan “Saya sedang menggunakan penghantar paket legasi”.
Selain itu, anda akan menentukan pelan frekuensi (EU868 untuk Eropah) , rantau atau penghala yang sepadan, dan secara pilihan, lokasi (koordinat, dalaman/luaran, dll.). Pada get laluan seperti sel tunggal dengan XIAO ESP32S3 dan Wio-SX1262, firmware itu sendiri mungkin memaparkan ID Get Laluan melalui port siri semasa permulaan; hanya salin dan gunakannya dalam borang pendaftaran.
Selepas melengkapkan maklumat ini dan mendaftarkan get laluan, TTN akan memaparkan pemeriksa status (“Tersambung” atau “Terputus Sambungan”) dan bahagian “Trafik” di mana anda boleh melihat aliran paket dalam masa nyata. Jika semuanya dikonfigurasikan dengan betul pada kedua-dua get laluan dan TTN, anda sepatutnya melihatnya berubah kepada “Tersambung” dalam masa satu atau dua minit dan mula melihat trafik apabila nod sedang menghantar.
Ini bermakna infrastruktur (get laluan + pelayan) kini beroperasi . Dari sini, konfigurasi aplikasi dan peranti akhir akan memainkan peranan.
Penciptaan aplikasi dan pendaftaran nod dalam TTN
Dalam TTN, peranti tidak didaftarkan terus pada akar akaun, tetapi sebaliknya dalam aplikasi . Aplikasi mengumpulkan satu atau lebih nod yang menghantar data berkaitan, contohnya, semua sensor persekitaran di bangunan atau beberapa penjejak GPS dalam projek pendidikan.
Dalam konsol TTN, pergi ke bahagian Aplikasi dan cipta aplikasi baharu . Berikannya ID unik, atau penerangan secara pilihan, dan pilih rantau yang sesuai. Dalam aplikasi tersebut, anda akan mendaftarkan setiap nod LoRaWAN dengan kelayakannya (DevEUI, JoinEUI/AppEUI dan AppKey atau kunci lain bergantung pada kaedah pengaktifan).
Untuk sensor komersial seperti sensor suhu dan kelembapan Browan TBHH100-868 , label dengan DevEUI, AppEUI dan AppKey biasanya dilampirkan. Ia biasanya menggunakan kaedah OTAA (Over-The-Air Activation), yang menjana sesi utama dengan setiap penyertaan rangkaian, menjadikannya lebih selamat daripada ABP.
Dengan OTAA, dalam TTN anda memilih untuk mendaftarkan peranti akhir baharu, masukkan JoinEUI (AppEUI), DevEUI dan AppKey , sahkan data dan sahkan. Setelah disimpan, jika nod dikonfigurasikan dengan betul dan dalam julat gerbang, ia akan melihat suar rangkaian, melaksanakan prosedur penyertaan dan anda akan mula melihat mesej pautan naik dengan ukurannya dalam konsol.
Perkara yang sama berlaku untuk sensor seperti sensor tahap dan suhu Decentlab : pengeluar menyediakan ID, DevEUI, AppEUI dan AppKey, tetapi tidak mengetahui terlebih dahulu pelayan mana yang akan anda gunakan. Anda bertanggungjawab untuk mendaftarkan maklumat ini dengan TTN (atau pelayan lain) supaya sensor boleh didaftarkan. Banyak peranti Decentlab didatangkan pra-daftar dengan TTN jika anda memintanya, yang memudahkan lagi proses tersebut.
Mengkonfigurasi sensor LoRaWAN komersial
Mari kita lihat beberapa contoh konkrit tentang cara menyediakan dan mendaftarkan sensor LoRaWAN komersial yang kemudiannya akan berkomunikasi dengan TTN melalui gerbang anda.
Dalam rangkaian SenseCAP S210x (contohnya, sensor persekitaran), aliran kerja biasa adalah menggunakan aplikasi SenseCraft pengeluar . Mula-mula, anda memuat turun aplikasi, menghidupkan sensor dengan butang (dengan menahannya selama beberapa saat sehingga LED berkelip setiap saat), dan kemudian dalam aplikasi, anda memilih "Imbas" untuk membaca kod QR peranti.
Dalam aplikasi ini, terdapat mod "Konfigurasi Lanjutan" di mana anda memilih "Rangkaian Benda" sebagai platform . Anda mesti memilih pelan frekuensi yang sama seperti gerbang anda (contohnya, EU868) dan mengesahkan bahawa mod penyertaan ialah OTAA. Aplikasi ini akan memaparkan EUI Peranti, AppEUI (JoinEUI) dan AppKey; adalah idea yang baik untuk mencatatnya kerana anda perlu memasukkannya ke dalam TTN semasa mendaftarkan peranti.
Dalam kes sensor Tabs Browan TBHH100-868 , kekuncinya dikonfigurasikan terlebih dahulu dari kilang. Sensor mengukur suhu dan kelembapan, dikuasakan oleh bateri 3,6V dan menghantar data mengikut peraturan ini: setiap 60 minit jika tiada perubahan, atau lebih awal jika suhu berubah sebanyak ±2°C atau kelembapan sebanyak ±5%. Untuk mendaftarkannya, hanya masukkan APPKey, APPEUI dan DevEUI yang disediakan oleh pengilang ke dalam pelayan LoRaWAN anda (contohnya, TTN). Kadangkala mungkin terdapat masalah dengan format atau susunan bait (msb/lsb), jadi penting untuk menyemaknya jika ia tidak bersambung pada kali pertama.
Peranti Dragino TrackerD digunakan sebagai penjejak GPS dengan butang panik. Setiap unit mempunyai set kekunci LoRaWANnya sendiri. Dalam TTN, ini biasanya didaftarkan dalam aplikasi yang sama (cth., "penjejakan kursus"), dan peranti dikonfigurasikan, jika perlu, melalui port siri (USB) menggunakan arahan AT. Dokumentasi memperincikan arahan untuk melaraskan kadar penghantaran, tingkah laku penggera, dsb. Penting: Banyak firmware Dragino memerlukan arahan AT ditampal sepenuhnya ke dalam terminal, bukan ditaip aksara demi aksara.
Dalam sensor seperti sensor aras, tekanan atau persekitaran Decentlab , falsafahnya adalah serupa: DevEUI, AppEUI dan AppKey digunakan untuk menyambungkannya ke TTN (atau rangkaian lain). Decentlab biasanya menetapkan selang penghantaran selama 10 minit kerana ia merupakan kompromi yang terbukti antara penggunaan data dan resolusi, walaupun ini boleh diubah suai atas permintaan atau melalui konfigurasi. Pengguna boleh melihat data pada platform awan pengeluar sendiri atau mengintegrasikan peranti ke dalam platform pihak ketiga (MyDevices, ResIoT, WMW, dll.) dengan menambah penyahkod muatan yang sesuai.
Bina nod LoRaWAN anda sendiri dengan perkakasan sumber terbuka
Jika anda gemar mengutak-atik, perkara yang paling menyeronokkan selalunya ialah membina dan memprogram nod LoRaWAN anda sendiri . Gabungan yang sangat popular adalah menggunakan papan berasaskan ESP32 dengan LoRa bersepadu, seperti TTGO LoRa32 V2.0 868 MHz, dan menambah sensor mudah, contohnya, sensor suhu DS18B20.
Pendekatan ini memerlukan empat bahagian: papan kawalan (ESP32, Arduino, dll.), modul radio LoRa (contohnya jenis RFM95 SX1276/78), sensor yang ingin anda ukur dan secara pilihan, peranti persisian seperti paparan OLED untuk menunjukkan data secara setempat.
TTGO LoRa32 V2.0 didatangkan dengan transceiver LoRa bersepadu dan, bergantung pada versi, paparan OLED kecil. Berdasarkan ESP32, ia menyediakan WiFi dan Bluetooth, dan dalam banyak kes, ia juga sesuai untuk membina gerbang mini saluran tunggal apabila disambungkan ke internet. Walau bagaimanapun, pada papan ini dan yang serupa, beberapa isyarat daripada modul LoRa (DIO1, DIO2) tidak dipra-wayarkan kepada mikropengawal dan anda perlu menyambungkannya sendiri.
Contohnya, TTGO LoRa32 V2.0 biasanya menggunakan pinout berikut untuk LoRa: SCK pada GPIO5, MISO pada GPIO19, MOSI pada GPIO27, CS pada GPIO18, RESET pada GPIO14 dan DIO0 pada GPIO26 . DIO1 dan DIO2 biasanya disambungkan secara fizikal kepada GPIO33 dan GPIO32, yang terletak betul-betul bertentangan antara satu sama lain pada baris bertentangan, menjadikannya sangat mudah untuk menggunakan jumper terus.
Terdapat tiga cara biasa untuk membuat sambungan ini: menyolder wayar terus ke pin (untuk pemasangan akhir), menggunakan wayar jumper jika papan berada pada papan roti , atau menghalakan sambungan ke PCB khusus yang dipasangkan dengan TTGO. Pilihan jumper biasanya paling mudah untuk diuji.
Perisian nod: pustaka LMIC, frekuensi dan kekunci TTN
Untuk memprogram nod LoRaWAN pada Arduino/ESP32, pustaka MCCI LoRaWAN LMIC digunakan secara meluas , yang melaksanakan tindanan LoRaWAN dan mengurus semua yang berkaitan dengan saluran, penyertaan, percubaan semula, tetingkap penerimaan, dan sebagainya.
Pertama, pasang pustaka daripada Pengurus Pustaka Arduino IDE dengan mencari "LMIC" dan memilih "pustaka MCCI LoRaWAN LMIC". Setelah dipasang, terdapat butiran penting: secara lalai, ia dikonfigurasikan untuk US915 (Amerika Syarikat), jadi jika anda berada di Eropah, anda mesti menukarnya kepada EU868.
Untuk melakukan ini, cari fail lmic_project_config.h dalam folder pustaka (sesuatu seperti /Arduino/libraries/MCCI_LoRaWAN_LMIC_library/project_config/) dan edit definisi. Komen CFG_us915 dan dayakan CFG_eu868, pastikan juga jenis radio yang betul diaktifkan (contohnya, CFG_sx1276_radio untuk modul SX1276/78). Ini adalah perubahan sekali sahaja yang terpakai pada semua projek LMIC anda.
Kemudian anda membuka salah satu contoh yang disertakan, contohnya ttn-abp , yang secara berkala menghantar "Hello, world!" sebagai muatan. Contoh ini berfungsi sebagai asas untuk menyesuaikannya dengan papan dan kelayakan TTN anda.
Dalam kod tersebut, anda akan melihat struktur lmic_pinmap yang menentukan pin NSS (CS), RST dan DIO . Secara lalai, ia biasanya dipetakan untuk Feather M0 LoRa, jadi jika anda menggunakan TTGO LoRa32 V2.0, anda perlu menukar struktur ini untuk menggunakan .nss = 18, .rst = 14 dan .dio = {26, 33, 32} (dengan mengandaikan anda telah menyambungkan DIO1 ke GPIO33 dan DIO2 ke GPIO32). Jika perkakasan anda berbeza, anda perlu merujuk dokumentasinya atau mencari contoh khusus.
Setelah pinout betul, tiba masanya untuk mengkonfigurasi kekunci yang mengenal pasti nod anda dalam TTN . Dalam contoh ttn-abp, pembolehubah NWKSKEY, APPSKEY dan DEVADDR muncul dengan perkataan FILLMEIN supaya anda boleh mengisinya dengan nilai anda.
Anda memperoleh data ini daripada konsol TTN semasa mencipta peranti dengan pengaktifan ABP. TTN menyediakan anda dengan Kunci Sesi Rangkaian (NWKSKEY), Kunci Sesi Apl (APPSKEY) dan Alamat Peranti (DEVADDR) . Dalam antara muka, kekunci disembunyikan atas sebab keselamatan, tetapi anda boleh menjadikannya kelihatan dan, dengan lebih berguna, menyalin nilai secara langsung sebagai tatasusunan C (menggunakan butang "<>") dengan susunan bait (msb) yang betul. Mengklik ikon salin akan menyalin tatasusunan ke papan keratan dan anda boleh menampalnya ke dalam kod anda di mana setiap FILLMEIN berada.
Untuk NWKSKEY dan APPSKEY, anda akan menggunakan format tatasusunan bait yang disediakan oleh TTN , manakala untuk DEVADDR, anda akan menetapkan nilai heksadesimal sebagai integer tunggal jenis u4_t, contohnya, `static const u4_t DEVADDR = 0x26011111;`. Dengan ini, nod anda akan dapat mengesahkan dan menghalakan paketnya ke aplikasi TTN anda.
Integrasikan sensor ke dalam kod nod
Sebaik sahaja rangka LoRaWAN berfungsi, tiba masanya untuk menggantikan "Hello, world!" yang biasa dengan data sensor sebenar . Berterusan dengan contoh TTGO LoRa32 dan DS18B20, anda menggunakan bas OneWire dan pustaka DallasTemperature.
Pada permulaan lakaran, sertakan pengepala dan takrifkan pin bas: `#include <OneWire.h>`, `#include <DallasTemperature.h>`, dan `#define ONE_WIRE_BUS X` , yang mana X ialah pin GPIO yang telah anda sambungkan sensor. Cipta objek `OneWire` `oneWire(ONE_WIRE_BUS)` dan objek `DallasTemperature` `sensor(&oneWire). Jika anda belum memasang pustaka DS18B20, tambahkannya daripada pengurus pustaka.
Dalam fungsi setup(), anda memulakan sensor dengan sensor.begin() dan, jika anda mahu, tetapkan resolusi (contohnya, sensor.setResolution(11)) . Mulai saat itu, sensor bersedia untuk membaca suhu apabila anda memerlukannya.
Fungsi utama dalam LMIC untuk menghantar data ialah `do_send(osjob_t* j)`. Di dalamnya, anda akan melihat tanda semak untuk penghantaran yang sedang berjalan (`OP_TXRXPEND`). Jika tiada tanda semak, anda boleh memanggil `sensor.requestTemperatures()`, dapatkan nilai dengan `sensor.getTempCByIndex(0)` dan simpannya dalam tatasusunan `mydata`. Contohnya, anda boleh menggunakan `mydata[0] = (uint8_t)sensor.getTempCByIndex(0);` untuk menghantar hanya bahagian integer.
Kemudian anda memanggil LMIC_setTxData2(1, mydata, sizeof(mydata), 0) , di mana parameter pertama ialah port LoRaWAN (1 dalam kes ini), yang kedua ialah penimbal, yang ketiga ialah saiz, dan yang terakhir menunjukkan sama ada mesej diakui (1) atau tidak diakui (0). Pustaka kemudian menjadualkan penghantaran dalam slot seterusnya yang tersedia.
Terdapat banyak penambahbaikan yang mungkin: mengembangkan muatan untuk memasukkan data perpuluhan, menambah sensor lain, data pembungkusan dalam format binari yang cekap , dan sebagainya. Tetapi walaupun dalam versi mudah ini, anda sudah mempunyai nod yang menghantar ukuran masa nyata secara berkala ke TTN, boleh dilihat pada konsol dan sedia untuk disepadukan dengan sistem lain.
Pengaktifan, keselamatan dan pengalaman praktikal OTAA
Setakat ini kita telah membincangkan ABP terutamanya untuk contoh kod, tetapi dalam pengeluaran, sangat disyorkan untuk menggunakan OTAA (Over-The-Air Activation) . OTAA ialah kaedah yang digunakan oleh, contohnya, sensor Decentlab dan banyak sensor SenseCAP, kerana ia meningkatkan keselamatan.
Dengan OTAA, sesi LoRaWAN dirundingkan "di udara" setiap kali peranti menyertai rangkaian . Apabila nod dimatikan, dimulakan semula atau terputus sambungan, kunci sesi baharu dijana pada kali ia menyertai yang seterusnya, menyukarkan seseorang untuk mengklon peranti hanya dengan menyalin kunci statik.
Dalam konsol TTN, apabila anda memilih OTAA untuk peranti, anda akan mempunyai DevEUI, JoinEUI/AppEUI dan AppKey dan bukannya NWKSKEY dan APPSKEY statik . Kekunci sesi dibina setiap kali daripada nilai-nilai ini dan pertukaran dengan pelayan, dan anda hanya akan melihat kekunci yang diperoleh sepanjang tempoh sesi.
Dalam praktiknya, pengguna yang bermula dari awal dengan LoRaWAN mendapati bahawa dengan gerbang yang berdaftar dengan TTN dan sensor OTAA yang dikonfigurasikan dengan betul, proses pendaftaran boleh menjadi sangat mudah : buat akaun di TTN, aktifkan gerbang, daftarkan sensor dengan kunci yang disediakan oleh pengilang dan dalam beberapa minit lihat data pada platform web (sama ada Decentlab sendiri, SenseCAP atau papan pemuka pihak ketiga).
Faktor-faktor seperti lokasi kotak LoRa sensor (paling baik dalam kedudukan menegak, yang memihak kepada corak sinaran antena dalaman) , persekitaran radio dan ketinggian pintu gerbang sangat mempengaruhi liputan sebenar, tetapi aliran persediaan agak mekanikal setelah difahami.
Dari TTN ke aplikasi anda: integrasi dan visualisasi
Dengan nod kini memuat naik data ke TTN, langkah seterusnya adalah untuk membawa maklumat tersebut ke dalam aplikasi, papan pemuka atau aliran kerja automasi anda sendiri . TTN menyediakan integrasi yang berkuasa dan API untuk ini.
Satu pendekatan yang sangat biasa adalah dengan menggunakan Node-RED untuk menerima data daripada TTN dan memprosesnya mengikut keperluan . Anda mengkonfigurasi sambungan MQTT atau HTTP dengan kelayakan aplikasi TTN anda, menyahkod muatan (mengikut format sensor anda), dan dari situ anda boleh melakukan apa sahaja: menyimpan ke pangkalan data, memaparkan graf, mencetuskan amaran, dsb.
Pilihan lain adalah dengan menggunakan platform pihak ketiga yang telah berintegrasi dengan TTN , seperti Datacake, MyDevices, ResIoT, WMW dan lain-lain. Kebanyakan platform ini sudah mempunyai templat khusus untuk peranti seperti sensor Decentlab atau beberapa model Dragino, jadi anda hanya perlu memilih jenis peranti, pautkannya ke aplikasi TTN anda dan mula melihat data pada papan pemuka yang mesra pengguna.
Dalam projek pendidikan, sebagai contoh, TTN telah digunakan bersama-sama dengan gerbang RAK7289 dan penjejak Dragino TrackerD untuk mencari orang atau kenderaan. Aliran kerja adalah seperti berikut: gerbang berdaftar, penjejak berdaftar dalam TTN, data dilihat pada konsol dan kemudian dipaparkan dalam masa nyata pada papan pemuka Datacake awam dengan peta dan graf yang menunjukkan kedudukan, tahap bateri, dsb.
Perkara penting untuk difahami ialah TTN bertindak sebagai lapisan rangkaian LoRaWAN dan penghala data ; anda yang menentukan lapisan aplikasi dan visualisasi: daripada skrip Python yang menggunakan API kepada platform data IoT perindustrian.
Pendek kata, menyambungkan nod LoRaWAN ke TTN melibatkan beberapa langkah (frekuensi yang betul, get laluan yang dikonfigurasikan dengan betul, pendaftaran TTN, kunci nod, pengaktifan OTAA atau ABP, perisian peranti dan, jika dikehendaki, integrasi berikutnya), tetapi setiap bahagian boleh diurus walaupun tanpa pengalaman terdahulu jika garis panduan yang betul diikuti. Setelah persediaan awal selesai, penggunaan lebih banyak nod atau get laluan menjadi proses yang sangat boleh diulang dan diskalakan, sesuai untuk projek sensor berskala besar, inisiatif Bandar Pintar atau hanya untuk pembelajaran dan eksperimen dengan IoT jarak jauh.