Anda di halaman 1dari 116

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/363429895

Pemrograman Dasar Internet of Things Menggunakan ESP8266

Book · September 2022

CITATIONS READS

0 978

5 authors, including:

Hollanda Arief Kusuma Tonny Suhendra


Universitas Maritim Raja Ali Haji Universitas Maritim Raja Ali Haji
35 PUBLICATIONS   33 CITATIONS    22 PUBLICATIONS   29 CITATIONS   

SEE PROFILE SEE PROFILE

Anton Hekso Yunianto Rohani Br Siagian


Universitas Maritim Raja Ali Haji Universitas Maritim Raja Ali Haji
14 PUBLICATIONS   73 CITATIONS    2 PUBLICATIONS   0 CITATIONS   

SEE PROFILE SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Coral Input Data Instrument View project

transistor, kontrol PWM, motor dc View project

All content following this page was uploaded by Hollanda Arief Kusuma on 10 September 2022.

The user has requested enhancement of the downloaded file.


ii
Pemrograman Dasar Internet of Things
Menggunakan ESP8266
Membuat perangkat Internet of Things sederhana
menggunakan wemos D1 mini

Hollanda Arief Kusuma, S.IK, M.Si


Tonny Suhendra, S.T., M.Cs
Ir. Anton Hekso Yunianto, S.T., M.Si
Farista Egistian, S.T.
Rohani B.R Siagian, S.T.

I
Pemrograman Dasar Internet of Things Menggunakan ESP8266
Hollanda Arief Kusuma, S.IK, M.Si
Tonny Suhendra, S.T., M.Cs
Ir. Anton Hekso Yunianto, S.T., M.Si
Farista Egistian, S.T.
Rohani B.R Siagian, S.T.

© Hollanda Arief Kusuma, S.IK, M.Si, Tonny Suhendra, S.T., M.Cs, Ir. Anton Hekso
Yunianto, S.T., M.Si, Farista Egistian, S.T., Rohani B.R Siagian, S.T., 2022

Editor: Hollanda Arief Kusuma

viii, 211 hlm, 15,5 cm x 23,5 cm


Cetakan 1, Agustus 2022
ISBN : 978-623-5818-48-1

Hak Penerbitan pada UMRAH Press, Tanjungpinang

Kantor:
Kampus Universitas Maritim Raja Ali Haji, Gedung Rektorat Lantai III
Jl. Dompak, Tanjungpinang - Kepulauan Riau 29111
Telp/Fax : (0771) 7001550 – (0771) 7038999, 4500091
E-mail : umrahpress@gmail.com / umrahpress@umrah.ac.id

Hak cipta dilindungi Undang-Undang.


Dilarang mengutip atau memperbanyak sebagian atau seluruh isi buku ini
tanpa izin tertulis dari Penerbit

II
Prakata
Segala puji bagi Allah Swt Tuhan Yang Maha Esa, berkat limpahan rahmat serta
kemudahan yang diberikan kepada penulis sehingga dapat menyelesaikan buku
“Pemrograman Dasar Internet of Things Menggunakan ESP8266” dengan lancar.
Sholawat serta salam tidak lupa untuk Nabi Besar Muhammad SAW. Ucapan
terimakasih tentunya kepada seluruh pihak yang mendukung penulis selama proses
penulisan buku ini sehingga dapat selesai dengan baik.

Buku yang berjudul “Pemrograman Dasar Internet of Things Menggunakan ESP8266”


ini diharapkan dapat memberikan manfaat dan sumber pembelajaran bagi pembaca
terutama siswa dan mahasiswa untuk memahami tentang pembuatan perangkat
Internet of Things (IoT) yang sederhana sehingga buku ini dapat menjadi panduan
dalam kehidupan sehari-hari di masyarakat.

Kami penulis menyadari bahwa buku ini masih ada beberapa kekurangan. Oleh
karena itu, kami berharap pembaca dapat memberikan kritik serta saran terhadap
buku “Pemrograman Dasar Internet of Things Menggunakan ESP8266” Ini agar
kedepannya buku ini dapat menjadi lebih baik sebagai media pembelajaran yang
bermanfaat bagi penulis dan orang banyak.

Demikian buku ini kami buat, besar harapan penulis terhadap pembaca agar buku
ini menjadi sumber inspirasi untuk terus berinovasi. Atas perhatiannya penulis
mengucapkan terima kasih.

Tanjungpinang, Agustus 2022

Penulis

III
IV
DAFTAR ISI

PRAKATA ................................................................................................................... III

DAFTAR ISI ..................................................................................................................V

1. PENGENALAN ESP8266 ......................................................................................... 9

A. SPESIFIKASI ESP8266 ............................................................................................ 9


B. MODUL ESP8266 ................................................................................................... 9
(1) ESP-01....................................................................................................................... 10
(2) NodeMCU .................................................................................................................. 10
(3) Wemos D1 Mini ......................................................................................................... 11

2. PENGENALAN ARDUINO IDE ............................................................................... 13

A. UNDUH ARDUINO IDE .......................................................................................... 13


B. INSTALASI ARDUINO IDE ..................................................................................... 15
C. MENU PADA ARDUINO IDE ................................................................................... 18
(1) Menu Utama .............................................................................................................. 18
(2) Menu Edit .................................................................................................................. 19
(3) Menu Sketch .............................................................................................................. 20
(4) Menu Tools ................................................................................................................ 20
(5) Menu Help ................................................................................................................. 21
D. TOOLBAR UTAMA ................................................................................................. 21
E. KONSOL TEKS ...................................................................................................... 22
F. SCRIPT EDITOR .................................................................................................... 22
G. KONFIGURASI PREFERENCES ............................................................................. 23

3. KONFIGURASI DAN PENGATURAN WEMOS D1 MINI BOARD ............................... 25

A. PEMERIKSAAN BOARD WEMOS D1 MINI .............................................................. 25


B. INSTALASI USB TO SERIAL CH340G ..................................................................... 25
C. INSTALASI ESP8266 BOARD MANAGER ................................................................ 26
D. KONFIGURASI WEMOS D1 MINI ........................................................................... 28

4. PENGENALAN MODUL SHIELD WEMOS D1 MINI BOARD ..................................... 31

A. SENSOR SUHU DAN KELEMBABAN DHT11 .......................................................... 31


B. MODUL DATA LOGGER SHIELD ........................................................................... 31
C. PROTOSHIELD ..................................................................................................... 33
D. LCD 16X2 I2C ....................................................................................................... 33

5. FIRST SKETCH ................................................................................................... 35

A. PENGUNGGAHAN FIRMWARE .............................................................................. 35


V
B. PENJELASAN SINTAK PROGRAM .......................................................................... 38

6. PEMBACAAN DATA SENSOR DHT11 ................................................................... 41

A. INSTALASI LIBRARY DHT11.................................................................................. 41


B. KONFIGURASI PIN DHT11 KE WEMOS D1 MINI .................................................... 44
C. SKETCH DHT11 ................................................................................................... 44
D. PENJELASAN SINTAK PROGRAM .......................................................................... 46
E. TROUBLESHOOTING ........................................................................................... 47

7. PENAMPILAN DATA PADA LCD ........................................................................... 49

A. INSTALASI LIBRARY LCD 16X2 ............................................................................. 49


B. KONFIGURASI PIN LCD 16X2 I2C KE WEMOS D1 MINI .......................................... 52
C. SKETCH I2C SCANNER......................................................................................... 52
D. SKETCH LCD 16X2 I2C ......................................................................................... 53
E. PENJELASAN SINTAK PROGRAM .......................................................................... 54
LiquidCrystal() .................................................................................................................. 55
lcd.begin() ......................................................................................................................... 55
lcd.setCursor() ................................................................................................................... 56
lcd.print() ........................................................................................................................... 56
lcd.clear() .......................................................................................................................... 56
F. PENGGABUNGAN DHT11 DAN LCD 16X2 I2C ........................................................ 57

8. WAKTU REAL TIME CLOCK ................................................................................ 59

A. INSTALASI LIBRARY DS1307 ................................................................................ 59


B. KONFIGURASI PIN RTC DI WEMOS D1 MINI DATALOGGER .................................. 61
C. SKETSA PENGATURAN WAKTU ............................................................................ 61
D. SKETSA PEMBACAAN WAKTU .............................................................................. 63
E. PENJELASAN SINTAK LIBRARY RTCLIB ................................................................ 65
RTC_DS1307 .................................................................................................................... 65
RTC.begin() ....................................................................................................................... 65
RTC.isrunning() ................................................................................................................. 65
RTC.adjust() ...................................................................................................................... 65
RTC.now() ......................................................................................................................... 65
RTC.year() ......................................................................................................................... 66
RTC.month() ...................................................................................................................... 66
RTC.day() .......................................................................................................................... 66
RTC. dayOfTheWeek()....................................................................................................... 66
RTC.hour() ......................................................................................................................... 66
RTC.minute() ..................................................................................................................... 66
RTC.second() ..................................................................................................................... 66

VI
F. PENGGABUNGAN DHT11, LCD 16X2 I2C, DAN DS1307 ......................................... 67

9. PENYIMPANAN DATA DI MICRO SD ..................................................................... 69

A. PENGENALAN KARTU MICRO SD .................................................................................. 69


B. KOMUNIKASI SPI ..................................................................................................... 70
C. LIBRARY SD ......................................................................................................... 71
D. KONFIGURASI PIN WEMOS D1 DATA LOGGER ..................................................... 72
E. SKETSA PENGECEKAN KARTU MICRO SD ............................................................ 72
F. SKETSA PENYIMPANAN DATA KE DALAM KARTU MICRO SD ................................ 76
G. PENJELASAN SINTAK PENYIMPANAN DATA .......................................................... 78
H. PENGGABUNGAN DHT11, LCD 16X2 I2C, DS1307, DAN MICRO SD ....................... 79

10. KONEKSI WIFI .................................................................................................... 83

A. MODE OPERASI WEMOS D1 MINI ......................................................................... 83


B. MENGHUBUNGKAN KE WIFI HOTSPOT ................................................................ 83
C. PENJELASAN SINTAK KONEKSI HOTSPOT ............................................................ 85
D. PENGGABUNGAN SKETSA WIFI DENGAN SENSOR DHT11, LCD 16X2 I2C,
DS1307, DAN MICRO SD ...................................................................................... 85

11. CAYENNE MYDEVICES ........................................................................................ 91

A. REGISTRASI CAYENNE MYDEVICES ..................................................................... 91


B. INSTALASI LIBRARY CAYENNE ............................................................................. 93
C. PEMBUATAN DASHBOARD PADA CAYENNE ......................................................... 95
D. MENGHUBUNGKAN WEMOS D1 MINI DENGAN PLATFORM CAYENNE .................. 96

12. PENGATURAN DASHBOARD ................................................................................ 99

A. SKETSA PROGRAM PEMANTAUAN KUALITAS UDARA ........................................... 99


B. PENJELASAN SINTAK LIBRARY CAYENNE .......................................................... 103
Cayenne.begin(username, password, clientID); .............................................................. 103
Cayenne.virtualWrite(nomor channel, variabel); ............................................................. 103
C. PENGATURAN DASHBOARD CAYENNE ............................................................... 103
D. BERBAGI DASHBOARD ...................................................................................... 107

VII
VIII
1. PENGENALAN ESP8266

Bagi yang belum pernah tahu pasti akan bertanya-tanya apa itu Internet of Things.
Istilah Internet of Things (IoT) diperkenalkan pertama kali pada tahun 2003 oleh
David Brock. Istilah ini kemudian digunakan secara luas oleh peneliti dan praktisi
untuk menjelaskan kombinasi perangkat elektronik yang mampu berkomunikasi
dan mengirimkan data ke internet. Internet of things dapat diartikan sebagai sistem
tertanam yang terdiri dari sensor dan mikroprosesor yang terhubung ke jaringan
internet.

Mungkin bagi kita pemula, terkadang kita berpikir bahwa membuat perangkat IoT
itu susah. Namun, sebetulnya sangat mudah mengembangkan perangkat IoT
sederhana. Syaratnya kita hanya perlu mempunyai sensor, mikrokontroler, dan
jaringan internet. Agar kita bisa membuat perangkat ini maka pada bagian ini kita
akan belajar mengenal mikrokontroler ESP8266 yang akan digunakan pada proyek
IoT di buku ini.

A. SPESIFIKASI ESP8266
ESP8266 dikembangkan oleh Espressif, sebuah perusahaan yang berlokasi di
Shanghai, China. ESP8266 dilengkapi dengan Tensilica L106 32-bit microcontroller
(MCU). Kecepatan osilasi sebesar 80 MHz. ESP8266 dilengkapi dengan WIFI
transceiver sehingga mampu terkoneksi dengan WIFI router maupun menjadi Access
Point. Chip ini memiliki 17 pin dimana 11 pin digunakan sebagai pin I/O (Input /
Output) dan 6 pin untuk komunikasi dengan chip memori flash. ESP8266 bekerja
pada tegangan operasi 3.3 V. ESP8266 dilengkapi dengan komunikasi SPI, I2C, dan
UART. Chip ini juga mampu melakukan konversi analog ke digital sebesar 10 bit.

