Antares
Antares
id
id
  • Pendahuluan
    • Registrasi Akun
    • Buat App
    • Tambah Device ke Application
    • Instalasi Board pada Arduino IDE
      • ESP8266
      • ESP32
      • STM32
    • Instalasi Arduino IDE
    • Instalasi Library Arduino
      • Antares LoRaWAN
      • Antares Wi-Fi HTTP
      • Antares Wi-Fi MQTT
      • DHT11 Sensor Library
      • Adafruit SSD1306
    • Instalasi STM32 Cube IDE
    • Instalasi STM32 Cube Programmer
    • Instalasi Expansion Pack I-CUBE-LRWAN
    • Instalasi Software
      • Instalasi MQTTX
      • Instalasi Postman
      • Instalasi Operating System (OS) pada SD Card
    • Quickstart
  • Antares Insight Hub
    • Getting Started
      • Request Demo
      • Request Free Trial
    • Usecase
      • Power Meter
        • Prasyarat Usecase Power Meter
        • Power Meter Device Recommendation
        • Payload Example Power Meter
        • Setup Device Threshold Power Meter
      • Water Meter
        • Prasyarat Usecase Water Meter
        • Water Meter Device Recommendation
        • Payload Example Water Meter
        • Setup Device Threshold Water Meter
      • Water Level
        • Prasyarat Usecase Water Level
        • Water Level Device Recommendation
        • Payload Example Water Level
        • Setup Device Threshold Water Level
      • Environment Monitoring
        • Prasyarat Usecase Environment Monitoring
        • Environment Monitoring Device Recommendation
        • Payload Example Environment Monitoring
        • Setup Device Threshold Environment Monitoring
    • Settings
      • Manage Alert Recipient (Telegram)
      • Manage User
      • Roles
  • Subscription and Payment
    • Platform
      • Cara Menggunakan Layanan Platform
      • Tata Cara Pembelian Layanan Platform
        • Pembayaran Menggunakan Virtual Account
          • Bank Mandiri
          • Bank Permata
          • Bank BRI
          • Bank BNI
        • Pembayaran Menggunakan e-Wallet (LinkAja)
        • Pembayaran Menggunakan Credit Cards (CC)
        • Pembayaran Menggunakan Antares Coins
      • Tata Cara Memperpanjang Layanan Platform
      • Tata Cara Mengganti Layanan Platform
    • Connectivity
      • Cara Menggunakan Layanan Connectivity
      • Tata Cara Pembelian Layanan Connectivity
        • Pembayaran Menggunakan Virtual Account
          • Bank Mandiri
          • Bank Permata
          • Bank BRI
          • Bank BNI
        • Pembayaran Menggunakan e-Wallet (LinkAja)
        • Pembayaran Menggunakan Credit Cards (CC)
        • Pembayaran Menggunakan Antares Coins
      • Tata Cara Memperpanjang Layanan Connectivity
      • Tata Cara Mengganti Layanan Connectivity
    • Antares Coins
      • Tata Cara Pembayaran Top Up Antares Coins
        • Pembayaran Menggunakan Virtual Account
          • Bank Mandiri
          • Bank Permata
          • Bank BRI
          • Bank BNI
        • Pembayaran Menggunakan e-Wallet (LinkAja)
        • Pembayaran Menggunakan Credit Cards (CC)
  • Contoh kode dan library
    • ESP8266 (Wi-Fi)
      • Prasyarat Umum ESP8266 Wi-Fi
      • ESP8266 (Wi-Fi) Protokol HTTP
        • Mengirim Data Sederhana ke Antares dengan Protokol HTTP
        • Mengambil Data Terakhir dari Server Antares dengan Protokol HTTP
        • Project Sederhana ESP8266 HTTP Antares
          • Post Data DHT 11 Secara Periodik
          • Post Data DHT 11 dengan Push Button
          • Post Data DHT 11 dan ditampilkan pada Display OLED
          • Get Data ditampilkan pada Display OLED
          • Post dan Get Data DHT 11 ditampilkan pada Display OLED
          • Mengontrol Relay dan LED Melalui Perintah Get
      • ESP8266 (Wi-Fi) Protokol MQTT
        • Mengirim Data Sederhana ke Antares dengan Protokol MQTT
        • Mengambil Data Terakhir dari Server Antares dengan Protokol MQTT
        • Project Sederhana ESP8266 MQTT Antares
          • Send Data DHT 11 Secara Periodik
          • Send Data DHT 11 dengan Push Button
          • Send Data DHT 11 dan ditampilkan pada Display OLED
          • Retrieve Data ditampilkan pada Display OLED
          • Send Data DHT 11 dan Retrieve Data ditampilkan pada Display OLED
          • Mengontrol Relay dan LED Melalui Perintah Get
    • Arduino Uno
      • Instalasi Arduino IDE
      • Instalasi Library Antares Ethernet Shield
      • Konfigurasi
      • Kirim Data Sederhana ke Antares
    • ESP32 (Wi-Fi)
      • Prasyarat Umum ESP32 Wi-Fi
      • ESP32 (Wi-Fi) Protokol HTTP
        • Mengirim Data Sederhana ke Antares dengan Protokol HTTP
        • Mengambil Data Terakhir dari Server Antares dengan Protokol HTTP
        • Project Sederhana Lynx-32 HTTP Antares
          • Post Data DHT 11 Secara Periodik
          • Post Data DHT 11 dengan Push Button
          • Post Data DHT 11 dan ditampilkan pada Display OLED
          • Get Data ditampilkan pada Display OLED
          • Post dan Get Data DHT 11 ditampilkan pada Display OLED
          • Mengontrol Relay dan LED Melalui Perintah Get
      • ESP32 (Wi-Fi) Protokol MQTT
        • Mengirim Data Sederhana ke Antares dengan Protokol MQTT
        • Mengambil Data Terakhir dari Server Antares dengan Protokol MQTT
        • Project Sederhana Lynx-32 MQTT Antares
          • Send Data DHT 11 Secara Periodik
          • Send Data DHT 11 dengan Push Button
          • Send Data DHT 11 dan ditampilkan pada Display OLED
          • Retrieve Data ditampilkan pada Display OLED
          • Send Data DHT 11 dan Retrieve Data ditampilkan pada Display OLED
          • Mengontrol Relay dan LED Melalui Perintah Retrieve
      • Protokol HTTP & MQTT
    • ESP32 (LoRa)
      • Prasyarat Umum ESP32 LoRa
      • Mengirim Data Sederhana ke Antares
      • Project Sederhana Lynx-32 LoRa Antares
        • Uplink Data DHT11 Secara Periodik
        • Uplink Data DHT11 dengan Push Button
        • Uplink Data DHT11 dan Ditampilkan pada Display Oled
        • Downlink Data Ditampilkan pada Display Oled
        • Uplink Data DHT 11 dan Downlink Data ditampilkan pada Display OLED
        • Mengontrol Relay dan LED melalui perintah Downlink
      • LoRaWAN Class
    • STM32 (LoRa) STM32Cube IDE
      • Prasyarat Umum STM32 (LoRa) STM32Cube IDE
      • Mengirim Data Sederhana ke Antares
    • STM32 (LoRa) Arduino IDE
      • Prasyarat Umum STM32 (LoRa) Arduino IDE
      • Mengirim Data Sederhana ke Antares
    • Raspberry Pi
      • GUI (Graphical User Interface)
        • Prasyarat Umum Raspberry GUI
        • Mengirim Data Menggunakan Node.js
        • Monitoring Suhu dan Kelembaban Menggunakan Sensor DHT11
      • SSH (Secure Shell)
        • Prasyarat Umum Raspberry SSH
        • Mengirim Data Menggunakan Node.js
        • Monitoring Suhu dan Kelembaban Menggunakan Sensor DHT11
    • NB-IoT
      • NB-Lynx-7000
        • Prasyarat Umum NB-Lynx-7000
        • Mengirim Data Sederhana ke Antares
        • Mengambil Data GNSS (Global Navigation Satellite System)
      • NB-Lynx-95
        • Prasyarat Umum NB-Lynx-95
        • Mengirim Data Sederhana ke Antares
    • Android
      • Mengambil data dari ANTARES mengunakan Android
      • Coding Stuff
    • MIT App Inventor
    • Node-RED
    • Postman
    • MQTT | Push data to Device
    • HTTP | Subscribe and Notify Mechanism
    • Library PHP
    • MQTT | Subscribe LoRa Device
    • LoRaWAN | Downlink Tutorial
    • Register Perangkat LoRaWAN
      • Register Menu
    • GPS TrackerID
  • Data Model
  • Port Configuration
  • API | HTTP
    • Device
    • Data of Device
    • Subscriber
  • API | MQTT
    • Device
    • Subscriber
  • Daftar Akronim
  • Software Relevan
