Câu trả lời của Arjan là tốt. Kỹ thuật. Tôi muốn cung cấp một câu trả lời hương vị khác nhau để giúp những người mới và đang gặp khó khăn để đặt bức tranh lại với nhau về các cổng và cách các gói di chuyển qua lại.
Sự giống nhau...
You > Letter > Mailbox > Mailman > Post Office Dist > Recipient
|----------------- TX -------------------|
Node > Packet > Transmission > Gateway > Network Server > Application
|----------------- RX -------------------|
Node < Packet < Transmission < Gateway < Network Server < Application
Thư / Gói có một địa chỉ. Người đưa thư / cổng nhận thư từ hộp thư của bạn hoặc bất kỳ hộp thư nào bạn đã bỏ thư. Nó được xử lý tất cả các cách cho người nhận. Nếu địa chỉ sai, nó sẽ không đến và bạn sẽ nhận được thông báo về điều đó. Người nhận có thể gửi thư lại cho bạn thông qua cùng một hệ thống.
Cho dù bạn sẽ sử dụng Mạng điều hay cố gắng xây dựng máy chủ riêng của mình bằng cách sử dụng thứ gì đó như LoRaServer, bạn sẽ cần một cổng trong tầm với của nút / mote / thiết bị đầu cuối để chuyển tiếp tin nhắn qua lại. Hãy nghĩ về các khóa khác nhau trong mã của nút là địa chỉ trên chữ cái tương tự.
Bạn có thể xác định xem đã có cổng TTN trong khu vực của bạn trên trang bản đồ của họ chưa và nếu có một nút trong tầm với của bạn, tin nhắn của bạn sẽ đến được TTN của bạn (giả sử bạn đã đăng ký và áp dụng các khóa cho nút của mình). Nếu không có cổng trong tầm tay, bạn có thể tự xây dựng. Có nhiều lựa chọn để làm điều đó.
Liên quan đến việc định cấu hình cổng, tùy thuộc vào thư viện bạn chọn, bạn thường chỉ cần định cấu hình một số tham số trong mã nguồn hoặc trong tệp global_conf.json hoặc local_conf.json.
Đây là một ví dụ từ việc mày mò với RFM9X (dựa trên SX1276) và RPI3 B + bằng cách sử dụng single_chan_pkt_fwdmà btw sẽ không cung cấp phản hồi ... hãy nhớ rằng đây chỉ là để mày mò / thử nghiệm. Cả hai ví dụ về phía trước và bên dưới global_conf.json đều không phải là plug-n-play và không nên dựa vào mạng LoRaWan thích hợp. Một cổng tuân thủ có 3 radio và có thể xử lý nhiều kênh và gửi / nhận cùng một lúc. Ví dụ này chỉ nhận được từ nút trên một kênh và không đáng tin cậy lắm nhưng hiện tại cấu hình. Mỗi giá trị phụ thuộc vào phần cứng bạn đang sử dụng và vị trí của bạn ... hoặc vị trí của cổng như US, EU, v.v ... cũng đáng lưu ý rằng global_conf.json không phải là một kích thước phù hợp với tất cả. Các thư viện khác nhau thường có nhiều tùy chọn cấu hình hơn cho nhiều radio, kênh, v.v ... chỉ là 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
]
}
}
Giả sử bạn đang xây dựng một nút với mã và thiết bị Arduino. Và bạn sử dụng một cái gì đó như thư viện LMIC-Arduino và ví dụ phác thảo. Trước tiên, bạn phải xác định dựa trên phần cứng của thiết bị về cách định cấu hình pinmap để thiết bị hoạt động. Sau đó, nếu bạn sẽ sử dụng TTN, bạn làm theo bất kỳ hướng dẫn nào để đăng ký và nhận các khóa cần thiết mà bạn đưa vào mã phác thảo. Bạn cũng phải đảm bảo rằng bạn đang truyền phát với tần số phù hợp và ... để xếp hàng với cổng trong khu vực của bạn.