1
Hardware
Kelengkapan Workshop :
1. IoT Lora Device Module
2. Arduino Uno
3. Sensor-sensor
4. Kabel Jumper
5. Kabel data
2
Lora Module
Modul DHT11
3
Modul Photosensitive Light LDR
Software
4
Install Arduino IDE
5
3. Pilih system operasi yang sesuai
6
5. Seletah download selesai, Lakukan instalasi dan pilih I agree
7
7. Pilih destinasi penyimpanan
8
9. Pilih Install apabila muncul kotak dialog seperti gambar dibawah.
Arduino IDE telah terinstall dan siap untuk digunakan untuk membuat project.
9
Install Library Pendukung
1. Pilih Sketch -> Include Library -> Manage Librares, Atau dapat pilih Add .ZIP
Library apabila library sudah ada dalam computer
10
Install Library Antares
1. Masuk dan download pada link berikut :
https://drive.google.com/drive/folders/1S39jouML6U0zTTEz5ivAvcx8FhxQi_Dd?u
sp=sharing
2. Setelah itu ekstrak dan copy file library
11
3. Mendapatkan AccessKey, Login di console.antares.id -> Account
4. Membuat Application/Project
12
5. Membuat Device
13
6. Konfigurasi Set Device
14
Membuat Program Sederhana
Untuk membuat program langkah-langkah yang dilakukan yaitu :
a. Buka aplikasi Arduino IDE
b. Pilih File -> New
c. Jendela editor akan terbuka
d. Setelah menuliskan baris program, langkah selanjutnya save program dan pilih
icon ( ) untuk meng-kompilasi program. Setelah selesai mengkompilasi akan
muncul pesan selesai kompilasi.
15
3. Digital Output
Untuk menguji fungsi Digital Output pada hardware kita dapat menggunakan program
Blink di atas dengan melakukan modifikasi dengan menambahkan baris program
sehingga menjadi seperti berikut:
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
pinMode(Relay1, OUTPUT);
pinMode(Relay2, OUTPUT);
}
Jika berhasil maka lampu LED built-in pada uno akan berkedip dengan periode 2 detik.
16
4. Komunikasi Serial dan input ADC
Untuk menguji komunikasi antara UNO dengan PC yang kita gunakan, ikuti langkah
berikut:
a. buka menu File -> Examples -> Basic - > Blink
b. klik icon ( ) untuk meng-kompilasi program
c. Klik icon untuk melakukan uploading program ke Arduino
d. Klik icon di pojok kanan atas untuk menampilkan Serial Monitor
Jika berhasil maka akan muncul layar Serial Monitor yang dapat menunjukkan
pengiriman data melalui komunikasi serial dari UNO ke PC. Data yang dikirim berupa
hasil pembacaan ADC melalui port Analog pin A0.
17
5. Pengukuran Temperatur dan Kelembaban menggunakan sensorDHT11
#include "DHT.h"
void relayOn()
{
digitalWrite(RELAY,HIGH);
}
void relayOff()
{
digitalWrite(RELAY,LOW);
}
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() {
Serial.begin(115200);
pinMode(LEDPIN,OUTPUT);
pinMode(RELAY,OUTPUT);
dht.begin();
Serial.println("Test Hardware Workshop Antares ...");
}
void loop() {
Serial.println("==================TESTING=================");
Serial.println("Temperature : " + (String)getTemperature()+" *C");
Serial.println("Humidity : " + (String)getHumidity()+" %");
delay(1000);
Serial.println("LED : ON");
digitalWrite(LEDPIN,LOW);
delay(1000);
Serial.println("LED : OFF");
digitalWrite(LEDPIN,HIGH);
18
delay(1000);
Serial.println("RELAY : ON");
relayOn();
delay(1000);
Serial.println("RELAY : OFF\n");
relayOff();
delay(2000);
}
19
2. Mengirim Data Ke Antares
(Uplink)
1. Buka source example di File -> Examples -> LoraID -> Lora Send Class A
20
2. Rubah AccessKey dan set device sesuai dengan user account Antares.
(Downlink)
1. Buka source example di File -> Examples -> LoraID -> Lora Send Class C
21
2. Rubah AccessKey dan set device sesuai dengan user account Antares.
22
Hardware Test Program
Relay Test
#define RELAY1 5
#define RELAY2 6
// the setup function runs once when you press reset or power
pinMode(LED_BUILTIN, OUTPUT);
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
void loop() {
digitalWrite(RELAY1, HIGH); // turn the RELAY1 off by making the voltage LOW
digitalWrite(RELAY2, LOW); // turn the RELAY2 off by making the voltage LOW
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000);
23
Function Test
#include "DHT.h"
#define SENSOR_DHT 1
#define LEDPIN 2
#define RELAY 5
void relayOn() {
digitalWrite(RELAY,HIGH);
void relayOff(){
digitalWrite(RELAY,LOW);
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;
24
void setup() {
Serial.begin(115200);
pinMode(LEDPIN,OUTPUT);
pinMode(RELAY,OUTPUT);
dht.begin();
void loop() {
Serial.println("==================TESTING=================");
delay(1000);
Serial.println("LED : ON");
digitalWrite(LEDPIN,LOW);
delay(1000);
Serial.println("LED : OFF");
digitalWrite(LEDPIN,HIGH);
delay(1000);
Serial.println("RELAY : ON");
relayOn();
delay(1000);
Serial.println("RELAY : OFF\n");
relayOff();
delay(2000);
25
Gambar 32. Jendela Serial Monitor Arduino IDE
26
LDR Code
void setup()
Serial.begin(9600);
void loop()
AnalogValue = analogRead(A0);
Serial.println(AnalogValue);
27
Pengiriman Data ke Antares
#include <loraid.h>
void setup() {
// Setup loraid access
lora.init();
void loop() {
// put your main code here, to run repeatedly:
char myStr[50];
char outStr[255];
int recvStatus = 0;
28
// Check interval overflow
if(currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
recvStatus = lora.readData(outStr);
if(recvStatus) {
Serial.println(outStr);
}
// Check Lora RX
lora.update();
}
29
Mengirimkan pembacaan sensor DHT
#include <loraid.h>
#include "DHT.h"
#define DHTPIN 3
#define DHTTYPE DHT11
void setup() {
// Setup loraid access
lora.init();
// Set LoRaWAN Class
lora.setDeviceClass(CLASS_A);
// Set Data Rate
lora.setDataRate(2);
void loop() {
char myStr[50];
char outStr[255];
int recvStatus = 0;
unsigned long currentMillis = millis();
30
String dataKirim = "temp:"+String(t)+"Hum:"+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();
}
31
#include <loraid.h>
void setup() {
// Setup loraid access
lora.init();
void loop() {
// put your main code here, to run repeatedly:
char myStr[50];
char outStr[255];
int recvStatus = 0;
recvStatus = lora.readData(outStr);
if(recvStatus) {
Serial.println(outStr);
32
Serial.println(recvStatus);
Serial.print("datadownlink");
if(outStr[0]=='A'){
digitalWrite(3, HIGH); // turn the LED on (HIGH is the voltage level)
Serial.print("led on");
delay(5000);
}
else{
digitalWrite(3, LOW); // turn the LED on (HIGH is the voltage level)
Serial.print("led off");
delay(5000);
}
}
// Check Lora RX
lora.update();
}
33