Powered by GitBook
On this page
  • Pendahuluan
  • Prasyarat
  • Langkah Kerja
  • 1. Jalankan Aplikasi Arduino IDE
  • 2. Membuka Contoh Program
  • 3. Set LoRaWAN Parameter di Antares
  • 4. Set LoRaWAN Parameter pada Kode Program
  • 5. Compile dan Upload Program
  • 6. Periksa Data di Antares
  1. Contoh kode dan library
  2. ESP32 (LoRa)
  3. Project Sederhana Lynx-32 LoRa Antares

Uplink Data DHT11 Secara Periodik

PreviousProject Sederhana Lynx-32 LoRa AntaresNextUplink Data DHT11 dengan Push Button

Last updated 8 months ago


Pendahuluan

Pada project ini, anda akan menggunakan Shield Workshop Antares pada modul Development Board Lynx-32 Antares. Pada Shield Workshop Antares ini terdapat sensor suhu, kelembapan (DHT11), relay, LED dan push button. Anda akan melakukan monitoring suhu dan kelembapan sesuai periode interval yang ditentukan. Hasil data yang dikirim oleh sensor dapat anda pantau melalui console Antares.

Prasyarat

Material yang dibutuhkan mengikuti dengan Prasyarat Umum pada laman sebelumnya. Jika anda belum menyiapkan kebutuhan pada laman tersebut, maka anda dapat mengunjungi laman berikut.

