Anda di halaman 1dari 33

MODUL WORKSHOP IOT LORA

1
Hardware

Kelengkapan Workshop :
1. IoT Lora Device Module
2. Arduino Uno
3. Sensor-sensor
4. Kabel Jumper
5. Kabel data

Gambar 1. Lora Module

2
Lora Module

Lora module adalah sebuah development module dan


dikembangkan khusus untuk melakukan aplikasi dan solusi
Internet of Things. Jenis ini sangat cocok digunakan untuk
pembelajaran dan hobby project Internet Of Things. Lora
module ini dapat digabungkan dengan arduino uno atau raspi
untuk membantu memberikan konektifitas pada micro tersebut.

Modul DHT11

Gambar 2. Modul Sensor Kelembapan dan Temperature DHT11

DHT11 merupakan sensor kelembapan dan temperature yang


memliki spesifikasi seperti berikut :

• Ultra low cost


• 3 to 5V power and I/O
• 2.5mA max current use during conversion
o Good for 20-80% humidity readings with 5%
accuracy Good for 0-50°C temperature readings
±2°C accuracy No more than 1 Hz sampling rate
(once every second) Body size 15.5mm x 12mm
x 5.5mm
• 4 pins with 0.1" spacing

3
Modul Photosensitive Light LDR

Gambar 3. Modul LDR

Modul ini merupakan modul sensor cahaya berbasis LDR yang


memiliki keluaran analog dan juga digital dengan nilai treshlod
yang dapat diatur. Keluaran analognya memiliki nilai tegangan
output yang proporsional dengan input cahaya. Keluaran
digitalnya merupakan keluaran komparator yang akan
menghasilkan nilai 0 atau 1 sesuai dengan nilai tegangan
treshold yang dapat diatur menggunakan potensiometer yang
tersedia.

Software

Perangkat lunak (Software) yang dibutuhkan :


1. Arduino IDE
2. Library Antares Lora
3. Library Pendukung (DHT)
4. Library Antares

4
Install Arduino IDE

Arduino IDE digunakan untuk membuat/menuliskan sebuah program yang selanjutnya


akan di-compile dan di-flash ke sebuah chip microcontroller contohnya Arduino
(atmega, atxmega, dll), WEMOS (esp8266, esp32), dan lain-lain. Untuk melakukan
instalasi software Arduino IDE, langkah-langkahnya sebagai berikut :
1. Download software di Arduino.cc

Gambar 4. Arduino Installation Step (1)

2. Pilih Menu Software

Gambar 5. Arduino Installation Step (2)

5
3. Pilih system operasi yang sesuai

Gambar 6. Arduino Installation Step (3)

4. Pilih direktori penyimpanan

Gambar 7. Arduino Installation Step (4)

6
5. Seletah download selesai, Lakukan instalasi dan pilih I agree

Gambar 8. Arduino Installation Step (5)

6. Ceklis semua pilihan, lalu Next

Gambar 9. Arduino Installation Step (6)

7
7. Pilih destinasi penyimpanan

Gambar 10. Arduino Installation Step (7)

8. Tunggu hingga selesai instalasi

Gambar 11. Arduino Installation Step (8)

8
9. Pilih Install apabila muncul kotak dialog seperti gambar dibawah.

Gambar 12. Arduino Installation Step (9)

Arduino IDE telah terinstall dan siap untuk digunakan untuk membuat project.

9
Install Library Pendukung

Library pendukung ini digunakan untuk mempermudah dalam membuat sebuah


program. Di dalam library tersebut terdapat beberapa fungsi yang dapat digunakan
untuk melakukan akses terhadap hardware atau software tertentu. Untuk
menambahkan library pendukung ke Arduino IDE, dapat dilakukan dengan cara :

1. Pilih Sketch -> Include Library -> Manage Librares, Atau dapat pilih Add .ZIP
Library apabila library sudah ada dalam computer

Gambar 13. Extra Library Installation Step (1)

2. Cari library yang akan di install


3. Ketikkan DHT di kolom search
4. Pilih versi 1.2.2 atau 1.2.3 pada kolom version

Gambar 14. Extra Library Installation Step (2)

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

Gambar 15. Library Antares Lora

3. Pilih file arduino>>libraries>> dan paste pada folder libraries

Gambar 16. Paste Pada file Library

11
3. Mendapatkan AccessKey, Login di console.antares.id -> Account

Gambar 17. Step (3) Send Data to Antares

4. Membuat Application/Project

Gambar 18. Step (4) Send Data to Antares

12
5. Membuat Device

Gambar 19. Step (5a) Send Data to Antares

Gambar 20. Step (5b) Send Data to Antares

13
6. Konfigurasi Set Device