B. MODUL ESP8266
Sebelum kita membuat sebuah perangkat IoT, kita perlu mengenal dulu modul
ESP8266 yang ada di pasaran agar kita kita salah memilih. Ada banyak modul yang
sekarang tersedia di marketplace seperti tokopedia, bukalapak, shopee, dll.

9
Selama beberapa tahun, ESP8266 telah berkembang menjadi primadona dalam
pengembangan perangkat IoT. Harganya sangat terjangkau. Modul ini juga dapat
diprogram menggunakan Arduino IDE yang akan akan kita bahas ke depannya.

(1) ESP-01

Modul ini merupakan versi pertama yang tersedia di pasaran. Modul ini digunakan
sebagai WIFI adaptor yang terhubung dengan mikrokontroler seperti Arduino. AT
Command digunakan untuk berkomunikasi dengan modul ini. Kelemahan dari
modul ini ialah pin I/O yang terbatas. Selain itu, juga susah untuk dipasangkan ke
project board.

(2) NodeMCU

Modul ini dikembangkan oleh NodeMCU. Modul ini berdasarkan modul ESP-12E
yang memiliki Tensilica Xtensa® 32-bit LX106 RISC mikroprosesor dengan frekuensi
osilasi antara 80 hingga 160 MHz. modul ini dilengkapi dengan chip USB to serial
sehingga mudah diprogram pada Arduino IDE.

Modul ini bekerja di tegangan 3.3V. Tapi kita bisa menggunakan tegangan 5V dari
micro USB connector. Modul ini dilengkapi dengan regulator tegangan sehingga bisa
disuplai tegangan 9-12V dari pin VIN.

10
(3) Wemos D1 Mini

Wemos D1 Mini merupakan modul berbasis WIFI yang menggunakan chip


ESP8266EX. Modul ini mudah digunakan karena dapat dipasang di project board
secara mudah. Selain itu, module shield untuk tipe ini banyak tersedia dan sangat
membantu dalam pembuatan perangkat IoT. Module shield development yang
dimaksud antara lain:
 OLED Shield
 DHT Shield
 Battery LiPo Shield
 Buzzer Shield
 1-Button Shield
 Relay Shield
 ProtoBoard Shield
 DC Power Shield
 DHT11 Shield
 Micro SD Card Shield

11
Modul ini bekerja di tegangan 3.3V, memiliki 11 pin I/O, 1 pin analog, dilengkapi
dengan chip USB to Serial dan micro USB connector sehingga mudah diprogram di
Arduino IDE. Modul ini yang akan digunakan dalam pengembangan perangkat IoT
di buku ini.

Deskripsi Pin WeMos D1 Mini


Pin Fungsi Pin Fungsi
Tx Transmitter D5 Pin I/O, SCK
Rx Receiver D6 Pin I/O, MISO
A0 Pin Analog D7 Pin I/O, MOSI
D0 Pin I/O D8 Pin I/O, 10k pull down, SS
D1 Pin I/O, SCL G Ground
D2 Pin I/O, SDA 5V Tegangan 5V
D3 Pin I/O, 10k pull up 3.3V Tegangan 3.3V
D4 Pin I/O, 10k pull up, BUILT_IN LED RST Reset

12
2. PENGENALAN ARDUINO IDE

Arduino IDE merupakan tempat dimana kita mencurahkan ide kita ke dalam bentuk
kode-kode. Kita mengatur perintah yang akan dijalankan melalui firmware yang
dibuat di Arduino IDE. IDE (Integrated Development Environment) ialah program
khusus yang dijalankan di komputer kita dan memungkinkan kita menulis sketch.
Sketch itu sendiri merupakan istilah untuk kode-kode sintak program Arduino IDE.
Proses yang diperlukan untuk mengubah sketch menjadi bentuk yang dapat
digunakan di dalam Board dinamakan kompilasi (Compilation).

Sebelum kita menggunakan WeMos D1 Mini dalam proyek kita, kita perlu
melakukan instalasi Arduino IDE agar dapat memprogram chip ini. Arduino IDE
digunakan untuk memprogram karena mudah dan banyak sekali tutorial yang dapat
membantu kita memahami program yang akan dibuat. Pada bagian ini akan
dijelaskan bagaimana cara mendapatkan software Arduino IDE dan
menginstalasinya ke dalam laptop kita.

A. UNDUH ARDUINO IDE


Pastikan laptop terhubung dengan koneksi internet. Buka web browser kesukaan
anda (Mozilla Firefox atau Google Chrome). Buka halaman pengunduhan Arduino
IDE di https://www.arduino.cc/en/Main/Software. Lalu klik Windows installer
(kotak merah) untuk mengunduh program Arduino terbaru. Kita dapat memilih Just
download untuk mengunduh aplikasinya atau contribute & Download jika ingin
berdonasi ke Arduino. Setelah itu kita simpan file unduhannya.

13
14
B. INSTALASI ARDUINO IDE
Setelah unduhan selesai maka kita lakukan instalasi program Arduino IDE. Klik dua
kali pada Arduino-1.8.13-windows.exe.

15
Jika muncul tampilan Arduino Setup, maka kita klik I Agree.

Lalu pilih opsi instalasi. Biarkan sesuai default. Kemudian klik Install.

Pilih folder instalasi. Biarkan secara default, lalu klik Install.

16
Tunggu proses instalasi hingga selesai. Klik Close.

Setelah instalasi selesai dilakukan maka kita buka Arduino IDE 1.8.13. tampilannya
akan seperti berikut ini:

17
C. MENU PADA ARDUINO IDE

(1) Menu Utama

Menu utama terdiri dari File., Edit, Sketch, Tools, dan Help. Seluruh operasi dan
pilihan dapat diakses melalui menu utama.

Menu File

Pada menu File, kita dapat melakukan


beberapa hal :

A. Membuat sketch baru (New, Ctrl+N)

B. Membuka sketch yang telah dibuat


(Open, Ctrl+O)

C. Menyediakan daftar sketch yang


paling baru dibuka (Open Recent)

D. Membuka folder Sketchbook yang


ada (Sketchbook)

E. Membuka contoh-contoh sketch


yang telah disediakan Arduino IDE
atau library yang telah diinstall
(Examples)

F. Menutup sketch yang aktif (Close,


Ctrl+W)

G. Menyimpan sketch (Save, Ctrl+S)

H. Menyimpan sketch dengan nama file yang lain (Save As, Ctrl+Shift+S)

I. Mengatur ukuran kertas untuk mencetak (Page Setup, Ctrl+Shift+P)

J. Mencetak sintak ke printer (Print, Ctrl+P)

K. Mengatur Preferensi di dalam Arduino IDE (Preferences, Ctrl+Comma)

L. Menutup Arduino IDE (Quit, Ctrl+Q)

18
(2) Menu Edit

Pada menu Edit, kita dapat melakukan beberapa hal :

A. Perintah untuk menghapus


perubahan yang baru saja
dilakukan (Undo, Ctrl+Z)

B. Mengulangi perintah yang baru


saja dihapus (Redo, Ctrl+Y)

C. Memotong bagian yang dipilih (Cut,


Ctrl+X)

D. Menyalin bagian yang dipilih (Copy,


Ctrl+Y)

E. Menyalin untuk ditempatkan di


forum Arduino (Copy for Forum,
Ctrl+Shift+C)

F. Menyalin sebagai teks HTML (Copy


as HTML, Ctrl+Alt+C)

G. Menimpa/menyisipkan tulisan
yang disalin atau dipotong (Paste,
Ctrl+V)

H. Memilih semua kode untuk siap disalin atau dipotong (Select All, Ctrl+A)

I. Menuju Baris tertentu (Go to line..., Ctrl+L)

J. Mencetak sintak ke printer (Print, Ctrl+P)

K. Mengubah bagian yang dipilih menjadi komentar atau mengembalikan bagian


komentar menjadi sintak (Comment/Uncomment, Ctrl+’/’)

L. Menambahkan inden/menjorok ke dalam (Increase Indent, Tab)

M. Mengurangi inden/menjorok ke luar (Decrease Indent, Shift+Tab)

N. Mencari di dalam sintak (Find, Ctrl+F)

O. Mencari berikutnya (Find Next, Ctrl+G)

P. Mencari sebelumnya (Find Previous, Ctrl+Shift+G)

19
(3) Menu Sketch

Menu ini berhubungan dengan operasi pengubahan sketch menjadi firmware yang
akan dimasukkan ke dalam Arduino Board dan library yang akan digunakan di
dalam sketch.

Menu Sketch terdiri dari:

A. Melakukan verifikasi sintak atau