Adapun tambahan material yang spesifik untuk project ini adalah sebagai berikut.

  1. Shield Workshop Antares

  1. Library DHT11. Pada dokumentasi ini menggunakan DHT11 Sensor Library versi 1.4.4.

Jika anda belum menginstall library DHT11 Sensor Library versi 1.4.4 dapat mengikuti langkah pada link berikut.

DHT11 Sensor Library

Langkah Kerja

1. Jalankan Aplikasi Arduino IDE

2. Membuka Contoh Program

Kode program dapat anda buka pada Arduino IDE melalui File > Examples > Antares LoRaWAN > Lynx32-Simple-Project > Class A > UPLINK_DHT11_CLASS_A.

Berikut adalah kode program dari contoh UPLINK_DHT11_CLASS_A.

#include <lorawan.h>
#include "DHT.h"

#define DHTTYPE  DHT11
#define SENSOR_DHT  14

DHT dht(SENSOR_DHT, DHTTYPE);
//ABP Credentials
/*
  Notes:
  - select ABP Activation on ANTARES
  - select inherit to generate your keys
  - nwkSKey: 32 digit hex, you can put 16 first digits by first 16 digits your access key and add 16 digits with 0 (ex : abcdef01234567890000000000000000)
  - appSKey: 32 digit hex, put 16 first digits by 0 and put last 16 digits by last 16 digit your access key (ex : 0000000000000000abcdef0123456789)
*/
const char *devAddr = "Lora-Device-Address"; // Replace with the Device Address that you have in the Antares console
const char *nwkSKey = "Network-Session-Key"; // Replace with the Network Session Key that you have in the Antares console
const char *appSKey = "Application-Session-Key"; // Replace with the Application Session Key that you have in the Antares console

const unsigned long interval = 60000;    // 60 s interval to send message
unsigned long previousMillis = 0;  // will store last time message sent
unsigned int counter = 0;     // message counter
String dataSend = "";

char myStr[50];
char outStr[255];
byte recvStatus = 0;
int channel;

const sRFM_pins RFM_pins = {
  .CS = 5,    //LYNX32 to RFM NSS
  .RST = 0,   //LYNX32 to RFM RST
  .DIO0 = 27, //LYNX32 to RFM DIO0
  .DIO1 = 2,  //LYNX32 to RFM DIO1
};

