LoraWan Ağ Geçidini Yapılandırma


10

Arduino ve Dragino Lora Shield ile programlanabilir bir sensör kullanarak bir LoRaWan Ağı kurmaya çalışıyorum .

Başka bir Dragino Lora Shield veya iC880A ile bağlı bir Raspberry Pi de dahil olmak üzere bir ağ geçidi oluşturmak için birçok çözüm buldum ve aldığım veriler bulutta bir sunucu yapacak. Ağ geçidini programlama konusunda çok kafam karıştı.

  • Düğüme ve sunucuya bağlanmasını söylemem gerekir mi? Yoksa verileri otomatik olarak alıyor mu?
  • Ve sunucuyu ağ geçidine veya doğrudan düğümlere bağlanmak üzere programlayabilir miyim?

2
Siteye hoş geldiniz. Kullandığınız cihaz modelleri hakkında birkaç bilgi ekleyebilir ve kullanım durumunuz hakkında daha fazla ayrıntı ekleyebilir misiniz? Bu size daha iyi cevaplar vermemize yardımcı olacaktır.
Helmar

Merhaba, teşekkürler! Iot ağlarında yeni başlayan biriyim, bu yüzden bir arduino uno, sıcaklık sensörü ve bir Dragino Lora Shield kullanarak bir düğüm oluşturdum, bir sunucuya tarih göndermeye çalışıyorum, bu yüzden ahududu pi kullanarak bir LoraWan Gateway oluşturmaya çalıştım bir LoraWan Gateway dönüştürmek nasıl bazı araştırma ve ben başka bir Dragino Lora Shield veya bir iC880A modülü kullanarak ben öğrendim ve bunu yapmak için kaynak kodunu buldum, ama yine de nasıl bağlanır hakkında karıştı düğüme ağ geçidi ve nasıl düğümden ağ geçidine sunucuya veri göndermek ?? şimdiden teşekkürler !!
Mohamed Achref Dridi

Yanıtlar:


11

Tipik bir LoRaWAN ağında, ağ geçitleri LoRa Alliance tarafından açıklandığı gibi aptal cihazlardır :

LoRaWAN ağ mimarisi tipik olarak, ağ geçitlerinin uç cihazlar ve arka uçtaki merkezi bir ağ sunucusu arasında mesajları aktaran şeffaf bir köprü olduğu bir yıldız yıldızı topolojisinde düzenlenir.

Bu nedenle, bir ağ geçidinin yalnızca Açık Şeyler Ağı gibi bazı ağ sunucularına bağlanmak için yapılandırılması gerekir . Bu kadar.

Ağ geçitlerine genellikle "paket ileticileri" denir. Bu şekilde, ağ geçitleri sadece bunu yapar: alınan tüm LoRaWAN paketlerini bir ağ sunucusuna iletir (hangi düğümü gönderdiğine bakılmaksızın) ve ağ sunucusu tarafından komut verilen her şeyi iletir. Bu nedenle, düğümler (son aygıtlar) bazı ağ geçitlerine bağlanmaz ; bunun yerine sadece bir veya daha fazla ağ geçidinin iletimini almasını ve bunu düğümü bilen ağ sunucusuna iletmesini umuyorlar. (Ağ geçitleri, yönlendirdikleri şifrelenmiş verileri okuyamaz.)

Düğümleri ağa bağlamak için, iki seçenekten birini kullanarak "etkinleştirilir" :

  • Şebeke Üzerinden Aktivasyon (OTAA)

    İlk olarak, bir web sitesi veya API kullanarak, her yeni düğüm kendi benzersiz cihazı EUI ( DevEUI) kullanılarak ağ sunucusuna kaydedilir . Daha sonra bir genel uygulama kimliği ( AppEUI) ve bir gizli uygulama anahtarı ( AppKey) alır. Bu üç değer düğüme programlanır.

    Ardından, ilk kez göndermeye hazır olduğunda, değerler bir LoRaWAN Birleştirme İsteği oluşturmak ve iletmek için düğüm tarafından kullanılır. Bu tür bir istek bir veya daha fazla ağ geçidi tarafından alınırsa, onaylandığında ağ geçidine bir Katılma Kabulü iletmesini söyleyecek olan ağ sunucusuna iletilir. Düğüm tarafından alınırsa, bu düğüme ortak bir aygıt adresi ( DevAddr), bir gizli ağ oturum anahtarı ( NwkSKey) ve bir gizli uygulama oturum anahtarı ( AppSKey) verir.

    Birleşim Kabulünden belirlenen değerler, düğümün bazı gerçek verileri iletmesi gerektiğinde kullanılır (birleştirildiğinde sıfırdan başlayan bir güvenlik sayacı ile). Etkinleştirme, düğüm onu ​​bellekte tuttuğu sürece (ve güvenlik sayaçları tükenmediği sürece), genellikle aylarca hatta yıllarca geçerlidir. Kaybolduğunda, bir düğüm yeni bir Katılma İsteği gönderebilir ve yeni sırlar alabilir.

  • Kişiselleştirme ile Aktivasyon (ABP)

    Burada, bir web sitesi veya API kullanarak kaydolurken, düğüme, bir düğüme programlanan ve asla değişmeyen bir aygıt adresi ( DevAddr), gizli ağ oturum anahtarı ( NwkSKey) ve gizli uygulama oturum anahtarı ( AppSKey) verilir. Düğümün, herhangi bir veri göndermeye başlamadan önce bir Katılma İsteği göndermesi gerekmez, ancak güvenlik sayaçlarının kaybolmamasına dikkat edilmelidir. Ayrıca, anahtarlar belirli bir ağ için özeldir; APB, düğümleri farklı bir ağ sağlayıcısına taşımayı zorlaştırır (imkansız değilse).