mengkompilasi sintak (Verify/Compile,
Ctrl+R)
B. Melakukan pengunggahan firmware ke
Arduino Board (Upload, Ctrl+U)
C. Pengunggahan firmware menggunakan
programmer terpisah (Upload Using
Programmer,Ctrl+Shift+U)
D. Mengekspor file binary yang sudah dikompilasi (Export compiled Binary,
Ctrl+Alt+S)
E. Menampilkan folder Sketch (Show Sketch Folder, Ctrl+K)
F. Menambahkan library ke dalam sintak dengan menambahkan #include pada
bagian awal sintak (Include Library)
G. Menambahkan file ke dalam folder sketch (Add File…

(4) Menu Tools

Menu Tools digunakan untuk


menentukan Arduino Board
yang digunakan atau yang akan
diunggah firmware-nya.
Pemilihan Arduino Board yang
salah akan menyebabkan
kesalahan dalam pengunggahan
firmware. Selain pemilihan
Arduino Board yang harus tepat,
kita juga harus memilih Port
tempat Arduino Board
terkoneksi dengan komputer.
20
Berikut merupakan isi Menu Tools:

A. Melakukan format/ perataan baris secara otomatis pada sketch (Auto Format,
Ctrl+T)

B. Mengarsipkan/membungkus sketch ke dalam bentuk zip (Archive Sketch)

C. Memperbaiki kemungkinan perbedaan antara encoding char map Editor dan


sistem operasi yang lain (Fix encoding & Reload)

D. Membuka Monitor Serial untuk melihat data yang diterima dari komunikasi
Arduino Board sesuai dengan perintah yang diunggah melalui firmware (Serial
Monitor, Ctrl+Shift+M)

E. Memplotkan nilai yang keluar dari Arduino Board (Serial Plotter, Ctrl+Shift+L)

F. Mengunggah firmware terbaru pada modul WIFI (WiFi101 Firmware Updater)

G. Memilih Board yang akan digunakan (Board)

H. Memilih Port tempat Arduino Board terkoneksi dengan komputer (Port)

I. Memilih programmer eksternal yang akan digunakan untuk mengunggah


firmware ke Arduino Board (Programmer)

J. Burn bootloader : melakukan pengunggahan bootloader ke Arduino Board.

(5) Menu Help

Menu Help berisi bantuan dan manual untuk memahami Arduino IDE dan
pemrogramannya. Manual dasar ini tersedia offline yang dibuka pada web browser.
Ada beberapa bagian dari manual ini yang harus terhubung dengan internet untuk
mengaksesnya.

D. TOOLBAR UTAMA

Pada Toolbar ini terdapat beberapa icon yang bisa di klik untuk menjalankan fungsi
dari menu yang ada. Berikut ini penjelasan dari masing-masing icon pada toolbar
utama Arduino IDE:

21
Verify/Compile. Pengecekan kesalahan pada sintak yang ditulis.

Upload. Sintak diunggah ke dalam Arduino Board.

New Sketch. Membuat File Sketch baru.

Open Sketch. Membuka File Sketch yang ada.

Save Sketch. Menyimpan File Sketch yang dibuat.

Serial Monitor. Membuka Monitor Serial.

E. KONSOL TEKS
Kotak berwarna hitam ini digunakan untuk melihat status dari proses yang sedang
berjalan dan pesan kesalahan yang timbul pada saat kompilasi maupun
pengunggahan firmware. Pada sisi kiri bawah menandakan jumlah baris pada
Sketch dan pada bagian kanan bawah menandakan Arduino Board yang dipilih dari
Menu Tools.

F. SCRIPT EDITOR
Bagian ini merupakan bagian utama dari Arduino IDE dimana kita menulis sintak
program. Secara umum, sintak yang disediakan oleh Arduino IDE ialah void setup()
dan void loop().

void setup () akan dipanggil pada saat Arduino Board dinyalakan. void setup ()
digunakan untuk inisialisasi variabel, mode pin, inisialisasi library yang digunakan,
dan sebagainya. Fungsi setup ini hanya berjalan sekali pada saat dinyalakan yaitu
saat power up dan reset.

22
void loop() digunakan untuk melaksanakan atau mengeksekusi perintah dari
program yang telah dibuat. void loop() akan selalu dijalankan selama Arduino Board
menyala. void loop() harus tetap ada di dalam script editor walaupun tidak ada sintak
di dalamnya.

Selain void setup() dan void loop(), kita juga bisa menambahkan header library yang
akan digunakan dengan menambahkan #include pada bagian awal program; jenis
variabel yang digunakan; dan fungsi-fungsi tambahan yang dibutuhkan agar
program dapat berjalan dengan baik.

G. KONFIGURASI PREFERENCES
Pada saat kita membuka Arduino IDE, ada beberapa hal yang perlu dilakukan agar
nomor baris dapat ditampilkan dan saat melakukan pengunggahan kita bisa
mengetahui proses yang sedang terjadi. Langkahnya sebagai berikut.

 Klik File > Preferences


 Saat muncul Jendela Preferences kita ceklist Show verbose during compilation
dan upload, display line number, dan enable code folding.

Kita juga bisa mengatur ukuran font agar lebih besar atau kecil dengan mengubah
angka di dalam Editor font size.

23
24
3. KONFIGURASI DAN PENGATURAN
WEMOS D1 MINI BOARD

Kali ini, kita akan belajar bagaimana menghubungkan Wemos D1 Mini Board ke
komputer dan melakukan konfigurasi agar Board ini bisa diunggah firmware yang
telah dibuat di Arduino IDE.

A. PEMERIKSAAN BOARD WEMOS D1 MINI


Sebelum melakukan konfigurasi pastikan Board dan kabel data micro USB telah
disiapkan. Hubungkan kabel data ke Wemos D1 Mini Board. Hubungkan kabel data
ke komputer. Tekan tombol reset dan pastikan lampu Indikator on menyala. Jika
lampu tidak menyala maka dimungkinkan Wemos D1 Mini Board bermasalah/
rusak.

B. INSTALASI USB TO SERIAL CH340G


Instalasi USB to Serial perlu dilakukan agar kita bisa berkomunikasi dan
memprogram Wemos D1 Mini. Biasanya Wemos D1 Mini menggunakan chip
CH340G. Langkah-langkah instalasinya sebagai berikut.

 Unduh driver di https://sparks.gogo.co.nz/assets/_site_/


downloads/CH34x_Install_Windows_v3_4.zip. Banyak situs
lain yang menyediakan driver chip ini.
 Setelah unduhan selesai, maka kita perlu mengekstrak file rar
nya. Hasil ekstraksi akan seperti gambar di samping.

25
 Klik setup.exe. Jika muncul pop up window, kita klik YES.
 Klik INSTALL pada jendela di bawah ini. Tunggu sesaat hingga muncul pop up
window yang menyatakan instalasi driver berhasil.

C. INSTALASI ESP8266
BOARD MANAGER
Langkah selanjutnya adalah melakukan instalasi
board manager di Arduino IDE. Hal ini dilakukan
agar kita bisa memprogram board Wemos
maupun board lainnya yang berbasis chip
ESP8266. Pastikan komputer/laptop anda
terkoneksi dengan internet.

Langkah-langkah instalasinya sebagai berikut.

 Buka Arduino IDE dan klik File>Preferences.


 Pada bagian Additional Boards Manager URLs
ketik http://arduino.esp8266.com/stable/
package_esp8266com_index.json. Lalu klik
OK.

26
 Klik Boards Manager. Lalu pilih Tools > Board > Boards Manager…

 Ketik ESP8266 pada kotak pencarian. Pilih versi yang ingin diinstal. ESP8266
Versi 2.5.2 disarankan untuk dipasang karena sudah stabil dalam
penggunaannya. Lalu klik tombol install pada ESP8266 by ESP8266 Community

27
 Tunggu unduhan selesai. Beberapa saat setelah unduhan selesai maka akan
muncul tulisan INSTALLED.

D. KONFIGURASI WEMOS D1 MINI


Konfigurasi board Wemos D1 Mini dilakukan agar pengunggahan firmware bisa
terlaksana. Konfigurasi board ini dilakukan dengan cara:

 Klik Tools > Board > Pilih LOLIN (WEMOS) D1 mini Pro

28
 Klik Tools > Port > Pilih port dari board Wemos yang terkoneksi dengan komputer
anda (Sebagai contoh disini COM15)

29
30
4. PENGENALAN MODUL SHIELD WEMOS
D1 MINI BOARD

Pada bagian ini kita akan belajar mengenal komponen elektronik dalam bentuk
shield yang akan digunakan dalam proyek IoT. Berikut penjelasan modul-modul
yang digunakan.

A. SENSOR SUHU DAN KELEMBABAN DHT11


Sensor DHT11 merupakan sensor suhu dan kelembaban digital yang hanya butuh 1
pin data yang terkoneksi ke Wemos. Sensor ini mampu beroperasi pada rentang
tegangan 3.3V hingga 5V. Sensor ini memiliki akurasi pengukuran suhu sekitar
0.2C dan akurasi kelembaban sebesar 1% kelembaban relatif. Modul DHT11
terhubung ke Wemos D1 Mini pada pin D4. Informasi mengenai sensor ini dapat
dicari pada berbagai sumber di internet.

B. MODUL DATA LOGGER SHIELD


Modul data logger shield terdiri dari dua bagian yaitu RTC (Real Time Clock) dan
micro SD. RTC merupakan berfungsi sebagai penghitung waktu dimulai dari detik,
menit, jam, hari, tanggal, bulan, hingga tahun dengan akurat. RTC yang digunakan
di dalam modul ini ialah DS1307. RTC ini menggunakan komunikasi I2C sebagai
penghubung ke Wemos D1 Mini. Pin yang digunakan ialah pin D1 untuk SCL dan
pin D2 untuk SDA.

31
Modul micro SD card pada shield ini berfungsi untuk menghubungkan kartu micro
SD card ke Wemos D1 Mini. Kita bisa menyimpan data ke dan membaca data dari
kartu micro SD.

Modul ini menggunakan komunikasi SPI yang terdiri dari 4 pin yaitu Pin MOSI
(Master Output Slave Input) atau DO (Data Out) sebagai output dari master. MISO
(Master Input Slave Output) atau DI (Data In) sebagai input dari master, SCK (Serial
Clock) atau CK, dan CS (Chip Select) berfungsi memilih slave yang akan digunakan
untuk berkomunikasi dengan Wemos D1 Mini. Pin D8 sebagai CS, pin D7 sebagai
DI, pin D6 sebagai DO, dan pin 5 sebagai CLK.

32
C. PROTOSHIELD
Protoshield merupakan pcb tambahan yang dapat
digunakan untuk menempatkan komponen yang
tidak bisa terhubung secara langsung ke Wemos D1
Mini. Protoshield ini mempermudah kita dalam
menempatkan dan menyoldernya di satu tempat.

D. LCD 16x2 I2C


Modul LCD (Liquid Crystal Display) berfungsi sebagai tampilan dengan jumlah
karakter yang ditampilkan 16 karakter per baris (ada 2 baris). LCD ini dihubungkan
dengan modul I2C untuk mengurangi pin yang terhubung ke Wemos (dari 10 pin
menjadi cukup 4 pin).

33
34
5. FIRST SKETCH

Akhirnya kita sampai pada bagian yang diinginkan yaitu memprogram Wemos D1
Mini. Pada bagian ini kita akan belajar bagaimana membuat program sederhana
untuk menyalakan lampu LED yang ada pada board Wemos D1 Mini.

A. PENGUNGGAHAN FIRMWARE
Langkah memprogramnya akan disampaikan berikut ini.

 Kita buka Arduino IDE yang memiliki icon

 Klik File > Examples > ESP8266 > Blink. Arduino IDE akan membuka contoh
sketch yang ada untuk membuat lampu LED berkedip setiap 1 detik.

35
 Kita klik icon atau menekan shortcut key Ctrl+R untuk melakukan kompilasi.
Dari hasil kompilasi kita bisa melihat apakah ada kesalahan/error dari sintak
yang kita buat. Kompilasi ini butuh waktu beberapa detik.

36
 Apabila tidak ada yang error pada tampilannya akan seperti berikut.

 Jika ada yang error akan muncul tulisan di bagian konsol teks. Arduino IDE akan
memberikan pesan bagian mana yang error dan harus diperbaiki. Kita lakukan
perbaikan agar program bisa dikompilasi.

 Kemudian, kita klik icon atau menekan shortcut key Ctrl+U untuk
melakukan pengunggahan firmware ke Board Wemos D1 Mini. Tunggu hingga
tulisan Done uploading muncul.

37
 Setelah program diunggah maka LED akan
mesnyala selama satu detik dan mati selama dua
detik. Pengecekan dilakukan pada status LED
yang berdekatan pin TX.

B. PENJELASAN SINTAK PROGRAM


Setelah kita berhasil membuat program sederhana untuk mengkedipkan LED maka
kita perlu mengetahui sintak yang ada di dalamnya. Berikut ini penjelasan
bagaimana LED bisa berkedip tiap satu detik.

38
 void setup() digunakan untuk menginisialisasi mode pin LED.
 Tanda // digunakan untuk memberikan komentar. Kalimat yang berada di dalam
// tidak akan dianggap sebagai sintak program.
 pinMode(LED_BUILTIN, OUTPUT) digunakan untuk mengkonfigurasikan pin
LED_BUILTIN sebagai OUTPUT.
 Tanda {} digunakan untuk menandakan isi perintah yang berada di dalam fungsi
void setup().
 Tanda titik koma (;) digunakan pada setiap akhir baris sintak agar tidak error
pada saat kompilasi.

Setelah void setup(), mari kita bedah sintak yang terdapat pada void loop().

 void loop () berisi perintah yang akan diulang terus menerus.


 digitalWrite (LED_BUILTIN, HIGH); digunakan untuk memberikan nilai
digital pada pin yang telah dikonfigurasikan sebagai output. Nilai HIGH berarti
Wemos D1 Mini mengeluarkan tegangan sebesar 5 volt. Nilai LOW berarti Wemos
D1 Mini tidak mengeluarkan tegangan (0 Volt).
 Saat diberikan logika LOW maka LED akan menyala. Saat diberikan logika HIGH
maka LED akan mati.
 delay(1000) digunakan untuk memberikan jeda antar baris sintak yang akan
dijalankan oleh Wemos D1 Mini. Nilai 1000 berarti 1000 milisekon atau sama
dengan 1 detik.

39
40
6. PEMBACAAN DATA SENSOR DHT11

Setelah kita belajar bagaimana cara memprogram LED sederhana di Wemos D1 Mini,
saatnya kita belajar bagaimana cara mengambil data dari DHT11 dan
menampilkannya ke dalam serial monitor. Sebelum kita melakukan pemrograman
sensor DHT11, kita perlu melakukan instalasi library DHT11.

A. INSTALASI LIBRARY DHT11


Pastikan komputer anda terkoneksi dengan internet saat menginstalasi library
DHT11. Langkah-langkahnya sebagai berikut.

 Klik Sketch > Include Library > Manage Libraries.

 Akan muncul jendela Library Manager. Tunggu hingga proses loading selesai.
Proses ini dapat dilihat pada bagian bawah jendela.

41
 Pada kotak Filter your search… ketik DHT. Nanti akan muncul library yang
berhubungan dengan DHT. Pilih DHT sensor library by Adafruit. Klik Install.

 Tunggu proses pengunduhan library hingga selesai.

 Saat proses pengunduhan sudah selesai, berarti library sudah terinstall di


Arduino IDE. Kita lanjut ke instalasi library Adafruit Unified Sensor yang menjadi
syarat agar library DHT bisa digunakan. Ketik Adafruit Unified Sensor pada kotak
search lalu tekan Enter. Cari library nya. Kemudian klik install.
42
 Saat proses pengunduhan sudah selesai, berarti library sudah terinstall di
Arduino IDE.
 Klik Close.

43
B. KONFIGURASI PIN DHT11 KE WEMOS D1
MINI

DHT11 dihubungkan ke Wemos D1 Mini seperti gambar di bawah ini. Pin yang
terhubung dari DHT11 ke Wemos D1 Mini ialah pin D4.

C. SKETCH DHT11
Kita akan gunakan
Example yang tersedia
di dalam library DHT
library untuk
mengunggah
program/sketch ke
Wemos D1 Mini.
Langkahnya sebagai
berikut.

 Klik File > Example


> DHT sensor library
> DHTtester

 Sketch DHTtester
akan tampil seperti
berikut ini.

44
 Pada baris ke-10, kita ubah letak pin DHT dari 2 menjadi D4.

 Pada baris 15, kita hilangkan tanda //. Pada baris 16 kita berikan tanda
komentar //. Hal ini dilakukan karena DHT yang kita gunakan ialah DHT11.

 Lalu kita unggah programnya dengan menekan icon Upload atau tekan Ctrl+U.

 Setelah selesai upload, kita buka Serial Monitor . Pastikan kecepatan serial
diatur di 9600 baud. Pengaturan bisa dilakukan di sisi kanan bawah serial
monitor. Saat kecepatan serial sesuai dengan yang di sketch maka akan muncul
karakter dan angka hasil pembacaan sensor DHT11.

45
D. PENJELASAN SINTAK PROGRAM
Sketch program yang diunggah harus berisikan #include "DHT.h" agar library DHT
terinstall di dalam Wemos D1 Mini. #define DHTPIN D4 artinya ialah mendefinisikan
variabel DHTPIN yang terletak di pin D4.

#define DHTTYPE DHT11 digunakan untuk mendefinisikan tipe DHT yang


digunakan. Jika DHT22 yang digunakan maka kita tulis #define DHTTYPE DHT22.
Lalu baris yang paling penting sebelum void setup ialah DHT dht(DHTPIN,
DHTTYPE). DHT dht menandakan objek sesuai dengan library yang digunakan di
dalam sketch. Jadi, pada baris-baris berikutnya kita gunakan dht dalam
memberikan perintah.

Pada void setup(), kita awali dengan inisialisasi serial pada baudrate 9600 dengan
perintah Serial.begin(9600). Kemudian kita munculkan tulisan pada serial
monitor dengan perintah Serial.println("DHTxx test!");. Kita inisialisasi
sensor DHT agar dapat dipakai dengan perintah dht.begin();.

Pada void loop(), di bagian awal diberi jeda selama 2 detik dengan perintah
delay(2000). Setelah itu dilakukan pembacaan suhu dan kelembaban. Pembacaan
ini cukup mudah. Kita tinggal menggunakan readTemperature() dan
readHumidity().

Dalam sketch example, kita mengambil data humidity dan disimpan dalam variabel
float h = dht.readHumidity();. Variabel h digunakan untuk menyimpan data
kelembaban. Pembacaan data suhu dilanjutkan dengan perintah float t =
dht.readTemperature();. Variabel t digunakan untuk menyimpan data suhu.

Apabila kita ingin mendapatkan nilai suhu dalam satuan Fahrenheit maka kita
tambahkan tulisan TRUE di dalam perintah dht.readTemperature(true). Jika
pembacaan suhu dan kelembaban gagal atau tidak terdeteksi maka akan keluar
tulisan “Failed to read from DHT sensor!”. Library ini juga memiliki metode untuk
menghitung indeks panas dalam Fahrenheit dan Celcius dengan perintah:

// Compute heat index in Fahrenheit


float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celcius
float hic = dht.computeHeatIndex(t, h, false);

Akhirnya saatnya kita tampilkan data pembacaan ke serial monitor dengan perintah:

46
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Heat index: ");
Serial.print(hic);
Serial.print(" *C ");
Serial.print(hif);
Serial.println(" *F");

E. TROUBLESHOOTING
Apabila saat menjalankan program untuk membaca data suhu dan kelembaban dari
DHT11 mengalami gangguan, maka beberapa cara dapat dilakukan agar kita bisa
mengatasi masalah ini.

1. Pastikan koneksi kabel antara DHT11 dan Wemos D1 Mini sudah tepat dan
terhubung.
2. Pastikan tegangan input berada di rentang 3.3V hingga 5V.
3. Pastikan menggunakan kabel data yang bagus. Terkadang kabel data yang
dihubungkan ke Wemos D1 Mini bisa bermasalah karena ada kabel putus di
dalamnya.
4. Perhatikan #define. Pastikan menggunakan DHT11 bukan tipe DHT yang lain.
5. Delay antar pengambilan data tidak boleh kurang dari 2 detik.
6. Pastikan sensor DHT11 yang digunakan tidak rusak. Cara mengeceknya ialah
dengan menggunakan sensor DHT11 yang lain.
7. Pastikan baudrate yang digunakan di dalam sketch dan serial monitor memiliki
angka yang sama.

47
48
7. PENAMPILAN DATA PADA LCD

Setelah kita belajar bagaimana cara mendapatkan data suhu udara dan kelembaban
dari DHT11, maka kita akan belajar bagaimana menampilkan data tersebut ke dalam
LCD 16x2 yang sudah terhubung dengan I2C breakout module. Sebelum kita
melakukan pemrograman untuk menampilkan data ke LCD, kita perlu melakukan
instalasi library LCD.

A. INSTALASI LIBRARY LCD 16x2


Pastikan komputer anda terkoneksi dengan internet saat menginstalasi library LCD
16x2. Langkah-langkahnya sebagai berikut.

 Kunjungi https://github.com/fmalpartida/New-LiquidCrystal. Lalu klik


Code>Download ZIP untuk mengunduh library nya.

 Akan muncul jendela untuk mengunduh file tersebut. Pilih Save File lalu Klik OK.

49
 Setelah unduhan selesai, kita mulai install library ini.
 Pada Arduino IDE, kita klik Sketch > Include Library > Add .ZIP Library…

 Akan muncul jendela baru untuk mengambil library LCD yang baru saja
diunduh. Pilih folder tempat library disimpan tadi. Sebagai contoh, library LCD
disimpan di folder Download.

50
 Pilih file New-LiquidCrystal-master.zip. lalu klik Open.

 Setelah library sudah terinstall maka akan muncul keterangan di konsol teks.

 Library LCD siap untuk digunakan.

51
B. KONFIGURASI PIN LCD 16x2 I2C KE WEMOS
D1 MINI

LCD 16x2 I2C dihubungkan ke Wemos D1 Mini di pin D1 untuk pin SCL dan pin D2
untuk pin SDA. Koneksi pin dapat dilihat pada gambar di bawah ini.

C. SKETCH I2C SCANNER


Sebelum kita gunakan LCD I2C, kita perlu melakukan pemindaian alamat I2C yang
ada di modul LCD 16x2 I2C. Pemindaian ini menggunakan sketch I2C scanner yang
bisa didapatkan dari https://playground.arduino.cc/Main/ I2cScanner/. Kode yang
ada di dalam laman ini disalin ke dalam sketch baru dan disimpan. Contohnya
sebagai berikut.

52
Kemudian kita upload program ini ke dalam Wemos D1 Mini. Hasil pengecekan
alamat akan muncul di dalam Serial Monitor. Alamat untuk LCD ini ialah 0x27.
Alamat ini akan digunakan di bagian berikutnya.

D. SKETCH LCD 16x2 I2C


Disini kita akan membahas cara menggunakan library LCD 16x2 I2C dihubungkan
ke Wemos. Kita tidak menggunakan example yang ada di library ini. Tapi kita buat
sendiri. Langkah-langkahnya sebagai berikut:

 Kita buka sketch baru. Klik File > New.

53
 Pada sketch baru kita ketik kode program berikut ini.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#define BACKLIGHT_PIN 3
#define I2C_ADDR 0x27
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin,
D6_pin, D7_pin);

void setup() {
lcd.begin(16, 2); // inisialisasi LCD
lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
lcd.setBacklight(HIGH);
lcd.setCursor(0,0); // cursor di kiri atas
lcd.print("Hello, Wemos D1");
lcd.setCursor( 0, 1 ); // kursor di kiri bawah
lcd.print ("LCD 16X2");
delay(1000);
}

void loop(){
}
 Kita upload sketch nya.
 Hasilnya akan muncul di LCD seperti berikut ini.

E. PENJELASAN SINTAK PROGRAM


Sketch program ini diawali dengan inisialisasi library I2C dan LCD dengan perintah
#include <Wire.h> dan #include <LiquidCrystal_I2C.h>. Pada #define
I2C_ADDR 0x27 harus dipastikan alamat LCD I2C adalah 0x27. Jika alamat LCD I2C
0x3f maka kita ganti dengan #define I2C_ADDR 0x3f.

54
Berikutnya kita mendefinisikan pin-pin yang ada di modul I2C sesuai dengan yang
dibutuhkan. Definisi pin ini digunakan untuk inisialisasi LCD I2C pada sintak
LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin,
D5_pin, D6_pin, D7_pin);.

Setelah itu, di dalam void setup() kita tambahkan dua baris sintak berikut.
Inisialisasi ini digunakan untuk menyalakan BACKGROUND LED LCD.

lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
lcd.setBacklight(HIGH);

LiquidCrystal()

Fungsi ini diperlukan untuk menginisialisasi pin-pin LCD yang terhubung pada
Arduino Board.

Sintak:
LiquidCrystal(I2C address, enable, rw, rs, d0, d1, d2, d3, d4, d5, d6,
d7)

Parameter:
rs : pin RS LCD enable : pin ENABLE LCD
rw : pin RW LCD d0-d7 : pin D0-D7 LCD

Contoh Program:
#include <LiquidCrystal_I2C.h>
LiquidCrystal lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin,
D6_pin, D7_pin);

Penjelasan:
Pin-pin LCD yang terhubung diinisialisasikan dan fungsi LiquidCrystal dijadikan
sebuah variabel baru dengan nama lcd.

lcd.begin()

Fungsi lcd.begin() digunakan untuk menginisialisasikan jumlah karakter dan


baris LCD yang digunakan. Fungsi ini harus dipanggil sebelum menggunakan fungsi
LCD yang lainnya.

Sintak:
lcd.begin(karakter, baris)

55
Contoh program :
lcd.begin(16,2)

Penjelasan:
Pada sintak di atas LCD yang digunakan ialah LCD dengan jumlah karakter yang
digunakan sebanyak 16 dan 2 baris.

lcd.setCursor()

Fungsi lcd.setCursor() digunakan untuk menentukan posisi kursor LCD.

Sintak:
lcd.setCursor(kolom, baris)

Contoh program :
lcd.setCursor(1,1)

Penjelasan:
Dari sintak di atas, kursor diletakkan pada kolom ke-2 dan baris ke-2 (nilai 0 pada
baris dan kolom dianggap sebagai baris ke-1).

lcd.print()

Fungsi lcd.print() digunakan untuk menulis kalimat/string pada LCD.

Sintak:
lcd.print(data)

Contoh program :
lcd.print("test");
Penjelasan:
lcd.print() akan menampilkan teks “test” pada LCD.

lcd.clear()

Fungsi lcd.clear() digunakan untuk menghapus teks yang ada di LCD dan
meletakkan posisi kursor pada baris ke-1 kolom ke-1.

Sintak:
lcd.clear()

56
Contoh program :
lcd.print("test");
lcd.clear();

Penjelasan:
lcd.clear() akan menghapus teks “test”yang tertampil pada LCD.

F. PENGGABUNGAN DHT11 DAN LCD 16x2 I2C


Disini kita akan memberikan kode program yang menggabungkan sensor DHT11
dengan LCD 16x2 I2C dalam satu sketch.

#include "DHT.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

//inisialisasi pin DHT


#define DHTPIN D4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
//inisialisasi LCD
#define BACKLIGHT_PIN 3
#define I2C_ADDR 0x27
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin,
D6_pin, D7_pin);

void setup() {
Serial.begin(9600);
Serial.println(F("Init DHT11"));
dht.begin();

lcd.begin(16, 2);
lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
lcd.setBacklight(HIGH);

//tampilan awal
lcd.setCursor(7, 0);
lcd.print("Pemantau");
lcd.setCursor(3, 1);
lcd.print ("Ruangan IoT");
delay (3000);

lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Suhu =");
lcd.setCursor(15, 1);

57
lcd.print("C");

lcd.setCursor(0, 1);
lcd.print("Humid=");
lcd.setCursor(15, 1);
lcd.print("%");
}

void loop() {
delay(2000);
float kelembaban = dht.readHumidity();
float suhu = dht.readTemperature();

if (isnan(kelembaban) || isnan(suhu)) {
kelembaban = -99;
suhu = -99;
}

//hapuskan nilai suhu dan kelembaban


lcd.setCursor(7,0);
lcd.print(" ");
lcd.setCursor(7,1);
lcd.print(" ");

//tampilkan nilai suhu dan kelembaban


lcd.setCursor(7,0);
lcd.print(suhu);
lcd.setCursor(7,1);
lcd.print(kelembaban);
}

58
8. WAKTU REAL TIME CLOCK

Pada bagian ini kita akan belajar bagaimana cara mengambil data waktu dan
menyimpannya ke dalam chip yang dapat digunakan sebagai pewaktu atau dikenal
dengan nama Real Time Clock (RTC). Pewaktu yang digunakan ialah chip DS1307
dari Maxim Integrated. Kita akan menggunakan modul data logger yang sudah
terintegrasi dengan chip ini.

A. INSTALASI LIBRARY DS1307


Pastikan komputer anda terkoneksi dengan internet saat menginstalasi library
DS1307. Langkah-langkahnya sebagai berikut.

 Klik Sketch > Include Library > Manage Libraries.

59
 Akan muncul jendela Library Manager. Tunggu hingga proses loading selesai.
Proses ini dapat dilihat pada bagian bawah jendela.

 Pada kotak Filter your search… ketik RTCLIB. Nanti akan muncul library yang
berhubungan dengan RTC. Pilih RTCLIB by Adafruit. Klik Install.

 Tunggu proses pengunduhan library hingga selesai.


 Klik Close.

60
B. KONFIGURASI PIN RTC DI WEMOS D1 MINI
DATALOGGER
RTC DS1307 terletak pada modul Wemos D1 Mini Data Logger Shield. Modul ini
berisi RTC dan micro SD Card adapter. RTC DS1307 terhubung ke Wemos D1 Mini
pada pin D1 untuk pin SCL dan pin D2 untuk pin SDA. Konfigurasi pin modul ini
dapat dilihat berikut.

C. SKETSA PENGATURAN WAKTU

Sebelum kita bisa menggunakan RTC DS1307, kita perlu mengatur waktunya agar
tersimpan ke dalam chipnya. Pengaturan waktu ini cukup satu kali. Selama baterai
di modul data logger masih aktif atau tegangannya 3 V berarti waktu masih
tersimpan di dalam chip.

Kita akan menggunakan sketsa program library RTCLIB untuk mengatur waktu.
Caranya ialah sebagai berikut:

 Kita buka sketch baru. Klik File > Example > RTClib > ds1307nvram.

61
 Sketch ds1307nvram akan tampil seperti berikut ini.

 Lalu kita unggah programnya dengan menekan icon Upload atau tekan Ctrl+U.

 Setelah selesai upload, kita buka Serial Monitor . Pastikan kecepatan serial
diatur di 57600 baud. Pengaturan bisa dilakukan di sisi kanan bawah serial
monitor. Saat kecepatan serial sesuai dengan yang di sketch maka akan muncul
karakter dan angka hasil pengaturan waktu.

62
 Pastikan karakter yang keluar seperti di atas. Jika karakter yang keluar seperti
di bawah berarti ada masalah dengan RTC.

D. SKETSA PEMBACAAN WAKTU

Setelah kita mengatur waktunya, saatnya kita membaca data waktu yang tersimpan
di dalam DS1307. Langkah-langkahnya sebagai berikut:

 Kita buka sketch baru. Klik File > Example > RTClib > ds1307.

63
 Sketch ds1307 akan tampil seperti berikut ini.

 Lalu kita unggah programnya dengan menekan icon Upload atau tekan Ctrl+U.

 Setelah selesai upload, kita buka Serial Monitor . Pastikan kecepatan serial
diatur di 57600 baud. Pengaturan bisa dilakukan di sisi kanan bawah serial
monitor. Saat kecepatan serial sesuai dengan yang di sketch maka akan muncul
karakter dan angka hasil pengaturan waktu.

64
E. PENJELASAN SINTAK LIBRARY RTCLIB

RTC_DS1307

Fungsi ini diperlukan untuk menginisialisasi library RTC dan menentukan tipe RTC
yang digunakan.

Sintak:
RTC_DS1307 rtc;

RTC.begin()

Fungsi ini diperlukan untuk mengetahui RTC DS1307 terhubung dan biasanya
diletakkan di dalam void setup. Hasil eksekusi fungsi hanya sebuah nilai boolean.
Nilai 1 berarti RTC terhubung dan nilai 0 berarti RTC tidak terhubung.

RTC.isrunning()

Fungsi ini membaca register internal I2C RTC DS1307 untuk memastikan waktu
sudah tersimpan di dalam chip. Jika fungsi ini mengembalikan nilai 0 maka kita
dapat melakukan pengaturan waktu dan tanggal.

RTC.adjust()

Fungsi ini digunakan untuk mengatur tanggal dan waktu.

Sintak:
rtc.adjust(DateTime(F(__DATE__),F(__TIME__)));
rtc.adjust(DateTime(tahun, bulan, hari, jam, menit, detik))
Contoh program :
rtc.adjust(DateTime(F(__DATE__),F(__TIME__)));
rtc.adjust(DateTime(2017, 1, 27, 12, 56, 0));

RTC.now()

Fungsi ini digunakan untuk mengambil data tanggal dan waktu sekarang. Nilai yang
dikeluarkan dari fungsi ini biasanya tersimpan ke dalam variabel DateTime.

65
RTC.year()

Fungsi ini digunakan untuk mengambil data tahun sekarang.

RTC.month()

Fungsi ini digunakan untuk mengambil data bulan sekarang.

RTC.day()

Fungsi ini digunakan untuk mengambil data hari sekarang.

RTC. dayOfTheWeek()

Fungsi ini digunakan untuk mengambil data nama hari sekarang.

RTC.hour()

Fungsi ini digunakan untuk mengambil data jam sekarang.

RTC.minute()

Fungsi ini digunakan untuk mengambil data menit sekarang.

RTC.second()

Fungsi ini digunakan untuk mengambil data detik sekarang.

66
F. PENGGABUNGAN DHT11, LCD 16x2 I2C, DAN

DS1307
Disini kita akan memberikan kode program yang menggabungkan sensor DHT11 dan
DS1307 dengan LCD 16x2 I2C dalam satu sketch. Program ini akan mengambil data
waktu, suhu, dan kelembaban udara yang ditampilkan ke dalam LCD.

#include "DHT.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "RTClib.h"

//RTC DS1307
RTC_DS1307 rtc;
DateTime waktuSekarang;
char tanggal[10], waktu[10];

//inisialisasi pin DHT


#define DHTPIN D4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

//inisialisasi LCD
#define BACKLIGHT_PIN 3
#define I2C_ADDR 0x27
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin,
D6_pin, D7_pin);
void setup() {
Serial.begin(9600);
Serial.println(F("Init DHT11"));
dht.begin();

lcd.begin(16, 2);
lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
lcd.setBacklight(HIGH);

//tampilan awal
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("Pemantau");
lcd.setCursor(2, 1);
lcd.print ("Ruangan IoT");
delay (3000);
lcd.clear();

if (! rtc.begin()) {
lcd.setCursor(2, 0);
lcd.print(F("RTC ERROR!!!"));
67
abort();
}
else {
for (byte i = 0; i < 3; i++) {
waktuSekarang = rtc.now();
sprintf(tanggal, "%04d/%02d/%02d", waktuSekarang.year(),
waktuSekarang.month(), waktuSekarang.day());
//tampilkan tanggal dan waktu
lcd.clear();
lcd.setCursor(3, 0);
lcd.print(tanggal);

sprintf(waktu, "%02d:%02d:%02d", waktuSekarang.hour(),


waktuSekarang.minute(), waktuSekarang.second());
lcd.setCursor(4, 1);
lcd.print(waktu);
delay(1000);
}
}
}

void loop() {
delay(2000);
float kelembaban = dht.readHumidity();
float suhu = dht.readTemperature();

if (isnan(kelembaban) || isnan(suhu)) {
kelembaban = -99;
suhu = -99;
}

lcd.clear();
waktuSekarang = rtc.now();
sprintf(tanggal, "%02d/%02d/%02d", waktuSekarang.year()-2000,
waktuSekarang.month(), waktuSekarang.day());
sprintf(waktu, "%02d:%02d", waktuSekarang.hour(), waktuSekarang.minute());

//tampilkan tanggal dan waktu


lcd.setCursor(0, 0);
lcd.print(tanggal);
lcd.print(' ');
lcd.print(waktu);

//tampilkan suhu dan kelembaban


lcd.setCursor(0, 1);
lcd.print("T=");
lcd.print(suhu, 1);
lcd.print("C|H=");
lcd.print(kelembaban, 0);
lcd.print("%");
}

68
9. PENYIMPANAN DATA DI MICRO SD

Setelah kita belajar bagaimana cara mengambil data suhu dari DHT11 dan waktu
dari internet maka kita perlu belajar mengenai penyimpanan data ke dalam modul
micro SD. Kita akan menggunakan modul data logger yang telah disematkan kartu
micro SD.

A. Pengenalan kartu micro SD


Kartu micro SD merupakan media penyimpanan digital dengan ukuran yang sangat
kecil (mikro). Kartu micro SD dikembangkan oleh SD Card Association. Kartu micro
SD dibedakan menjadi beberapa jenis berdasarkan Speed (kecepatan) dan
Kapasitasnya. Berdasarkan kecepatannya, micro SD dibagi menjadi 5 kelas :

1. Class 0 tidak memiliki kemampuan transfer rate minimum yang spesifik

2. Class 2 memiliki kemampuan transfer rate minimum 2 MB/s, kecepatan


paling rendah untuk Micro SDHC

3. Class 4 memiliki kemampuan transfer rate minimum 4 MB/s

4. Class 6 memiliki kemampuan transfer rate minimum 6 MB/s

5. Class 10 memiliki transfer rate kemampuan minimum 10 MB/s

69
Berdasarkan kapasitasnya, micro SD dibagi menjadi 4 jenis yaitu

1. SDSC (Secure Digital Standard Capacity). Jenis micro sd ini memiliki kapasitas
mulai dari 1 MB hingga maksimal 2 GB dan dikategorikan sebagai SDSC. Format
memori ini menggunakan FAT16.

2. SDHC (Secure Digital High Capacity). Jenis memori SDHC memiliki kecepatan
yang lebih baik ketimbang SDSC karena sudah menggunakan format FAT32.
Kapasitas untuk memori ini mulai dari 4 GB hingga maksimal sebesar 32 GB.

3. SDXC (Secure Digital eXtended Capacity). SDXC memiliki rentang kapasitas


penyimpanan mulai dari 64 GB hingga maksimal sebesar 2 TB. Format
memorinya menggunakan exFAT.

4. SDUC (Secure Digital Ultra Capacity. Jenis yang terakhir yaitu SDUC yang
memiliki kapasitas penyimpanan ultra besar yakni mulai dari 4 TB hingga
maksimal mencapai 128 TB. Format memorinya menggunakan exFAT.

B. Komunikasi SPI
Komunikasi antara mikrokontroler dengan kartu micro SD menggunakan
komunikasi Serial Peripheral Interface (SPI). Komunikasi SPI merupakan jenis
komunikasi sinkronus yang menggunakan jalur yang terpisah antara sinyal data
dan waktu (clock) yang menjaga kedua sisi sinkron. Clock merupakan sinyal
berosilasi yang memberi tahu penerima secara tepat kapan harus mengambil sampel
bit pada jalur data.

SPI memiliki 4 pin yaitu pin Chip Select (CS) atau dikenal juga dengan Slave Select
(SS), MOSI (Master Out Slave In), MISO (Master In Slave Out), dan CLK/SCK yang
berarti Clock. Pin CS berfungsi untuk memilih Slave yang akan berkomunikasi. Pin
MOSI merupakan jalur masuk data dari Master ke Slave. Pin MISO merupakan jalur
masuk data ke Master dari Slave. Pin CLK mengeluarkan sinyal osilasi dari Master
ke Slave untuk tetap tersinkronisasi. Ilustrasi komunikasi SPI dapat dilihat pada
gambar di bawah ini.

70
C. LIBRARY SD
Dalam menggunakan kartu micro SD, kita dapat menggunakan library SdFat yang
sudah diinstalasi di dalam Arduino IDE ketika board ESP8266 dipasang. Library ini
mendukung kartu micro SD dengan sistem FAT16 dan FAT32. Library ini dapat
digunakan dengan memasukkan #include <SPI.h> dan #include "SdFat.h". Library
SdFat berisi fungsi-fungsi untuk mengakses, menulis, dan membaca data yang ada
di dalam kartu micro SD.

Fungsi-fungsi SD class menyediakan fungsi untuk mengakses dan memanipulasi file


dan direktori. Fungsi ini terdiri dari:

 SD.begin()
 SD.exists()
 SD.mkdir()
 SD.open()
 SD.remove()
 SD.rmdir()

Fungsi-fungsi yang digunakan untuk mengakses, membaca, dan menulis file antara
lain sebagai berikut:

 File.name()
 File.available()
 File.close()
 File.flush()
 File.peek()
 File.position()
 File.print()
 File.println()
 File.seek()
71
 File.size()
 File.read()
 File.write()
 File.isDirectory()
 File.openNextFile()
 File.rewindDirectory()

D. KONFIGURASI PIN WEMOS D1 DATA


LOGGER

Adapter untuk kartu micro SD terpasang pada modul Wemos D1 Mini Data Logger
Shield. Pin Chip Select (CS) terletak pada pin D8. Pin D7 digunakan untuk pin MOSI
(Master Out Slave In). Pin D6 digunakan untuk pin MISO (Master In Slave Out), dan
pin D5 digunakan untuk pin CLK. Konfigurasi pin dapat dilihat pada gambar berikut.

E. SKETSA PENGECEKAN KARTU MICRO SD

Sebelum kita menggunakan kartu micro SD untuk menulis dan membaca data, kita
perlu mengidentifikasi kartu micro SD yang akan digunakan. Kita pastikan kartu
micro SD dapat dikenali oleh mikrokontroler sehingga dapat digunakan kemudian.
Pengecekan kartu micro SD bukanlah sebuah keharusan namun dapat sangat
membantu kita apabila ada kesalahan atau kekeliruan yang bisa disebabkan oleh
kartu micro SD yang rusak. Kita akan menggunakan sketch SdInfo untuk
mendapatkan informasi ukuran memori, tipe kartu, sisa memori, dan file yang
tersimpan di dalam kartu micro SD.
72
Langkah-langkahnya sebagai berikut.

 Klik File > Example > ESP8266SdFat > SdInfo.

 Kemudian pada baris 20 pin SS diganti sesuai dengan pin SSS pada modul yang
digunakan yaitu pin D8.

73
 Lalu kita unggah programnya dengan menekan icon Upload atau tekan Ctrl+U.

 Setelah selesai upload, kita buka Serial Monitor . Pastikan kecepatan serial
diatur di 9600 baud. Pengaturan bisa dilakukan di sisi kanan bawah serial
monitor. Pada serial monitor akan muncul tulisan seperti di bawah ini.

74
 Kita ketik karakter sembarang di sisi kiri atas seperti yang ditunjukkan gambar
di bawah ini. Lalu kita klik tombol send atau tekan Enter.

 Jika kartu micro SD terdeteksi maka akan keluar informasi mengenai tipe kartu,
jumlah memori, dan sebagainya seperti gambar di bawah ini.

75
 Jika kartu micro SD tidak terdeteksi maka akan keluar tulisan SD errorCode di
dalam serial monitor.

F. SKETSA PENYIMPANAN DATA KE DALAM


KARTU MICRO SD

Disini kita akan membahas cara menggunakan library SdFat yang dihubungkan ke
Wemos. Kita tidak menggunakan example yang ada di library ini. Tapi kita buat
sendiri. Kita akan menyimpan data nilai digital dari pin analog. Langkah-langkahnya
sebagai berikut:

 Kita buka sketch baru. Klik File > New.

 Pada sketch baru kita ketik kode program berikut ini.

#include <SPI.h>
#include "SdFat.h"

using namespace sdfat;


const uint8_t chipSelect = D8;
SdFat sd;
76
File dataFile;

void setup() {
Serial.begin(9600);
if (!sd.begin(chipSelect)) {
Serial.println("Kartu micro SD tidak terdeteksi");
while (1);
}
Serial.println("kartu micro SD terdeteksi");
}
void loop() {
int nilai = analogRead(0);
dataFile = sd.open("log.txt", FILE_WRITE);
if (dataFile) {
dataFile.print("Nilai pin analog=");
dataFile.println(nilai);
dataFile.close();
}

else {
Serial.println("error membuka log.txt");
}

Serial.print("Nilai pin analog=");


Serial.println(nilai);
delay(2000);
}

 Lalu kita unggah programnya dengan menekan icon Upload atau tekan Ctrl+U.

 Setelah selesai upload, kita buka Serial Monitor . Pastikan kecepatan serial
diatur di 9600 baud.
 Hasil pengambilan nilai akan muncul di Serial monitor seperti gambar berikut.
Nilai yang muncul bisa saja tidak sesuai dengan gambar di bawah ini melainkan
sesuai dengan output yang keluar dari Wemos D1 Mini.

77
G. PENJELASAN SINTAK PENYIMPANAN DATA
Sketch dimulai dengan menyertakan library SPI dan SdFat dengan perintah
#include <SPI.h> dan #include “SdFat.h”. Kemudian dilanjutkan dengan using
namespace sdfat;. Baris ini harus ada karena di dalam sketch ini digunakan library
SdFat. Jika tidak ada akan menimbulkan error saat melakukan uploading.

Berikutnya dilakukan inisialisasi pin CS yang akan terpasang pada pin D8 dengan
menggunakan perintah const uint8_t chipSelect = D8;. SdFat sd; digunakan
untuk mendefinisikan nama sd akan dipakai untuk mengakses library SdFat. File
dataFile; diperlukan untuk membuat objek yang bisa mengakses fungsi File.

void setup() diawali dengan Serial.begin(9600). Perintah ini digunakan untuk


menginisialisasi baud rate serial pada 9600 bps sehingga mampu menampilkan hasil
pada serial monitor. Lalu, dengan menggunakan fungsi sd.begin() kita akan
menginisialisasi kartu micro SD. Adanya karakter ! digunakan sebagai operator
negasi yang berarti kebalikan. Jika hasil sd.begin nol maka akan keluar nilai 1 dan
sebaliknya. Jika inisialisasi kartu micro SD tidak berhasil maka pernyataan “if”
menjadi benar dan String "Kartu micro SD tidak terdeteksi" akan dicetak pada
serial monitor dan akan berhenti karena ada perintah while (1) yang tidak ada
isinya. Jika kartu micro SD ditemukan maka string "kartu micro SD terdeteksi"
akan dicetak dan program lanjut ke void loop().

void loop() diawali dengan int nilai = analogRead(0); yang digunakan untuk
mengambil nilai digital pada pin A0 menggunakan fungsi analogRead. Hasil
eksekusi fungsi ini akan disimpan dalam variabel nilai. Kemudian perintah
dataFile = sd.open("log.txt", FILE_WRITE); digunakan untuk membuka file
di dalam kartu micro SD dengan mode FILE_WRITE (menulis file). Jika file dapat
terbuka untuk ditulis, maka langkah selanjutnya ialah mencetak tulisan dan nilai
ke dalam file log.txt. Perintah untuk menulis data di dalam file terdiri dari baris-baris
program berikut ini. print() digunakan untuk menulis data ke dalam kartu dan
diakhiri dengan close().

dataFile.print("Nilai pin analog=");


dataFile.println(nilai);
dataFile.close();
Jika file tidak dapat diakses maka akan muncul tulisan "error membuka log.txt" di
Serial Monitor. Setelah kita menyimpan datanya ke dalam kartu micro SD,
78
berikutnya nilai digital pin Analog ditampilkan ke dalam Serial monitor dengan
perintah Serial.print(). Langkah terakhir kita berikan jeda selama 2 detik untuk
setiap pengambilan data.
Serial.print("Nilai pin analog=");
Serial.println(nilai);
delay(2000);

H. PENGGABUNGAN DHT11, LCD 16x2 I2C,


DS1307, DAN MICRO SD

Disini kita akan memberikan kode program yang menggabungkan sensor DHT11,
DS1307, LCD 16x2 I2C, dan micro SD ke dalam satu sketch. Program ini akan
mengambil data waktu, suhu, dan kelembaban udara yang ditampilkan ke dalam
LCD kemudian disimpan ke dalam kartu micro SD.

#include "DHT.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "RTClib.h"
#include <SPI.h>
#include "SdFat.h"

//micro SD
using namespace sdfat;
const uint8_t chipSelect = D8;
SdFat sd;
File dataFile;

//RTC DS1307
RTC_DS1307 rtc;
DateTime waktuSekarang;
char tanggal[10], waktu[10];

//inisialisasi pin DHT


#define DHTPIN D4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

//inisialisasi LCD
#define BACKLIGHT_PIN 3
#define I2C_ADDR 0x27
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
79
#define D7_pin 7
LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin,
D6_pin, D7_pin);

void setup() {
Serial.begin(9600);
Serial.println(F("Pemantauan Kualitas Udara Sensor DHT11"));
dht.begin();

lcd.begin(16, 2);
lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
lcd.setBacklight(HIGH);

//tampilan awal
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("Pemantau");
lcd.setCursor(2, 1);
lcd.print ("Ruangan IoT");
delay (3000);
lcd.clear();

if (! rtc.begin()) {
lcd.setCursor(2, 0);
lcd.print(F("RTC ERROR!!!"));
Serial.println("RTC Error!!!");
abort();
}
else {
for (byte i = 0; i < 3; i++) {
waktuSekarang = rtc.now();
sprintf(tanggal, "%04d/%02d/%02d", waktuSekarang.year(),
waktuSekarang.month(), waktuSekarang.day());
//tampilkan tanggal dan waktu
lcd.clear();
lcd.setCursor(3, 0);
lcd.print(tanggal);
Serial.print(tanggal);
Serial.print(" ");

sprintf(waktu, "%02d:%02d:%02d", waktuSekarang.hour(),


waktuSekarang.minute(), waktuSekarang.second());
lcd.setCursor(4, 1);
lcd.print(waktu);
Serial.println(waktu);
delay(1000);
}
}

lcd.clear();

if (!sd.begin(chipSelect)) {
lcd.setCursor(0, 0);
lcd.print("Kartu Micro SD");
lcd.setCursor(0, 1);
lcd.print("Tidak Terdeteksi");
Serial.println("Kartu micro SD tidak terdeteksi");

while (1);
}

80
lcd.setCursor(1, 0);
lcd.print("Kartu Micro SD");
lcd.setCursor(3, 1);
lcd.print("Terdeteksi");
Serial.println("kartu micro SD terdeteksi");
}
void loop() {
delay(2000);
float kelembaban = dht.readHumidity();
float suhu = dht.readTemperature();

if (isnan(kelembaban) || isnan(suhu)) {
kelembaban = -99;
suhu = -99;
}

lcd.clear();
waktuSekarang = rtc.now();
sprintf(tanggal, "%02d/%02d/%02d", waktuSekarang.year() - 2000,
waktuSekarang.month(), waktuSekarang.day());
sprintf(waktu, "%02d:%02d", waktuSekarang.hour(), waktuSekarang.minute());

//tampilkan data di LCD


lcd.setCursor(0, 0);
lcd.print(tanggal);
lcd.print(' ');
lcd.print(waktu);
lcd.setCursor(0, 1);
lcd.print("T=");
lcd.print(suhu, 1);
lcd.print("C|H=");
lcd.print(kelembaban, 0);
lcd.print("%");

//tampilkan data di serial monitor


sprintf(waktu, "%02d:%02d:%02d", waktuSekarang.hour(),
waktuSekarang.minute(), waktuSekarang.second());
Serial.print(tanggal);
Serial.print(" ");
Serial.print(waktu);
Serial.print(", Suhu = ");
Serial.print(suhu, 1);
Serial.print(" °C, Kelembaban = ");
Serial.print(kelembaban, 0);
Serial.println(" %");

//simpan data ke dalam micro Sd


dataFile = sd.open("log.txt", FILE_WRITE);

if (dataFile) {
dataFile.print(tanggal);
dataFile.print(" ");
dataFile.print(waktu);
dataFile.print(", Suhu=");
dataFile.print(suhu, 1);
dataFile.print(" °C, Kelembaban=");
dataFile.print(kelembaban, 0);
dataFile.println(" %");
dataFile.close();
}
81
else {
Serial.println("error membuka log.txt");
}
}

82
10. KONEKSI WIFI

Kali ini kita akan belajar melakukan koneksi WiFi dari Wemos D1 Mini ke Access
Point (AP) atau lebih dikenal dengan nama hotspot yang bisa berasal dari
smartphone atau router. Wemos D1 Mini akan dikonfigurasi menjadi station.

A. MODE OPERASI WEMOS D1 MINI


Salah satu fitur terbaik yang disediakan ESP8266 yang ada pada Wemos D1 Mini
ialah kemampuan untuk tidak hanya dapat terhubung ke jaringan WiFi yang ada
dan bertindak sebagai Server Web, tetapi juga dapat mengatur jaringannya sendiri.
Hal ini memungkinkan perangkat lain untuk terhubung langsung ke sana dan
mengakses halaman web. Hal ini dimungkinkan karena ESP8266 dapat beroperasi
dalam tiga mode berbeda yaitu mode Station, mode Soft Access Point, dan keduanya
secara bersamaan. Ini memberikan kemungkinan membangun jaringan mesh. Pada
mode Station (STA), Wemos D1 Mini dapat terhubung secara langsung ke jaringan
WiFi yang ada sesuai dengan program yang dibuat. Wemos D1 Mini akan
mendapatkan alamat IP dari router yang terhubung.

B. MENGHUBUNGKAN KE WIFI HOTSPOT


Cara menghubungkan Wemos D1 Mini ke wifi hotspot sangat mudah. Langkah-
langkahnya sebagai berikut:

 Kita buka sketch baru. Klik File > New.

 Pada sketch baru kita ketik kode program berikut ini.

#include <ESP8266WiFi.h>

const char* ssid = "SSID";


const char* password = "PASSWORD";

83
void setup() {
Serial.begin(9600);
delay(10);
Serial.println('\n');
WiFi.begin(ssid, password);
Serial.print("Mencoba Terhubung ke ");
Serial.print(ssid); Serial.println(" ...");

int i = 0;
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(++i); Serial.print(' ');
}

Serial.println('\n');
Serial.println("Wifi Terhubung!");
Serial.print("alamat IP:\t");
Serial.println(WiFi.localIP());
}

void loop() { }

 Ubah variabel ssid sesuai dengan nama hotspot yang akan dikoneksikan.

 Ubah variabel password sesuai dengan password hotspot yang akan


dikoneksikan.

 Lalu kita unggah programnya dengan menekan icon Upload atau tekan Ctrl+U.

 Setelah selesai upload, kita buka Serial Monitor . Pastikan kecepatan serial
diatur di 9600 baud.
 Pastikan hotspot aktif.
 Kita dapat melihat hasil eksekusi program yang mencoba terhubung ke hotspot.

84
C. PENJELASAN SINTAK KONEKSI HOTSPOT
Program ini diawali dengan memasukkan library ESP8266WiFi.h. Sketch dimulai
dengan memasukkan library Wifi ESP8266 dengan perintah #include <
ESP8266WiFi.h>. Kemudian dilanjutkan dengan mendefinisikan variabel ssid dan
password yang akan digunakan. Kita isi variabel ssid dan password sesuai dengan
nama hotspot dan passwordnya. Jika password hotspot tidak ada, maka cukup
ditulis const char* password = "";.

void setup() diawali dengan Serial.begin(9600 untuk menginisialisasi baud


rate serial pada 9600 bps guna menampilkan hasil pada serial monitor. Lalu, dengan
menggunakan fungsi WiFi.begin(ssid, password) kita akan mencoba terhubung
ke hotspot yang sudah ditetapkan. Selama Wemos D1 Mini mencoba terhubung ke
jaringan, kita dapat mengecek status konektivitas dengan fungsi WiFi.status()
yang ada di dalam while. Selama status wifi belum terkoneksi, Wemos D1 Mini akan
selalu mencoba terhubung ke hotspot. Setelah Wemos D1 Mini terhubung ke
jaringan, sketsa mencetak alamat IP yang ditetapkan untuk Wemos D1 Mini dengan
menampilkan nilai WiFi.localIP() pada serial monitor.

D. PENGGABUNGAN SKETSA WIFI DENGAN


SENSOR DHT11, LCD 16x2 I2C, DS1307, DAN
MICRO SD

Disini kita akan memberikan kode program yang menggabungkan koneksi WiFi
dengan sensor DHT11, DS1307, LCD 16x2 I2C, dan micro SD ke dalam satu sketch.
Program ini akan mengecek hotspot, terhubung ke hotspot, mengambil data waktu,
suhu, dan kelembaban udara yang ditampilkan ke dalam LCD kemudian disimpan
ke dalam kartu micro SD.

#include "DHT.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "RTClib.h"
#include <SPI.h>
#include "SdFat.h"

85
#include <ESP8266WiFi.h>

//hotspot
const char* ssid = "hollanda";
const char* password = "dunedin1996";

//micro SD
using namespace sdfat;
const uint8_t chipSelect = D8;
SdFat sd;
File dataFile;

//RTC DS1307
RTC_DS1307 rtc;
DateTime waktuSekarang;
char tanggal[10], waktu[10];

//inisialisasi pin DHT


#define DHTPIN D4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

//inisialisasi LCD
#define BACKLIGHT_PIN 3
#define I2C_ADDR 0x27
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin,
D6_pin, D7_pin);

void setup() {
Serial.begin(9600);
Serial.println(F("Pemantauan Kualitas Udara Sensor DHT11"));
dht.begin();

lcd.begin(16, 2);
lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
lcd.setBacklight(HIGH);

//tampilan awal
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("Pemantau");
lcd.setCursor(2, 1);
lcd.print ("Ruangan IoT");
delay (3000);
lcd.clear();

if (! rtc.begin()) {
lcd.setCursor(2, 0);
lcd.print(F("RTC ERROR!!!"));
Serial.println("RTC Error!!!");
abort();
}
86
else {
for (byte i = 0; i < 3; i++) {
waktuSekarang = rtc.now();
sprintf(tanggal, "%04d/%02d/%02d", waktuSekarang.year(),
waktuSekarang.month(), waktuSekarang.day());
//tampilkan tanggal dan waktu
lcd.clear();
lcd.setCursor(3, 0);
lcd.print(tanggal);
Serial.print(tanggal);
Serial.print(" ");

sprintf(waktu, "%02d:%02d:%02d", waktuSekarang.hour(),


waktuSekarang.minute(), waktuSekarang.second());
lcd.setCursor(4, 1);
lcd.print(waktu);
Serial.println(waktu);
delay(1000);
}
}

lcd.clear();

if (!sd.begin(chipSelect)) {
lcd.setCursor(0, 0);
lcd.print("Kartu Micro SD");
lcd.setCursor(0, 1);
lcd.print("Tidak Terdeteksi");
Serial.println("Kartu micro SD tidak terdeteksi");

while (1);
}

lcd.setCursor(1, 0);
lcd.print("Kartu Micro SD");
lcd.setCursor(3, 1);
lcd.print("Terdeteksi");
Serial.println("kartu micro SD terdeteksi");

delay (2000);
lcd.clear();

lcd.setCursor(0, 0);
lcd.print(ssid);
lcd.print(" ");

WiFi.begin(ssid, password); // Connect to the network


Serial.print("Mencoba terhubung ke ");
Serial.print(ssid); Serial.println(" ...");

int i = 0;
while (WiFi.status() != WL_CONNECTED) { // Wait for the Wi-Fi to connect
delay(1000);
Serial.print(++i); Serial.print(' ');
lcd.print(".");
}

lcd.clear();
lcd.print("-Wifi Terhubung-");
lcd.print(WiFi.localIP());
87
Serial.println('\n');
Serial.println("Wifi Terhubung!");
Serial.print("alamat IP:\t");
Serial.println(WiFi.localIP());

void loop() {
delay(2000);
float kelembaban = dht.readHumidity();
float suhu = dht.readTemperature();

if (isnan(kelembaban) || isnan(suhu)) {
kelembaban = -99;
suhu = -99;
}

lcd.clear();
waktuSekarang = rtc.now();
sprintf(tanggal, "%02d/%02d/%02d", waktuSekarang.year() - 2000,
waktuSekarang.month(), waktuSekarang.day());
sprintf(waktu, "%02d:%02d", waktuSekarang.hour(), waktuSekarang.minute());

//tampilkan data di LCD


lcd.setCursor(0, 0);
lcd.print(tanggal);
lcd.print(' ');
lcd.print(waktu);
lcd.setCursor(0, 1);
lcd.print("T=");
lcd.print(suhu, 1);
lcd.print("C|H=");
lcd.print(kelembaban, 0);
lcd.print("%");

//tampilkan data di serial monitor


sprintf(waktu, "%02d:%02d:%02d", waktuSekarang.hour(),
waktuSekarang.minute(), waktuSekarang.second());
Serial.print(tanggal);
Serial.print(" ");
Serial.print(waktu);
Serial.print(", Suhu=");
Serial.print(suhu, 1);
Serial.print(" °C, Kelembaban=");
Serial.print(kelembaban, 0);
Serial.println(" %");

//simpan data ke dalam micro Sd


dataFile = sd.open("log.txt", FILE_WRITE);

if (dataFile) {
dataFile.print(tanggal);
dataFile.print(" ");
dataFile.print(waktu);
dataFile.print(", Suhu = ");
dataFile.print(suhu, 1);
dataFile.print(" °C, Kelembaban = ");
dataFile.print(kelembaban, 0);
dataFile.println(" %");
dataFile.close();
88
}

else {
Serial.println("error membuka log.txt");
}
}

89
90
11. CAYENNE MYDEVICES

Setelah kita belajar mengenai cara terhubung ke hotspot, maka saatnya kita untuk
belajar mengirimkan data ke internet. Data yang terkirim akan dapat dilihat secara
real-time dimanapun selama masih terkoneksi dengan jaringan internet. Agar
mempermudah dalam mengirimkan data secara real-time ini telah banyak platform
yang tersedia. Salah satunya yaitu Cayenne myDevices. Inti dari platform ini adalah
visualisasi data. Fitur drag-and-drop memungkinkan pengguna untuk membuat
dashboard untuk memvisualisasikan data yang datang dari perangkat remote yang
terhubung. Ada juga widget untuk menampilkan informasi. Platform ini mendukung
beberapa perangkat seperti Arduino dan juga Raspberry Pi. Selain itu Cayenne
myDevices juga membuka beberapa API untuk integrasi layanan yang mendukung
protokol MQTT. Kita akan belajar bagaimana cara mengirimkan data ke Cayenne
myDevices. Sehingga data dari pembacaan perangkat yang kita buat dapat
ditampilkan pada platform Cayenne myDevices.

A. REGISTRASI CAYENNE MYDEVICES


Agar kita dapat menggunakan platform Cayenne myDevices maka kita harus
melakukan registrasi terlebih dahulu. Pastikan komputer anda terkoneksi dengan
jaringan internet saat melakukan registrasi. Langkah-langkah registrasi hingga
pembuatan Dashboard sebagai berikut.

 Kunjungi https://developers.mydevices.com/cayenne/features/. Lalu klik SIGN


UP FREE.

 Setelah mengklik SIGN UP FREE akan keluar tampilan seperti di bawah ini. Lalu
lakukan pengisian pada kotak yang tersedia > klik Register.
91
92
 Setelah registrasi berhasil maka kita akan langsung diarahkan ke halaman
berikut.

B. INSTALASI LIBRARY CAYENNE

Sebelum membuat dashboard di Cayenne, kita perlu melakukan instalasi library


Cayenne pada Arduino IDE. Saat ingin melakukan instalasi perlu diingat yaitu
komputer harus dalam kondisi terkoneksi dengan internet. Langkah-langkah
instalasi library sebagai berikut.

 Klik Sketch > Include Library > Manage Libraries. Tunggu hingga loading
selesai

 Akan muncul jendela Library Manager. Tunggu hingga proses loading selesai.
Proses ini dapat dilihat pada bagian bawah jendela.

93
 Pada kotak Filter your search… ketik cayenne. Nanti akan muncul library yang
berhubungan dengan cayenne. Pilih cayenneMQTT. Klik Install.

 Tunggu proses pengunduhan library hingga selesai.

94
C. PEMBUATAN DASHBOARD PADA CAYENNE
Setelah melakukan instalasi library pada Arduino IDE langkah selanjutnya yaitu
pembuatan Dashboard di Cayenne. Pembuatan dashboard ini melanjutkan langkah-
langkah yang pada bagian 11.A. Langkah pembuatan dashboard di Cayenne sebagai
berikut.

 Klik All Devices.

 Klik Generic ESP8266.

95
 Akan muncul halaman pengaturan board. Kita ubah nama alat kita sesuai
dengan yang diinginkan. Pengubahan terletak pada kotak Name Your Device.

 Kita salin tiga parameter yaitu MQTT USERNAME, MQTT PASSWORD, dan
CLIENT ID yang akan digunakan dalam sketch Arduino.

D. MENGHUBUNGKAN WEMOS D1 MINI


DENGAN PLATFORM CAYENNE

Langkah yang harus


dilakukan untuk
menghubungkan
Wemos D1 Mini dengan
platform Cayenne ialah
sebagai berikut.

 Klik File > Example


> CayenneMQTT >
Connections >
ESP8266

96
 Sketch ESP8266 akan tampil seperti berikut ini.

 Ubah variabel ssid dan password sesuai dengan nama hotspot dan password yang
akan dihubungkan.

 Isi variabel username dengan karakter yang ada di dalam kotak


MQTT_USERNAME. MQTT_USERNAME yang digunakan ialah karakter yang
muncul di web.

 Lakukan hal yang sama untuk password dan clientID.

97
 Lalu kita unggah programnya dengan menekan icon Upload atau tekan Ctrl+U.

 Setelah selesai upload, kita buka Serial Monitor . Pastikan kecepatan serial
diatur di 9600 baud.
 Pastikan hotspot aktif.
 Kita dapat melihat hasil eksekusi program di serial monitor seperti gambar
berikut ini.

 Kita dapat melihat pada halaman web pengaturan berubah setelah Wemos D1
Mini terhubung ke jaringan. Hal ini menandakan bahwa perangkat kita sudah
terhubung dengan dashboard Cayenne.

98
12. PENGATURAN DASHBOARD

Pada bagian ini kita akan belajar menggabungkan semua kode yang telah dipelajari
agar dapat mengirimkan data ke Cayenne dan ditampilkan ke dalam dashboard. Kita
juga akan belajar mengubah beberapa hal agar dashboard terlihat lebih cantik.

A. SKETSA PROGRAM PEMANTAUAN KUALITAS


UDARA

#include "DHT.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "RTClib.h"
#include <SPI.h>
#include "SdFat.h"
#include <ESP8266WiFi.h>
#define CAYENNE_PRINT Serial
#include <CayenneMQTTESP8266.h>

// Cayenne authentication info


char username[] = "2d53c540-c512-11eb-8779-7d56e82df461";
char password[] = "df5eca0867764c3be87e9b784abdfbee91734079";
char clientID[] = "2ef862a0-c514-11eb-883c-638d8ce4c23d";

//hotspot
const char* ssid = "hollanda";
const char* Password = "blablabla";

//micro SD
using namespace sdfat;
const uint8_t chipSelect = D8;
SdFat sd;
File dataFile;

//RTC DS1307
RTC_DS1307 rtc;
DateTime waktuSekarang;
char tanggal[10], waktu[10];

//inisialisasi pin DHT


#define DHTPIN D4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

//inisialisasi LCD
#define BACKLIGHT_PIN 3
#define I2C_ADDR 0x27
#define En_pin 2
#define Rw_pin 1
99
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin,
D6_pin, D7_pin);