// get temperature and humidity from DHT11
float getTemperature()
{
  float t = dht.readTemperature();
  if (isnan(t)) return 0;
  return t;
}

float getHumidity()
{
  float h = dht.readHumidity();
  if (isnan(h)) return 0;
  return h;
}

void setup() {
  // Setup loraid access
  Serial.begin(115200);
  dht.begin();

  delay(2000);
  if (!lora.init()) {
    Serial.println("RFM95 not detected");
    delay(5000);
    return;
  }

  // Set LoRaWAN Class change CLASS_A or CLASS_C
  lora.setDeviceClass(CLASS_A);

  // Set Data Rate
  lora.setDataRate(SF10BW125);

  // set channel to random
  lora.setChannel(MULTI);

  // Set TxPower to 15 dBi (max)
  lora.setTxPower1(15);

  // Put ABP Key and DevAddress here
  lora.setNwkSKey(nwkSKey);
  lora.setAppSKey(appSKey);
  lora.setDevAddr(devAddr);
}

void loop() {
  // Check interval overflow
  if (millis() - previousMillis > interval) {
    previousMillis = millis();

    int t, h;
    t = getTemperature();
    h = getHumidity();
    Serial.println("Temperature : " + (String)t + " C");
    Serial.println("Humidity    : " + (String)h + " %");

    dataSend = "{\"Temp\": " + (String)t + ", \"Humd\": " + (String)h + "}";
    dataSend.toCharArray(myStr, 50);

    Serial.print("Sending : ");
    Serial.println(dataSend);

    lora.sendUplink(myStr, strlen(myStr), 0, 5);
    channel = lora.getChannel();
    Serial.print(F("Ch : "));    Serial.print(channel); Serial.println(" ");
  }

  // Check Lora RX
  lora.update();

  recvStatus = lora.readData(outStr);
  if (recvStatus) {
    int counter = 0;

    for (int i = 0; i < recvStatus; i++)
    {
      if (((outStr[i] >= 32) && (outStr[i] <= 126)) || (outStr[i] == 10) || (outStr[i] == 13))
        counter++;
    }
    if (counter == recvStatus)
    {
      Serial.print(F("Received String : "));
      for (int i = 0; i < recvStatus; i++)
      {
        Serial.print(char(outStr[i]));
      }
    }
    else
    {
      Serial.print(F("Received Hex : "));
      for (int i = 0; i < recvStatus; i++)
      {
        Serial.print(outStr[i], HEX); Serial.print(" ");
      }
    }
    Serial.println();
  }

}

Kode program dapat anda buka pada Arduino IDE melalui File > Examples > Antares LoRaWAN > Lynx32-Simple-Project > Class C > UPLINK_DHT11_CLASS_C.

Berikut adalah kode program dari contoh UPLINK_DHT11_CLASS_C.

#include <lorawan.h>
#include "DHT.h"

#define DHTTYPE  DHT11
#define SENSOR_DHT  14

DHT dht(SENSOR_DHT, DHTTYPE);
//ABP Credentials
/*
  Notes:
  - select ABP Activation on ANTARES
  - select inherit to generate your keys
  - nwkSKey: 32 digit hex, you can put 16 first digits by first 16 digits your access key and add 16 digits with 0 (ex : abcdef01234567890000000000000000)
  - appSKey: 32 digit hex, put 16 first digits by 0 and put last 16 digits by last 16 digit your access key (ex : 0000000000000000abcdef0123456789)
*/
const char *devAddr = "Lora-Device-Address"; // Replace with the Device Address that you have in the Antares console
const char *nwkSKey = "Network-Session-Key"; // Replace with the Network Session Key that you have in the Antares console
const char *appSKey = "Application-Session-Key"; // Replace with the Application Session Key that you have in the Antares console

const unsigned long interval = 60000;    // 60 s interval to send message
unsigned long previousMillis = 0;  // will store last time message sent
unsigned int counter = 0;     // message counter
String dataSend = "";

char myStr[50];
char outStr[255];
byte recvStatus = 0;
int channel;

const sRFM_pins RFM_pins = {
  .CS = 5,    //LYNX32 to RFM NSS
  .RST = 0,   //LYNX32 to RFM RST
  .DIO0 = 27, //LYNX32 to RFM DIO0
  .DIO1 = 2,  //LYNX32 to RFM DIO1
};

// get temperature and humidity from DHT11
float getTemperature()
{
  float t = dht.readTemperature();
  if (isnan(t)) return 0;
  return t;
}

float getHumidity()
{
  float h = dht.readHumidity();
  if (isnan(h)) return 0;
  return h;
}

void setup() {
  // Setup loraid access
  Serial.begin(115200);
  dht.begin();

  delay(2000);
  if (!lora.init()) {
    Serial.println("RFM95 not detected");
    delay(5000);
    return;
  }

  // Set LoRaWAN Class change CLASS_A or CLASS_C
  lora.setDeviceClass(CLASS_C);

  // Set Data Rate
  lora.setDataRate(SF10BW125);

  // set channel to random
  lora.setChannel(MULTI);

  // Set TxPower to 15 dBi (max)
  lora.setTxPower1(15);

  // Put ABP Key and DevAddress here
  lora.setNwkSKey(nwkSKey);
  lora.setAppSKey(appSKey);
  lora.setDevAddr(devAddr);
}

void loop() {
  // Check interval overflow
  if (millis() - previousMillis > interval) {
    previousMillis = millis();

    int t, h;
    t = getTemperature();
    h = getHumidity();
    Serial.println("Temperature : " + (String)t + " C");
    Serial.println("Humidity    : " + (String)h + " %");

    dataSend = "{\"Temp\": " + (String)t + ", \"Humd\": " + (String)h + "}";
    dataSend.toCharArray(myStr, 50);

    Serial.print("Sending : ");
    Serial.println(dataSend);

    lora.sendUplink(myStr, strlen(myStr), 0, 5);
    channel = lora.getChannel();
    Serial.print(F("Ch : "));    Serial.print(channel); Serial.println(" ");
  }

  // Check Lora RX
  lora.update();

  recvStatus = lora.readData(outStr);
  if (recvStatus) {
    int counter = 0;

    for (int i = 0; i < recvStatus; i++)
    {
      if (((outStr[i] >= 32) && (outStr[i] <= 126)) || (outStr[i] == 10) || (outStr[i] == 13))
        counter++;
    }
    if (counter == recvStatus)
    {
      Serial.print(F("Received String : "));
      for (int i = 0; i < recvStatus; i++)
      {
        Serial.print(char(outStr[i]));
      }
    }
    else
    {
      Serial.print(F("Received Hex : "));
      for (int i = 0; i < recvStatus; i++)
      {
        Serial.print(outStr[i], HEX); Serial.print(" ");
      }
    }
    Serial.println();
  }

}

3. Set LoRaWAN Parameter di Antares

Pada halaman Device console Antares lakukan Set LoRa dengan menekan button Set LoRa seperti gambar berikut.

Masukan parameter LoRaWAN dengan Lora Device Class A, Activation Mode ABP, ABP Parameters Inherit seperti pada gambar berikut.

Ketika memilih ABP Parameters Inherit maka parameter LoRa akan digenerate oleh Antares. Dari sisi perangkat, Development Board Lynx32 perlu menyesuaikan parameter LoRa tersebut.

Jangan lupa untuk menyimpan (copy) parameter Network Session Key dan Application Session Key sebelum klik Set LoRa untuk memudahkan proses selanjutnya.

Pastikan akun antares anda memiliki paket LoRa yang aktif.

Masukan parameter LoRaWAN dengan Lora Device Class C, Activation Mode ABP, ABP Parameters Inherit seperti pada gambar berikut.

Ketika memilih ABP Parameters Inherit maka parameter LoRa akan digenerate oleh Antares. Dari sisi perangkat, Development Board Lynx32 perlu menyesuaikan parameter LoRa tersebut.

Jangan lupa untuk menyimpan (copy) parameter Network Session Key dan Application Session Key sebelum klik Set LoRa untuk memudahkan proses selanjutnya.

Pastikan akun antares anda memiliki paket LoRa yang aktif.

4. Set LoRaWAN Parameter pada Kode Program

Ubah parameter LoRaWAN ABP pada variabel berikut *devAddr , *nwkSkey , dan *appSKey. Sesuaikan dengan parameter di console Antares.

