Anda di halaman 1dari 76

PERANCANGAN SISTEM PENGAMAT KONDISI LINGKUNGAN

TANAMAN UNTUK SMART AGRICULTURE DENGAN FITUR


HEMAT DAYA DAN TEKNOLOGI LORAWAN
PT. HARTONO ISTANA TEKNOLOGI
KUDUS

LAPORAN KERJA PRAKTIK

Disusun oleh:
Fadli Asyhari
15/384930/TK/43592
Nanda Adi Setyadharma
15/381183/TK/43361
Kevin Ardesagara
15/384943/TK/43605

PROGRAM STUDI TEKNIK ELEKTRO


DEPARTEMEN TEKNIK ELEKTRO DAN TEKNOLOGI INFORMASI
FAKULTAS TEKNIK UNIVERSITAS GADJAH MADA
YOGYAKARTA
2019
HALAMAN PENGESAHAN

PERANCANGAN SISTEM PENGAMAT KONDISI LINGKUNGAN


TANAMAN UNTUK SMART AGRICULTURE DENGAN FITUR
HEMAT DAYA DAN TEKNOLOGI LORAWAN

LAPORAN KERJA PRAKTIK

Diajukan Sebagai Salah Satu Syarat untuk Memperoleh


Gelar Sarjana Teknik Program S-1
Pada Departemen Teknik Elektro dan Teknologi Informasi Fakultas Teknik
Universitas Gadjah Mada

Disusun oleh:
Fadli Asyhari
15/384930/TK/43592
Nanda Adi Setyadharma
15/381183/TK/43361
Kevin Ardesagara
15/384943/TK/43605

Telah disetujui dan disahkan


pada tanggal 30 April 2019

Dosen Pembimbing Kerja Praktik

Anugerah Galang Persada, S.T., M.Eng.


NIP : 111 1987 01 2016 07101

ii
KATA PENGANTAR

Pertama-tama, saya ingin mengucapkan puji syukur ke hadirat Tuhan Yang Maha
Esa, yang selalu menjaga saya sepanjang hidup saya, termasuk studi saya dan terutama
dalam menyelesaikan laporan Kerja Praktik dengan lancar.

Laporan ini saya susun sebagai pertanggungjawaban dari Kerja Praktik yang telah
saya laksanakan di PT. Hartono Istana Teknologi (Polytron) pada tanggal 2 Januari– 1
Februari 2019. Kami berharap laporan ini dapat menjadi referensi yang baik dan dapat
bermanfaat bagi pembaca ke depannya.

Dalam menyelesaikan tesis ini, saya mendapat banyak bantuan dan dukungan dari
beberapa orang dari universitas dan dari Polytron. Saya sangat bersyukur bahwa orang-
orang ini telah datang dan membantu saya selama masa belajar saya. Individu-individu
ini adalah:

1. Bapak Sarjiya, S.T., M.T., Ph.D. selaku Ketua Departemen Teknik Elektro
dan Teknologi Informasi Fakultas Teknik Universitas Gadjah Mada.
2. Bapak Dr. I Wayan Mustika, S.T., M.Eng yang telah merekomendasikan
kami sehingga dapat melaksanakan kerja praktik di P.T HIT.
3. Bapak Anugerah Galang Persada, S.T., M.Eng. selaku Dosen Pembimbing
kerja praktik.
4. Orang tua yang selalu mendukung kami.
5. Bpk M. Shohib selaku pembimbing kami selama pelaksanaan kerja praktik
di PT Hartono Istana Teknologi.
6. Bapak Agung, Bapak Ricky, Bapak Erik, dan Ibu Ane selaku tim RND di
PT. HIT yang selalu memantau dan membantu kami saat pelaksanaan kerja
praktik
7. Seluruh Staff PT. HIT yang telah membantu kami.
8. Serta rekan-rekan yang membantu dan ikut serta selama pelaksanaan kerja
praktik

Seperti kata pepatah, “Quandoque bonus dormitat Homerus” yang berarti bahwa
orang yang paling bijak pun membuat kesalahan. Kritik dan saran yang sangat

iii
membangun dari pembaca masih kami harapkan dan semoga laporan kerja praktik ini
dapat memberikan manfaat bagi pembaca.

Yogyakarta, 25 April 2019

Penulis

iv
DAFTAR ISI

COVER…………………………………………………………………………………..i
HALAMAN PENGESAHAN ..........................................................................................ii

KATA PENGANTAR .................................................................................................... iii

DAFTAR ISI .................................................................................................................... v

DAFTAR GAMBAR.................................................................................................... viii

DAFTAR TABEL ........................................................................................................... ix

DAFTAR SINGKATAN .................................................................................................. x

BAB I PENDAHULUAN ................................................................................................ 1

1.1 Latar Belakang Kerja Praktik ................................................................................. 1

1.2 Tujuan Kerja Praktik ............................................................................................... 1

1.3 Manfaat Kerja Praktik ............................................................................................. 2

1.4 Lokasi Kerja Praktik ............................................................................................... 3

1.5 Waktu Pelaksanaan Kerja Praktik........................................................................... 3

1.6 Metodologi Pelaksanaan ......................................................................................... 3

1.7 Sistematika Penulisan ............................................................................................. 3

BAB II PROFIL PERUSAHAAN.................................................................................... 5

2.1 Sejarah Perusahaan ................................................................................................. 5

2.2 Pencapaian Polytron ............................................................................................... 6

2.3 Visi .......................................................................................................................... 7

2.4 Misi ......................................................................................................................... 7

2.5 Lokasi Perusahaan .................................................................................................. 7

BAB III DASAR TEORI................................................................................................ 10

3.1 Microcontroller Arduino ....................................................................................... 10

3.2 Arduino IDE ......................................................................................................... 10

3.3 Atmel SAM D21 (ATSAM D21) ......................................................................... 11

v
3.3.1 Fitur Atmel SAM D21 ................................................................................... 12

