Semua Tentang Belajar Teknologi Digital Dalam Kehidupan Sehari - Hari

Jumat, 27 Mei 2022

Tutorial LoRaWan Antares - Menentukan frekuensi terbaik dengan python

 




Operasi sistem IoT di pita spektrum ISM yang tidak berlisensi di satu sisi menguntungkan karena rendahnya biaya lisensi, namun di sisi lain  penggunaan spektrum secara bersama menyebabkan peningkatan kebisingan / noise pada latar (background noise) yang tak terhindarkan, karena banyaknya perangkat baru yg hadir belakangan ini. Masalah gangguan yang meningkat ini juga disadari oleh pihak regulator, di mana dilakukan pengukuran spektrum pita lebar (untuk kisaran 200–3000 MHz) dilakukan di lingkungan perkotaan pada tahun 2016. Dari hasil penelitian ditunjukkan bahwa dibandingkan dengan penelitian data analog yang dikumpulkan pada tahun 2004 rata-rata hunian spektral meningkat secara signifikan yang menunjukkan munculnya sejumlah besar sumber radiasi baru (sehingga lebih padat) yang telah muncul selama periode tersebut. 




Ini dicirikan oleh ketidakpastian yang tinggi dan varians yang cukup besar baik dalam time domain maupun dalam amplitudo yang tidak memungkinkan kualifikasi mereka disebut sebagai white Gaussian noise. Kontributor utama dari radiasi yang baru ini, tentu saja telah diidentifikasi sebagai sistem seluler (GSM, UMTS, dan LTE) dan DVB-T. Namun, ada juga kejadian tak terduga dengan karakteristik acak, yang hampir tidak dapat dijelaskan dengan model statistik, seperti kendaraan yang lewat yang memancarkan gelombang EM dari komunikasi pada ECM dan sinyal yang dipancarkan dari remote control untuk membuka pintu dan gerbang dan dari sistem otomasi rumah. Radiasi dalam ruangan dapat berasal dari peralatan komputer (terutama ruang server), WLAN, atau periferal komputer yang berkomunikasi melalui Bluetooth. Kebisingan latar belakang yang meningkat di dalam gedung ini dapat menjadi sangat berbahaya bagi sistem IoT, yang menurut definisi didedikasikan untuk memperoleh data dari lokasi dalam ruangan dan mengirimkannya melalui modem yang terletak langsung pada meter dan sensor.





Untuk menjaga data tetap terkirim ke server dan gateway IOT, saya telah mengkreasikan script baik di arduino maupun python untuk dapat mengumpulkan data statistik masing-masing frekuensi LoRa yang telah disepakati di Indonesia yaitu frekuensi 921.2 - 922.6 Mhz, dengan jarak tiap channel 200Khz. Tanpa berpanjang lebar saya akan share sciptnya, asalkan pembaca telah mengerti pada pembahasan Hello world dan pengolahan data antares yang bisa dibaca disini dan disini.  

#include <SPI.h>
#include <LoRa.h>

#include <LoRaWanPacket.h>


const int csPin = 10;
const int resetPin = 9;
const int irqPin = 2;

const char *devAddr = "aabbccdd";
const char *nwkSKey = "11111111111111110000000000000000";
const char *appSKey = "00000000000000002222222222222222";


struct LoRa_config
{
  long Frequency;
  int SpreadingFactor;
  long SignalBandwidth;
  int CodingRate4;
  bool enableCrc;
  bool invertIQ;
  int SyncWord;
  int PreambleLength;
};


long LoRa_frek_INA_923_start = 921200000 ;
long LoRa_frek_INA_923_end   = 922600000 ;
long LoRa_frek_step = 200000;
long LoRa_frek_INA_923 = LoRa_frek_INA_923_start;
                                     
static LoRa_config txLoRa = {LoRa_frek_INA_923, 10, 125000, 5, true, false, 0x34, 8};

