RisalDash RisalDash

Loyiha · LoRa · Uzoq masofa

Kilometrlab radio — umuman internetsiz

Wi-Fi devor ortida oʻladi. $4 lik LoRa moduli kilometrlab gaplashda davom etadi — ferma sensorlari, togʻdagi uycha, langar tashlagan qayiq — shlyuzsiz, SIM-kartasiz va oylik toʻlovsiz. Bu yigʻilma ikki ESP32’ni nuqta-nuqta bogʻlaydi va har tugun dashboardiga RSSI, SNR va jonli trafik jurnalini chiqaradi — uzoqlashganingizda aloqa qanday soʻnishini koʻrasiz.

LoyihaLoRaSX1278RadioESP32
ESP32 LoRa nuqta-nuqta loyihasi: SX1278, jonli RSSI va SNR, internetsiz

Ulanish — oddiy SPI va ikkita boshqaruv pini

SX1278 — SPI qurilma: umumiy SCK/MISO/MOSI, oʻz NSS chip-select’i, RST liniyasi va «paket tayyor» uzilishi sifatida DIO0. Bitta jismoniy qoida hammadan ustun: hech qachon antennasiz uzatmang — kuchaytirgich soniyalarda oʻladi.

LoRa SX1278 moduli ESP32’ga SPI orqali NSS, RST va DIO0 bilan ulangan
SX1278 ESP32 VSPI’sida. BoardLab’da yigʻilgan.

Protokol — stek emas, bikon

P2P LoRa’ga LoRaWAN steki kerak emas. Har tugun ID:hisoblagich bikonini yuboradi; oʻz ID’ingiz boʻlmagan har narsa — pir. Apparat CRC buzuq paketlarni indamay tashlaydi, 10 soniyalik timeout esa «peer online» LED’ini boshqaradi:

#define NODE_ID 'A'             // flash 'A' on one board, 'B' on the other
#define FREQ 433E6              // match your module + region!

LoRa.setPins(LORA_NSS, LORA_RST, LORA_DIO0);
if (!LoRa.begin(FREQ)) { evlog->print("LoRa init FAILED"); return; }
LoRa.enableCrc();               // drop corrupt packets in hardware

// Beacon "A:123" every couple of seconds:
LoRa.beginPacket();
LoRa.print(String((char)NODE_ID) + ":" + String(++txNo));
LoRa.endPacket();
int sz = LoRa.parsePacket();
if (sz) {
  String msg;
  while (LoRa.available()) msg += (char)LoRa.read();
  if (msg.length() && msg[0] != NODE_ID) {      // anything not ours = the peer
    recv += 1;
    rssi = LoRa.packetRssi();                   // link strength, dBm
    snr  = LoRa.packetSnr();                    // quality above the noise floor
    if (evlog) evlog->print(msg + "  " + String((int)rssi) + " dBm");
  }
}
online = millis() - lastHear < 10000;           // peer-online LED

Tayyor sketchni (examples/06_Projects/LoRaLink, kutubxona sandeepmistry/LoRa) ikki plataga yozing — NODE_ID 'A' va 'B' — har biri oʻz dashboard-AP’ini beradi. ⚠ FREQ ni mintaqangizga qoʻying: 433 MHz (Osiyo/EU ISM), 868 MHz (EU), 915 MHz (US).

RSSI va SNR’ni oʻqish

KoʻrsatkichDiapazonMaʼno
RSSI −40…−90 dBmkuchlizaxira moʻl
RSSI −90…−110 dBmishchinormal uzoq-masofa hududi
RSSI −110…−125 dBmchegaraLoRa shovqindan past ham dekodlaydi — SNR’ga qarang
SNR > 0 dBtozasignal shovqindan baland
SNR 0…−15 dBLoRa sehribu yerda faqat LoRa omon qoladi

Masofa richaglari: kattaroq spreading factor (SF7→SF12) efir vaqti evaziga kilometrlar beradi; torroq polosa ham yordam beradi. Batareyali tugun uchun deep sleep bilan juftlang: bikon, uyqu, takror. LoRa ESP-NOW, Zigbee va boshqalar bilan qanday solishtirilishi — simsiz protokollar qoʻllanmasi; LoRa ustidagi mesh — Meshtastic.

Ikki plata, ikki antenna — va dBm boʻyicha kuzatiladigan aloqa.