Tutorial LoRa

Silakan download modul Workshop LoRa Antares. Klik Modul Workshop LoRa Antares

Pendahuluan

Pada tutorial ini, Anda akan menggunakan LoRa untuk mengirim data sederhana ke Antares. Modul yang digunakan pada tutorial ini adalah modul ESP32 LoRa Antares.


1. Prasyarat

Sebelum memulai, pastikan Anda telah memenuhi syarat sebagai berikut:

a. Install Arduino IDE pada komputer Anda. Klik Software Arduino IDE jika Anda belum menginstall.

b. Board ESP32: Download Board ESP32 pada Arduino IDE. Klik Tutorial Berikut Tutorial Install Board ESP32

c. Library LoRaWAN: Download Library LoraWAN pada Arduino IDE. Klik Download Download Library LoraWAN

Note: Tutorial dibawah hanya untuk board ESP32.

d. Membuat aplikasi dan device pada console Antares akun Anda.

2. Langkah-langkah Install Library LoraWAN

Sebelum memulai proses pada software, Anda perlu menginstall Library Loraid pada Arduino IDE yang Anda gunakan. Pada Arduino IDE, buka add .ZIP Library dengan klik Sketch > Include Library > add .ZIP Library.

libantaresws2

Kemudian pilih file zip Library antares-lora-wan.zip pada direktori penyimpanan yang telah Anda download sebelumnya. Lalu klik Open.

librarylorawan

3. Konfigurasi

a. Masuk pada laman console Antares akun Anda. Klik pada device yang telah Anda buat sebelumnya. Kemudian klik Set LoRa seperti pada gambar berikut.

klik-lora-esp32

Lalu akan muncul kotak dialog Set LoRa Device seperti gambar di bawah. Ikuti pengaturan seperti di bawah.

set-lora-esp32

b. Pada Arduino IDE, konfigurasikan ESP32 Dev Modul sebagai board yang akan Anda gunakan. Klik Tools > Board > ESP32 Dev Modul.

c. Pada Arduino IDE, konfigurasikan Port sesuai dengan Board ESP32 yang Anda gunakan. Klik Tools > Port > COM ....

4. Mengirim Data Sederhana ke Antares

Setelah Anda selesai melakukan konfigurasi, saatnya membuat kode program untuk mengirim data sederhana ke device pada console Antares yang telah Anda buat sebelumnya. Kode Program dapat Anda dapatkan di direktori example pada folder library Loraid yang telah Anda download sebelumnya atau dengan mudah Anda dapatkan dengan klik File > Examples > Antares-LoRaWAN > antares-lorawan-send pada Arduino IDE.

Kode program antares-lorawan-send seperti berikut. Jangan lupa untuk ketik Access Key dan Device Id yang Anda gunakan pada console Antares akun Anda. Setelah itu upload program dan tunggu beberapa detik.


#include 
#include 

#define ACCESSKEY "e7e349fc2216941a:9d0cf82c25277bdd"
#define DEVICEID "50e8bfe5"
#define vbatt 32

AntaresLoRaWAN antares;
size_t EPROM_MEMORY_SIZE = 512;

float nilaivbatt;
String dataSend = "";
int readaddress;
int address = 0;
int hitung;

void setup() {
  Serial.begin(115200);
  Serial.println(F("Starting"));
  EEPROM.begin(EPROM_MEMORY_SIZE);
  EEPROM.get(address, readaddress);
  hitung = readaddress;
  antares.setPins(2, 14, 12);   // Set pins for NSS, DIO0, and DIO1
  antares.setTxInterval(1);    // Set the amount of interval time (in seconds) to transmit
  antares.setSleep(true);  // antares.setSleep(true, 10);
  antares.init(ACCESSKEY, DEVICEID);
  antares.setDataRateTxPow(DR_SF10, 17);
}

void loop() {
  hitung = hitung + 1;
  EEPROM.put(address, hitung);
  EEPROM.commit();
  dataSend = "Counting saat ini : " + String(hitung);
  Serial.println(dataSend);
  delay(3000);
  if (hitung >= 4096) {
    hitung = 0;
    EEPROM.put(address, hitung);
    EEPROM.commit();
    delay(10);
  }
  if (hitung <= 4095 ) {
    Serial.println("saat ini masih" + String(hitung) + ", belum 4096");
    delay(10);
    sendPacket(dataSend);
  }
}