3.4 Real-Time Clock (RTC......................................................................................... 13

3.5 Watchdog Timer (WDT) ...................................................................................... 14

3.6 Kadar Air .............................................................................................................. 14

3.7 Suhu ...................................................................................................................... 15

3.8 Horticulture Lighting Metrics ............................................................................... 16

3.8.1 Lumens ........................................................................................................... 16

3.8.2 PAR ................................................................................................................ 17

3.8.3 PPF ................................................................................................................. 17

3.8.4 PPFD .............................................................................................................. 18

3.8.5 Photon Efficacy .............................................................................................. 18

3.9 Protocol Komunikasi SDI-12................................................................................ 18

3.10 Sensor 5 TM........................................................................................................ 19

3.11 Apogee Quantum Sensor .................................................................................... 21

3.12 ADS1115 ............................................................................................................ 22

3.13 LoRa.................................................................................................................... 23

3.14 LoRaWAN .......................................................................................................... 23

3.14.1 Topologi ....................................................................................................... 24

3.14.2 Tipe device LoRaWAN................................................................................ 24

3.15 OTAA dan ABP sebagai Metode Pengiriman Data............................................ 26

3.16 Dragino LoRa Shield .......................................................................................... 27

BAB IV ANALISIS ....................................................................................................... 28

4.1 Pendahuluan Analisis ............................................................................................ 28

4.2 Setup RTC pada ATSAMD21 .............................................................................. 28

4.3 Pemanfaatan fitur Watchdog Timer (WDT) ......................................................... 33

4.4 Smart System low power ATSMD21 ................................................................... 36

4.5 Hasil Pengukuran Sensor 5TM ............................................................................. 41

vi
4.6 Sensor PAR ........................................................................................................... 45

4.7 Pemilihan Metode OTAA atau ABP .................................................................... 50

4.8 Pengiriman Data dengan Protokol LoRaWan ....................................................... 51

BAB V PENUTUPAN ................................................................................................... 57

5.1 Hasil Kerja Praktik................................................................................................ 57

5.2 Kesimpulan ........................................................................................................... 57

REFERENSI ................................................................................................................... 58

LAMPIRAN ................................................................................................................... 59

vii
DAFTAR GAMBAR

Gambar 2.1 Lokasi Polytron di Desa Krapyak, Kudus .................................................... 8


Gambar 2.2 Lokasi Pabrik Speaker Polytron di Sidorekso, Kudus .................................. 8
Gambar 2.3 Lokasi Produksi Kulkas dan Mesin Cuci Polytron di Sayung, Demak ........ 9
Gambar 3.1 Kurva respons cahaya fotosintesis .............................................................. 17
Gambar 3.2 SDI-12 Bus ................................................................................................. 19
Gambar 3.3 Full spectrum quantum sensor dan original quantum sensor ..................... 22
Gambar 3.4 Spektrum full spectrum quantum sensor dan original quantum sensor ...... 22
Gambar 3.5 ADS1115 board .......................................................................................... 23
Gambar 3.6 Arsitektur lorawan ...................................................................................... 24
Gambar 3.7 Skema komunikasi loRawan class A .......................................................... 25
Gambar 3.8 Skema komunikasi loRawan class B .......................................................... 26
Gambar 3.9 Skema komunikasi loRawan class C .......................................................... 26
Gambar 4.1 Gambar hasil simulasi RTC........................................................................ 32
Gambar 4.2 Gambar Hasil Simulasi Alarm.................................................................... 33
Gambar 4.3 Gambar Simulasi WDT .............................................................................. 35
Gambar 4.4 Percobaan 1 pada media tanah bertekstur tanpa kerikil ............................. 43
Gambar 4.5 Percobaan 2 pada media tanah bertekstur dengan kerikil........................... 43
Gambar 4.6 Percobaan 3 dengan media air .................................................................... 44
Gambar 4.7 Percobaan 4 dengan media udara ............................................................... 44
Gambar 4.8 Kode warna wiring dari sensor PAR .......................................................... 45
Gambar 4.9 modul ADS1115 ......................................................................................... 46
Gambar 4.10 Skema pin modul ADS1115 ..................................................................... 46
Gambar 4.11 Sekama addressing pada ADS1115 .......................................................... 47
Gambar 4.12 Rangkaian SQ-110, ADS1115 dan Arduino............................................. 48
Gambar 4.13 Serial monitor dari program sensor PAR ................................................. 50
Gambar 4.14 Halaman muka The Things Network........................................................ 52
Gambar 4.15 Tampilan Add Application ....................................................................... 52
Gambar 4.16 Tampilan pada Application ...................................................................... 53
Gambar 4.17 Tampilan Add Device ............................................................................... 53
Gambar 4.18 Regulasi frekuensi AS920-923 ................................................................. 56

viii
DAFTAR TABEL

Tabel 2.1 Pencapaian Polytron ......................................................................................... 6


Tabel 3.1 Fitur dan Spesifikasi Atmel SAM D21 .......................................................... 12
Tabel 3.2 Konfigurasi SDI Serial ................................................................................... 19
Tabel 3.3 Spesifikasi pengukuran................................................................................... 20
Tabel 3.4 Spesifikasi Komunikasi .................................................................................. 21
Tabel 3.5 Spesifikasi Fisik ............................................................................................. 21
Tabel 4.1 Tabel Hasil Pengukuran Daya(watt) dengan PSU5V DC .............................. 39
Tabel 4.2 Tabel Hasil Pengukuran Daya(watt) dengan Baterai 3.47V .......................... 40

ix
DAFTAR SINGKATAN

A
ABP Activation by Personalization
ACK acknowledments
ADR adaptive data rate
AppEUI Application Extended Unique Identifier
AppKey Application Key
AppSKey Application Session Key
C
CFList Channel Frequency List
CPU Central Processing Unit
D
DDI Distributed Data Interface
DC Direct Current
DevEUI Device Extended Unique Identifier
F
FSK frequency shifting keying
I
IDE Integrated Development Environment
IoT Internet of Things
I/O Input dan Output
I2C Inter Integrated Circuit
L
LED Light Emiting Diode
LSB Least Significant Bit
N
NwkSKey Network Session Key
O
OTAA Over the Air Activation
P
PAR photosynthetic photon flux
PC Personal Computer

x
PPF photosynthetic photon flux
PPFD photosynthetic photon flux density
R
RTC Real Time Clock
RxDelay Receive Delay
R&D Research and Development
S
SDI-12 Serial Data Interface 1200 baud
SPI Serial Pheriperal Interface
SWD Serial Wire Debug
T
TTC Time Counters for Control
U
USB Universal Serial Bus
V
VWC Volumetric Water Content

xi
BAB I
PENDAHULUAN

1.1 Latar Belakang Kerja Praktik


Mahasiswa diharapkan dapat memiliki kemampuan teoritis dan aplikatif untuk
menghadapi dunia kerja setelah lulus dari perkuliahan. Kemampuan teoritis atau
pengetahuan konseptual diperoleh melalui perkuliahan di universitas yang wajib dikuasai
sebagai dasar pemikiran. Sementara pengetahuan yang bersifat aplikatif diperoleh
melalui praktikum di laboratorium, dan kegiatan kerja praktik di industri.
Perkembangan teknologi di dunia industri semakin berkembang pesat terutama
pada bidang industri elektronik. Kondisi ini menuntut mahasiswa untuk terus mengasah
kemampuan dan menambah pengetahuan baru. Salah satu program yang dapat
mendukung hal ini adalah kerja praktik. Dengan kerja praktik, mahasiswa dapat melihat,
mengamati, dan menerapkan secara langsung aplikasi dari teori yang didapatkan dari
bangku perkuliahan. Selain itu mahasiswa juga dapat mengetahui sejauh mana teori yang
telah didapatkan dan yang akan dibutuhkan untuk mengejar perkembangan dunia industri
terutama industri elektronik. Dalam pelaksanaanya, perlu dijalin hubungan baik antara
perguruan tinggi dengan dunia industri agara tercapai sinergi bersama.
Departemen Teknik Elektro dan Teknologi Informasi, Fakultas Teknik,
Universitas Gadjah Mada mewajibkan setiap mahasiswa melakukan kerja praktik guna
mengaplikasikan ilmu dan teknologi elektro sesuai studi konsentrasi, salah satunya pada
bidang Teknik Komputer. Kerja praktik ini juga merupakan syarat kelulusan dan
mempunyai nilai SKS.
Salah satu tempat yang ideal bagi mahasiswa DTETI untuk melakukan KP adalah
di PT. Hartono Istana Teknologi yang berada di Kudus Jawa Tengah. Yang merupakan
perusahan elektronik yang ada di Indonesia

1.2 Tujuan Kerja Praktik


Tujuan dilaksanakannya kegiatan Kerja Praktik adalah:
1. Memberikan pengalaman kerja kepada mahasiswa untuk dapat menerapkan
ilmu teori yang telah dipelajari sehingga dapat digunakan untuk menganalisis
permasalahan yang ada.

1
2. Memenuhi beban SKS (Satuan Kredit Semester) yang wajib ditempuh sebagai
persyaratan akademis di Departemen Teknik Elektro dan Teknologi Informasi
FT UGM.
2. Mengenali dan memahami permasalahan-permasalahan yang terjadi dalam
industri teknologi/pengembang teknologi.
3. Meningkatkan kesiapan mental mahasiswa guna memasuki dunia pekerjaan.

1.3 Manfaat Kerja Praktik


Dengan melaksanakan kerja praktik ini, terdapat beberapa manfaat yang dapat
diperoleh oleh berbagai pihak yaitu:
1. Bagi Mahasiswa
a. Memperoleh wawasan pengetahuan terkait permasalahan dan objek
penelitian yang dikaji PT. Hartono Istana Teknologi.
b. Dapat mengaplikasikan teori yang telah dipelajari pada bangku kuliah serta
menerapkannya dalam bentuk analisis suatu masalah.
c. Meningkatkan kemampuan analitis setiap mahasiswa agar lebih kritis dalam
menanggapi suatu permasalahan riil.
d. Mendapat gambaran tentang dunia pekerjaan guna mempersiapkan diri
untuk terjun ke dalam dunia pekerjaan.
2. Bagi Perguruan Tinggi
a. Menjalin hubungan kerja sama yang baik antara perguruan tinggi dengan
industri yang bergerak dalam penerapan ilmu teknik.
b. Mendapat bahan evaluasi untuk meningkatkan mutu dan kualitas lulusan
departemen dalam menekuni karier di bidang yang terkait.
c. Membuka jalur bagi mahasiswa lain untuk dapat melaksanakan kegiatan
akademik secara nyata di PT. Hartono Istana Teknologi di kemudian hari.
3. Bagi Perusahaan
a. Menjalin hubungan baik antara industri dengan instansi perguruan tinggi,
dalam hal ini PT. Hartono Istana Teknologi dengan Universitas Gadjah
Mada.
b. Memberdayakan mahasiswa untuk membantu menyelesaikan permasalahan
yang terjadi di perusahaan sesuai dengan minat dan bidang studi
mahasiswa.

2
c. Meningkatkan inovasi dalam penerapan teknologi di PT. Hartono Istana
Teknologi melalui sumbangan ide-ide dari peserta kerja praktik.
d. Mendapatkan bantuan tenaga serta kritik maupun saran dari mahasiswa
yang akan melakukan kerja praktik.

1.4 Lokasi Kerja Praktik


Kerja praktik ini dilaksanakan di Kantor Pusat PT. Hartono Istana Teknologi, Jl.
KHR Asnawi, Gendang Sewu, Bakalankrapyak, Kaliwungu, Kabupaten Kudus, Jawa
Tengah.

1.5 Waktu Pelaksanaan Kerja Praktik


Kerja praktik pada PT. Hartono Istana Teknologi dilaksanakan terhitung mulai
tanggal 2 Januari 2019 hingga 1 Februari 2019, mengikuti jam kerja pegawai yaitu dari
pukul 08.00 hingga pukul 17.00 setiap harinya dengan jadwal hari Senin – Jumat tiap
minggunya.

1.6 Metodologi Pelaksanaan


Pada pertemuan pertama dengan tim R&D perusahaan, dilakukan pembahasan
dan pembagian tugas yang masuk dalam proyek perusahaan yang dapat dikerjakan oleh
para perserta kerja praktik, mengenal dan beradaptasi terhadap kultur kerja yang berlaku
di perusahaan, serta melakukan diskusi terkait masukan dari mahasiswa mengenai proyek
yang hendak dikerjakan. Tugas-tugas proyek yang dirancang tersebut kemudian
didistribusikan kepada peserta kerja praktik dengan membagi ranah kerja masing-
masing. Selanjutnya diadakan diskusi dan konsultasi antara peserta kerja praktik dengan
tim R&D perusahaan tiap pekannya. Hasil dari pekerjaan masing-masing dipresentasikan
di pekan terakhir.

1.7 Sistematika Penulisan


Agar memudahkan dalam memahami gambaran laporan kerja praktik secara
garis besar, maka akan dijelaskan isi setiap bab dari laporan kerja praktik, dengan
sistematika penulisan sebagai berikut:

3
• BAB I (PENDAHULUAN)
Berisi tentang latar belakang kerja praktik, tujuan, manfaat, waktu dan tempat
pelaksanaan, metodologi pelaksanaan, dan sistematika penulisan.
• BAB II (PROFIL PERUSAHAAN PT. HARTONO ISTANA TEKNOLOGI)
Berisi tentang gambaran umum PT. Hartono Istana Teknologi, sejarah
berdirinya, serta pembagian tugas-tugas didalamnya, termasuk profil PT.
Hartono Istana Teknologi
• BAB III (DASAR TEORI)
Berisi tentang gambaran dan penjelasan tentang perangkat-perangkat yang
digunakan, protokol komunikasi, fitur-fitur pada alat, dan obyek sensor.
• BAB IV (ANALISIS DAN PEMBAHASAN)
Berisi pembahasan mengenai listing program yang telah dibuat, analisis dari
metode yang digunakan, serta hasil screenshot aplikasi maupun produk yang
telah dibuat.
• BAB V (PENUTUP)
Berisi tentang hasil yang didapatkan dan kesimpulan terkait kerja praktik pada
perusahaan PT. Hartono Istana Teknologi.

4
BAB II
PROFIL PERUSAHAAN

2.1 Sejarah Perusahaan


Polytron merupakan salah satu merek produk elektronik asli Indonesia yang bisa
bersaing dengan merek global. Di Desa Krapyak, Kudus, Jawa Tengah, merupakan pusat
dari Polytron dimana semua proses pembuatan, pengembangan, perakitan, hingga desain
produk di lakukan. Mulai berproduksi sejak 8 September 1975, PT Hartono Istana
Teknologi ini awalnya bernama PT Indonesian Electronic and Engineering.
Direktur Utama Polytron Hariyono mengatakan, hingga saat ini merek Polytron
telah mengekspor 5 hingga 7 persen produknya di beberapa negara dunia, yaitu Thailand,
Myanmar, Bangladesh, Spanyol, Arab Saudi, Srilanka, Filipina. Produk Polytron ini
sangat kental dengan unsur Eropa. Hal ini dikarena saat pertama kali Polytron
mengembangkan produk elektronik tahun 80-an, produk Eropa sedang merajai pasar
Indonesia, sehingga Polytron sangat terpengaruh dengan desain desain elektronik yang
diperjualbelikan pada masa itu.
Untuk bisa mengembangan produk dan menguasai pasar barang elektronik
Indonesia seperti saat ini, Polytron terus giat mengembangan inovasi di laboratorium
pengembangan produk dengan melihat selera pasar Indonesia, misalnya TV tabung yang
meski kini sudah berhenti memproduksi jenis TV ini sejak tahun 2016, namun pasar
Indonesia masih menganggap TV yang besar adalah jenis TV yang baik. Oleh karena itu
dikembangkan TV LED yang berlayar datar, tapi tetap berbentuk seperti TV tabung
sehingga cembung di bagian belakangnya.
Polytron memiliki program yang akan membuat semua karyawan yang bekerja
disitu semangat untuk mengembangkan produk Indonesia. Program ini akan mengajak
semua karyawan untuk memberikan ide dan suara mereka untuk mengembangkan
produk Polytron. Tiap masukan untuk inovasi untuk produk apapun maupun hal lain yang
berhubungan dengan perusahaan akan ditampung dan nantinya didiskusikan. Inovasi
yang dapat membuat Polytron lebih baik akan digunakan dan diaplikasikan pada
perusahaan Polytron. Karyawan yang bertanggung jawab atas ide tersebut akan diberikan
hadiah seperti umroh.

5
2.2 Pencapaian Polytron
Pencapaian-pencapaian yang telah diraih oleh PT Polytron hingga tahun 2018
adalah:

Tabel 2.1 Pencapaian Polytron

Tahun Pencapaian
1978 Commercial Production Black & White TV 20”
1979 Commercial Production Color TV 22” & 26”
1980 Menjalin kerjasama dengan Perusahaan "Salora" Finlandia dibidang Produk
TV
1990 Market Share Audio Polytron menjadi No.1 di Indonesia (50%)
1992 Export perdana produk color TV ke beberapa negara Eropa
2000 Produksi Home Theatre Dolby Prologic / Dolby Digital
Produksi VCD/ CD/ MP3 Player
Produksi Produk Audio "Minimax"
2001 Produksi Water Jet Pump
Produksi DVD Player
Produksi Color TV dengan teknologi "Zeppelin Speaker" (Patented)
2007 Sertifikasi ISO 14001 dan OHSAS 18001
Produksi color TV "Ultra Slim"
Produksi Show Case
Produksi Water Dispenser
2010 Produksi Nano Hifi (4 Patent dari Polytron, di USA/ Indonesia
2011 Produksi LEDTV
Produksi New Refrigerator dengan "Glass Door"
2012 Produksi 3D LEDTV
Produksi Android Internet LEDTV
Produksi LCD/LED TV with Tower Speaker
2013 Meluncurkan line produksi smartphone Meluncurkan smartphone Prime 5
sebagai flagship product dari Polytron Smartphone
2014 Meluncurkan mesin cuci otomatis top loading Zeromatic Maya dan
Zaromatic Ruby
Meluncurkan dispenser bottom gallon Hydra PWC 777

6
2015 Meluncurkan smartphone Zap 5 yang merupakan smartphone 4G LTE
pertama yang memenuhi TKDN
2016 Meluncurkan perangkat lunak FIRA OS
Meluncurkan air conditioner Neuva Ice
2017 Output produksi mencapai 10.000.000 unit / tahun
2018 Meluncurkan smartphone Prime 7 Pro
Meluncurkan Polytron Play sebagai Android Box yang dapat memberikan
suguhan entertainment di rumah
PMA dan Polytron Play mendapatkan pengakuan dan penghargaan Good
Design Indonesia 2018 dari Kementrian Perdagangan melalui Direktorak
Jendral Pengembangan Ekspor Nasional (PEN)
Pertama dan satu-satunya di Indonesia, yaitu TV LED besutan Polytron
bergaransi lima tahun mulai dari ukuran 20 inci hingga 50 inci
Meluncurkan speaker dengan teknologi terbaru yaitu Multiroom Speaker
dengan nama PMS R1 dan PMS R2
Meluncurkan mesin cuci Zeromatic Belleza dengan inovasi terbaru pada
garansi yang dapat mencakup secara menyeluruh hingga lima tahun

2.3 Visi
Menjadi pelopor inovasi teknologi dan hiburan dalam keluarga.

2.4 Misi
Meningkatkan pengalaman konsumen melalui teknologi, servis, dan produk

2.5 Lokasi Perusahaan


Saat ini, Polytron memiliki 3 lokasi pabrik yang berlokasi di Jawa Tengah,
dengan jumlah tenaga kerja lebih dari 10.000 karyawan dan total area pabrik seluas 69
hektar. Jika dirinci, masing-masing pabrik memiliki profil dan fungsi produksi sebagai
berikut:

1. Pabrik pertama berlokasi di Desa Krapyak, Kudus dengan luas 109.000 m2.
Pabrik ini khusus memproduksi TV, Handphone, AC, Audio, Dispenser, dan
DVD Player.

7
Gambar 2.1 Lokasi Polytron di Desa Krapyak, Kudus

2. Pabrik kedua, berlokasi di wilayah Sidorekso, Kudus dengan luas 130.000 m2


dan hanya memproduksi speaker saja.

Gambar 2.2 Lokasi Pabrik Speaker Polytron di Sidorekso, Kudus

8
3. Pabrik ketiga berlokasi di Sayung, Demak dengan luas 450.000 m2. Di pabrik ini
memproduksi kulkas dan mesin cuci.

Gambar 2.3 Lokasi Produksi Kulkas dan Mesin Cuci Polytron di Sayung, Demak

9
BAB III
DASAR TEORI

3.1 Microcontroller Arduino


Arduino merupakan platform elektronik microcontroller yang bersifat publik
(open-source) berdasarkan piranti dan aplikasi yang mudah digunakan (easy-to-use)
yang dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang
Sebagai contoh penggunaan board arduino dapat membaca input cahaya pada sensor,
membaca input push-button dan bahkan pesan (teks) yang akan diubahnya menjadi
sebuah output yang bisa berupa menghidupkan sebuah motor, menyalakan LED, atau
memposting sesuatu secara online dengan menggunakan bahasa pemrograman pada
perangkat lunak Arduino IDE untuk mengirimkan serangkaian instruksi ke
mikrokontroler.Bahasa yang digunakan untuk memprogram arduino memiliki kemiripan
dengan bahasa pemrograman C dan C++ yang sudah disederhanakan. Dikarenakan sifat
Arduino yang terbuka/open-source maka siapapun dapat mengunduh skema
hardware/sketch software dan menggunakannya ataupun mengembangkannya Arduino
sendiri menggunakan keluarga mikrokontroler ATMega buatan Atmel. Arduino
menggunakan antarmuka komunikasi serial, termasuk Universal Serial Bus (USB) pada
beberapa model, yang digunakan untuk memasukan program/sketch dari komputer
pribadi/personal computer.

3.2 Arduino IDE


Arduino IDE (Intergrated Development Environment) adalah sebuah perangkat
lunak yang dapat digunakan sebagai text editor untuk menulis kode Arduino (yang
disebut sketch), dan dapat langsung menghubungkan konsol dengan Arduino atau
Genuino untuk mengunggah program dan berkomunikasi dengan Arduino. Program yang
telah ditulis/sketch dapat disimpan sebagai file dengan ekstensi .ino. Konsol dapat
menampilkan error yang terdapat pada sketch dan dapat memberitahu pengguna apakah
proses compiling (menyatukan) serta uploading (mengunggah) sudah berhasil dilakukan
atau belum.

10
3.3 Atmel SAM D21 (ATSAM D21)
Atmel® | SMART™ SAM D21 merupakan microcontroller seri hemat daya yang
menggunakan sistem 32-bit dengan prosesor ARM Cortex M0. Terdapat 32-pin hingga
64-pin dengan Flash hingga 256KB dan 32KB dari SRAM. Frekuensi maksimal SAM
D21 kisaran 48MHz dan mencapai 2,46 CoreMark/MHz. Sistem ini dirancang untuk
migrasi yang sederhana dan intuitif dengan modul periferal yang identik, kode yang
kompatibel dengan heksa, peta alamat linier identik dan jalur migrasi yang kompatibel
pin antara semua perangkat dalam seri produk. Semua perangkat termasuk periferal
cerdas dan fleksibel, Atmel Event System digunakan untuk pensinyalan antar periferal,
dan dukungan untuk tombol sentuh kapasitif, antarmuka pengguna slider dan wheel.
Perangkat Atmel SAM D21 memiliki beberapa fitur seperti: In-system
programmable Flash, 12 channel DMA (Direct Memory Access) controller, 12 channel
Event System, Memungkinkan untuk program interrupt, dapat mencapai 52 program I/O
pin, 32bit RTC (real-time clock) beserta kalendar, up to five 16-bit Timer/Counters (TC)
dan terdapat 24-bit Timer/Counters for Control (TCC), dimana setiap TC dapat diatur
utnuk membuat gelombang frekuensi, waktu eksekusi program yang akurat atau
penerimaan input dengan pengukuran waktu dan frekuensi sinyal digital TC dapat
beroperasi dalam mode 8- atau 16-bit, TC yang dipilih dapat di-cascade ke form 32-bit
TC, dan tiga penghitung waktu/counters telah memperluas fungsi yang dioptimalkan
untuk motor, penerangan dan aplikasi kontrol lainnya. Seri ini menyediakan satu
antarmuka host dan perangkat USB 2.0 berkecepatan penuh; hingga enam Modul
Komunikasi Serial (SERCOM) yang masing-masing dapat dikonfigurasi untuk bertindak
sebagai USART, UART, SPI, I2C hingga 3,4MHz, SMBus, PMBus, dan slave LIN;
antarmuka dua saluran I2S; hingga dua puluh saluran 350ksps 12-bit ADC dengan
penguatan terprogram dan penipisan opsional dan penipisan mendukung hingga resolusi
16-bit, satu DAC 350-bit 10-bit, dua pembanding analog dengan mode jendela,
Pengontrol Sentuh periferal mendukung hingga 256 tombol, slider, roda, dan sensor
jarak; Timer Watchdog yang dapat diprogram, detektor brown-out, dan power-on reset
serta dua-pin Serial Wire Debug (SWD) program dan antarmuka debug.
Semua perangkat memiliki osilator eksternal dan internal yang akurat dan
berdaya rendah. Semua osilator dapat digunakan sebagai sumber untuk jam sistem.
Domain jam yang berbeda dapat dikonfigurasikan secara independen untuk dijalankan
pada frekuensi yang berbeda, memungkinkan penghematan daya dengan menjalankan

11
setiap perangkat pada frekuensi clock optimalnya, dan dengan demikian
mempertahankan frekuensi CPU yang tinggi sambil mengurangi konsumsi daya.
Perangkat SAM D21 memiliki dua sleep mode yang dapat dipilih perangkat
lunak, idle dan standby. Dalam mode idle, CPU dihentikan sementara semua fungsi lain
dapat tetap berjalan. Dalam keadaan standby, semua jam dan fungsi dihentikan, dan yang
dipilih akan terus berjalan. Perangkat ini mendukung SleepWalking. Fitur ini
memungkinkan perangkat untuk bangun dari tidur berdasarkan kondisi yang telah
ditetapkan, dan dengan demikian memungkinkan CPU untuk bangun hanya bila
diperlukan, misalnya ketika awalan dilewati atau hasilnya telah selesai. Event System
mendukung peristiwa sinkron dan asinkron, yang memungkinkan periferal untuk
menerima, bereaksi, dan mengirim peristiwa bahkan dalam mode Standby.
Memori program Flash dapat diprogram ulang dalam sistem melalui antarmuka
SWD. Antarmuka yang sama dapat digunakan untuk debug kode aplikasi non-intrusive
on-chip debug. Boot loader yang berjalan di perangkat dapat menggunakan antarmuka
komunikasi apa pun untuk mengunduh dan memutakhirkan program aplikasi di memori
Flash.
Perangkat Atmel SAM D21 didukung dengan rangkaian lengkap program dan
alat pengembangan sistem, termasuk kompiler C, macro assamblers, debugger/simulator
program, programmer dan kit evaluasi [1].

3.3.1 Fitur Atmel SAM D21


Tabel 3.1 Fitur dan Spesifikasi Atmel SAM D21

No Features Specification
ARM Cortex ARM Cortex-M0+ CPU running at up to 48MHz
1. Processor • Single-cycle hardware multiplier
• Micro Trace Buffer (MTB)
32/64/128/256KB in-system self-programmable Flash
2. Memories
4/8/16/32KB SRAM Memory
Power-on reset (POR) and brown-out detection (BOD)
Internal and external clock options with 48MHz Digital Frequency
Locked Loop (DFLL 48M) and 48MHz to 96MHz Fractional
3. System Digital Phase Locked Loop (FDPLL96M)
External Interrupt Controller (EIC)
16 external interrupts
One non-maskable interrupt

12
Two-pin Serial Wire Debug (SWD) programming, test and
debugging interface
Idle and standby sleep mode
4. Low Power
SleepWalking peripherals
12-channel Direct Memory Access Controller (DMAC)
12-channel Event System
Up to five 16-bit Timer/Counters (TC)
24-bit Timer/Counters for Control (TCC) with extended functions
32-bit Real Time Counter (RTC ) with clock/calendar function
Watchdog Timer (WDT)
CRC-32 generator
5. Peripherals One full-speed (12Mbps) Universal Serial Bus (USB) 2.0 interface
Up to six Serial Communication Interfaces (SERCOM)
One two-channel Inter-IC Sound (I2S) interface
One 12-bit, 350ksps Analog-to-Digital Converter (A DC) with up to
20 channels
10-bit, 350ksps Digital-to-Analog Converter (DAC)
Two Analog Comparators (AC) with window compare function
Peripheral Touch Controller (PTC)
6. I/O Up to 52 programmable I/O pins
7. Operating- 1.62V – 3.63V
Voltage

3.4 Real-Time Clock (RTC)


Real-Time Clock (RTC) Merupakan IC yang menyimpan jejak data yang
diperbarui dari waktu saat ini. RTC dirancang untuk konsumsi daya sangat rendah karena
harus terus berjalan ketika sistem utama dimatikan. Ini memungkinkan mereka untuk
mempertahankan waktu saat ini terhadap referensi waktu absolut, biasanya ditetapkan
oleh mikroprosesor secara langsung.
RTC merupakan elemen yang sangat umum dipakai. Mereka hadir dalam segala
hal mulai dari kluster instrumen dan sistem infotainment dalam aplikasi otomotif hingga
pengukuran rumah (house metering). Selain itu RTC sering berintegrasi ke perangkat
lain misalnya, IC komunikasi broadband yang digunakan dalam radio mobil.
Mereka biasanya ter-interface di sirkuit mikroprosesor oleh bus serial SPI atau
I2C, dan mungkin berisi sejumlah fungsi lain seperti memori cadangan, pengawas waktu
untuk mengawasi mikroprosesor dan penghitung waktu mundur untuk menghasilkan
peristiwa waktu nyata. Beberapa RTC memiliki interupsi detik atau menit dan bahkan
cukup baik untuk menghitung tahun kabisat.

13
RTC mempertahankan jamnya dengan menghitung siklus osilator - biasanya
rangkaian osilator kristal 32.768kHz eksternal, osilator berbasis kapasitor internal, atau
bahkan kristal kuarsa tertanam. Beberapa dapat mendeteksi transisi dan menghitung
periodisitas input yang mungkin terhubung.
RTC membutuhkan daya yang berkelanjutan dan harus memiliki konsumsi daya
yang sangat rendah. Sebagian besar RTC menggunakan pasokan sirkuit digital saat
perangkat on dan aktif, tetapi beralih ke sumber daya yang terhubung terus-menerus saat
sirkuit dimatikan. Sumber daya ini dapat berupa baterai khusus, superkapasitor yang
terisi daya, atau catu daya terpisah dari listrik.
Banyak RTC dapat mendeteksi perubahan ini dan masuk ke kondisi daya sangat
rendah di mana mereka mematikan semua sirkuit kecuali yang penting untuk menjaga
jam agar menghemat baterai. RTC juga dapat menyertakan fungsi alarm - atur waktu
ketika tercapai memicu RTC untuk mendorong output yang membangunkan prosesor [2].

3.5 Watchdog Timer (WDT)


Watchdog Timer (WDT) adalah fungsi sistem untuk memantau operasi program
yang cocok. Hal ini memungkinkan untuk pulih dari situasi kesalahan seperti kode
pelarian atau jalan buntu (Reset Status). WDT dikonfigurasikan ke periode batas waktu
yang telah ditentukan, dan terus berjalan saat diaktifkan Jika WDT tidak dihapus, saat
periode waktu habis, WDT akan mengeluarkan pengaturan ulang sistem (Reset). Saat
diaktifkan, WDT akan berjalan dalam mode aktif dan dalam semua mode tidur baik itu
stanby maupun idle. Ini dikarenakan WDT berjalan dari sumber clock independen-CPU.
WDT akan melanjutkan operasi dan mengeluarkan sistem reset atau interupsi bahkan jika
jam utama gagal [3].

3.6 Kadar Air


Kadar air adalah jumlah air yang terkandung dalam suatu bahan, seperti tanah
(disebut kelembaban tanah), batu, keramik, tanaman, atau kayu. Kadar air digunakan
dalam berbagai bidang ilmiah dan teknis, dan dinyatakan sebagai rasio, yang dapat
berkisar dari 0 (benar-benar kering) hingga nilai porositas bahan pada saat saturasi. Ini
dapat diberikan atas dasar volumetrik atau massa (gravimetri). Jumlah air yang ditahan
oleh tanah dapat dinyatakan atas dasar berat atau isi. Air tambahan berikutnya akan
bergerak ke bawah melalui proses penggerakan air jenuh. Penggerakan air tidak hanya
terjadi secara vertikal tetapi juga horizontal. Tanaman yang ditanam pada tanah pasir

14
umumnya lebih mudah kekeringan daripada tanah-tanah bertekstur lempung atau liat.
Kondisi kelebihan air ataupun kekurangan air dapat mengganggu pertumbuhan tanaman.
Gaya gravitasi tidak berpengaruh terhadap penggerakan horizontal [4].
Banyaknya air yang tersedia bagi tanaman dicari dengan jalan penentuan
kandungan air pada tanaman lapang dikurangi dengan persentase keadaan tanah padaa
titik layu permanen. Dalam hal ini nilai-nilainya sangat ditentukan terutama oleh tekstur
tanah. Tekstur tanah yang lebih tinggi mempunyai tekstur yang halus, sebaliknya tekstur
yang rendah mempunyai tekstur yang kasar nilainya akan lebih rendah lagi dibandingkan
dengan hal yang tadi. Kapasitas kandungan air tanah maksimum adalah jumlah air
maksimal yang dapat ditampung oleh tanah setelah hujan turun dengan sangat lebat atau
besar. Semua pori-pori tanah baik makro maupun mikro, dalam keadaan terisi oleh angin
sehingga tanah menjadi jenuh dengan air [5].
Kekurangan air bagi tanaman menyebabkan proses aktivitas dan fisiologis
tanaman terhambat bahkan tidak akan berjalan, tanaman yang kekurangan air akan
menyebabkan tanaman layu dan akhirnya menyebabkan kematian. Jaringan-jaringan
tanaman tidak lagi berfungsi baik. Sedangkan kelebihan air pada tanaman akan
meyebabkan permukaan tanah tempat tanaman hidup akan lembab karena kelebihan air,
keadaan lembab tersebut memunculkan mikro organisme jamur yang mengakibatkan
tumbuhnya penyakit bagi tanaman [6].

3.7 Suhu
Tanah yang didiami tanaman memiliki unsur suhu yang mempengaruhi
perkembangan tanaman. Suhu memengaruhi pertumbuhan dan perkembangan tumbuhan.
Karena suhu berpengaruh terhadap laju metabolisme, fotosintesis, respirasi, dan
transpirasi tumbuhan. Suhu tinggi merusakkan enzim sehingga metabolisme tidak
berjalan baik. Suhu rendah pun menyebabkan enzim tidak aktif dan metabolisme terhenti.
Oleh karena itu, tumbuhan memiliki suhu optimum antara 10 – 38 °C. Adapun tumbuhan
tidak akan bertahan pada suhu di bawah 0 °C dan di atas 40 °C [7].
Suhu tanah yang rendah dapat mempengaruhi penyerapan air dari pertumbuhan
tumbuhan. Jika suhu tanah rendah, kecil kemungkinan terjadi transpirasi, dan dapat
mengakibatkan tumbuhan mengalami dehidrasi atau kekurangan air. Pengaruh dari suhu
tanah pada proses penyerapan bisa dilihat dari hasil perubahan viskositas air, kemampuan
menyerap dari membran sel, dan aktivitas fisiologi dari sel-sel akar itu sendiri. Dengan

15
kata lain pada keadaan udara yang panas maka evaporasi air dari permukaan tanah akan
semakin besar [8].
Untuk mengatur suhu tanah bukanlah kemampuan manusia secara pribadi, tapi
suhu tanah tersebut dapat di kontrol dengan dua cara yaitu dengan menutupi mulsa
organik pada tanah, dan pengaturan tanaman residu yang keduanya dapat mempengaruhi
implikasi biologi, juga bisa dengan mulsa plastik yang biasanya diberikan untuk
perkebunan dan terakhir dapat dengan cara mengatur penguapan tanah [9]. Dari data suhu
pada awal pertumbuhan, dapat diramalkan waktu kematangan tanaman tersebut, suhu
tanah lebih memberikan jawaban pada perubahan setempat dari pada isolasi, topografi
dan sebagainya. Suhu tanah terutama suhu ekstrim, akan mempengaruhi perkecambahan
biji, aktivitas akar kecepatan, dan umur tanaman, serta terjadinya keganasan penyakit
tanaman [10].

3.8 Horticulture Lighting Metrics


Istilah hortikultura biasa digunakan pada jenis tanaman yang dibudidayakan.
Terdapat perbedaan antara istilah pencahayaan pada umumnya dan pencahayaan yang
digunakan pada sistem pencahayaan hortikultura. Pada bagian ini akan dijelaskan
berbagai istilah yang berkaitan dengan sistem pencahayaan yang berhubungan dengan
sistem pencahayaan hortikultura.

3.8.1 Lumens
Tumbuhan dan manusia mempersepsikan cahaya dengan cara yang berbeda.
Manusia dan hewan pada umunya menggunakan photopic vision dalam keadaan yang
cukup cahaya untuk mempersepsikan sesuatu. Lumen merupakan satuan yang digunakan
untuk penggukuran berdasarkan model sensitifitas mata manusia pada keadaan cukup
cahaya. Model tersebut disebut photopic response curve seperti yang bisa dilihat di
gambar 3. 1 dibawah

16
Gambar 3.1 Kurva respons cahaya fotosintesis

Pada grafik diatas diperlihatkan bahwa mata manusia lebih sensitif terhadap
cahaya hijau dibandingkan dengan biru maupun merah. Hal tersebut yang membuat
lumen kurang efektif apabila digunkan dalam mengukur intensitas cahaya pada sistem
pencahayaan hortikultura. Karena pada tanaman juga menggunakan cahaya merah dan
biru untuk melakukan fotosintesis [11].

3.8.2 PAR
PAR atau biasa disebut photosynthetic active radiation. PAR memiliki Panjang
gelombang cahaya terlihat antara 400 hingga 700 nanometer(nm) seperti yang terlihat di
gambar 3.1. PAR banyak digunakan untuk keperluan sistem pencahayaan hortikultura.
PAR bukan merupakan pengukuran seperti meter atau kilo tetapi lebih bisa diartikan
sebagai jenis cahaya yang dibutuhkan untuk mendukung fotosintesis [11]. Quantum
sensor merupakan instrument yang bekerja menggunakan optical filter untuk mengukur
PAR.

3.8.3 PPF
Photosynthetic Photon Flux (PPF) mengukur jumlah total PAR yang diproduksi
oleh sistem pencahayaan tiap detik. Perhitungan ini diambil menggunakan intrumen
khusus yaitu integrating sphere yang pada dasarnya menangkap dan mengukur semua
foton yang dipancarkan oleh sistem pencahayaan. Satuan yang digunakan untuk PPF
adalah micromoles per second(µmol/s). Meskipun penting, banyak perusahaan yang
tidak menggunakan PPF karena PPF tidak memberikan data seberapa banyak cahaya
yang masuk ke tanaman [11].

17
3.8.4 PPFD
Photosynthetic Photon Flux Density (PPFD) mengukur berapa jumlah PAR yang
masuk ke tanaman atau lebih tepatnya jumlah foton aktif fotosintesis yang jatuh pada
permukaan tertentu setiap detik. PPFD mengukur pada suatu tempat tertentu dengan
satuan micromoles per square meter per second(µmol/m2/s). Pada pengukuran sistem
pencahayaan hortikultura umumnya akan lebih cerah di tengah dengan tingkat kecerahan
yang akan semakin turun ketika mendekati tepi area yang diamati. Untuk mendapatkan
nilai PPFD aktual di suatu area yang ditentukan, hal-hal yang perlu diperhatikan adalah:
jarak pengukuran dari sumber cahaya (vertikal dan horizontal), jumlah pengukuran yang
meliputi rata-rata, dan rasio [11].

3.8.5 Photon Efficacy


Photon Efficacy mengacu pada seberapa efisien sistem pencahayaan hortikultura
dalam mengubah energi listrik menjadi foton PAR. Banyak perushaan menggunakan
total watt listrik atau watt per meter persegi sebagai pengukuran untuk menggambarkan
intensitas cahaya. Tetapi pengukuran tersebut kurang memberi informasi karena watt
adalah pengukuran yang menggambarkan input listrik, bukan output cahaya. Jika PPF
cahaya diketahui bersama dengan watt input, Anda dapat menghitung seberapa efisien
sistem pencahayaan hortikultura dalam mengubah energi listrik menjadi PAR. Satuan
dari PPF adalah µmol/s sedangkan satuan untuk watt adalah J/s, Sehingga detik dalam
pembilang dan penyebut bisa saling ditiadakan dan satuan untuk mengkur seberapa
sfisien sistem pencahayaan menjadi µmol / J. Semakin tinggi angka ini, semakin efisien
sistem pencahayaan dalam mengubah energi listrik menjadi foton PAR [11].

3.9 Protocol Komunikasi SDI-12


SDI-12 adalah singkatan dari serial data interface pada 1200 baud. Ini adalah
standar untuk menghubungkan perekam data bertenaga baterai dengan sensor berbasis
prosesor mikro yang dirancang untuk akuisisi data lingkungan. Akuisisi data lingkungan
dilakukan dengan menggunakan sebuah sensor, atau beberapa sensor, dan perekam data
yang mengumpulkan dan menyimpan data. SDI-12 adalah protokol komunikasi standar
yang menyediakan sarana untuk mentransfer pengukuran yang dilakukan oleh sensor
cerdas ke perekam data. Sensor cerdas biasanya melakukan pengukuran, membuat
perhitungan berdasarkan pembacaan sensor mentah, dan mengeluarkan data yang diukur

18
dalam unit-unit teknik. Sebagai contoh, sensor tekanan SDI-12 dapat mengambil
serangkaian pengukuran tekanan, rata-rata, dan kemudian output tekanan dalam psi, inci
merkuri, batang, milibar, atau torr. Prosesor mikro sensor membuat perhitungan,
mengubah pembacaan sensor menjadi unit yang sesuai, dan menggunakan protokol SDI-
12 untuk mentransfer data ke perekam.

serial data line


SDI-12 data ground line SDI-
recorder power line 12
senso
r
SDI-
12
senso
r
Gambar 3.2 SDI-12 Bus

Tabel 3.2 Konfigurasi SDI Serial

Baud Rate 1200


Bit Mulai 1
Bit Data 7 (LSB First)
Bit Paritas 1 (genap)
Bit Henti 1
Logika Terbalik (active low)

3.10 Sensor 5 TM
Sensor ECH2O 5TM adalah alat akurat berbiaya rendah untuk memantau kadar
air volumetrik dan suhu di tanah. Semua pengukuran dilakukan secara independen.
Seperti semua sensor ECH2O, 5TM menentukan kadar air volumetrik (VWC) dengan
mengukur konstanta dielektrik media menggunakan teknologi domain kapasitansi /
frekuensi. Sensor ini menggunakan frekuensi 70-MHz, yang meminimalkan efek tekstur
dan salinitas, membuat 5TM akurat di sebagian besar tanah. 5TM mengukur suhu
menggunakan termistor onboard.

19
APLIKASI
• Pengukuran kadar air volumetrik (VWC)
• Keseimbangan air tanah
• Manajemen irigasi
• Pengukuran suhu tanah
• Proses pemodelan yang dipengaruhi oleh suhu
KEUNTUNGAN
• Termistor yang kuat untuk pengukuran suhu yang akurat
• Enkapsulasi epoksi yang kuat menolak lingkungan korosif
• Antarmuka sensor tiga kabel: daya, ground, dan data
• Sensor digital mengkomunikasikan beberapa pengukuran melalui antarmuka serial
• Persyaratan tegangan input rendah
• Desain berdaya rendah mendukung pencatat data yang dioperasikan dengan baterai
• Mendukung protokol komunikasi serial SDI-12 atau DDI
• Desain modern dioptimalkan untuk penginderaan murah

Tabel 3.3 Spesifikasi pengukuran

Kadar Air Volumetrik


Range
Kalibrasi tanah mineral 0.0–1.0 m3/m3
Kalibrasi media tanpa tanah 0.0–1.0 m3/m3
Permitivitas dielektrik yang tampak 1 (udara) to 80 (air)
(εa)
Resolusi 0.0008 m3/m3
dari 0%–50% VWC
Akurasi
Kalibrasi generik ±0.03 m3/m3 tipikal
Kalibrasi khusus menengah ±0.02 m3/m3
Permitivitas dielektrik yang tampak 1–40 (range tanah),
(εa) ±1 εa (unitless)
40–80, 15% pengukuran
Temperatur

20
Range −40 to +60 °C
Resolusi 1 °C
Akurasi ±1 °C

Tabel 3.4 Spesifikasi Komunikasi


Output
DDI Serial atau protokol komunikasi SDI-12
Kompatibilitas Pencatat Data
Sistem akuisisi data apa pun yang mampu berjalan pada 3,6 hingga 15-
VDC daya dan komunikasi serial atau SDI-12

Tabel 3.5 Spesifikasi Fisik


Dimensi
Panjang 10.9 cm (4.3 in)
Lebar 3.4 cm (1.3 in)
Tinggi 1.0 cm (0.4 in)
Panjang Cabang
5.0 cm (1.9 in)
Kisaran Suhu Operasi
Minimum –40 °C
Tipikal NA
Maksimum +60 °C
Panjang Kabel
5 m (standard)
75 m (Panjang kabel kustom maksimum)
Tipe Konektor
Konektor steker stereo 3,5 mm atau kabel yang dilucuti dan dilepas

3.11 Apogee Quantum Sensor


Apogee Instrument merupakan salah satu perusahaan yang memproduksi
quantum sensor. Quantum sensor digunakan untuk mengukur PAR. Terdapat 2 jenis
quantum sensor yang dibuat oleh Apogee yaitu Full spectrum (kepala emas) dan Original
(kepala hitam).

21
Gambar 3.3 Full spectrum quantum sensor dan original quantum sensor

Kelebihan dari Full spectrum quantum sensor adalah dapat melakukan


pengukuran PAR pada semua jenis sumber cahaya termasuk cahaya dari LED berwarna.
Sedangkan untuk Original quantum sensor kurang akurat untuk mengukur sumber
cahaya dari LED berwarna tetapi lebih hemat biaya dan bisa melakukan pengukuran pada
rentang spektrum antara 410 hingga 655 nm seperti yang dapat dilihat pada gambar 3.4

Gambar 3.4 Spektrum full spectrum quantum sensor dan original quantum sensor

3.12 ADS1115
ADS1115 berfungsi untuk mengkonversikan sinyal analog ke sinyal digital
dengan resolusi tinggi dalam rangkaian berbasis mikroprosesor. Chip ini memiliki
tingkat presisi 16-bit pada 860 sampel / detik dengan komukasi I2C. Inputnya dapat

22
dikonfigurasi sebagai 4 saluran input tunggal, atau dua saluran diferensial. Chip ini dapat
berjalan dengan sinyal daya dan logika antara 2v hingga 5v, sehingga sesuai dengan
semua prosesor 3.3v dan 5v. Selain itu, juga terdapat penguat dengan besar penguatan
yang dapat diprogram hingga x16 untuk sinyal yang memerlukan penguatan.

Gambar 3.5 ADS1115 board

3.13 LoRa
LoRa adalah physical layer atau modulasi nirkabel yang digunakan untuk membuat
jaringan komunikasi jarak jauh. Banyak sistem nirkabel lama menggunakan frequency
shifting keying (FSK) sebagai Teknik modulasinya karena merupakan modulasi yang sangat
efisien untuk mencapai daya rendah. LoRa didasarkan pada modulasi chirp spread
spectrum, yang mempertahankan karakteristik daya rendah yang sama dengan modulasi
FSK tetapi secara signifikan meningkatkan jangkauan komunikasi [12].

3.14 LoRaWAN
LoraWAN adalah protokol komunikasi tanpa kabel yang memiliki jangkauan
area luas dan konsumsi daya yang kecil untuk membuat jaringan Internet of Things (IoT).
Perangkat IoT, node mengirimkan paket data berukuran kecil ke sejumlah gateway yang
berada pada jangkauan beberapa kilometer dari sebuah node melalui protokol nirkabel
LoraWAN. Gateway kemudian menggunakan komunikasi yang lebih luas yaitu koneksi
internet kabel ke server jaringan yang memvalidasi paket dan lalu diteruskan ke applikasi
server untuk ditampilkan di aplikasi payload [12].

23
Gambar 3.6 Arsitektur lorawan

3.14.1 Topologi
LoRaWAN dibangun menggunakan topologi star to star yang memungkinkan
device dapat bekerja menggunakan baterai dalam jangka waktu yang lama dibandingkan
topologi mesh network. Pada arsitektur LoRaWAN, device tidak ter-asosiasi dengan
gateway tertentu. Data dari device akan di terima oleh beberapa gateway dalam
jangkauan network loRa. Tiap gateway akan meneruskan paket yang diterima dari device
ke network server yang ada di cloud melalui backhaul seperti ethernet, wifi, satelit
ataupun seluler. Pemrosesan dilakukan di tingkat network server yang mengatur jaringan,
memfilter paket yang di terima, security check, penjadwalan acknowledments (ACK),
dan mengatur adaptive data rate (ADR). Ketika device bergerak tidak di perlukan
handover antar gateway, ini merupakan fitur utama untuk menjamin aplikasi LoRaWAN
seperti asset tracking yang memang menjadi salah satu target utama vertikal IoT
LoRaWAN.

3.14.2 Tipe device LoRaWAN


Device melayani berbagai jenis aplikasi dan tentu saja memiliki persyaratan yang
berbeda di tiap penerapannya. Yang menjadi faktor persyaratan utama adalah mengenai
umur pakai baterai dan latensi komunikasi dari network server menuju gateway sampai

24
ke device. Sehingga device LoRaWAN di golongkan menjadi tiga kelas yaitu Class A,
Class B dan Class C [13].
Class A merupakan perangkat komunikasi dua arah. Tipe perangkat ini
memungkinkan komunikasi dua arah dimana tiap perangkat mengirimkan data (Uplink
message) akan di ikuti dua Downlink receive window yang pendek. Slot transmisi di
jadwalkan oleh device itu sendiri dengan sedikit variasi berdasar random time basis.
Device class A memiliki konsumsi daya paling rendah dan cocok untuk penerapan yang
hanya membutuhkan komunikasi downlink dari server setelah node mengirimkan
komunikasi uplink. Skema komunikasi LoRaWAN device class A di tunjukkan pada
Gambar 3.7.

Gambar 3.7 Skema komunikasi loRawan class A

Class B device memungkinkan komunikasi dua arah dengan penjadwalan receive


slot. Class B membuka lebih banyak receive window di bandingkan dengan class A. Hal
ini memungkinkan device dapat melakukan time-synchronization beacon dari gateway
dan juga membuat server mengetahui keadaan perangkat dalam kondisi listening. Class
B masih tergolong battery powered device dengan kemampuan kontrol (aktuator). Skema
komunikasi LoRaWAN device class B pada SF12 di tunjukan pada gambar 3.8.

25
Gambar 3.8 Skema komunikasi loRawan class B

Class C memungkinkan komunikasi dua arah dengan receive slot maksimal.


Perangkat class C hampir memiliki slot receive window yang terbuka terus menerus dan
hanya tertutup saat mengirimkan data. Sehingga device tipe ini memakan daya yang lebih
besar dan memang di desain untuk device aktuator tanpa latensi untuk komunikasi
downlink. Device ini tidak diperuntukkan menggunakan sumberdaya baterai yang
terbatas kecuali sumber baterai yang memiliki sistem pengisian otomatis seperti dari
solar panel atau menggunakan sumber listrik PLN. Skema komunikasi LoRaWAN device
class C ditunjukkan pada gambar 3.9.

Gambar 3.9 Skema komunikasi loRawan class C

3.15 OTAA dan ABP sebagai Metode Pengiriman Data


Cara mendapatkan data dari LoRaWAN dibagi menjadi dua pilihan yaitu Over-
The-Air Activation (OTAA) dan Activation by Personalisation (ABP). Di OTAA,
perangkat diberi DevEUI, AppEUI, dan AppKey. Cukup membingungkan, AppKey
digunakan untuk menghasilkan kunci sesi, NwkSKey dan AppSKey. Jadi hati-hati
dengan 'licik' itu atau Anda akan bingung secara meriah. Untuk mengaktifkan, perangkat
mengirim permintaan bergabung dan menggunakan respons bergabung untuk

26
memperoleh kunci sesi NwkSKey dan AppSKey. Perangkat dapat menyimpan kunci-
kunci itu dan terus menggunakannya untuk berkomunikasi. Jika hilang atau jaringan
memilih untuk kedaluwarsa, perangkat harus bergabung kembali untuk menghasilkan
kunci baru.
Di ABP (Aktivasi Menurut Personalisasi), perangkat tidak memerlukan DevEUI,
AppEUI, atau AppKey. Alih-alih, tombol sesi NwkSKey dan AppSKey diprogram
sebelumnya ke dalam perangkat dan perangkat ini dipra-registrasi di jaringan. Ketika
perangkat ingin berkomunikasi, ia melakukannya menggunakan kunci sesi tanpa harus
menggunakan prosedur bergabung terlebih dahulu.

3.16 Dragino LoRa Shield


Dragino LoRa Shield adalah transceiver jarak jauh dengan bentuk Arduino Shield
dengan didasarkan pada open source library. Perangkat ini memungkinkan pengguna
untuk mengirim data dan dapat mencapai rentang yang sangat panjang dengan data-rate
yang rendah tetapi tetap meminimalkan konsumsi daya.
Dragino LoRa Shield didasarkan pada chip Semtech SX1276 / SX1278, bisa
digunakan untuk aplikasi jaringan sensor nirkabel seperti sistem irigasi, pengukuran
cerdas, kota cerdas, deteksi ponsel cerdas, otomatisasi bangunan, dan
sebagainya. Dragino Shield yang menampilkan teknologi LoRa dapat mencapai
sensitivitas lebih dari -148dBm. Sensitivitas tinggi dikombinasikan dengan penguat daya
+20 dBm terintegrasi membuat perangkat ini optimal untuk aplikasi yang membutuhkan
jangkauan luas atau daya tahan tinggi. Pada LoRa juga mendukung pemblokiran dan
selektivitas lebih baik daripada modulasi konvensional.

27
BAB IV
ANALISIS

4.1 Pendahuluan Analisis


Pada kegiatan kerja praktik ini, pekerjaan yang dilakukan adalah merancang
sistem untuk mengamati kondisi lingkungan tanaman yang akan digunakan untuk smart
agriculture dengan fitur hemat daya dan teknologi LoRaWan. Terdapat tiga bagian utama
dalam sistem ini yaitu perancangan sistem board dengan fitur hemat daya, bagian end
node sebagai sensor pada lingkungan tanaman dan bagian pengiriman ke gateway
mengunakan teknologi LoRaWan.
Fitur hemat daya yang disematkan pada papan mikrokontroler antara lain adalah
RTC dan Watchdog. Sensor yang digunakan untuk mengamati kondisi lingkungan
tanaman adalah sensor 5TM untuk mengetahui kadar air dan suhu dalam tanah dan
Sensor PAR untuk mengetahui photosynthetic active radiation (PAR) yaitu jenis cahaya
yang dibutuhkan tanaman untuk mendukung fotosintesis. Sedangkan pengiriman ke
gateway menggunakan shield tambahan yaitu Dragino Shield v1.4 dan library tambahan
yaitu LMIC library for Arduino IDE yang mendukung komunikasi dengan protokol
LoRaWan.

4.2 Setup RTC pada ATSAMD21


Pada kegiatan kerja praktik ini salah satu kegiatan yang dikerjakan adalah
menggunakan fitur yang telah tersedia pada ATSAMD21 yaitu Real Time Clock (RTC).
Dengan menggunakan Arduino IDE penulis mencoba untuk membuat program dimana
ATSAMD21 akan melakukan sesuatu pada saat alarm bekerja. Dengan menggunakan
library yang disediakan oleh Arduino IDE selain adanya program RTC dan kalender
terdapat fungsi Alarm. Di kegiatan ini penulis ditugaskan untuk membuat alarm berulang
setiap menit. Dibawah ini tertera program yang dikerjakan saat kegiatan kerja praktik
berlangsung untuk menggunakan fitur RTC pada ATSAMD21 dengan board yang
digunakan adalah RobotDyn M0, Custom LoRa ATSAMD21D, dan Custom
ATSAMD21 Zero
#include <RTCZero.h>

RTCZero rtc; // Define RTC Zero as rtc

28
const byte seconds = 58; // Configurable seconds from 0 to 59
const byte minutes = 59; // Configurable Minutes from 0 to 59
const byte hours = 23; // Configurable hours from 0 to 23 ( 00 )

const byte day = 1; // Configurable day from 1 to 30 or 31


const byte month = 1; // Configurable month from 1 to 12
const byte year = 19; // configurable year

Pada bagian awal library yang digunakan adalah RTCZero yang terdapat pada
web Arduino IDE . library RTCZero berguna untuk menggunakan fungsi-fungsi RTC
yang terdapat pada Arduino Zero, MKRZero, dan M0. Inisialisasi pertama pada modul
ini adalah mendefinisikan RTCZero sebagai rtc, hal ini bertujuan untuk memudahkan
dalam melakukan coding dalam modul. Dan Insialisasi selanjutnya adalah
mengonfigurasikan waktu dari detik untuk skala 0 sampai 59, menit untuk skala 0 sampai
59, jam untuk skala 0 sampai 23, dan untuk kalender dimulai dari hari untuk skala 1
sampai 30 atau 31 kecuali untuk bulan ke-2 hanya 28 atau 29 (perhitungan waktu
kabisat), dan terakhir mengonfigurasikan tahun dua digit terakhir.

void setup()
{
SerialUSB.begin(115200); // Initialize serial communications with the PC
while (!SerialUSB); //Do nothing if no serial port is opened
rtc.begin(); //Initialize Real Time Clock
rtc.setHours(hours); //Setting Hours based on config hours above
rtc.setMinutes(minutes); // Setting Minutes based on config minutes
above
rtc.setSeconds(seconds); // Setting Seconds based on config seconds
above
rtc.setDay(day); // Setting day based on config day above
rtc.setMonth(month); // Setting month based on config month above
rtc.setYear(year); // Setting year based on config above
rtc.setAlarmSeconds(40); // Setting alarm when seconds match
rtc.enableAlarm(rtc.MATCH_SS); // Init alarm for Seconds match
rtc.attachInterrupt(alarmMatch); // Interrupt when alarm is active
}

29
void alarmMatch()
{
// Show Alarm --on-- when alarm is active
SerialUSB.println("Alarm -- on ---");
}

Pada bagian setup( ) ini fungsi ini akan dilakukan sekali saja hal ini sama dengan
fungsi alarmMatch( ). Pada fungsi setup( ) berisi pengaturan awal yang dibutuhkan
program. Pertama dengan menentukan baud rate serial monitor sebesar 115200,
kemudian dilanjutkan dengan instruksi while( ), instruksi ini digunakan untuk mengulang
suatu statement selama kondisi syarat yang diberikan bernilai benar. Kondisi yang
digunakan dalam instruksi ini adalah while(!SerialUSB) yaitu ketika serial tidak
dijalankan tidak akan terjadi apapun dan ketika serial berjalan instruksi berikutnya
dijalankan. Dan instruksi selanjutnya adalah rtc.begin( ), instruksi ini perlu dipanggil
sebelum menggunakan isntruksi RTC lainnya yang terdapat pada library dapat juga
diartikan untuk mengaktifkan fungsi RTC pada board. Kemudian menggunakan instruksi
untuk menentukan waktu dan kalender berdasarkan inisialisasi sebelumnya, untuk fungsi
waktu instruksi pertama dengan menentukan jam menggunakan instruksi
rtc.setHours(hours), kemudian menentukan menit menggunakan
rtc.setMinutes(minutes), dan menentukan detik menggunakan rtc.setSeconds(seconds).
Sedangkan fungsi kalender untuk menentukan hari menggunakan instruksi
rtc.setDay(day), kemudian menentukan bulan menggunakan instruksi
rtc.setMonth(month), dan menentukan tahun menggunakan instruksi rtc.setYear(year).
Setelah instruksi untuk menentukan waktu dan tanggal selanjutnya merupakan
instruksi alarm, instruksi alarm yang pertama adalah rtc.setAlarmSeconds(40), instruksi
ini menentukan waktu alarm pada detik ke 40. Kemudian
rtc.enableAlarm(rtc.MATCH_SS) merupakan instruksi untuk mengaktifkan alarm disaat
kondisi detik sesuai atau cocok dengan waktu alarm yang sudah ditentukan sebelumnya
yaitu 40. Dan terakhir pada fungsi setup( ) adalah instruksi
rtc.attachInterrupt(alarmMatch) yang merupakan instruksi interrupt disaat alarm aktif.
Untuk fungsi yang kedua merupakan fungsi interrupt dimana fungsi ini bekerja disaat
ada interrupt saat program berjalan., didalam fungsi ini terdapat instruksi

30
SerialUSB.print(“Alarm –on—“) untuk menampilkan data dalam bentuk karakter disaat
fungsi aktif.

void loop()
{
// Show Date on serial monitor ( DD-MM-YY )
SerialUSB. print("Date ( ");
print2digits(rtc.getDay());
SerialUSB.print("-");
print2digits(rtc.getMonth());
SerialUSB.print("-");
print2digits(rtc.getYear());
SerialUSB.print(" ) ");

// Show Time on serial monitor ( HH:MM:SS )


SerialUSB.print("Time ( ");
print2digits(rtc.getHours());
SerialUSB.print(":");
print2digits(rtc.getMinutes());
SerialUSB.print(":");
print2digits(rtc.getSeconds());
SerialUSB.print(" )");
// Show an extra line
SerialUSB.println();
delay(1000);
}
void print2digits(int number) {
if (number < 10) {
SerialUSB.print("0");
}
SerialUSB.print(number);
}

Pada bagian loop( ) fungsi ini akan melakukan semua instruksi yang berada
didalamnya secara berulang. Instruksi yang terdapat dalam fungsi loop( ) adalah
insteruksi SerialUSB.print( ) yang bertujuan untuk menampilkan data pada serial berupa
karakter yang telah ditentukan pada baris yang sama, dan instruksi SerialUSB.println( )

31
bertujuan untuk menampilkan data berupa karakter pada baris baru. Instruksi
print2digits( ) yang merupakan instruksi call untuk memanggil dan menjalankan fungsi
print2digits( ). Akhir dari fungsi loop( ) diberikan delay sebesar 1000ms.
Pada fungsi print2digits( ) digunakan untuk fungsi call yang digunakan
sebelumnya pada fungsi loop( ). Di dalam fungsi ini terdapat instruksi if yang digunakan
untuk menjalankan suatu statement sekali saat kondisi terpenuhi adapun else digunakan
saat kondisi tidak terpenuhi. Di dalam instruksi if terdapat instruksi SerialUSB.print( )
yang bertujuan untuk menampilkan data pada serial berupa karakter yang telah
ditentukan. Hasil dari kegiatan kerja praktik pada kegiatan ini dapat dilihat pada gambar
4.1

Gambar 4.1 Gambar hasil simulasi RTC

Dari data diatas dapat dibuktikan bahwa RTC bekerja pada board Arduino zero,
data ini diambil dari serial monitor dengan baud rate 115200 dengan script program yang
sama dengan yang diatas sebelumnya. Hasil dari program ini dijalankan dengan
menggunakan Board Arduino M0 versi Robotdyn SAMD21M0 dan sudah diujikan
dengan board custom Arduino Zero namun belum dengan Arduino MKRZero karena
perangkat tidak tersedia. Dari hasil tersebut dapat diperhatikan bahwa waktu yang
digunakan adalah 24 jam dimana saat waktu menunjukan 23:59:59 dan ketika waktu
bertambah akan berulang menjadi 00:00:00 dengan pertambahan tanggal pada bagian
kalender.

32
Gambar 4.2 Gambar Hasil Simulasi Alarm

Di dalam library RTC terdapat fitur alarm, dari hasil tersebut merupaka hasil
dari simulasi alarm dimana saat waktu menunjukan pada detik ke-40, alarm akan
bekerja dengan memberikan interrupt berupa penampilan karakter pada serial dengan
teks Alarm – on --, pun begitu pada menit selanjutnya detik ke-40, alarm tetap akan
bekerja dan untuk seterusnya. Hasil ini diambil sama dengan hasil simulasi RTC yaitu
menggunakan Arduino M0 versi Robotdyn SAMD21M0 dan sudah melakukan
pengujian dengan custom Arduino zero.

4.3 Pemanfaatan fitur Watchdog Timer (WDT)


Pada kegiatan kerja praktik ini setelah mencoba menggunakan fitur RTC yang
terdapat pada ATSAMD21 selanjutnya adalah, pemanfaatan fitur Watchdog Timer atau
disingkat WDT. WDT adalah fungsi sistem untuk memantau operasi program yang
cocok, hal ini memungkinkan program untuk pulih dari situasi kesalahan seperti kode
pelarian atau jalan buntu (Reset).

#include <Adafruit_SleepyDog.h>

void setup() {
SerialUSB.begin(115200); // Initialize serial communications with the
PC
while(!SerialUSB); // wait for Arduino Serial Monitor (native USB
boards)
SerialUSB.println("______-----____ Demo Watchdog Timer ____------
_____");
SerialUSB.println();
countdown();
}

33
void countdown(){
Watchdog.enable(8000); // configure wdt is active for next 8s
SerialUSB.println("Counting to 10 before reset");
for(int i = 1; i <= 8; ++i) { // counting from 1 to 8sec
SerialUSB.print("Counting"); SerialUSB.println(i, DEC);
delay(1000);
}
SerialUSB.print("Reset begin");
SerialUSB.println();
}
void loop() {
// We'll never actually get to the loop because the WDT reset in 8s
SerialUSB.println("You shouldn't see this message.");
delay(1000);
}

Pada bagian awal dari program WDT diatas menggunakan library


Adafruit_SleepyDog yang dapat diunduh pada laman
https://github.com/adafruit/Adafruit_SleepyDog , pada laman tersebut terdapat contoh
dah beberapa refrensi untuk penggunaan WDT pada ATSAMD21. Pada fungsi setup( )
fungsi ini hanya akan berjalan sekali, fungsi ini diawali dengan instruksi untuk
menentukan baud rate serial monitor sebesar 115200, kemudian dilanjutkan dengan
instruksi while( ), instruksi ini digunakan untuk mengulang suatu statement selama
kondisi syarat yang diberikan bernilai benar, dan kondisi yang digunakan dalam instruksi
ini adalah while(!SerialUSB) yaitu ketika serial tidak berjalan maka instruksi selanjutnya
tidak dikerjakan dalam arti menunggu untuk kondisi terpenuhi. Selanjutnya adalah
instruksi SerialUSB.print( ), instruksi ini digunakan untuk menampilkan data berupa
karakter yang telah ditentukan. Dan pada fungsi setup() diakhiri dengan instruksi call
untuk memanggil fungsi countdown().
Fungsi yang selanjutnya pada program WDT ini adalah fungsi countdown( ),
fungsi ini sama seperti fungsi setup() yang hanya berjalan sekali. Pada fungsi ini diawali
dengan mengaktifkan fitur WDT yang terdapat pada library Adafruit_SleepyDog dengan
menggunakan isntruksi Watchdog.enable(8000), instruksi ini akan mengaktifkan WDT
yang akan melakukan reset dengan waktu delapan detik sebelum reset dimulai.
Kemudian setelah mengaktifkan fitur WDT instruksi selanjutnya adalah
SerialUSB.print( ), instruksi ini digunakan untuk menampilkan data berupa karaker yang
telah ditentukan. Dilanjutkan dengan instruksi perulangan for(int i = 1; i <= 8; i++), pada
instruksi ini kondisi awal yang digunakan adalah inisialisasi untuk i yang merupakan

34
integer 8 yang bersifat numerik. Kemudian kondisi yang harus dipenuhi hingga
perulangan berakhir adalah selama i kurang dari sama dengan 8 maka perulangan akan
terus berjalan. Dan tiap perulangan nilai i akan terus bertambah ini dikarenakan instruksi
ini menggunakan increment, nilai akan terus bertambah hingga kondisi perulangan
terpenuhi. Diakhir program terdapat instruksi SerialUSB.print ( ) untuk menampilkan
karakter yang telah ditentukan dan instruksi delay( ) untuk memberikan jeda waktu antar
instruksi. Fungsi ini berlangsung selama delapan detik ini dikarenakan WDT aktif selama
delapan detik hingga reset bekerja.
Fungsi yang terakhir adalah fungsi loop(). Pada fungsi ini terdapat instruksi
SerialUSB.print( ) untuk menampilkan karakter yang telah ditentukan. Program ini jika
dijalankan tidak sampai ke fungsi loop hal ini dikarenakan reset yang terjadi saat fungsi
countdown( ) selesai. {ada gambar 4.3 merupakan hasil dari serial monitor dari program
WDT diatas

Gambar 4.3 Gambar Simulasi WDT

Hasil data yang diambil merupakan hasil dari Arduino M0 dengan versi Robotdyn
M0, program ini juga bekerja untuk Arduino Zero dengan hasil yang sama, untuk
Arduino MKRZero belum diujikan, hal ini dikarenakan perangkat belum tersedia. Dari
hasil data simulasi WDT tersebut dapat dillihat saat counting ke 8 reset berjalan dan serial
akan offline dikarenakan board mengalami resetting. Saat perangkat selesai melakukan
resetting ditandai dengan led board yang berhenti berkedip saat serial monitor dibuka
kembali maka data yang dihasilkan akan sama dengan gambar diatas hal ini
membuktikan tidak ada perubahan selama perangkat mengalami reset sesuai dengan

35
tujuan dari WDT yang memonitoring perangkat jika mengalami error pada program
dengan melakukan reset secara berkala dengan waktu yang telah ditentukan. WDT ini
sendiri dapat dikombinasikan dengan RTC yang akan dibahas pada kegiatan berikutnya.

4.4 Smart System low power ATSMD21


Pada kegiatan kerja praktik ini diminta untuk mencoba membuat smart system
minimalis menggunakan ATSAMD21. Smart system disini adalah penggunaan fitur low
power energy yang terdapat pada ATSAMD21 serta mencoba untuk menggabungkan
program sebelumnya yaitu RTC dan WDT.

#include <RTCZero.h>
#include <ArduinoLowPower.h>
#include <Adafruit_SleepyDog.h>
#define LED LED_BUILTIN

RTCZero rtc;
//set RTC (Real Time Clock)
const byte Seconds = 0;
const byte Minutes = 0;
const byte Hours = 0;

const int pin = A1;


int count;

Pada bagian awal, program menggunakan tiga library dengan masing-masing


RTCZero sebagai library RTC, ArduinoLowPower untuk menggunakan isntruksi dan
fungsi yang terdapat dalam fitur low power ATSAMD21 dan terakhir library
Adafruit_SleepyDog sebagai waktu reset saat program mengalami masalah. Selanjutnya
adalah inisialisasi RTCZero sebagai rtc, inisialisasi LED_BUILTIN sebagai LED,
kemudian mengonfigurasikan waktu dari detik untuk skala 0 sampai 59, menit dari skala
0 sampai 59, dan jam dari skala 0 sampai 23. Kemudian dilanjutkan dengan inisialisasi
pin sebagai GPIO dari A1, dan inisialisasi count yang merupakan sebuah integer.

void setup(){
pinMode(LED, OUTPUT);
pinMode(pin, INPUT_PULLUP);
digitalWrite(LED, HIGH);
rtc.begin();
rtc.setAlarmSeconds(40);
rtc.enableAlarm(RTCZero::MATCH_SS);
rtc.attachInterrupt(RTC_ISR);

36
delay(20000);
digitalWrite(LED, LOW);
Watchdog.disable();
}

Dilanjutkan dengan fungsi setup( ), pada fungsi ini diawalin dengan isntruksi
pinMode() yang digunakan sebagai inisialisasi bahwa LED merupakan output dan pin
merupakan input. instruksi digitalWrite(LED, HIGH) dengan mengubah output pada
LED menjadi high, dilanjutkan dengan rtc.begin( ), instruksi ini diperlukan sebelum
menggunakan instruksi lain yang terdapat pada library RTCZero. Untuk selanjutnya
merupakan instruksi RTC, dimana menentukan alarm tepat pada detik ke 40, dan
inisialisasi RTC_ISR sebagai interrupt saat alarm bekerja. Dilanjutkan dengan instruksi
digitalWrite( ) untuk mengubah output LED menjadi low, diakhir fungsi setup()
merupakan instruksi Watchdog.disable( ), instruksi ini di perlukan sebagai pengaman
apabila saat terjadi perulangan WDT tidak aktif terus-menerus. Pada fungsi ini program
akan tetap standby selama 20detik dengan indikator LED menyala selama 20 detik dan
setelah mati maka akan memasuki fungsi loop ( ).

void RTC_ISR() // program interrupt


{
digitalWrite(LED, HIGH);
delayMicroseconds(10000);
digitalWrite(LED, LOW);
}

void interrupt() //program interrupt


{
digitalWrite(LED, HIGH);
delayMicroseconds(10000);
digitalWrite(LED, LOW);
}

Pada fungsi RTC_ISR merupakan sebuah fungsi yang digunakan untuk interrupt
saat alarm aktif, saat fungsi ini bekerja akan ditandai dengan LED yang berkedip. Pada
fungsi interrupt( ) digunakan sebagai fungsi external interrupt yang akan digunakan pada
fungsi loop( ), saat fungsi ini bekerja akan ditandai dengan berkedipnya LED.

void dosomething(){
if( count == 3){
Watchdog.enable(100);

37
digitalWrite(LED, HIGH);
delay(4000);
Watchdog.reset();
}
else{
for (int x = 0; x <= 10; x++){
//SerialUSB.println( x );
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
}
}
}

Pada fungsi ini digunakan untuk pengujian apakah program berjalan dengan baik
disaat program mengalami interrupt disaat sedang dalam sleep mode. Fungsi ini
menggunakan statement if( count == 3) dengan syarat dimana count yang merupakan
sebuah angka sama dengan 3 maka, WDT akan aktif dan langsung melakukan reset
dikarenakan delay yang kecil, dan jika syarat tidak terpenuhi yaitu count tidak sama
dengan 3 maka LED akan berkedip selama 10kali untuk tiap detiknya.

void loop(){
LowPower.attachInterruptWakeup(pin, interrupt, FALLING);
USB->DEVICE.CTRLA.reg &= ~USB_CTRLA_ENABLE;
__WFI();
USB->DEVICE.CTRLA.reg |= USB_CTRLA_ENABLE;
dosomething();
SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
detachInterrupt(pin);
count = count +1;
}

Pada fungsi loop(), fungsi ini dilakukan berulang dengan diawali instruksi
LowPower.attachinterruptWakeup(pin, interrupt, FALLING) didapat dari library
ArduinoLowPower digunakan sebagai instruksi interrupt disaat pin terhubung dengan
ground maka instruksi interrupt akan aktif. Kemudian instruksi untuk menonaktifkan usb
dikarenakan USB memakan daya yang cukup besar sekitar 5v DC, usb di nonaktifkan
dengan instruksi ~USB_CTRLA_ENABLE dalam hal ini dapat dikatakan sudah masuk
dalam sleep mode walaupun masih dalam kondisi idle dikarenakan GPIO masih aktif.
Kemudian dilanjutkan dengan instruksi __WFI( ), instruksi ini digunakan untuk
menunggu adanya interrupt, sebelum ada instruksi interrupt perangkat tidak akan bangun

38
dalam kondisi sleep mode. Saat ada interrupt dilanjutkan dengan mengaktifkan kembali
USB pada perangkat yang terdapat pada instruksi = USB_CTRLA_ENABLE, dan
dilanjutkan dengan instruksi call fungsi dosomething( ) dimana pada instruksi ini
perangkat akan melakukan sesuai apa yang ada pada fungsi dosomething ( ). Setelah
melewati fungsi dosomething( ) perangkat kembali memasuki sleep mode dan
menonaktifkan interrupt pada pin. Dan fungsi loop diakhiri dengan incrament dari count
akan bertambah satu setiap fungsi loop() selesai dan akan kembali berjalan kembali.
Hasil yang didapat untuk mendeteksi apakah perangkat bekerja dengan baik
adalah, program akan terus bekerja selama 24H terus menerus tanpa henti dengan pola
yang sama, saat perangkat memasuki sleep mode pada software Arduino IDE tidak
terdeteksi port perangkat dikarenakan usb dinonaktifkan dan ketika perangkat kembali
standby port usb kembali terdeteksi. Untuk program ini dijalankan dengan menggunakan
Arduino M0 dengan versi Robotdyn SAMD21M0 dan custom Arduino Zero, untuk
Arduino MKRZero belum diujikan dikarenakan perangkat yang tidak tersedia. Selain
mengamati kondisi yang terjadi disaat program berjalan, melakukan pengujian dengan
menggunakan PSU 5v DC dan baterai 3.47V dengan mengukur arus dan tegangan pada
perangkat saat program berjalan. Didapati hasil seperti pada tabel 4.1.

Tabel 4.1 Tabel Hasil Pengukuran Daya(watt) dengan PSU5V DC


No Jenis Perangkat Standby Sleep Awake
1 Robotdyn M0 0.095 0.031 0.096
2 Custom Board 1 zero 0.089 0.037 0.082
3 Custom Board 2 zero 0.082 0.017 0.063

Hasil dari tabel diatas didapat dari pengukuran sebagai berikut :


1. Robotdyn M0
Standby = 𝑃 = 𝐼 × 𝑉 = 19.1𝑚𝐴 × 5𝑉 = 0.095𝑤𝑎𝑡𝑡
Sleep = 𝑃 = 𝐼 × 𝑉 = 06.2𝑚𝐴 × 5𝑉 = 0.031𝑤𝑎𝑡𝑡
Awake = 𝑃 = 𝐼 × 𝑉 = 19.2𝑚𝐴 × 5𝑉 = 0.096𝑤𝑎𝑡𝑡
2. Custom Board 1 zero
Standby = 𝑃 = 𝐼 × 𝑉 = 16.5𝑚𝐴 × 5𝑉 = 0.089𝑤𝑎𝑡𝑡
Sleep = 𝑃 = 𝐼 × 𝑉 = 07.5𝑚𝐴 × 5𝑉 = 0.037𝑤𝑎𝑡𝑡
Awake = 𝑃 = 𝐼 × 𝑉 = 17.8𝑚𝐴 × 5𝑉 = 0.082𝑤𝑎𝑡𝑡
3. Custom Board 2 Zero

39
Standby = 𝑃 = 𝐼 × 𝑉 = 12.6𝑚𝐴 × 5𝑉 = 0.082𝑤𝑎𝑡𝑡
Sleep = 𝑃 = 𝐼 × 𝑉 = 03.5𝑚𝐴 × 5𝑉 = 0.017𝑤𝑎𝑡𝑡
Awake = 𝑃 = 𝐼 × 𝑉 = 16.4𝑚𝐴 × 5𝑉 = 0.063𝑤𝑎𝑡𝑡

Target yang diminta saat Sleep


𝑃 = 𝐼 × 𝑉 = 02.5𝑚𝐴 × 5𝑉 = 0.012𝑤𝑎𝑡𝑡

Dari hasil pengukuran dengan PSU 5V DC diketahui bahwa saat memasuki sleep
mode daya lebih kecil daripada saat standby dan awake, awake disini adalah saat
perangkat melakukan fungsi dosomething( ). Kondisi saat pengukuran perangkat ini tidak
dipasang beban apapun, kemungkinan daya akan bertambah besar jika beban bertambah
hal ini mencakup sensor interface dan lainya. Dan hasil pengukuran ini cukup tinggi
untuk masuk kategori low power yang diinginkan pihak yang diminta, target yang
diinginkan oleh pihak yang diminta adalah kurang dari 0.0125 watt, hasil dari
pengukuran cukup besar dikarenakan GPIO masih dalam keadaan aktif saat sleep mode

Tabel 4.2 Tabel Hasil Pengukuran Daya(watt) dengan Baterai 3.47V

No Jenis Perangkat Standby Sleep Awake


1 Robotdyn M0 0.069 0.014 0.068
2 Custom Board 1 Zero 0.066 0.016 0.049
3 Custom Board 2 Zero 0.050 0.003 0.036

Hasil dari tabel diatas didapat dari pengukuran sebagai berikut :


1. Robotdyn M0
Standby = 𝑃 = 𝐼 × 𝑉 = 19.8𝑚𝐴 × 3.47𝑉 = 0.069𝑤𝑎𝑡𝑡
Sleep = 𝑃 = 𝐼 × 𝑉 = 04.2𝑚𝐴 × 3.47𝑉 = 0.014𝑤𝑎𝑡𝑡
Awake = 𝑃 = 𝐼 × 𝑉 = 19.8𝑚𝐴 × 3.47𝑉 = 0.068𝑤𝑎𝑡𝑡
2. Custom Board 1 zero
Standby = 𝑃 = 𝐼 × 𝑉 = 14.2𝑚𝐴 × 3.47𝑉 = 0.066𝑤𝑎𝑡𝑡
Sleep = 𝑃 = 𝐼 × 𝑉 = 04.8𝑚𝐴 × 3.47𝑉 = 0.016𝑤𝑎𝑡𝑡
Awake = 𝑃 = 𝐼 × 𝑉 = 19.1𝑚𝐴 × 3.47𝑉 = 0.049𝑤𝑎𝑡𝑡
3. Custom Board 2 Zero
Standby = 𝑃 = 𝐼 × 𝑉 = 10.5𝑚𝐴 × 3.47𝑉 = 0.050𝑤𝑎𝑡𝑡

40
Sleep = 𝑃 = 𝐼 × 𝑉 = 01.0𝑚𝐴 × 3.47𝑉 = 0.003𝑤𝑎𝑡𝑡
Awake = 𝑃 = 𝐼 × 𝑉 = 14.5𝑚𝐴 × 3.47𝑉 = 0.036𝑤𝑎𝑡𝑡
Target yang diminta saat sleep mode
𝑃 = 𝐼 × 𝑉 = 02.5𝑚𝐴 × 3.47𝑉 = 0.008𝑤𝑎𝑡𝑡

Dari hasil pengukuran dengan baterai 3.47V diketahui bahwa saat memasuki
sleep mode daya lebih kecil daripada saat standby dan awake, awake disini adalah saat
perangkat melakukan fungsi dosomething( ). Kondisi saat pengukuran perangkat ini tidak
dipasang beban apapun, kemungkinan daya akan bertambah besar jika beban bertambah
hal ini mencakup sensor interface dan lainya. . Dan hasil pengukuran ini masih terlalu
tinggi dari target yang diminta saat dalam sleep mode, kecuali pada perangkat custom
board 2 zero saat dalam sleep mode sudah kurang dari target yang diminta yaitu sebesar
0.003 watt sedangkan batas maksimal daya yang diminta adalah 0.008watt. hasil dari
pengukuran cukup besar dikarenakan GPIO masih dalam keadaan aktif saat sleep mode.

4.5 Hasil Pengukuran Sensor 5TM


Sensor 5TM dihubungkan dengan Arduino. Berikut adalah program untuk
mengakses sensor beserta analisisnya.

#include <SDISerial.h>

#define DATALINE_PIN 10
#define INVERTED 1

SDISerial sdi_serial_connection(DATALINE_PIN, INVERTED);

char* get_measurement(){
char* service_request = sdi_serial_connection.sdi_query("?M!",1000);
char* service_request_complete =
sdi_serial_connection.wait_for_response(1000);
return sdi_serial_connection.sdi_query("?D0!",1000);
}

void setup(){
sdi_serial_connection.begin();

41
Serial.begin(9600);
Serial.println("OK INITIALIZED");
delay(3000);
}

int j=0;
void loop(){
uint8_t wait_for_response_ms = 1000;
char* response = get_measurement();
Serial.print("RECV:");Serial.println(response!=NULL&&response[0] !=
'\0'?response:"No Response!");
delay(5000);
}

Pada bagian awal program dinyatakan sebuah library yang digunakan pada
program yaitu SDISerial.h . Library SDISerial berguna untuk menjalankan fungsi-fungsi
protocol komunikasi SDI-12 yang digunakan. Selanjutnya didefinisikan pin untuk data
dan juga dibuat inverted. SDISerial sdi_serial_connection(DATALINE_PIN,
INVERTED); digunakan untuk menggunakan library SDISerial yang diterapkan pada
variabel koneksi sdi serial. Pendefinisian dilakukan kembali untuk beberapa variabel
yang berhubungan dengan meminta hasil pengukuran, meminta service, dan permintaan
selesai. Selanjutnya dibuat program untuk meminta data yang sudah didefinisikan
sebelumnya dan juga menampilkan pada serial monitor atau penampil lainnya. Setelah
itu dibuat program perulangan untuk menampilkan nilai suhu dan temperatur secara
berkala yang dapat diatur jangka waktunya.

42
Gambar 4.4 Percobaan 1 pada media tanah bertekstur tanpa kerikil

Gambar 4.5 Percobaan 2 pada media tanah bertekstur dengan kerikil

43
Gambar 4.6 Percobaan 3 dengan media air

Gambar 4.7 Percobaan 4 dengan media udara

Percobaan dilaksanakan dengan menguji sensor pada beberapa medan kemudian


melihat nilai yang ditampilkan dan membandingkan dengan nilai ideal yang tertera pada
spesifikasi dan juga membandingkan nilai satu dengan yang lainnya. Percobaan di atas
menghasilkan nilai kadar air dan juga temperature yang ditampilkan dengan format
RECV: 0 + [i] + [j] dengan [i] adalah nilai kadar air dan [j] adalah nilai temperatur. Jika
sesuai dengan spesifikasi ideal sensor, rentang nilai kadar air yaitu 1 untuk udara dan 80
untuk air murni. Sedangkan untuk rentang nilai temperatur yaitu -400 C hingga 600 C.

44
Untuk percobaan 1 dan 2 menggunakan media tanah dalam pot yang mempunyai
perbedaan tekstur tanah. Pada percobaan 1 tanah memiliki tekstur yang tidak memiliki
kerikil. Sedangkan pada percobaan 2 tanah memiliki tekstur yang sebagiannya berkerikil.
Kondisi kedua tanah dalam pot tersebut sama-sama basah karena malam sebelumnya
terkena hujan.
Dari keempat percobaan di atas dapat dilihat bahwa pada percobaan 1 pada media
tanah tanpa kerikil mempunyai nilai rata-rata kadar air 13.36 sedangkan pada percobaan
2 pada media tanah berkerikil mempunyai nilai rata-rata kadar air 13.11. Hal ini dapat
dinyatakan bahwa selisih kedua nilai tersebut tidak begitu besar dikarenakan pada malam
harinya tanah dalam kedua pot terkena hujan. Untuk media air memiliki nilai maksimal
48.82, hal ini berbeda dengan yang tertera pada spesifikasi yaitu bernilai 80. Perlu
dilakukan kalibrasi terlebih dahulu pada sensor agar didapat nilai yang sesuai dengan
spesifikasi. Pada media udara didapat nilai rata-rata 1.05 dan sudah sesuai dengan
spesifikasi. Untuk temperatur tidak banyak perubahan yang muncul pada tiap-tiap
percobaan.

4.6 Sensor PAR


Untuk sensor mengetahui photosynthetic active radiation (PAR) yang digunakan
adalah sensor dari Apogee Instruments yaitu Quantum Sensor dengan model SQ-110. Pada
model SQ-110 merupakan jenis model sensor pasif dimana tidak membutuhkan tambahan
daya tersendiri dan sensor ini dikalibrasikan dengan sinar matahari menjadikan model ini
tidak terlalu baik untuk digunakan didalam ruangan atau green house. Sensor ini akan
mengirimkan sinyal berupa sinyal analog sehingga memerlukan modul tambahan yaitu
Analog to Digital Converter (ADC) sedangkan wiring dari sensor ini adalah seperti yang
ada pada Gambar 4.8 sehingga perlu modul ADC diluar modul ADC yang ada pada board
Arduino.

Gambar 4.8 Kode warna wiring dari sensor PAR

45
Modul ADC tambahan yang digunakan adalah modul ADS1115 seperti pada gambar 4.9
karena bisa melakukan differential analog to digital conversion pada tegangan antara
channel 0 dan 1 sesua dengan sensor yang digunakan. Modul ini juga sesuai dengan board
mikrokontroller yang digunakan yaitu Arduino Mega 2560 karena menggunakan antarmuka
I2C dan bekerja dengan daya untuk menghasilkan logic signal antara 2v hingga 5v sesuai
dengan mikrokontroller 3.3v dan 5v.

Gambar 4.9 modul ADS1115

Modul ADS1115 ini memungkinkan terdapat 4 modul yang dikendalikan dari


sebuah 2-wire I2C bus karena memiliki sistem addressing menjadikan mikrokontroller
dapat mengendalikan 16 single-ended node atau 8 differential channel. Selain itu juga
terdapat PGA yaitu Programmable Gain Amplifier yang memungkinkan hingga x16 gain
untuk sinyal rendah. Skema dari modul ADS1115 dapat dilihat pada gambar 4.10.

Gambar 4.10 Skema pin modul ADS1115

46
Sistem addressing pada ADS1115 dapat diatur dengan menyambungkan pin ADDR ke
SCL,SDA,GND atau VDD. Sistem addressing diilustrasikan pada gambar 4.11.

Gambar 4.11 Sekama addressing pada ADS1115


Kelebihan lain dari ADS1115 adalah dapat mengirimkan data sebesar 16bit
dengan bit ke 16 sebagai penanda apakah nilai yang dikirim merupakan nilai negatif atau
positif. Dengan data sebesar 15bit memungkinkan terdapat 32.768 kemungkinan nilai
output, yang mana nol adalah yang pertama dan 32.767 adalah yang terakhir. Nilai dari
bit tersebut ditentukan oleh pengaturan Programmable Gain Amplifier (PGA). Seperti
pada saat full scale pengaturannya akan menjadi +/-6,144volt, Nilai 32767 akan
direpresentasikan jadi nilai dari 6,144volt. Membagi 6,144volt dengan 32767 akan
menghasilkan faktor skala sebesar 0,1875 mV per bit, nilai tersebut lebih besar dari pada
ADC yang ada pada Arduino yang memiliki resolusi kira-kira 5mV per bit atau 26 kali
lebih baik.

47
Gambar 4.12 Rangkaian SQ-110, ADS1115 dan Arduino

Rangkaian dari quantum sensor SQ-110, ADS1115 dan Arduino bisa dilihat pada gambar
4.12. Kedua channel analog dari SQ-110 dihubungkan ke pin A0 dan A1 dari ADS1115.
Pin ground dari SQ-110 dan pin ground dari ADS1115 dihubungkan ke pin ground ada
Arduino. Pin SCL dan pin SDA pada ADS1115 dihubungkan ke pin SCL dan pin SDA
pada Arduino. Yang terakhir pin VDD pada ADS1115 dihubungkan pada pin 3v3 pada
Arduino. Karena hanya menggunakan sebuah modul ADS1115 maka pin ADDR bisa
tidak digunakan.
Berikut adalah program / sketch dari beserta analisisnya :
#include <Wire.h>
#include <ADS1115.h>
#include <math.h>

ADS1115 radianceSensor; //ADDR 0x48


void setup()
{
Serial.begin(9600);
radianceSensor.begin();
radianceSensor.setGain(GAIN_EIGHT);
}

48
void loop()
{
int16_t radianceData;
float multiplier = 0.015625F; //16bit
radianceData = radianceSensor.Measure_Differential(01);
float vValue = radianceData * multiplier;
float wValue = max(0,round(5 * vValue));
Serial.print("Sebelum perhitungan ADC+PGA :");
Serial.print(radianceData,7);
Serial.print("\t\tSesudah :");
Serial.println(wValue,7);
delay(1000);
}

Pada bagian awal program berisikan beberapa library yaitu wire.h, ADS1115.h
dan math.h. Library wire.h digunakan agar Arduino bisa menggunakan komunikasi I2C,
ADS1115.h merupakan library bawaan dari modul ADS1115 sedangkan math.h
merupakan sebuah library yang disediakan untuk melakukan perhitungan secara
matematika. Selanjutnya kita mendeklarasikan variabel radianceSensor sebagai variabel
dari modul ADS1115 dengan address 0x48 yaitu default address apabila hanya terdapat
sebuah modul ADS1115. Pada bagian setup baud rate diatur menjadi 9600 lalu pada
radianceSensor.setGain(GAIN_EIGHT) artinya mengatur PGA pada ADS1115 dengan
8x gain artinya pengaturan gainnya akan menjadi +/-0.512 volt, Nilai 32767 akan
direpresentasikan jadi nilai dari 0,512volt. Membagi 0,512volt dengan 32767 akan
menghasilkan faktor skala sebesar 0,015625mV per bit. Pada bagian loop dideklarasikan
2 variabel baru yaitu radianceData dengan tipe data integer 16bit dan multiplier dengan
tipe data float bernilai 0.015625 karena gain yang diatur menjadi 8x gain. Variabel data
lalu menyimpan data yang didapatkan dari sensor dengan
radianceSensor.Measure_Differential(01); karena sensor memiliki 2 channel yang
terhubung dengan ADS1115 pada pin A0 dan pin A1. Lalu melakukan perkalaian antara
radianceData dengan multiplier agar mendapat data dari sensor disimpan dalam variabel
vValue. Kemudian float wValue = max(0,round(5 * vValue)); digunakan untuk
menghitung nilai PPFD. Yang terakhir adalah menampilkan nilai-nilai tersebut ke serial
monitor dengan delai program 1000ms. Contoh hasil dari serial monitor bisa dilihat pada
gambar 4.13.

49
Gambar 4.13 Serial monitor dari program sensor PAR

4.7 Pemilihan Metode OTAA atau ABP


Di awal perancangan sistem, tim perlu memutuskan terlebih dahulu metode
pengiriman data apa yang akan diterapkan pada protocol LoRaWAN. Berikut beberapa
bahan pertimbangan dari penentuan metode pengiriman antara OTAA dan ABP.
Kelebihan OTAA:
• Session Key hanya dihasilkan saat diperlukan, jadi tidak dapat
dikompromikan sebelum aktivasi.
• Jika perangkat berubah menjadi jaringan baru, ia dapat bergabung kembali
untuk menghasilkan kunci baru - daripada harus diprogram ulang.
• Pengaturan jaringan seperti Receive Delay (RxDelay) dan Channel
Frequency List (CFList) dapat ditentukan saat bergabung.
Kekurangan OTAA:
• Diperlukan skema untuk memprogram setiap perangkat dengan Device EUI
(DevEUI) dan Application Key (AppKey) yang unik, dan Application EUI
(AppEUI) yang benar.
• Perangkat harus mendukung fungsi gabungan dan dapat menyimpan kunci
yang dihasilkan secara dinamis.
Kelebihan ABP:
• Perangkat tidak memerlukan kemampuan atau resources untuk melakukan
prosedur bergabung.
• Perangkat tidak perlu memutuskan apakah sambungan diperlukan di titik
mana pun, karena itu tidak perlu.

50
• Tidak diperlukan skema untuk menentukan Device EUI (DevEUI) atau
Application Key (AppKey) yang unik.
Kekurangan ABP:
• Skema untuk menghasilkan Network Session Key (NwkSKey) dan
Application Session Key (AppSKey) harus memastikan mereka unik, untuk
mencegah pelanggaran luas jika satu perangkat dikompromikan. Dan skema
harus aman untuk mencegah kunci diperoleh atau diturunkan oleh pihak
jahat.
• Jika perangkat dikompromikan kapan saja, bahkan sebelum aktivasi, kunci
dapat ditemukan.
• Pengaturan jaringan tidak dapat ditentukan pada waktu bergabung.
• Peristiwa yang membutuhkan perubahan kunci (misalnya, pindah ke jaringan
baru, perangkat yang dikompromikan, atau kunci yang kedaluwarsa)
memerlukan pemrograman ulang perangkat.
Berdasarkan beberapa kelebihan dan kekurangan OTAA maupun ABP di atas,
serta kebutuhan dari perancangan sistem maka kami memilih ABP sebagai metode
pengiriman data menggunakan LoRaWAN. Hal ini dikarenakan sistem yang digunakan
bersifat eksklusif hanya menggunakan nod sensor yang sudah dipersiapkan dan telah
didaftarkan sebelumnya.

4.8 Pengiriman Data dengan Protokol LoRaWan


Untuk pengiriman data dengan protokol LoRaWan memerlukan tambahan
Arduino shield berupa Dragino Lora Shield v1.4, gateway, web server untuk
menampilkan data dan library Arduino tambahan yaitu LMIC (LoraMAC-in-C).
Dikarenakan pada saat sedang melakukan KP gateway yang dibutuhkan belum siap maka
yang menjadi fokus pekerjaan adalah mempelajari bagaimana mengirimkan data dengan
Dragino Shield. Source Code yang akan digunakan mengambil dari example yang terdapat
pada library LMIC yaitu ttn-abp yang terdapat pada lampiran sedangkan web server yang
digunakan adalah dari The Things Network (TTN) yang bisa diakses melalui tautan
https://www.thethingsnetwork.org/ untuk menampilkan data. Tampilan halaman depan
dari TTN seperti gambar 4.14.

51
Gambar 4.14 Halaman muka The Things Network

Terlebih dahulu kita perlu membuat aplikasi di TTN dengan mengakses halaman
Application lalu menuju add application maka tampilan akan menjadi seperti pada
gambar 4.15. Di halaman tersebut terdapat isisan nama aplikasi, deskripsi aplikasi dan
Handler registration. Pada handler registrasion kita perlu mengisikan sesuai dengan di
wilayah mana LoRa tersebut akan digunakan. Setelah itu tampilan akan berubah seperti
pada gambar 4.16.

Gambar 4.15 Tampilan Add Application

52
Gambar 4.16 Tampilan pada Application

Berikutnya yang diperlukan adalah membuat device dengan menekan tab divice
lalu add device. Tampilan add device adalah seperti pada gambar 4.17. Pada halaman
tersebut kita perlu mengisikan nama device lalau pada Device EUI dan App Key bisa
diisikan secara otomatis, lalu pada App EUI mengikuti application yang sudah kita buat
sebelumnya.

Gambar 4.17 Tampilan Add Device

Setelah device selesai dibuat selanjutnya menuju tab settings dan ubah metode
dari OTAA menjadi ABP agar mendapatkan Device Address, Network Session Key dan
App Session Key yang diperlukan untuk komunikasi protokol LoRaWan dengan metode

53
ABP. Kembali ke Arduino IDE buka example dari library LMIC dengan nama ttn-abp.
Terdapat beberapa bagian yang harus diubah agar bisa mengirimkan data

// LoRaWAN NwkSKey, network session key


// This is the default Semtech key, which is used by the early prototype TTN
// network.
static const PROGMEM u1_t NWKSKEY[16] = { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE,
0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C };

// LoRaWAN AppSKey, application session key


// This is the default Semtech key, which is used by the early prototype TTN
// network.
static const u1_t PROGMEM APPSKEY[16] = { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE,
0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C };

// LoRaWAN end-device address (DevAddr)


static const u4_t DEVADDR = 0x03FF0001 ; // <-- Change this address for every
node!

Pada bagian tersebut harus disesuaikan dengan Device Address, Network Session
Key dan App Session Key pada device yang sudah dibuat sebelumnya untuk mengisi
DEVADDR, NWSKEY dan APPSKEY. Kemudian ubah pin mapping yang sebelumnya

// Pin mapping
const lmic_pinmap lmic_pins = {
.nss = 6,
.rxtx = LMIC_UNUSED_PIN,
.rst = 5,
.dio = {2, 3, 4},
};

Menjadi sebagai berikut untuk menyesuaikan dengan Dragino Arduino Shield


yang digunakan.

const lmic_pinmap lmic_pins = {


.nss = 10,
.rxtx = LMIC_UNUSED_PIN,

54
.rst = 9,
.dio = {2, 6, 7},
};

Kemudian pada do_send() masukan program yang ingin dikirimkan, seuaikan


dengan setup().

LMIC_setupChannel(0, 868100000, DR_RANGE_MAP(DR_SF12, DR_SF7),


BAND_CENTI); // g-band
LMIC_setupChannel(1, 868300000, DR_RANGE_MAP(DR_SF12, DR_SF7B),
BAND_CENTI); // g-band
LMIC_setupChannel(2, 868500000, DR_RANGE_MAP(DR_SF12, DR_SF7),
BAND_CENTI); // g-band
LMIC_setupChannel(3, 867100000, DR_RANGE_MAP(DR_SF12, DR_SF7),
BAND_CENTI); // g-band
LMIC_setupChannel(4, 867300000, DR_RANGE_MAP(DR_SF12, DR_SF7),
BAND_CENTI); // g-band
LMIC_setupChannel(5, 867500000, DR_RANGE_MAP(DR_SF12, DR_SF7),
BAND_CENTI); // g-band
LMIC_setupChannel(6, 867700000, DR_RANGE_MAP(DR_SF12, DR_SF7),
BAND_CENTI); // g-band
LMIC_setupChannel(7, 867900000, DR_RANGE_MAP(DR_SF12, DR_SF7),
BAND_CENTI); // g-band
LMIC_setupChannel(8, 868800000, DR_RANGE_MAP(DR_FSK, DR_FSK),
BAND_MILLI); // g2-band

Yang terakhir diubaha adalah LMIC-setupChannel yang perlu disesuaikan


dengan regulasi frekuensi pada wilayah Indonesia yaitu menggunakan AS920-923 yang
juga digunakan di Negara Jepang, Malaysia dan Singapura. Pengaturan frekuensi bisa di
dilihat pada gambar 4.18 akan merubah code program menjadi

LMIC_setupChannel(0, 923200000, DR_RANGE_MAP(DR_SF12, DR_SF7), BAND_CENTI);


// g-band
LMIC_setupChannel(1, 923400000, DR_RANGE_MAP(DR_SF12, DR_SF7B),
BAND_CENTI); // g-band
LMIC_setupChannel(2, 922200000, DR_RANGE_MAP(DR_SF12, DR_SF7),
BAND_CENTI); // g-band

55
LMIC_setupChannel(3, 922400000, DR_RANGE_MAP(DR_SF12, DR_SF7),
BAND_CENTI); // g-band
LMIC_setupChannel(4, 922600000, DR_RANGE_MAP(DR_SF12, DR_SF7),
BAND_CENTI); // g-band
LMIC_setupChannel(5, 922800000, DR_RANGE_MAP(DR_SF12, DR_SF7),
BAND_CENTI); // g-band
LMIC_setupChannel(6, 923000000, DR_RANGE_MAP(DR_SF12, DR_SF7),
BAND_CENTI); // g-band
LMIC_setupChannel(7, 922000000, DR_RANGE_MAP(DR_SF12, DR_SF7),
BAND_CENTI); // g-band
LMIC_setupChannel(8, 921800000, DR_RANGE_MAP(DR_FSK, DR_FSK),
BAND_MILLI); // g2-band

Gambar 4.18 Regulasi frekuensi AS920-923

56
BAB V
PENUTUPAN

5.1 Hasil Kerja Praktik


Setelah menjalani kegiatan kerja praktik di PT Hartono Istana Teknologi kurang
lebih selama 1 bulan, penulis telah memperoleh banyak hal dari segi pengalaman secara
materi dan teknis maupun dalam bentuk pengalaman bekerja di sebuah industri.
Kompetensi dan pengalaman yang tidak diberikan di perkuliahan pun diperoleh seperti
datang ke kantor pada setiap hari kerja (Senin – Jum’at) dari jam 8 pagi sampai jam 5
sore dan berdiskusi langsung dengan para pakar di bidang Internet of Thing. Hal-hal
tersebut membawa makna positif pada penulis dan memenuhi tujuan kerja praktik yang
diharapkan.
Hasil dari kerja praktik yang dilakukan berupa sistem bagian dari smart
agriculture yang berfungsi untuk mengamati kondisi lingkungan tanaman dengan fitur
hemat daya. Hasil tersebut dipresentasikan di hadapan tim R&D PT. Hartono Istana
Teknologi. Melalui kegiatan ini, diharapkan kerja praktik yang dilaksanakan oleh
mahasiswa dapat memberikan hasil produk yang memberi dampak positif dari praktik
nyata di perusahaan. Kedepannya, sistem yang telah dibuat juga akan dilanjutkan
pengerjaannya dan dikembangkan lebih lanjut oleh tim R&D PT. Hartono Istana
Teknologi agar dapat menjadi lebih baik lagi serta dapat secara nyata diaplikasikan.

5.2 Kesimpulan
Melalui kerja praktik ini penulis belajar banyak tentang sistem smart agriculture
terutama pada bagian pengamat lingkungan tanaman dengan standar-standar yang ada,
serta menyatukan bagian-bagian yang telah dikerjakan masing-masing menjadi satu
kesatuan. Sistem yang dibuat dalam kegiatan kerja praktik ini adalah sistem pengamat
kondisi lingkungan tanaman untuk smart agriculture dengan fitur hemat daya dan
teknologi LoRaWAN. Sistem ini terdiri dari sensor 5TM untuk mengukur kadar air dan
suhu tanah, sensor PAR untuk mengukur banyaknya jenis cahaya yang dibutuhkan untuk
mendukung fotosintesis, board ATSAMD21 untuk mendapatkan fitur hemat dayanya,
serta protocol komunikasi LoRaWAN untuk sebagai alat pengiriman data. Sistem belum
sepenuhnya dapat digunakan karena pada saat melaksanakan kerja praktik gateway
LoraServer belum siap.

57
REFERENSI

[1] A. Corporation, Smart Arm-Based Microcontroller: Atmel-42181G-SAM-


D21_Datasheet, 2015.
[2] AspenCore, Inc., "Real-Time Clocks," [Online]. Available:
https://www.electronics-tutorials.ws/connectivity/real-time-clocks.html.
[Accessed 25 Maret 2019].
[3] Microchip Technology Inc., 32-bit ARM-Based, 2017.
[4] N. H. dkk, Dasar-Dasar Ilmu Tanah, Lampung: Penerbit Universitas Lampung,
1986.
[5] K. Hanifiah, Dasar-Dasar Ilmu Tanah, Jakarta: Rajawali Pers, 2004.
[6] R. Sutanto, Dasar-Dasar Ilmu Tanah : Konsep dan Kenyataan, Yogyakarta:
Kanisius, 2005.
[7] R. Firmansyah, udah dan Aktif Belajar Biologi 3 : untuk Kelas XII Sekolah
Menengah Atas / Madrasah Aliyah Program Ilmu Pengetahuan Alam., Jakarta:
Pusat Perbukuan Departemen Pendidikan nasional, 2009.
[8] S. T. d. W. Nelson, Soil Fertility and Fertilizers, New York: McMillan
Publishing, 1966.
[9] N. B. d. R. Weil, Elements of The Nature and Properties of Soils, Ney Jersey:
Prentice Hall, 2000.
[10] Guslim, Agrokloimatologi, Medan: USU Press, 2008.
[11] Fluence Bioengineering, Inc., "HORTICULTURE LIGHTING METRICS," 2018.
[Online]. Available: https://fluence.science/science/par-ppf-ppfd-dli/. [Accessed 9
Januari 2019].
[12] LoRa® Alliance, A technical overview of LoRa® and LoRaWAN™, 2015.
[13] Orange Connected Objects, LoRa Device Developer Guide, 2016.

58
LAMPIRAN

LMIC library example ttn-abp


/******************************************************************************
*
* Copyright (c) 2015 Thomas Telkamp and Matthijs Kooijman
*
* Permission is hereby granted, free of charge, to anyone
* obtaining a copy of this document and accompanying files,
* to do whatever they want with them without any restriction,
* including, but not limited to, copying, modification and redistribution.
* NO WARRANTY OF ANY KIND IS PROVIDED.
*
* This example sends a valid LoRaWAN packet with payload "Hello,
* world!", using frequency and encryption settings matching those of
* the The Things Network.
*
* This uses ABP (Activation-by-personalisation), where a DevAddr and
* Session keys are preconfigured (unlike OTAA, where a DevEUI and
* application key is configured, while the DevAddr and session keys are
* assigned/generated in the over-the-air-activation procedure).
*
* Note: LoRaWAN per sub-band duty-cycle limitation is enforced (1% in
* g1, 0.1% in g2), but not the TTN fair usage policy (which is probably
* violated by this sketch when left running for longer)!
*
* To use this sketch, first register your application and device with
* the things network, to set or generate a DevAddr, NwkSKey and
* AppSKey. Each device should have their own unique values for these
* fields.
*
* Do not forget to define the radio type correctly in config.h.
*

*******************************************************************************
/

#include <lmic.h>
#include <hal/hal.h>

59
#include <SPI.h>

// LoRaWAN NwkSKey, network session key


// This is the default Semtech key, which is used by the early prototype TTN
// network.
static const PROGMEM u1_t NWKSKEY[16] = { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE,
0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C };

// LoRaWAN AppSKey, application session key


// This is the default Semtech key, which is used by the early prototype TTN
// network.
static const u1_t PROGMEM APPSKEY[16] = { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE,
0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C };

// LoRaWAN end-device address (DevAddr)


static const u4_t DEVADDR = 0x03FF0001 ; // <-- Change this address for every
node!

// These callbacks are only used in over-the-air activation, so they are


// left empty here (we cannot leave them out completely unless
// DISABLE_JOIN is set in config.h, otherwise the linker will complain).
void os_getArtEui (u1_t* buf) { }
void os_getDevEui (u1_t* buf) { }
void os_getDevKey (u1_t* buf) { }

static uint8_t mydata[] = "Hello, world!";


static osjob_t sendjob;

// Schedule TX every this many seconds (might become longer due to duty
// cycle limitations).
const unsigned TX_INTERVAL = 60;

// Pin mapping
const lmic_pinmap lmic_pins = {
.nss = 6,
.rxtx = LMIC_UNUSED_PIN,
.rst = 5,
.dio = {2, 3, 4},
};

60
void onEvent (ev_t ev) {
Serial.print(os_getTime());
Serial.print(": ");
switch(ev) {
case EV_SCAN_TIMEOUT:
Serial.println(F("EV_SCAN_TIMEOUT"));
break;
case EV_BEACON_FOUND:
Serial.println(F("EV_BEACON_FOUND"));
break;
case EV_BEACON_MISSED:
Serial.println(F("EV_BEACON_MISSED"));
break;
case EV_BEACON_TRACKED:
Serial.println(F("EV_BEACON_TRACKED"));
break;
case EV_JOINING:
Serial.println(F("EV_JOINING"));
break;
case EV_JOINED:
Serial.println(F("EV_JOINED"));
break;
case EV_RFU1:
Serial.println(F("EV_RFU1"));
break;
case EV_JOIN_FAILED:
Serial.println(F("EV_JOIN_FAILED"));
break;
case EV_REJOIN_FAILED:
Serial.println(F("EV_REJOIN_FAILED"));
break;
case EV_TXCOMPLETE:
Serial.println(F("EV_TXCOMPLETE (includes waiting for RX
windows)"));
if (LMIC.txrxFlags & TXRX_ACK)
Serial.println(F("Received ack"));
if (LMIC.dataLen) {
Serial.println(F("Received "));
Serial.println(LMIC.dataLen);
Serial.println(F(" bytes of payload"));

61
}
// Schedule next transmission
os_setTimedCallback(&sendjob,
os_getTime()+sec2osticks(TX_INTERVAL), do_send);
break;
case EV_LOST_TSYNC:
Serial.println(F("EV_LOST_TSYNC"));
break;
case EV_RESET:
Serial.println(F("EV_RESET"));
break;
case EV_RXCOMPLETE:
// data received in ping slot
Serial.println(F("EV_RXCOMPLETE"));
break;
case EV_LINK_DEAD:
Serial.println(F("EV_LINK_DEAD"));
break;
case EV_LINK_ALIVE:
Serial.println(F("EV_LINK_ALIVE"));
break;
default:
Serial.println(F("Unknown event"));
break;
}
}

void do_send(osjob_t* j){


// Check if there is not a current TX/RX job running
if (LMIC.opmode & OP_TXRXPEND) {
Serial.println(F("OP_TXRXPEND, not sending"));
} else {
// Prepare upstream data transmission at the next possible time.
LMIC_setTxData2(1, mydata, sizeof(mydata)-1, 0);
Serial.println(F("Packet queued"));
}
// Next TX is scheduled after TX_COMPLETE event.
}

void setup() {

62
Serial.begin(115200);
Serial.println(F("Starting"));

#ifdef VCC_ENABLE
// For Pinoccio Scout boards
pinMode(VCC_ENABLE, OUTPUT);
digitalWrite(VCC_ENABLE, HIGH);
delay(1000);
#endif

// LMIC init
os_init();
// Reset the MAC state. Session and pending data transfers will be discarded.
LMIC_reset();

// Set static session parameters. Instead of dynamically establishing a


session
// by joining the network, precomputed session parameters are be provided.
#ifdef PROGMEM
// On AVR, these values are stored in flash and only copied to RAM
// once. Copy them to a temporary buffer here, LMIC_setSession will
// copy them into a buffer of its own again.
uint8_t appskey[sizeof(APPSKEY)];
uint8_t nwkskey[sizeof(NWKSKEY)];
memcpy_P(appskey, APPSKEY, sizeof(APPSKEY));
memcpy_P(nwkskey, NWKSKEY, sizeof(NWKSKEY));
LMIC_setSession (0x1, DEVADDR, nwkskey, appskey);
#else
// If not running an AVR with PROGMEM, just use the arrays directly
LMIC_setSession (0x1, DEVADDR, NWKSKEY, APPSKEY);
#endif

#if defined(CFG_eu868)
// Set up the channels used by the Things Network, which corresponds
// to the defaults of most gateways. Without this, only three base
// channels from the LoRaWAN specification are used, which certainly
// works, so it is good for debugging, but can overload those
// frequencies, so be sure to configure the full frequency range of
// your network here (unless your network autoconfigures them).
// Setting up channels should happen after LMIC_setSession, as that

63
// configures the minimal channel set.
// NA-US channels 0-71 are configured automatically
LMIC_setupChannel(0, 868100000, DR_RANGE_MAP(DR_SF12, DR_SF7), BAND_CENTI);
// g-band
LMIC_setupChannel(1, 868300000, DR_RANGE_MAP(DR_SF12, DR_SF7B), BAND_CENTI);
// g-band
LMIC_setupChannel(2, 868500000, DR_RANGE_MAP(DR_SF12, DR_SF7), BAND_CENTI);
// g-band
LMIC_setupChannel(3, 867100000, DR_RANGE_MAP(DR_SF12, DR_SF7), BAND_CENTI);
// g-band
LMIC_setupChannel(4, 867300000, DR_RANGE_MAP(DR_SF12, DR_SF7), BAND_CENTI);
// g-band
LMIC_setupChannel(5, 867500000, DR_RANGE_MAP(DR_SF12, DR_SF7), BAND_CENTI);
// g-band
LMIC_setupChannel(6, 867700000, DR_RANGE_MAP(DR_SF12, DR_SF7), BAND_CENTI);
// g-band
LMIC_setupChannel(7, 867900000, DR_RANGE_MAP(DR_SF12, DR_SF7), BAND_CENTI);
// g-band
LMIC_setupChannel(8, 868800000, DR_RANGE_MAP(DR_FSK, DR_FSK), BAND_MILLI);
// g2-band
// TTN defines an additional channel at 869.525Mhz using SF9 for class B
// devices' ping slots. LMIC does not have an easy way to define set this
// frequency and support for class B is spotty and untested, so this
// frequency is not configured here.
#elif defined(CFG_us915)
// NA-US channels 0-71 are configured automatically
// but only one group of 8 should (a subband) should be active
// TTN recommends the second sub band, 1 in a zero based count.
// https://github.com/TheThingsNetwork/gateway-conf/blob/master/US-
global_conf.json
LMIC_selectSubBand(1);
#endif

// Disable link check validation


LMIC_setLinkCheckMode(0);

// TTN uses SF9 for its RX2 window.


LMIC.dn2Dr = DR_SF9;

64
// Set data rate and transmit power for uplink (note: txpow seems to be
ignored by the library)
LMIC_setDrTxpow(DR_SF7,14);

// Start job
do_send(&sendjob);
}

void loop() {
os_runloop_once();
}

65

Anda mungkin juga menyukai