void LoRa_setConfig(struct LoRa_config config)
{
  LoRa.setFrequency(LoRa_frek_INA_923);
  LoRa.setSpreadingFactor(config.SpreadingFactor);
  LoRa.setSignalBandwidth(config.SignalBandwidth);
  LoRa.setCodingRate4(config.CodingRate4);
  if (config.enableCrc)
    LoRa.enableCrc();
  else
    LoRa.disableCrc();
  if (config.invertIQ)
    LoRa.enableInvertIQ();
  else
    LoRa.disableInvertIQ();
  LoRa.setSyncWord(config.SyncWord);
  LoRa.setPreambleLength(config.PreambleLength);
}

void LoRa_TxMode()
{

  LoRa_setConfig(txLoRa);
  LoRa.idle();

  

}


void setup()
{
  Serial.begin(9600);
  while (!Serial);

  LoRaWanPacket.personalize(devAddr, nwkSKey, appSKey);

  LoRa.setPins(csPin, resetPin, irqPin);

  if (!LoRa.begin(txLoRa.Frequency)) {
    Serial.println("LoRa init failed. Check your connections.");
    while (true);
  }

  Serial.println("LoRa init succeeded.");
  Serial.println();
 
}

void loop() {
  if (runEvery(5000)) {

    Serial.print("Send Message! frekuensi =  ");
    Serial.println(LoRa_frek_INA_923);
    
    LoRa_sendMessage();

  }
}

void LoRa_sendMessage()
{
  LoRa_TxMode();
  LoRaWanPacket.clear();
  LoRaWanPacket.print("coba kirim frek: ");
  LoRaWanPacket.print(String(LoRa_frek_INA_923));
  if (LoRaWanPacket.encode()) 
  {
    LoRa.beginPacket();
    LoRa.write(LoRaWanPacket.buffer(), LoRaWanPacket.length());
    LoRa.endPacket();
  }

  if( LoRa_frek_INA_923 >= LoRa_frek_INA_923_end ) LoRa_frek_INA_923 = LoRa_frek_INA_923_start;
  else LoRa_frek_INA_923 += LoRa_frek_step;
}

boolean runEvery(unsigned long interval)
{
  static unsigned long previousMillis = 0;
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval)
  {
    previousMillis = currentMillis;
    return true;
  }
  return false;
}

Hasilnya akan bisa mengirim data frekuensi ke antares





Untuk script python nya sehingga dapat menampilkan grafik di excel, silahkan rekues ke saya melalui email: ahocool@gmail.com atau whatsapp 08155737755. Hasilnya luar biasa masbroo...saya mendapatkan kesimpulan yaitu frekuensi terbaik di lokasi saya ada pada 2 channel yaitu 921.2 Mhz dan 922 Mhz.








Share:

0 komentar:

Posting Komentar

Kontak Penulis



12179018.png (60×60)
+628155737755

Mail : ahocool@gmail.com

Site View

Categories

555 (8) 7 segmen (3) adc (4) amplifier (2) analog (19) android (12) antares (8) arduino (26) artikel (11) attiny (3) attiny2313 (19) audio (5) baterai (5) blog (1) bluetooth (1) chatgpt (2) cmos (2) crypto (2) dasar (46) digital (11) dimmer (5) display (3) esp8266 (25) euro2020 (13) gcc (1) iklan (1) infrared (2) Input Output (3) iot (58) jam (7) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (17) komputer (3) komunikasi (1) kontrol (8) lain-lain (8) lcd (2) led (14) led matrix (6) line tracer (1) lm35 (1) lora (7) MATV (1) memory (1) metal detector (4) microcontroller (70) micropython (6) mikrokontroler (1) mikrokontroller (14) mikrotik (5) modbus (9) mqtt (3) ninmedia (5) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (88) pcb (2) power (1) praktek (2) project (33) proyek (1) python (7) radio (26) raspberry pi (4) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (2) sharing (3) signage (1) sinyal (1) sms (6) software (18) solar (1) solusi (1) tachometer (2) technology (1) teknologi (2) telegram (2) telepon (9) televisi (167) television (28) transistor (2) troubleshoot (3) tulisan (93) tutorial (108) tv digital (6) tvri (2) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika