Modul Praktikum IoT 2022
Modul Praktikum IoT 2022
2022
DAFTAR ISI
TIMELINE PRAKTIKUM
DATA ASISTEN
Internet of Things ini diadakan untuk menunjang atau memperdalam teori tentang
pengaplikasian Internet of Things. Diharapkan dengan kegiatan Internet of Things ini,
praktikan dapat memahami pengaplikasian Internet of Things.
KETENTUAN UMUM
1. Praktikan adalah mahasiswa/mahasiswi Teknik Industri Universitas Diponegoro yang
sedang mengambil mata kuliah Internet of Things atau mengulang Praktikum
Programa Komputer.
2. Praktikan wajib mengikuti seluruh rangkaian kegiatan praktikum, mulai dari briefing
praktikum, Tugas Pendahuluan, pre-test, praktikum, pembuatan laporan atau penugasan,
asistensi, post-test dan presentasi akhir. Apabila praktikan tidak mengikuti salah
satunya tanpa keterangan/izin yang jelas, maka nilai pada komponen tersebut adalah
0.
3. Praktikan wajib mengikuti seluruh rangkaian modul Internet of Things dan wajib
mengerjakan tugas yang diberikan.
4. Praktikan harus datang tepat waktu selama kegiatan praktikum.
5. Praktikan harus memakai pakaian yang sopan dan rapih pada setiap serangkaian
kegiatan Praktikum Internet of Things.
6. Praktikan harus menjaga sopan santun pada setiap rangkaian kegiatan Praktikum
Internet of Things. Apabila setelah diperingatkan masih terjadi pelanggaran, asisten
berhak meninggalkan serangkaian kegiatan praktikum.
7. Praktikan harus mematuhi Standard Operating Procedure (SOP) serta peraturan yang
ada.
BRIEFING PRAKTIKUM
1. Briefing praktikum merupakan awal dimulainya kegiatan Praktikum Internet of
Things.
2. Jadwal briefing praktikum diumumkan selambat-lambatnya 1 hari sebelum
pelaksanaan.
3. Apabila praktikan terlambat dalam menghadiri briefing praktikum maka asisten berhak
membatalkan briefing yang dilakukan.
4. Jika praktikan melanggar peraturan (ketentuan umum dan ketentuan briefing),
praktikan yang bersangkutan wajib mengerjakan tugas berupa meresume jurnal
internasional yang dipublikasikan dalam waktu 5 tahun terakhir dan berhubungan
dengan Internet of Things dengan diketik rapi. Waktu pengerjaan tugas adalah 2x24
jam.
TUGAS PENDAHULUAN
1. Praktikan wajib mengumpulkan tugas pendahuluan sebelum mengikuti Praktikum
Internet of Things.
2. Tugas pendahuluan terdiri dari soal individu dan kelompok. Nilai tugas pendahuluan
individu merupakan nilai untuk masing - masing praktikan, sedangkan nilai tugas
pendahuluan kelompok merupakan nilai untuk masing-masing kelompok.
3. Tugas pendahuluan akan diberikan melalui Official Account Laboratorium DSS.
4. Pengerjaan tugas pendahuluan WAJIB menggunakan bahasa masing – masing
praktikan, dan praktikan dilarang melakukan plagiarisme dalam mengerjakan tugas
pendahuluan. Segala bentuk kecurangan akan diberi sanksi nilai 0 pada tugas
pendahuluan.
5. Pengerjaan tugas pendahuluan menggunakan format sebagai berikut:
a. Tulis tangan dengan tinta hitam/biru pada kertas A4 (boleh baru atau bekas)
b. Jarak spasi penulisan 0,7 cm (acuan dapat disesuaikan dengan jarak spasi yang ada
di kertas folio).
c. Margin penulisan 4-4-3-2 (atas - kiri - bawah - kanan) border hitam.
d. Header pada tugas pendahuluan indvidu ditulis tangan pada bagian kanan atas:
Nama
NIM
Kelompok xx
kemudian header tugas pendahuluan kelompok ditulis tangan pada bagian kanan
atas:
Kelompok xx
PRE – TEST
1. Sebelum memulai praktikum, praktikan diwajibkan mengikuti pre-test yang akan
dilaksanakan secara offline.
2. Tidak ada pre-test susulan (kecuali sakit dengan izin dokter, keluarga dekat meninggal
dunia, atau kegiatan akademik seperti delegasi lomba, kelas pengganti yang disertai
dengan bukti kepada koordinator praktikum yang dikirim maksimal 1x24 jam sebelum
pre-test dimulai).
3. Segala bentuk kecurangan mendapatkan nilai 0.
4. Standar nilai pre-test adalah 60.
5. Pre-test akan dilakukan secara tertulis dalam batas waktu yang telah ditentukan.
6. Materi pre-test bersumber dari tugas pendahuluan, modul praktikum, dan sumber lain
yang bersangkutan dengan materi praktikum.
PRAKTIKUM
1. Praktikum akan dilaksanakan di kampus Teknik Industri sesuai dengan timeline yang
sudah ditetapkan, dengan tetap memperhatikan protokol kesehatan yang ada.
2. Jadwal praktikum diumumkan selambat-lambatnya 1 hari sebelum pelaksanaan
praktikum. Apabila ada komplain jadwal, bisa menghubungi koordinator praktikum
selambat-lambatnya 12 jam sebelum praktikum dilaksanakan melalui koordinator
sementara.
3. Kelengkapan praktikum, baik lampiran dan sebagainya yang berhubungan dengan
praktikum tidak boleh hilang, dan bukan menjadi tanggung jawab asisten.
4. Izin tidak mengikuti rangkaian praktikum hanya dapat diajukan dengan alasan sakit,
keluarga dekat meninggal dunia, keluarga menikah, dan menjadi delegasi lomba/acara
wajib memberikan izin tertulis disertai bukti izin kepada Koordinator Internet of
Things paling lambat 24 jam sebelum praktikum dilaksanakan.
5. Apabila praktikan tidak mengikuti praktikum tanpa keterangan/izin yang jelas maka
akan dikenakan pengurangan nilai jurnal pada modul yang bersangkutan.
6. Praktikan wajib mematuhi ketentuan praktikum pada modul yang bersangkutan.
LAPORAN
1. Laporan praktikum bersifat kelompok.
2. Penulisan laporan mengikuti format sebagai berikut:
- Diketik pada kertas ukuran A4 dengan tinta hitam.
- Font Times New Roman 12 dan spasi 1,5.
- Margin 4-4-3-2 (atas - kiri - bawah - kanan).
- Header ditulis pada kanan atas :
Laporan Praktikum Internet of Things
Arduino
Kelompok xx
ASISTENSI
1. Praktikan wajib melakukan asistensi maksimal 5 (lima) kali untuk penulisan laporan.
2. Asistensi wajib dihadiri oleh seluruh anggota kelompok, kecuali ada izin tertulis ke
asisten masing-masing.
3. Setiap asistensi praktikan wajib belajar dengan materi yang berkaitan dengan modul
tersebut.
4. Praktikan wajib membawa lembar asistensi setiap melakukan kegiatan asistensi.
5. Asistensi dilakukan di kampus Teknik Industri pada hari Senin-Jumat pukul 07.00 –
17.00 atau sesuai dengan kesepakatan antara asisten dan praktikan yang bersangkutan.
6. Praktikan wajib menghubungi asisten untuk pengajuan jadwal asistensi paling lambat
1 (satu) hari sebelum kegiatan asistensi.
7. Apabila saat asistensi baik praktikan maupun asisten terlambat 15 menit dari waktu
yang telah disepakati bersama dengan tidak memberi kabar, maka salah satu pihak
berhak membatalkan asistensi (kecuali ada kesepakatan lain).
8. Asistensi tidak boleh mengganggu kegiatan ibadah dan jam perkuliahan, baik dari
pihak asisten maupun praktikan.
9. Asisten berhak menolak pengumpulan laporan jika tidak dilakukan perbaikan pada
laporan.
10. Jika praktikan melanggar kesepakatan dengan asisten, maka asisten berhak
membatalkan asistensi.
POST - TEST
1. Setelah melaksanakan praktikum, praktikan diwajibkan mengikuti post-test yang akan
dilaksanakan secara offline.
2. Tidak ada post-test susulan (kecuali sakit dengan izin dokter, keluarga dekat meninggal
dunia, atau kegiatan akademik seperti delegasi lomba, kelas pengganti yang disertai
dengan bukti kepada koordinator praktikum yang dikirim maksimal 1x24 jam sebelum
post-test dimulai).
3. Segala bentuk kecurangan mendapatkan nilai 0.
4. Standar nilai post-test adalah 60.
5. Post-test akan dilakukan secara tertulis dalam batas waktu yang telah ditentukan.
6. Materi post-test bersumber dari tugas pendahuluan, modul praktikum, dan sumber lain
yang bersangkutan dengan materi praktikum.
PRESENTASI
1. Presentasi merupakan ujian kecakapan bagi praktikan yang materinya adalah semua
yang telah didapat praktikan selama mengikuti Internet of Things.
2. Presentasi dilakukan sebagai kegiatan terakhir dalam rangkaian Praktikum Internet of
Things.
3. Presentasi akan dilakukan setelah tenggat pengumpulan laporan modul 3 sudah
dilewati, jadwal lebih lanjut akan diinformasikan selambat – lambatnya 1 hari sebelum
pelaksanaan. Praktikan dapat mengajukan komplain jadwal kepada Koordinator
Praktikum Internet of Things selambat – lambatnya 12 jam sebelum pelaksanaan.
4. Praktikan yang berhalangan untuk mengikuti presentasi dengan izin sesuai ketentuan
yang telah diatur, dapat mengikuti presentasi khusus untuk mendapatkan nilai
presentasi.
5. Penilaian presentasi bersifat individu.
6. Segala bentuk kecurangan akan mendapatkan nilai presentasi 0.
PERIZINAN
1. Izin tidak mengikuti rangkaian praktikum (kecualii asistensi) menggunakan surat yang
diketik rapi dan ditujukan kepada Koordinator Praktikum Internet of Things.
2. Alasan izin untuk tidak mengikuti rangkaian kegiatan praktikum yang diperbolehkan
adalah sakit, keluarga menikah, keluarga meninggal dan menjadi delegasi lomba/acara.
Seluruh alasan izin wajib menyertakan bukti.
3. Koordinator Internet of Things berhak menolak izin apabila permohonan izin tidak
sesuai dengan ketentuan.
PERSENTASE NILAI
• Tugas Pendahuluan : 15%
• Nilai Pre-test : 10%
• Nilai Post-test : 15%
• Nilai Laporan : 35%
• Nilai Presentasi : 25%
Spasi TNR 12
Picture Height:
7,4cm, center
Spasi TNR 12
LEMBAR PENGESAHAN
LAPORAN PRAKTIKUM TNR 14, Bold,
Center, Spasi 1,5
INTERNET OF THINGS
NAMA PROGRAM
Asisten,
Spasi TNR 40
Nama Asisten Masing – Masing
TNR 12, Center, NIM, 210701XXXXXXXX
Spasi 1,5
Mengetahui,
Koordinator Praktikum
MODUL 1
PENGENALAN ARDUINO DAN DASAR PEMOGRAMAN
TUJUAN PRAKTIKUM
Praktikan mampu memahami dan mengoperasikan Arduino.
Praktikan mampu memahami berbagai alat dan komponen yang digunakan dalam
pengoperasian Arduino.
Praktikan mampu memahami dasar-dasar kelistrikan untuk mengintegrasikan Arduino
dengan komponen pelengkapnya.
Praktikan dapat mengerti dan memahami penerapan algoritma ke dalam bahasa
pemrograman dalam Arduino.
Dapat mengerti cara membuat pemrograman dengan C++ dalam Arduino IDE.
DASAR TEORI
A. Komponen Arduino
Arduino memiliki komponen yang bermacam-macam, adapun dalam praktikum
Internet of Things kali ini berikut beberapa komponen yang akan digunakan
a. Mikrokontroler
Mikrokrontroler (Microcontroller) adalah perangkat komputer mini (mikro) yang
dikemas dalam satu chip tunggal IC (Integrated Circuit) dan mempunyai program
operasi tertentu didalamnya. Komponen pada mikrokontroler ini hampir mirip
dengan sebuah perangkat komputer (PC) biasa. Dalam diskusi sehari-hari dan di
forum internet, mikrokontroller sering dikenal dengan sebut μC, uC, atau MCU.
Dari pengertian tersebut, bisa dikatakan bahwa mikrokontroller adalah komputer
yang berukuran mikro dalam satu chip IC (integrated circuit) yang terdiri dari
processor, memory, dan antarmuka yang bisa diprogram. Jadi disebut komputer
mikro karena dalam IC atau chip mikrokontroller terdiri dari CPU, memory, dan
I/O yang bisa dikontrol dengan memprogramnya. I/O juga sering disebut dengan
GPIO (General Purpose Input Output Pins) yang berarti pin yang bisa diprogram
sebagai input atau output sesuai kebutuhan.
Gambar 1 Mikrokontroler
Arduino Uno Board Arduino terdiri dari hardware / modul mikrokontroller yang
siap pakai dan software IDE yang digunakan untuk memprogram sehingga bisa
dipelajari dengan mudah. Kelebihan dari Arduino yaitu pengguna tidak direpotkan
dengan rangkaian minimum sistem dan programmer karena sudah built in dalam
satu board. Oleh sebab itu pengguna bisa fokus kepada pengembangan sistem
• Input
Input adalah data atau informasi yang dibutuhkan oleh sebuah sistem untuk
selanjutnya diproses sesuai dengan ketentuan proses yang telah ditentukan.
Dalam Arduino, input akan ditangkap oleh sensor yang selanjutnya data
dari input itu akan diolah sesuai kebutuhan. Berikut merupakan contoh
sensor Arduino:
• Output
Output merupakan hasil dari input yang telah diproses oleh bagian pengolah
dan merupakan tujuan akhir sistem. Setelah data input diolah dalam
Arduino maka output yang dikelurkan bisa bermacam macam, mulai dari
lcd, serial monitor, dan lain lain.
c. Tipe Data
Berikut merupakan tipe-tipe data pada Arduino yang sering digunakan.
Tabel 1 Tipe Data
Tipe Data Lebar Data Jangkauan
Char 1 byte -128 s/d 127
Unsigned chart 1 byte 0 s/d 255
Byte 1 byte 0 s/d 255
Word 2 byte 1 s/d 65535
Int 2 byte -32768 s/d 32767
Unsigned int 2 byte 0 s/d 65535
Long 4 byte -2147438648 s/d 2147438647
Unsigned long 4 byte 0 s/d 4294967295
floar 4 byte -3.4028235E+38 s/d 3.4028235E+38
d. Variabel
Variabel adalah kode program yang digunakan untuk menyimpan suatu nilai pada
sebuah nama. Nama variabel itu bebas, asalkan sesuai dengan ketentuan berikut:
1. Tidak menggunakan spasi
2. Maksimal 32 karakter
3. Tidak menggunakan istilah baku dalam bahasa C Arduino 14
Sebagai contoh, misalkan ingin mendefinisikan nilai pin 2 dengan variabel “bagus”
dan menggunakan tipe data integer. Maka contoh penulisannya yaitu:
int bagus = 2;
14 digitalWrite(pinLED,LOW);
15 delay(500);
16 }
Nama-nama pin pada Arduino sama seperti yang tertera di board. Pada salah satu
sisi board, nama-nama pinnya adalah 0 hingga 13, kemudian di sisi lain nama-nama
pinnya A0 hingga A5, dst. Perintah pada baris 5 artinya: Variabel pinLED
merupakan konstanta dalam bentuk integer yang merujuk pada pin 8 board
Arduino. Fungsi pinMode() memberi tahu bahwa pinLED adalah Output. Dengan
demikian mikrokontroller tidak akan “membaca” logika pin tersebut, akan tetapi
dia hanya akan “menulis” logika pada pin tersebut. Dengan kata lain, jika pengguna
ingin mendefinisikan bahwa pin ini adalah input, maka tinggal mengubah
OUTPUT menjadi INPUT. Baris 11 sampai 16 adalah inti dari program yang akan
dieksekusi selama Arduino tersambung dengan listrik atau selama Arduino tidak
direset. pinLED diset HIGH berarti LED akan diberi tegangan 5 volt, sedangkan
LOW berarti LED akan diberi tegangan 0 volt. Oleh sebab itu, rangkaian LED di
atas akan menyala ketika diberi HIGH dan akan mati ketika diberi LOW. Fungsi
delay() digunakan untuk berhenti selama sekian milidetik. Karena 1 detik = 1000
milidetik, maka pemberian nilai 500 berarti Arduino akan jeda selama ½ detik
ketika LED nyala dan ½ detik ketika LED padam. Ada beberapa yang perlu
diperhatikan dalam menulis sketch ketika memprogram:
• Penulisan sketch itu case sensitive, artinya, tulisan “pinLED” tidak sama
dengan “PinLED”.
• Jika sketch di copy-paste dari file PDF ke Arduino IDE, maka kemungkinan
akan ada perubahan whitespace (spasi, tab, blank line). Jika spasi tergantikan
denan karakter tab atau blank line, maka sketch akan error.
• Setiap blok kode harus diapit dengan kurung kurawal “{‟ dan “}‟.
• Setiap ada kurung buka “(‟, harus ada kurung tutup “)‟. Jika kurungnya kurang,
itu bisa menyebabkan error.
• Penulisan angka tanpa embel-embel koma.
• Setiap baris kode akan ditutup dengan titik koma (semicolon) “;‟, kecuali di
akhir blok kode yang ditutup dengan kurung kurawal “}‟.
f. Menambah Keterangan pada Sketch
Dalam membuat kode program, penulis kode yang baik menyisipkan ketrangan
tambahan pada fungsi kode tersebut. Misal, keterangan fungsi, keterangan pin, atau
keterangan lainnya. Pada Arduino, komentar bisa disisipkan dengan dua cara:
1. Menggunakan double slash “//”,
Cara ini hanya bisa digunakan perbaris. Jadi jika banyak baris yang ingin
dijadikan komentar, caranya bisa menggunakan cara yang kedua. Contoh:
1 // ini adalah comment
2 // ini juga comment
3 // ini masih comment
2. Menggunakan pembuka “/*” dan penutup “*/”
1 /* ini adalah comment
2 ini juga comment
3 ini masih comment*/
4
5 /* ini comment */
8 void setup() {
9 //pin LED sebagai output
10 pinMode(pinLED, OUTPUT);
11 }
12
13 // awal time delay 1000 milisekon
14 int timeDelay = 1000;
15
16 void loop() {
17 // Setiap looping, nilai timeDelay dikurangi 100
18 timeDelay = timeDelay – 100;
19
20 /* Jika timeDelay bernilai 0 atau negative
21 maka nilai timeDelay direset ke 1000
22 */
23 if(timeDelay <= 0 ){
24 timeDelay = 1000;
25 }
26
27 //Nyalakan dan matikan LED selama timeDelay
28 digitalWrite(pinLED, HIGH);
29 delay(timeDelay);
30 digitalWrite(pinLED, LOW);
31 delay(timeDelay);
32 }
Perintah IF pasti akan diikuti dengan kondisi yang bernilai True yang
diapit dengan tanda kurung, if (kondisi). Pada Sketch 2.1 di atas kondisi
yang digunakan adalah timeDelay <= 0, timeDelay lebih kecil atau sama
dengan nol. Artinya, jika timeDelay bernilai 0 atau lebih kecil dari 0, maka
blok kode dalam if akan dieksekusi.
Selain operator <=, maka berikut ini adalah beberapa operator yang
sering digunakan:
Tabel 3 Operator Persamaan dan Perbandingan
Operator Arti
== Sama dengan
!= Tidak sama dengan
< Lebih kecil
> Lebih besar
<= Lebih kecil atau sama dengan
>= Lebih besar atau sama dengan
• Perintah IF-ELSE
Pada dasarnya IF-ELSE merupakan pengembangan dari IF. ELSE berarti
kondisi yang tidak sesuai dengan kondisi dalam IF. Dengan kata lain, ELSE
artinya “jika tidak”.
1 Main;
2 jika (sekarang == jam){
3 Makan
4 }
5
6
7
8 Jika (sekarang == jam 10){
9 Makan
10 }jika tidak{
11 Main;
12 }
Pada baris 1 sampai 5, maka Main akan terus dieksekusi. Jika sekarang
sama dengan jam 10, maka yang dilakukan adalah Main sambil Makan. Jadi
kedua kegiatan atau statemen akan dieksekusi. Berbeda dengan baris 8
sampai 12, jika jam 10 Makan, jika tidak jam 10, Main. Begitulah logika
IFELSE. Berikut merupakan contoh sketch menggunakan IF-ELSE.
1 // Panduan Praktikum
2 // Internet of Things
3 // coder DSS 21
4
5 // Pin 8 untuk LED
6 const int pinLED = 8;
7
8 void setup() {
9 //pin LED sebagai output
10 pinMode(pinLED, OUTPUT);
11 }
12
13 // awal time delay 1000 milisekon
14 int timeDelay = 1000;
15
16 void loop() {
17
18 /*Jika timeDelay bernilai lebih kecil sama dengan 0
19 maka LED akan diam selama 3 detik
20 lalu nilai timeDelay direset ke 1000
21 */
22 if(timeDelay <=100){
23 delay(3000);
24 timeDelay = 1000;
25 }else{
26 // nilai timeDelay dikurangi 100 jika time delay >100
27 timeDelay = timeDelay – 100;
28 }
29 //Nyalakan dan matikan LED selama timeDelay digitalWrite
30 (pinLED, HIGH);
31 delay(timeDelay);
32 digitalWrite(pinLED, LOW);
33 delay(timeDelay);
34 }
Pada Sketch diatas, jika timeDelay bernilai lebih kecil sama dengan 100,
maka akan LED akan diam selama 3 detik lalu nilai timeDelay akan direset
ke 1000, jika tidak maka akan dilakukan pengurangan terhadap timeDelay
sebanyak 100.
Jika kondisi sesuai, maka perintah atau source code yang ada dalam kurung
kurawal “{}” tersebut akan dieksekusi. Berikut merupakan sketch dengan
penggunaan WHILE.
1 // Panduan Praktikum
2 // Internet of Things
3 // coder DSS
4
5 // Pin 8 untuk LED
6 const int pinLED = 8;
7
8 void setup() {
41 digitalWrite(PinLED, LOW);
42 delay(100);
43
44 //tambahkan timeDelay dengan 100
45 timeDelay = timeDelay + 100;
46 }
47 }
Program pada Sketch 2.6 akan mengedipkan LED dengan durasi yang berbeda.
Awalnya LED akan berkedip dengan durasi ½ detik sebanyak 10 kali, selanjutnya
LED akan berkedip lebih cepat dengan durasi 1/10 detik sebanyak 10 kali.
Disana ada tanda && yang berarti AND. Penambahan tanda kurung untuk
memperjelas bahwa ada dua kondisi yang berbeda dan dihubungkan oleh operator
&&. Silakan diingat kembali bahwa operator logika AND akan menghasilkan nilai
True jika semua kondisi bernilai True. Selain operator AND, ada juga operator OR
dan NOT.
Statemen yang pertama berisi tentang kondisi awal, biasanya inisialisasi suatu
variabel atau data (misal, a=0). Sedangkan statemen yang terakhir adalah
perubahan yang akan terjadi pada variabel pada statemen awal (misal a=a+1).
Sedangkan kondisi merupakan kondisi dimana perulangan akan terjadi, ketika
kondisi sudah tidak sesuai, maka perulangan akan berhenti. untuk lebih jelasnya
tentang FOR, berikut contoh sederhananya:
1 // Panduan Praktikum
2 // Internet of Things
3 // coder DSS
4
5 // Pin 8 untuk LED
6 const int pinLED = 8;
7
8 void setup() {
9 //pin LED sebagai output
10 pinMode(pinLED, OUTPUT);
11 }
12
13 // awal time delay 1000 milisekon
14 int timeDelay = 3000;
15
16 void loop() {
17 //perulangan sebanyak 10 kali dari 1 hingga 10
Ketika program tersebut diupload, maka LED akan berkedip dengan durasi ½ detik
sebanyak 10 kali, kemudian LED akan diam (mati) selama 3 detik (nilai timeDelay
diganti 3000), dan melanjutkan berkedip lagi. Pada baris 18 menunjukkan FOR
dengan kondisi nilai awal i=1, i akan terus-menerus ditambah dengan 1 (i++)
selama perulangan selama i <= 10. Sederhananya, nilai i akan berubah dari 1, 2, 3,
4, … hingga 10. Bagian penting yang perlu dipahami adalah i++, i++ sama dengan:
𝑖 =𝑖+1
Selain i++, ada juga ++i, i--, dan --i. Penulisan i-- sama dengan i++, hanya saja i--
berarti i= i -1, atau i akan berkurang 1 terus-menerus selama perulangan.
Penempatan ++ di depan atau di belakang i berarti bahwa: jika ++ nya ada di
belakang, maka proses penambahannya dilakukan setelah blok kode dalam for
dijalankan. Tapi jika ++ nya ada di depan, maka proses penambahan akan
dilakukan sebelum proses dijalankan.
l. Serial Monitor
Serial monitor bisa digunakan untuk men-debug secara software. Jika tanpa serial
monitor, pengguna tidak bisa melakukan debug untuk aplikasi yang dibuat
sehingga untuk menemukan solusinya, pengguna harus men-debug dari sisi
hardware. Misal ketika ada error, pengguna akan mencoba dengan LED atau
menambah/mengurangi rangkaian.
Tapi jika menggunakan serial monitor, pengguna akan tahu error-nya melalui data
yang dikirimkan oleh Arduino. Misal ketika nyala LED terlalu lama atau terlalu
pelan, pengguna langsung bisa mengecek nilai (angka) yang digunakan untuk delay
dan semua isi variabel dalam program yang dibuat. Sehingga pengguna bisa
menelusuri logika dan algoritma program berdasarkan data-data yang dikirimkan
tadi.
Pada board arduino, pin 0 dan 1 ada tulisan RX dan TX. Pin tersebut berfungsi
untuk menerima dan mengirim data melalui komunikasi serial dari Arduino ke
komputer melalui kabel USB. Untuk menggunakan komunikasi serial tidak perlu
menambahkan komponen tambahan pada Arduino karena pada board tersebut
sudah disediakan. Cukup hanya dengan menghubungkan Arduino ke komputer,
dan bisa langsung membuat program.
1 // Panduan Praktikum
2 // Internet of Things
3 // coder DSS
4
5 void setup() {
6 Serial.begin(9600);
7 Serial.println(“Nama saya:”);
8 }
9
10 int number = 0;
11 void loop() {
12 Serial.print(“Agus”);
13 Serial.println( number++ );
14 delay(1000);
15 }
MODUL 2
FUNGSI OUTPUT PADA ARDUINO
TUJUAN PRAKTIKUM
1. Praktikan mampu mengoperasikan fungsi output pada Arduino.
2. Praktikan mampu memahami implementasi dari algoritma pemrograman pada
komponen output Arduino.
3. Praktikan mampu mengaplikasikan pemrograman menggunakan bahasa C++ pada
Arduino.
DASAR TEORI
A. PERANGKAT OUTPUT
Output pada sebuah sistem komputer merupakan sebuah hasil keluaran berupa
tindakan memberikan aksi dari perintah yang sudah dibuat. Perangkat output
merupakan sebuah perangkat yang memiliki fungsi untuk melakukan aksi atau hasil
yang diperintahkan oleh sistem. Pada Arduino terdapat beberapa perangkat output
yang digunakan dalam melakukan aksi dari sistem yang sudah deprogram sebelumnya.
Contoh dari output proram Arduino adalah lampu LED yang hidup ataupun berkedip
selama waktu tertentu sesuai dengan fungsi yang sudah diprogram sebelumnya. Ada
banyak prangkat output yang ada di Arduino, berikut adalah beberapa penjelasan
mengenai perangkat output yang ada di Arduino.
1. LED
LED merupakan singkatan dari Light Emiting Diode, yaitu diode yang mampu
mengubah listrik menjadi cahaya. Sebagaimana sifat diode, lampu LED memiliki
kaki positif dan negatif. Sehingga pemasangannya tidak boleh terbalik, jika
dipasang terbalik maka arus tidak akan mengalir dan LED pun tidak akan menyala.
Arduino bekerja pada tegangan 5-12 volt dengan arus yang relatif besar dan
sanggup memutuskan LED. Sehingga jika ingin menyambungkan LED, maka
dibutuhkan tahanan (resistor) untuk membatasi arus yang masuk ke LED. LED
memiliki tegangan kerja yang disebut dengan forward voltage (vf) yang mana
tegangan ini adalah tegangan yang dibutuhkan LED untuk bisa menyala dengan
baik. Ukuran resistor yang bisa dipakai adalah 100Ω hingga 1KΩ (Ω dibaca ohm,
satuan dari resistansi/hambatan), makin besar nilai resistor maka nyala LED akan
semakin redup. Pada Arduino, tegangan yang keluar dari pin-pinnya adalah 0-5
volt. Sementara catu daya untuk Arduino antara 5-12 volt. Oleh sebab itu,
pemilihan resistor tergantung tegangan mana yang akan digunakan.
Pada umumnya LED dibuat beraneka ragam warna, ada led yang hanya bisa
menampilkan satu warna, namun ada juga LED yang bisa menampilkan banyak
warna. Untuk penjalasan yang akan dicontohkan LED yang digunakan hanya bisa
menampilkan satu warna. Berikut adalah gambar dari LED.
Gambar 7 LED
LED memiliki 2 kaki, kaki yang pendek berarus negative, sedangkan kaki yang
panjang memiliki arus positif. Arus negatife tersambung dengan pin ground pada
mikrocotroller, sedangkan pin positif tersambung pada digital pin. Ada dua
perintah untuk mengoperasikan LED yaitu perintah “HIGH” untuk menghidupkan
LED dan perintah “LOW” untuk mematikan LED. Berikut adalah contoh
rangkaian.
3 pinMode(LED_BUILTIN, OUTPUT);
4 }
5
6 void loop()
7 {
8 // turn the LED on (HIGH is the voltage level)
9 digitalWrite(LED_BUILTIN, HIGH);
10 delay(1000); // Wait for 1000 millisecond(s)
11 // turn the LED off by making the voltage LOW
12 digitalWrite(LED_BUILTIN, LOW);
13 delay(1000); // Wait for 1000 millisecond(s)
14 }// awal time delay 1000 milisekon
15 int timeDelay = 3000;
2. Buzzer/Piezzo
Buzzer atau Piezzo merupakan sebuah perangkat output pada Arduino yang
memiliki fungsi untuk memberikan output berupa suara. Buzzer mengubah aliran
lisrtik yang dialirkan oleh microcontroller dan mengubahnya menjadi getaran pada
perangkat mekanis yang ada di dalamnya untuk menghasilkan suara. Ada dua jenis
buzzer yaitu active buzzer yang sudah memiliki suara sendiri saat diberi aliran
listrik dan passive buzzer yang belum memiliki suara sendiri. Buzzer yang sering
digunakan dalam Arduino adalah buzzer Piezzoelectric. Berikut adalah gambar
dari buzzer.
Gambar 9 Buzzer
Piezzo memiiki tiga bagian, bagian pertama adalah tubuh utama yang berfungsi
menghasilkan suara, bagian kedua adalah kaki pin negative yang terhubung ke pin
GND, dan kaki positif yang terhubung ke arus positif. Berikut adalah contoh
rangkaian buzzer.
3. Seven Segment
Seven segmen adalah sebuah display LED yang terdiri dari 7 segmen led yang tersusun
sehingga dapat menampilkan objek berupa angka dari 0 hingga 9 atau objek serupa
yang dapat terbentuk dari ketujuh garis tersebut. Berikut adalah gambar dari seven
segment.
Seven segment memiliki 7 katoda dan 10 kaki seperti gambar diatas. tujuh kaki
memiliki fungsi untuk menghidupkan sebuah segmen dan sisasnya sebagai sumber
arus. Berikut adalah contoh rangkaian dan kode untuk mengoperasikan seven segmen.
22 }
23
24 void loop()
25 {
26 disp1();
27 }
28 void disp1()
29 {
30 digitalWrite(A, HIGH);
31 digitalWrite(B, LOW);
32 digitalWrite(C, LOW);
33 digitalWrite(D, HIGH);
34 digitalWrite(E, HIGH);
35 digitalWrite(F, HIGH);
36 digitalWrite(G, HIGH);
37 }
4. LCD
LCD merupakan singkatan dari Liquid Crystal Display, atau umumnya disebut
dengan LCD atau display saja. Di pasaran beragam jenis LCD dan berbagai ukuran
yang bisa digunakan. LCD bisa untuk menampilkan huruf dan angka, bahkan ada
yang bisa untuk menampilkan gambar.
LCD ini berukuran 16x2 (2 baris 16 kolom) yang cukup untuk menampilkan
informasi jarak atau informasi yang tidak terlalu panjang. LCD ini dikenal juga
dengan LCD 1602 dengan beberapa varian seperti 1602A, dll.
LCD ini bisa bekerja pada 5 volt, sehingga bisa disambungkan secara langsung ke
pin VCC pada board Arduino. Jika menggunakan LCD jenis lainnya, ada juga LCD
yang bekerja pada voltase yang berbeda. Sehingga kesalahan pemasangan sumber
tegangan bisa membuat LCD rusak. Berikut merupakan contoh gambar dari LED.
Gambar 13 LCD
LCD 1602 memiliki 16 pin dengan fungsi-fungsi sebagai berikut:
Tabel 5 Fungsi Pin LCD
Simbol Value Fungsi
VSS 0V Ground
VDD +5V Power Supply / VCC
V0 - Pengaturan kontras backlight
RS H/L H = data, L = command
R/W H/L H = read, L = write
E H.H - L Enable Signal
D1-D3 H/L Jalur untuk transfer 8 bit data
D4-D7 H/L Jalur untuk transfer 4 & 8 bit data
A +5V VCC untuk backlight
K 0V GND untuk backlight
Untuk merangkai LCD, yang dibutuhkan adalah beberapa kabel jumper dan
sebuah potensiometer. Potensiometer ini berfungsi untuk mengatur kontras
backlight LCD.
1 // Panduan Praktikum
2 // Internet of Things
3 // coder DSS
4
5 #include <LiquidCrystal.h>
6
7 //Setting LCD RS E D4 D5 D6 D7
8 LiquidCrystal lcd(7,6,9,10,11,12);
9
10 void setup(){
11 //pilih LCD 16x2
12 lcd.begin(16,2);
13 lcd.print(“DSS Jaya”)
14 }
15
16 int hitung = 0;
17 void loop(){
18 //pindah ke baris kolom 1 baris ke 2
19 //array selalu dimulai dari 0
20 lcd.setCursor(0,1);
21 lcd.print ( hitung++ );
22 delay(1000)
23 }
Pada Arduino bisa menggunakan library untuk menulis LCD. Library tersebut adalah
LiquidCrystal.h. Untuk menggunakan library tersebut caranya bisa dengan meng-
include-nya seperti pada baris ke-8.
Perintah pada baris 8 adalah untuk melakukan setting LCD sesuai dengan library yang
dipakai. Fungsi lcd() adalah instansiasi dari class LiquidCrystal yang dipanggila pada
baris ke-8 memiliki parameter berturut-turut pin RS, E, D4, D5, D6, dan D7. Jika ingin
menggunakan format lainnya, maka bisa menggunakan beberapa pilihan parameter
seperti di bawah ini:
MODUL 3
INTEGRASI INPUT PROCESS DALAM ARDUINO
TUJUAN PRAKTIKUM
1. Praktikan mampu memahami jenis dan kegunaan dari perangkat input dari arduino
2. Praktikan memahami mengenai pembuatan system input dalam Arduino
3. Praktikan mampu menggunakan perangkat input Arduino dan mampu
mengintegrasikannya dengan perangkat output
4. Praktikan mampu mengaplikasikan Arduino dalam permasalahan sehari hari
5. Praktikan dapat mengaplikasikan penggunaan Arduino dalam sistem input pada
masalah kehidupan sehari-hari
DASAR TEORI
A. Input
Input dalam sistem komputer merupakan proses masuknya sebuah perintah, informasi
atau hasil pengindraan dari kondisi sekitar. Perangkat input merupakan sebuah
perangkat yang memberikan data atau informasi masukan kepada komputer atau
perangkat elektrik dengan tujuan sebagai sebuah tanda untuk melakukan proses atau
sebagai sumber informasi pemrosesan sistem. Pada Arduino ada banyak perangkat
input. Berikut adalah contoh dari perangkat input.
1. Sensor Ultrasonik
Sensor ultrasonik adalah sebuah sensor yang berfungsi untuk mengubah besaran
fisis (bunyi) menjadi besaran listrik dan sebaliknya. Cara kerja sensor ini didasarkan
pada prinsip dari pantulan suatu gelombang suara sehingga dapat dipakai untuk
menafsirkan eksistensi (jarak) suatu benda dengan frekuensi tertentu. Disebut
sebagai sensor ultrasonik karena sensor ini menggunakan gelombang ultrasonik
(bunyi ultrasonik).
Gelombang ultrasonik adalah gelombang bunyi yang mempunyai frekuensi sangat
tinggi yaitu 20.000 Hz. Bunyi ultrasonik tidak dapat di dengar oleh telinga manusia.
Bunyi ultrasonik dapat didengar oleh anjing, kucing, kelelawar, dan lumba-lumba.
Bunyi ultrasonik bisa merambat melalui zat padat, cair dan gas. Reflektivitas bunyi
ultrasonik di permukaan zat padat hampir sama dengan reflektivitas bunyi
ultrasonik di permukaan zat cair. Akan tetapi, gelombang bunyi ultrasonik akan
diserap oleh tekstil dan busa. Berikut ini adalah beberapa aplikasi dari gelombang
ultrasonik:
• Dalam bidang kesehatan, gelombang ultrasonik bisa digunakan untuk
melihat organ- organ dalam tubuh manusia seperti untuk mendeteksi tumor,
liver, otak dan menghancurkan batu ginjal. Gelombang ultrasonik juga
dimanfaatkan pada alat USG (ultrasonografi) yang biasa digunakan oleh
dokter kandungan.
• Dalam bidang industri, gelombang ultrasonik digunakan untuk mendeteksi
keretakan pada logam, meratakan campuran besi dan timah, meratakan
campuran susu agar homogen, mensterilkan makanan yang diawetkan dalam
kaleng, dan membersihkan benda benda yang sangat halus. Gelombang
ultrasonik juga bisa digunakan untuk mendeteksi keberadaan mineral maupun
minyak bumi yang tersimpan di dalam perut bumi.
• Dalam bidang pertahanan, gelombang ultrasonik digunakan sebagai radar
atau navigasi, di darat maupun di dalam air. Gelombang ultrasonik digunakan
oleh kapal pemburu untuk mengetahui keberadaan kapal selam, dipasang pada
kapal selam untuk mengetahui keberadaan kapal yang berada di atas
permukaan air, dan mengukur kedalaman palung laut.
Pada sensor ultrasonik, gelombang ultrasonik dibangkitkan melalui sebuah alat
yang disebut dengan piezoelektrik dengan frekuensi tertentu. Piezoelektrik ini akan
menghasilkan gelombang ultrasonik (umumnya berfrekuensi 40kHz) ketika sebuah
osilator diterapkan pada benda tersebut. Secara umum, alat ini akan menembakkan
gelombang ultrasonik menuju suatu area atau suatu target. Setelah gelombang
menyentuh permukaan target, maka target akan memantulkan kembali gelombang
tersebut. Gelombang pantulan dari target akan ditangkap oleh sensor, kemudian
sensor menghitung selisih antara waktu pengiriman gelombang dan waktu
gelombang pantul diterima.
Karena kecepatan bunyi adalah 340 m/s, maka rumus untuk mencari
340 . 𝑡
𝑆=
2
dimana S merupakan jarak antara sensor ultrasonik dengan benda (bidang pantul),
dan tadalah selisih antara waktu pemancaran gelombang oleh transmitter dan
waktu ketikagelombang pantul diterima receiver. HC-SR04 merupakan sensor
ultrasonik siap pakai, satu alat yang berfungsi sebagai pengirim, penerima, dan
pengontrol gelombang ultrasonik. Alat ini bisa digunakan untuk mengukur jarak
benda dari 2cm - 4m dengan akurasi 3mm. Dengan demikian, untuk menghitung
jarak yang hanya maksimal 4 m maka rumus di atas harus dimodifikasi atau
disesuaikan satuannya. Mikrokontroller bisa bekerja pada order mikrosekon (1s
= 1.000.000μs) dan satuan jarak bisa diubah ke satuan cm (1m = 100 cm). Oleh
sebab itu, rumus di atas bisa diupdate menjadi:
100
340 (1000000) . 𝑡
𝑆=
2
0,034 . 𝑡
𝑆=
2
Alat ini memiliki 4 pin, pin Vcc, Gnd, Trigger, dan Echo. Pin Vcc untuk listrik
positif dan Gnd untuk ground-nya. Pin Trigger untuk trigger keluarnya sinyal dari
sensor dan pin Echountuk menangkap sinyal pantul dari benda.
Cara menggunakan alat ini yaitu:
- Ketika memberikan tegangan positif pada pin Trigger selama 10μS, maka
sensor akanmengirimkan 8 step sinyal ultrasonik dengan frekuensi 40kHz
- Selanjutnya, sinyal akan diterima pada pin Echo
- Untuk mengukur jarak benda yang memantulkan sinyal tersebut, selisih waktu
ketikamengirim dan menerima sinyal digunakan untuk menentukan jarak benda
tersebut
- Rumus untuk menghitung jaraknya adalah S = (0.034 *t) /2 cm.
Berikut adalah visualisasi dari sinyal yang dikirimkan oleh sensor HC-SR04
Berikut merupakan salah satu contoh sketch program sensor jarak dengan
sensor ultrasonic.
1 // Panduan Praktikum
2 // Internet of Things
3 // coder DSS
4
5 // pin 9 trigger
6 // pin 10 echo
7 const int pTrig = 9;
8 const int pEcho = 10;
9
10 void setup() {
11 Serial.begin(9600);
12 pinMode(pTrig, OUTPUT);
13 pinMode(pEcho, INPUT);
14 }
15
16 long durasi = 0;
17 void loop() {
18 //trigger selama 10µs
19 digitalWrite(pTrig, HIGH);
20 delayMicroseconds(10);
21 digitalWrite(pTrig, LOW);
22
23 durasi = pulseIn (pEcho, HIGH);
24 Serial.print(“Durasi: “);
25 Serial.print(durasi);
26
29 delay(1000);
30 }
Program pada Sketch 7.1 akan mengaktifkan pin Trigger selama 10μs, kemudian
akan menunggu hingga pin Echo bernilai HIGH. Fungsi pulseIn() akan
memerintahkan sistem untuk menunggu hingga pin Echo bernilai HIGH. Lama
proses menunggu akan dianggap sebagai durasi pengiriman + penerimaan sinyal
echo yang dipantulkan oleh benda. Sedikit penjelasan tentang fungsi pulseIn(),
fungsi ini standarnya memiliki 3 parameter, 2 parameter Pin dan Value dan 1
parameter Timeout sebagai parameter tambahan:
pulseIn(Pin, Value);
pulseIn(Pin,Value,
Timeout);
Pada parameter Value, bisa memasukkan HIGH atau LOW, Arduino akan
menunggu hingga kondisi tersebut dipenuhi. Sedangkan Timeout digunakan ketika
dalam waktu tertentu kondisi belum juga terpenuhi.
2. PIR Sensor
PIR (Passive Infrared Receiver) adalah sebuah perangkat input pada Arduino yang
memiliki fungsi untuk menangkap keadaan sekitar berupa sebuah gerakan. Sensor
PIR terbuat dari perangka pyroelectric yang dapat mendeteksi sebuah gerakan pada
jangkauan. Berikut adalah gambar dari sensor PIR.
2 int motion;
3 void setup()
4 {
5 Serial.begin(9600);
6 pinMode(PirPin,INPUT);
7 }
8 void loop ()
9 {
10 motion=digitalRead(PirPin);
11 if (motion == 1)
12 {
13 Serial.println("There is a Motion...");
14 }
15 else
16 {
17 Serial.println("There is no Motion...");
18 }
19 }
3. Photoresistor
Photoresistor atau sensor cahaya merupakan sebuah sensor Arduino yang menerima
rangsangan cahaya yang ada di sekitar. Photo resistor merupakan sebuah resistor
yang terbuat dari sel cahaya yang sensitif terhadap cahaya. Berikut adalah gambar
sensor cahaya.
Gambar 20 Photoresistor
Photoresistor memiliki 2 kaki, sabuah kaki sebagai pin input dan sebuah kaku
sebagai sumber arus. cara kerja dari photo resistor adalah sel surya akan menerima
rangsangan cahaya yang ada di sekitar, lalu sensor cahaya akan mengirimkan
informasi cahaya ke mikrikontroller untuk diolah. Berikut adalah contoh rangkaian
photoresistor.
4. Temperature Sensor
Temperature sensor adalah sebuah sensor yang digunakan untuk mendeteksi suhu
yang ada di sekitar perangkat. Temperature sensor yang biasa digunakan adalah
jenis LM35 yang dianggap lebih unggul dalam kalibrasi dan menggunakan skala
suhu celcius sehingga tidak perlu mengkonversi hasil pemindaian sensor. Selain itu
LM35 mampu mendeteksi suhu pada rentang 55°C hingga 150°C. berikut adalah
gambar dari sensor suhu LM35.
9 Serial.println((100.0/205.0)*(Vol-153.0)+25.0);
10 delay(500);
11 }
5. float distance;
6. float duration;
7. // initialize the library with the numbers of the interface pins
8. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
9. void setup() {
16. lcd.setCursor(0,1);
18. delay(1000);
19. }
21. digitalWrite(trigPin,0);
22. delayMicroseconds(2);
23. digitalWrite(trigPin,1);
24. delayMicroseconds(10);
25. digitalWrite(trigPin,0);
28. lcd.clear();
29. lcd.setCursor(0,0);
30. lcd.print(distance);
32. lcd.setCursor(0,1);
33. lcd.print(distance/2.54);
35. delay(100);
36. }
TIMELINE PRAKTIKUM
Oktober November
Senin Selasa Rabu Kamis Jumat Sabtu Minggu Senin Selasa Rabu Kamis Jumat Sabtu Minggu
24 25 26 27 28 29 30 31 1 2 3 4 5 6
Modul 1 Modul 2
Pengumpulan
Pengumpulan TP Pretest
Briefing TP Tugas
Tugas Modul 1 Laporan Modul 2
Pretest Briefing
Post Test
Brirefing Modul 1 Modul 2
November
Senin Selasa Rabu Kamis Jumat Sabtu Minggu Senin Selasa Rabu Kamis Jumat Sabtu Minggu
7 8 9 10 11 12 13 14 15 16 17 18 19 20
Modul 2 Modul 3
Pengumpulan Briefing
Laporan Modul 2 Laporan Modul 3 laporan Modul 3
Post test Pretest
November Desember
Senin Selasa Rabu Kamis Jumat Sabtu Minggu Senin Selasa Rabu Kamis Jumat Sabtu Minggu
21 22 23 24 25 26 27 28 29 30 1 2 3 4
Modul 3
Presentasi Akhir (akan diinformasikan lebih
Pengumpulan Laporan
laporan Modul 3 lanjut)
Posttest
DATA ASISTEN
Aqila Nurfadiyah
3 21070120110054 [email protected] azzahra.aqila
Azzahra
Aqila Tunjung
4 21070119130092 [email protected] aqila3747
Chandra
Bagus Emirsyach
5 21070119130064 [email protected] bagusey
Yudhistira
I Wayan Gede
8 21070119130077 [email protected] iwayan_gede
Ananta Wijaya
Ihsanudin Halim
9 21070120130080 [email protected] ihsanudinhf_
Fajrian
Muhammad Faiz
10 21070119130051 [email protected] faiz.noor
Noor Arifin
Muhammad Fitrah
11 21070119130078 [email protected] atokmaster12
Athaillah
Sheila Syifa
15 21070119130074 [email protected] sheilassalsabila
Salsabila