void setup() {
Serial.begin(9600);
Serial.println(F("Pemantauan Kualitas Udara Sensor DHT11"));
dht.begin();

lcd.begin(16, 2);
lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
lcd.setBacklight(HIGH);

//tampilan awal
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("Pemantau");
lcd.setCursor(2, 1);
lcd.print ("Ruangan IoT");
delay (3000);
lcd.clear();

if (! rtc.begin()) {
lcd.setCursor(2, 0);
lcd.print(F("RTC ERROR!!!"));
Serial.println("RTC Error!!!");
abort();
}
else {
for (byte i = 0; i < 3; i++) {
waktuSekarang = rtc.now();
sprintf(tanggal, "%04d/%02d/%02d", waktuSekarang.year(),
waktuSekarang.month(), waktuSekarang.day());
//tampilkan tanggal dan waktu
lcd.clear();
lcd.setCursor(3, 0);
lcd.print(tanggal);
Serial.print(tanggal);
Serial.print(" ");

sprintf(waktu, "%02d:%02d:%02d", waktuSekarang.hour(),


waktuSekarang.minute(), waktuSekarang.second());
lcd.setCursor(4, 1);
lcd.print(waktu);
Serial.println(waktu);
delay(1000);
}
}

lcd.clear();

if (!sd.begin(chipSelect)) {
lcd.setCursor(0, 0);
lcd.print("Kartu Micro SD");
lcd.setCursor(0, 1);
lcd.print("Tidak Terdeteksi");
Serial.println("Kartu micro SD tidak terdeteksi");
100
while (1);
}

lcd.setCursor(1, 0);
lcd.print("Kartu Micro SD");
lcd.setCursor(3, 1);
lcd.print("Terdeteksi");
Serial.println("kartu micro SD terdeteksi");

delay (2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(ssid);
lcd.print(" ");

WiFi.begin(ssid, Password);
Serial.print("Mencoba terhubung ke ");
Serial.print(ssid); Serial.println(" ...");

int i = 0;
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(++i); Serial.print(' ');
lcd.print(".");
}

lcd.clear();
lcd.print("-Wifi Terhubung-");
lcd.print(WiFi.localIP());
Serial.println('\n');
Serial.println("Wifi Terhubung!");
Serial.print("alamat IP:\t");
Serial.println(WiFi.localIP());

delay (2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" KONEKSI KE");
lcd.setCursor(0, 1);
lcd.print("CAYENNE MYDEVICE");
Cayenne.begin(username, password, clientID);

delay (2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" TERHUBUNG KE");
lcd.setCursor(0, 1);
lcd.print("CAYENNE MYDEVICE");
}

void loop() {
Cayenne.loop();
delay(2000);
float kelembaban = dht.readHumidity();
float suhu = dht.readTemperature();

if (isnan(kelembaban) || isnan(suhu)) {
kelembaban = -99;
suhu = -99;
}
101
lcd.clear();
waktuSekarang = rtc.now();
sprintf(tanggal, "%02d/%02d/%02d", waktuSekarang.year() - 2000,
waktuSekarang.month(), waktuSekarang.day());
sprintf(waktu, "%02d:%02d", waktuSekarang.hour(), waktuSekarang.minute());

//tampilkan data di LCD


lcd.setCursor(0, 0);
lcd.print(tanggal);
lcd.print(' ');
lcd.print(waktu);
lcd.setCursor(0, 1);
lcd.print("T=");
lcd.print(suhu, 1);
lcd.print("C|H=");
lcd.print(kelembaban, 0);
lcd.print("%");

//tampilkan data di serial monitor


sprintf(waktu, "%02d:%02d:%02d", waktuSekarang.hour(),
waktuSekarang.minute(), waktuSekarang.second());
Serial.print(tanggal);
Serial.print(" ");
Serial.print(waktu);
Serial.print(", Suhu=");
Serial.print(suhu, 1);
Serial.print(" °C, Kelembaban=");
Serial.print(kelembaban, 0);
Serial.println(" %");

//simpan data ke dalam micro Sd


dataFile = sd.open("log.txt", FILE_WRITE);

if (dataFile) {
dataFile.print(tanggal);
dataFile.print(" ");
dataFile.print(waktu);
dataFile.print(", Suhu = ");
dataFile.print(suhu, 1);
dataFile.print(" °C, Kelembaban = ");
dataFile.print(kelembaban, 0);
dataFile.println(" %");
dataFile.close();
}

else {
Serial.println("error membuka log.txt");
}

//Kirim data ke Cayenne


Cayenne.virtualWrite(0, suhu);
Cayenne.virtualWrite(1, kelembaban);

102
B. PENJELASAN SINTAK LIBRARY CAYENNE
Sintak yang digunakan pada sketsa di atas menggunakan beberapa fungsi
dari Library Cayenne. Berikut penjelasan singkat dari fungsi yang digunakan.

Cayenne.begin(username, password, clientID);

Fungsi ini digunakan untuk memulai koneksi antara Wemos D1 Mini dengan server
Cayenne.

Cayenne.virtualWrite(nomor channel, variabel);

Fungsi ini digunakan untuk mengirimkan data ke server cayenne. Sebagai contoh
pada sketsa di atas kita tulis Cayenne.virtualWrite(0, suhu);. Artinya kita
mengirimkan data variabel suhu ke channel 0.

C. PENGATURAN DASHBOARD CAYENNE


Setelah kita mengunggah sketsa pada bagian 12.A, maka dashboard akan
berubah secara otomatis seperti gambar di bawah ini.

103
Kita akan atur channel 0 dan 1 agar sesuai dengan parameter yang dikirim dengan
langkah-langkah sebagai berikut:

 Klik tanda plus (+) pada sisi kanan channel 0.

 Bentuk visual dari channel 0 akan berubah seperti berikut.

 Klik tanda pengaturan untuk mengubah nama channel.

104
 Akan muncul jendela baru seperti berikut. Kita ganti nama channel pada kotak
Widget Name dengan nama Suhu.

 Kita pilih Icon dengan meng-klik kotak Choose Icon.

 Kita ketik thermometer pada kotak pencarian. Klik Icon Thermometer.

 Kemudian kita klik Save.

105
 Channel 0 akan berubah menjadi Suhu.

 Berikutnya, kita atur channel 1. Klik tanda plus (+) pada sisi kanan channel 1.

 Kemudian kita klik icon pengaturan. Kita ubah nama widget dengan Kelembaban.
Kita ubah juga Icon dengan Humidity. Lalu klik save.

 Hasil pengaturan dashboard akan menjadi seperti gambar berikut.

106
D. BERBAGI DASHBOARD
Pada bagian terakhir ini kita akan belajar membagi dashboard yang telah
dibuat agar dapat dilihat oleh orang lain dari smartphone, PC, ataupun laptop.
Langkah-langkahnya sebagai berikut:

 Klik Create New Project.

 Kita ketik nama project kita sesuai yang diinginkan. Lalu tekan tombol ceklist.

 Akan muncul tampilan project. Untuk menambahkan data dari alat yang telah
kita hubungkan ke project ini, kita cukup tarik device ke dalam project.

 Lalu kita pilih parameter yang ingin dimasukkan. Kita ceklist semuanya.
Kemudian tekan tombol Done.

107
 Semua parameter akan masuk ke dalam dashboard project.

 Agar kita bisa berbagi dashboard dengan orang lain, kita tekan tombol sharing.

 Akan muncul jendela baru. Kita pilih opsi berbagi. Jangan lupa untuk menyalin
teks tautan dashboardnya.

108
 Orang lain yang mendapatkan tautan akan dapat melihat dashboard kita seperti
gambar berikut ini.

(Afzal, Gondal, Arshad, & Shahid, 2018; Grokhotkov, 2019; Kurniawan, 2015; Marco
Schwartz, 2012; Margolis, 2012; Wang, Huang, & Song, 2019; Waworundeng &
Lengkong, 2018)

109
110
DAFTAR PUSTAKA
Afzal, M., Gondal, H. A. H., Arshad, M. B., & Shahid, M. (2018). IoT Based Real Time
Warehouse Monitoring using Sparkfun ESP8266 Thing Dev and Cayenne
MyDevices. University of Swabi Journal, 2(2), 12–18.

Grokhotkov, I. (2019). ESP8266 Arduino Core Documentation Contenido (p. 104). p.


104. Retrieved from https://buildmedia.readthedocs.org/media/pdf/arduino-
esp8266/latest/arduino-esp8266.pdf

Kurniawan, A. (2015). SparkFun ESP8266 Thing Development Workshop.

Marco Schwartz. (2012). Internet of Things with ESP8266. In European University


Institute. Retrieved from https://eur-lex.europa.eu/legal-
content/PT/TXT/PDF/?uri=CELEX:32016R0679&from=PT%0Ahttp://eur-
lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:52012PC0011:pt:NOT

Margolis, M. (2012). Arduino Cookbook (2nd ed.). Sebastopol: O’Reilly Media.

Wang, Y., Huang, Y., & Song, C. (2019). A New Smart Sensing System Using
LoRaWAN for Environmental Monitoring. 2019 Computing, Communications and
IoT Applications, ComComAp 2019, 347–351.
https://doi.org/10.1109/ComComAp46287.2019.9018829

Waworundeng, J., & Lengkong, O. (2018). Sistem Monitoring dan Notifikasi Kualitas
Udara dalam Ruangan dengan Platform IoT Indoor Air Quality Monitoring and
Notification System with IoT Platform. Cogito Smart Journal, 4(1), 94–102.

111
112
BIODATA PENULIS
Hollanda Arief Kusuma, S.IK, M.Si dilahirkan di Ambon tanggal
1 April 1989 dari pasangan Prof. Dr. Ir. Dwi Eny Djoko Setyono
dan Kusmariatin. Sekarang menetap di Tanjungpinang,
Kepulauan Riau sebagai Dosen Teknik Elektro, Fakultas Teknik,
Universitas Maritim Raja Ali Haji. Anak kedua dari tiga
bersaudara ini menyelesaikan pendidikan Strata 1 dan 2 di
Institut Pertanian Bogor Jurusan Ilmu dan Teknologi Kelautan.
Dosen muda ini hobi untuk bereksperimen pada perangkat
mikrokontroler dan IoT.

Tonny Suhendra, S.T., M.Cs dilahirkan di Tanjungpinang,


Kepulauan Riau, tanggal 18 Desember 1980 dari pasangan
Bapak Suko Hermanto dan Ibu Ismini. Penulis menyelesaikan
pendidikan sarjana di Universitas Muhammadiyah Yogyakarta
dan Magister di Universitas Gadjah Mada Yogyakarta. Saat ini
mengabdikan diri sebagai Dosen Teknik Elektro, Universitas
Maritim Raja Ali Haji (UMRAH) sejak 2017 hingga saat ini.
Memiliki hobi melakukan eksperimen berkaitan dengan
optimasi algoritma berbasis heuristik yang dapat digunakan
pada bidang kendali/kontrol dan juga memiliki ketertarikan
pada bidang mekatronika.
Ir. Anton Hekso Yunianto, S.T., M.Si dilahirkan di Madiun, Jawa
Timur, tanggal 11 Juni 1979 dari pasangan Bapak G.Darmono
dan Siti Asiyah. Penulis saat ini sebagai Dosen Teknik
Perkapalan, Fakultas Teknik, Universitas Maritim Raja Ali Haji.
Anak keenam dari tujuh bersaudara ini menyelesaikan
pendidikan Strata 1 di Universitas Hang Tuah Surabaya dan
Strata S2 di Institut Teknologi Sepuluh Nopember Surabaya
serta gelar profesi Insinyur di Universitas Hasanudin Makasar.
Kesukaan terhadap teknologi inovasi yang terus berkembang
terhadap kemajuan yang bisa diterapkan oleh masyarakat.

Farista Egistian, S.T dilahirkan di Tanjungpinang tanggal 11


April 1998 dari pasangan Taharuddin dan Pahwani. Sekarang
menetap di Tanjung Uban, Kepulauan Riau sebagai Pekerja
Swasta. Anak ke empat dari enam bersaudara ini menyelesaikan
pendidikan Strata 1 Teknik Elektro pada tahun 2021. Anak
muda ini memiliki hobi dalam bereksperimen pada perangkat
elektronik sejak masa kecil hingga sekarang.

Rohani Siagian, S.T dilahirkan di Rawang Psr V tanggal 18


Februari 1999 dari pasangan Parlan Saut Siagian dan Herta Br.
Sitorus. Sekarang menetap di Batam, Kepulauan Riau. Anak
pertama dari lima bersaudara ini menyelesaikan pendidikan
Sarjana di Universitas Maritim Raja Ali Haji jurusan Teknik
Elektro. Wanita cantik ini hobi makan dan rebahan serta
kulineran sepanjang hari.

113
Tertarik dengan dunia Internet of Things (IoT) tapi bingung mau mulai darimana?
Buku ini akan membuat anda untuk mahir membuat perangkat IoT. Buku ini
memandu anda untuk belajar secara sistematik untuk membuat perangkat IoT yang
dapat mengirimkan data ke platform IoT.

Pembahasan dalam buku mencakup

 Mikrokontroler ESP8266
 Arduino IDE untuk ESP8266
 Sensor suhu dan kelembaban DHT
 LCD 16x2
 Micro SD
 Koneksi WIFI
 Cayenne myDevice

UMRAH Press, Tanjungpinang


Kampus Universitas Maritim Raja Ali Haji, Gedung Rektorat Lantai III
Jl. Dompak, Tanjungpinang - Kepulauan Riau 29111
Telp/Fax : (0771) 7001550 – (0771) 7038999, 4500091
E-mail : umrahpress@gmail.com / umrahpress@umrah.ac.id
Website : https://umrahpress.umrah.ac.id/

View publication stats

Anda mungkin juga menyukai