const char *devAddr = "Lora-Device-Address";
const char *nwkSKey = "Network-Session-Key";
const char *appSKey = "Application-Session-Key"

Parameter *devAddr yang telah digenerate oleh Antares dapat dilihat pada halaman device setelah selesai Set LoRa.

Parameter *nwkSKey dan *appSKey didapatkan saat Set LoRa pada langkah sebelumnya.

Jika anda lupa menyimpan *nwkSkey dan *appSKey pada langkah sebelumnya maka lihat accesskey pada akun antares anda kemudian ikuti format berikut.

Example Accesskey = "aaaaaaaaaaaaaaaa:bbbbbbbbbbbbbbbb"; //32 digit accesskey

const char *nwkSKey = "aaaaaaaaaaaaaaaa0000000000000000"; //16 digit first accesskey plus 16 digit zero

const char *appSKey = "0000000000000000bbbbbbbbbbbbbbbb"; //16 digit zero plus 16 digit last acesskey

5. Compile dan Upload Program

Hubungkan Development Board Lynx-32 dengan komputer anda dan pastikan Communication Port terbaca.

Pada sistem operasi Windows pengecekan dapat dilakukan melalui Device Manager.

Jika Development Board Lynx-32 anda terbaca maka akan tampil USB-Serial CH340 dengan port menyesuaikan ketersediaan port (pada kasus ini terbaca COM4).

Atur Board Lynx-32 dengan klik Tools > Board > ESP32 Arduino pada Arduino IDE, kemudian pastikan board yang digunakan adalah ESP32 Dev Module. Pilih port sesuai communicaion port yang terbaca (dalam kasus ini COM4). Hasilnya akan terlihat seperti gambar berikut.

Setelah semua setup selesai, lakukan upload program dengan menekan icon panah seperti gambar berikut. Tunggu hingga selesai proses compile dan upload.

Icon Centang pada Arduino IDE hanyalah proses verify. Biasanya digunakan untuk Compile program untuk mengetahui apakah terdapat error atau tidak.

Icon Panah pada Arduino IDE adalah proses verify and upload. Biasanya digunakan untuk Compile program sekaligus Flash program kedalam target board.

Jika upload program berhasil maka akan terlihat seperti gambar berikut.

Setelah selesai upload program, anda dapat melihat serial monitor untuk melakukan debug program. Icon serial monitor terlihat seperti pada gambar berikut.

Atur serial baud rate menjadi 115200 dan pilih BothNL & CR. Hasilnya akan terlihat seperti gambar berikut.

Pastikan serial baud rate sesuai dengan nilai yang terdefinisi di kode program. Jika serial baud rate tidak sama, antara kode program dan serial monitor maka karakter ASCII tidak akan terbaca dengan baik.

6. Periksa Data di Antares

Setelah upload program berhasil, selanjutnya buka halaman device antares kemudian lihat apakah data lora sudah berhasil dikirim.

Bentuk data yang diterima oleh antares akan berbentuk JSON seperti format berikut.

Data yang dikirimkan dari Development Board Lynx-32 berupa "counter", "port", dan pesan yang berada didalam JSON field "data". Hasil pemantauan suhu DHT11 berada di dalam JSON field "data" yang didalamnya terdapat field "Temp" dan "Humd". Sementara parameter lainnya adalah parameter pendukung yang dihasilkan oleh Infrastruktur LoRaWAN Antares.

Prasyarat Umum ESP32 LoRa
Gambar Ilustrasi Project
Gambar Development Board Lynx-32 beserta Shield Workshop Antares.
Gambar Halaman Console Antares untuk Set LoRa.
Gambar Form berisi Parameter Set LoRa Class A.
Gambar Form berisi Parameter Set LoRa Class C.
Gambar Halaman Console Antares Setelah berhasil Set LoRa.
Gambar Device Manager pada Windows.
Gambar Menu Tools pada Arduino IDE.
Gambar Icon Verify and Upload pada Arduino IDE.
Gambar Halaman Arduino IDE Setelah Upload berhasil.
Gambar Icon Serial Monitor pada Arduino IDE.
Gambar Serial Monitor.
Gambar Halaman Console Antares Ketika Data LoRa Berhasil Diterima.