1
Bazı özel ağ geçitleri bir LoRaWAN ağ sunucusu içerir ve bağımsız ağlar olarak işlev görebilir. Ancak çoğu harici bir Ağ Sunucusuna bağlı olmalıdır. Bu noktada yeterince net olmayan cevabımı kaldırdım.
Sylvain

0

Arjan'ın cevabı iyi. Teknik. Ağ geçitleri ve paketlerin ileri geri nasıl hareket ettiği konusunda yeni ve resmi bir araya getirmek için mücadele edenlere yardımcı olmak için farklı bir lezzet cevabı vermek istedim.

Analoji ...

You > Letter > Mailbox > Mailman > Post Office Dist > Recipient

|----------------- TX -------------------|

Node > Packet > Transmission > Gateway > Network Server > Application

|----------------- RX -------------------|

Node < Packet < Transmission < Gateway < Network Server < Application

Mektup / Paketin bir adresi var. Postacı / ağ geçidi, mektubunuzu posta kutunuzdan veya mektubunuzu bıraktığınız posta kutusundan alır. Alıcıya kadar işlenir. Adres yanlışsa, gelmeyecek ve bu konuda bilgilendirilmelisiniz. Alıcı, aynı sistem üzerinden size bir mektup gönderebilir.

İster The Things Network'ü kullanıyor olun ister LoRaServer gibi bir şey kullanarak kendi özel sunucunuzu kurmaya çalışın, mesajları ileri geri iletmek için düğüm / mote / end-device'ınızın erişebileceği bir ağ geçidine ihtiyacınız olacak. Düğüm kodundaki farklı anahtarları analoji harfindeki adresler olarak düşünün.

Harita sayfalarında bölgenizde zaten bir TTN ağ geçidi olup olmadığını belirleyebilir ve düğümünüze erişebilecek bir tane varsa, mesajlarınız TTN'nize ulaşmalıdır (anahtarları düğüme kaydettiğiniz ve uyguladığınız varsayılarak). Erişilebilecek bir ağ geçidi yoksa, kendiniz bir ağ geçidi oluşturabilirsiniz. Bunu yapmak için birçok seçenek var.

Ağ geçidinin yapılandırılmasıyla ilgili olarak, hangi kütüphaneyi seçtiğinize bağlı olarak, genellikle sadece kaynak kodda veya global_conf.json veya local_conf.json dosyasında bazı parametreleri yapılandırmanız gerekir.

Burada single_chan_pkt_fwd kullanarak bir RFM9X (SX1276 tabanlı) ve bir RPI3 B + ile uğraşmaktan bir örnekhangi btw yanıt vermeyecektir ... bunun sadece tamir / test için olduğunu unutmayın. Hem iletici hem de aşağıdaki global_conf.json örnekleri tak-çalıştır değildir ve uygun LoRaWan ağı için güvenilmemelidir. Uyumlu bir ağ geçidinde 3 radyo bulunur ve aynı anda birden fazla kanalı işleyebilir ve gönderebilir / alabilir. Bu örnek sadece tek kanaldaki düğümden alınır ve çok güvenilir değildir, ancak yapılandırma sunar. Değerlerin her biri, kullandığınız donanıma ve bulunduğunuz yere ... veya ağ geçidinin ABD, AB vb. Gibi bulunduğu yere bağlıdır ... ayrıca global_conf.json'un tek bir boyut olmadığını da belirtmek gerekir. herkese uyar. Farklı kütüphaneler genellikle çoklu radyolar, kanallar vb. İçin daha fazla yapılandırma seçeneğine sahiptir ... sadece FYI.

{
  "SX127x_conf": // depending on your hardware/radio this could be something like sx1301..., sx127x...., etc.. 
  {
    "freq": 903000000, // depending on whether US (900 range), EU (800 range) or other...
    "spread_factor": 7, // look this up
    "pin_nss": 10, // wiringpi value = physical pin #24
    "pin_dio0": 5, // wiringpi value = physical pin #18
    "pin_rst": 21 // wiringpi value = physical pin #29
  },
  "gateway_conf":
  {
    "ref_latitude": 0.0, 
    "ref_longitude": 0.0,
    "ref_altitude": 2,

    "name": "WHATEVER NAME",
    "email": "WHATEVER@EMAIL.TLD",
    "desc": "WHATEVER DESC",

    "servers":
    [
      {
        "address": "localhost", // this one is private so localhost, but TTN lookup address
        "port": 1700, // this one is private so localhost, but TTN lookup port
        "enabled": true
      } // you could add more... say you have a private one and TTN 
    ]
  }
}

Diyelim ki Arduino cihazı ve kodu ile bir düğüm inşa ediyorsunuz. Ve LMIC-Arduino kütüphanesi ve örnek eskiz gibi bir şey kullanıyorsunuz. Öncelikle aygıt donanımına dayanarak aygıtın çalışması için pinmap'in nasıl yapılandırılacağını belirlemeniz gerekir. TTN kullanacaksanız, çizim koduna koyduğunuz gerekli anahtarları kaydetmek ve almak için birçok kılavuzdan herhangi birini takip edersiniz. Ayrıca, bölgenizdeki ağ geçidiyle aynı hizaya gelmek için uygun frekansta ve bu tür ... iletim yaptığınızdan emin olmalısınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.