void sendPacket(String &input) {
  String dataA = String(input);
  antares.send(dataA);

  char dataBuf[50];
  int dataLen = dataA.length();

  dataA.toCharArray(dataBuf, dataLen + 1);
  Serial.println("Data :" + (String)dataLen );
  if (dataLen > 1)
  {
    Serial.println("\n[ANTARES] Data: " + dataA + "\n");

    if (LMIC.opmode & OP_TXRXPEND) {
      Serial.println(F("OP_TXRXPEND, not sending"));
    } else {
      LMIC_setTxData2(1, (uint8_t*)dataBuf, dataLen, 0);
      Serial.println(F("Packet queued"));
      esp_sleep_enable_timer_wakeup(10 * 1000000);
      //esp_sleep_enable_ext0_wakeup(GPIO_NUM_34,0);
      esp_deep_sleep_start();

    }
  }
  else
  {
    Serial.println("\n[ANTARES] Data: Kosong\n");
  }
  delay(10000);
}
							

Setelah proses upload kode program selesai, silakan periksa data yang masuk pada Device Antares yang telah Anda buat sebelumnya. Jika berhasil maka tampilan pada Device Anda akan seperti berikut ini:

esp32-lora-antares


Menggunakan Shield Workshop Antares
Pendahuluan

Silakan download modul Workshop LoRa Antares. Klik Modul Workshop LoRa Antares

Pada bagian ini, Anda akan menggunakan Shield Workshop Antares pada modul Arduino LoRa. Pada Shield Workshop Antares ini terdapat sensor suhu dan kelembaban (DHT11), relay, LED dan push button. Pada tutorial ini, Anda akan melakukan monitoring suhu dan kelembaban melalui console Antares menggunakan Modul Arduino LoRa.

shieldworkshop

1. Alat dan Bahan

Alat dan bahan yang digunakan diantaranya:

a. Modul Arduino LoRa

b. Shield Workshop Antares

c. Kabel Mini USB

2. Kirim Data Sensor

Sebelumnya, pastikan Anda telah memasang Shield Workshop Antares pada Modul Arduino LoRa dengan benar.

Kode program ditunjukkan seperti dibawah ini. Jangan lupa untuk ketik Access Key dan Device Id yang Anda gunakan pada console Antares akun Anda. Setelah itu upload program dan tunggu beberapa detik.

#include 
#include "DHT.h"
#define DHTPIN 4
#define DHTTYPE DHT11

long interval = 10000; // 10 s interval to send message
long previousMillis = 0; // will store last time message sent
unsigned int counter = 0; // message counter
DHT dht(DHTPIN, DHTTYPE);

void setup() {
// Setup loraid access
lora.init();
// Set LoRaWAN Class
lora.setDeviceClass(CLASS_A);
// Set Data Rate
lora.setDataRate(2);

// Put Antares Key and DevAddress here
lora.setAccessKey("your-access-key");
lora.setDeviceId("dev addr lora");
dht.begin();
}

void loop() {
char myStr[50];
char outStr[255];
int recvStatus = 0;
unsigned long currentMillis = millis();

if(currentMillis - previousMillis > interval) {
float h = round(dht.readHumidity());
float t = round(dht.readTemperature());
if (isnan(h) || isnan(t)) {
h = 0;
t = 0;
}

previousMillis = currentMillis;

String dataKirim = lora.makeData(1, 2, 0, (String)t,(String)h,"");
Serial.println((String)dataKirim);
dataKirim.toCharArray(myStr, dataKirim.length()+1);
lora.sendToAntares((unsigned char *)myStr, strlen(myStr), 0);
}

recvStatus = lora.readData(outStr);
if(recvStatus) {
Serial.println(outStr);
}

lora.update();
}

							

Setelah proses upload kode program selesai, silakan periksa data yang masuk pada Device Antares yang telah Anda buat sebelumnya. Jika berhasil maka tampilan pada Device Anda akan seperti berikut ini:

setlora4