Gambar 21. Step (6b) Send Data to Antares

(Pilih class A untuk uplink dan B untuk downlink)

Gambar 22. Step (7b) Send Data to Antares

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

Gambar 23. Jendela Editor Arduino IDE

d. Setelah menuliskan baris program, langkah selanjutnya save program dan pilih
icon ( ) untuk meng-kompilasi program. Setelah selesai mengkompilasi akan
muncul pesan selesai kompilasi.

2. Arduino Test Program


Untuk menguji Uno 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
Jika berhasil maka lampu LED built-in pada uno akan berkedip dengan periode 2 detik.

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:

#define Relay1 5 // menambahkan definisi untuk Relay1 sebagai port D5


#define Relay2 6 // definisi untuk Relay2 sebagai port D6

// 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);
}

// the loop function runs over and over again forever


void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(Relay1, HIGH); // Relay1
digitalWrite(Relay2, LOW); // Relay2
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
digitalWrite(Relay1, LOW); // Relay1
digitalWrite(Relay2, HIGH); // Relay2
delay(1000); // wait for a second
}

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"

#define DHTTYPE DHT11


#define SENSOR_DHT 3
#define LEDPIN 13
#define RELAY 5

DHT dht(SENSOR_DHT, DHTTYPE);

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);
}

Gambar 24. Jendela Serial Monitor Arduino IDE

19
2. Mengirim Data Ke Antares
(Uplink)
1. Buka source example di File -> Examples -> LoraID -> Lora Send Class A

Gambar 25. Step (1) Send Data to Lora Antares

20
2. Rubah AccessKey dan set device sesuai dengan user account Antares.

Gambar 26. Step (2) Send Data to Antares

(Downlink)

1. Buka source example di File -> Examples -> LoraID -> Lora Send Class C

Gambar 27. Step (1) Send Data to Antares

21
2. Rubah AccessKey dan set device sesuai dengan user account Antares.

Gambar 28. Step (2) Send Data to Antares

Gambar 29. Step (2) Send Data to Antares

22
Hardware Test Program

Relay Test

#define RELAY1 5

#define RELAY2 6

// the setup function runs once when you press reset or power

the board void setup() {

// initialize digital pin as an output.

pinMode(LED_BUILTIN, OUTPUT);

pinMode(RELAY1, OUTPUT);

pinMode(RELAY2, OUTPUT);

// the loop function runs over and over again

void loop() {

digitalWrite(RELAY1, LOW); // turn the RELAY1 on (HIGH is the voltage level)

digitalWrite(RELAY2, HIGH); // turn the RELAY2 on (HIGH is the voltage level)

digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)

delay(3000); // wait for a second

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 DHTTYPE DHT11

#define SENSOR_DHT 1

#define LEDPIN 2

#define RELAY 5

DHT dht(SENSOR_DHT, DHTTYPE);

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();

Serial.println("Test Hardware Workshop IoT ...");

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);

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()

unsigned int AnalogValue;

AnalogValue = analogRead(A0);

Serial.println(AnalogValue);

27
Pengiriman Data ke Antares

#include <loraid.h>

long interval = 10000; // 10 s interval to send message


long previousMillis = 0; // will store last time message sent
unsigned int counter = 0; // message counter

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("access-key ");
lora.setDeviceId("dev addr lora ");
}

void loop() {
// put your main code here, to run repeatedly:
char myStr[50];
char outStr[255];
int recvStatus = 0;

unsigned long currentMillis = millis();

28
// Check interval overflow
if(currentMillis - previousMillis > interval) {
previousMillis = currentMillis;

sprintf(myStr, "Test 5", counter);

lora.sendToAntares((unsigned char *)myStr, strlen(myStr), 0);


}

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

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("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;

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>

long interval = 10000; // 10 s interval to send message


long previousMillis = 0; // will store last time message sent
unsigned int counter = 0; // message counter

void setup() {
// Setup loraid access
lora.init();

// Set LoRaWAN Class


lora.setDeviceClass(CLASS_C);

// Set Data Rate


lora.setDataRate(2);

// Put Antares Key and DevAddress here


lora.setAccessKey("1d46f89ce26207ce:5c1872db4e7cc9e4");
lora.setDeviceId("0a750619");
pinMode(3, OUTPUT);
}

void loop() {
// put your main code here, to run repeatedly:
char myStr[50];
char outStr[255];
int recvStatus = 0;

unsigned long currentMillis = millis();

// Check interval overflow


if(currentMillis - previousMillis > interval) {
previousMillis = currentMillis;

sprintf(myStr, "Ini data LoRa ke-%d", counter);


lora.sendToAntares((unsigned char *)myStr, strlen(myStr), 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

Anda mungkin juga menyukai