MIKROKONTROLER NODEMCU DENGAN TAMPILAN ANDROID
TUGAS AKHIR
ESLITA RAFIDA AZIS SINAGA 172408034
PROGRAM STUDI D3 FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN
2020
MIKROKONTROLER NODEMCU DENGAN TAMPILAN ANDROID
TUGAS AKHIR
DIAJUKAN UNTUK MELENGKAPI TUGAS DAN MEMENUHI SYARAT MEMPEROLEH GELAR
AHLI MADYA
ESLITA RAFIDA AZIS SINAGA 172408034
PROGRAM STUDI D-3 FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN
2020
PERNYATAAN ORISINALITAS
PERANCANGAN SISTEM MONITORING SUHU DAN HUJAN MENGGUNAKAN DATA LOGGER SD CARD BERBASIS MIKROKONTROLER NODEMCU DENGAN TAMPILAN
ANDROID
TUGAS AKHIR
Saya menyatakan bahwa laporan proyek ini adalah hasil karya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Mei 2020
Eslita Rafida Azis Sinaga 172408034
NODEMCU DENGAN TAMPILAN ANDROID
ABSTRAK
Penelitian ini bermaksud untuk merancang sistem monitorng suhu dan hujan menggunakan data logger berbasis mikrokontroller yang dapat memantau suhu dan hujan melalui sensor-sensor yang telah diletakkan pada lokasi. Data sensor suhu dalam bentuk bilangan digital dan sensor hujan dalam bentuk analog. Di program dapat dilihat yang dimana program yang mengolah sensor suhu dan hujan menjadi persentase suhu dan hujan yang ditampilkan di LCD dengan keluaran dalam bentuk huruf. Karena rangkaian ini menggunakan ESP8266, maka rangkaian ini bisa connect ke dunia internet.Oleh karena itu kita bisa melihat berapa suhu dan hujan yang ada. Dan sistemnya itu sistem monitoring, dimana waktu yang dipakai adalah waktu dari internet. Sehingga nilai suhu dan hujan dapat di tampilkan di handphone dengan menggunakan aplikasi blynk. Apabila data logger dihubungkan ke komputer (Ms. Excel), maka data suhu dan hujan akan di kirim ke komputer melalui komunikasi serial.
Kata kunci: Data logger, Mikrokontroller, Sensor, LCD
DISPLAY
ABSTRACT
This research intends to design a temperature and rain monitoring system using a microcontroller-based data logger that can monitor temperature and rain through sensors that have been placed on location. Temperature sensor data in the form of digital numbers and rain sensors in analog form. In the program it can be seen that the program that processes the temperature and rain sensors becomes the percentage of temperature and rain displayed on the LCD with output in the form of letters. Because this circuit uses ESP8266, this circuit can connect to the internet world. Therefore we can see how much temperature and rain there is. And the system is a monitoring system, where the time used is the time from the internet. So the value of temperature and rain can be displayed on mobile phones using the blynk application. If the data logger is connected to a computer (Ms. Excel), then the temperature and rain data will be sent to the computer via serial communication.
Keywords: Data logger, Microcontroller, Sensor, LCD
Segala puji dan syukur kepada Tuhan Yang Maha Esa, dengan limpahan berkat-Nya penyusunan laporan proyek ini dapat diselesaikan sesuai waktu yang telah ditetapkan.
Laporan proyek ini disusun untuk melengkapi persyaratan dalam mencapai gelar Ahli Madya pada Program Studi Diploma Tiga Fisika Departemen Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
Adapun judul Tugas Akhir ini adalah :
PERANCANGAN SISTEM MONITORING SUHU DAN HUJAN
MENGGUNAKAN DATA LOGGER BERBASIS NODEMCU DENGAN TAMPILAN ANDROID
Penulis menyadari bahwa tersusunnya Laporan proyek ini dari Doa, perhatian, bimbingan, motivasi dan dukungan berbagai pihak, sehingga dengan keikhlasan dan kerendahan hati pada kesempatan ini penulis mengucapkan terima kasih yang sebesar-besarnya kepada :
1. Kedua orang tua penulis serta saudara kandung yang telah memberikan bantuan moril maupun materi, semangat dan doa yang begitu besar kepada penulis.
2. Bapak Dr. Kerista Sebayang, MS, selaku Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
3. BapakDrs. Takdir Tamba, M.Eng. Sc,selaku Ketua Program Studi D3 Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam
4. Bapak Drs. Aditia Warman, M.Si, selaku Sekretaris Program Studi D3 Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam.
5. Bapak Prof. Dr. Marhaposan Situmorang, selaku pembimbing saya, yang telah banyak membantu dan mendukung penulis dalam menyelesaikan laporan proyek ini.
6. Seluruh Dosen dan Karyawan Program Studi D3 Fisika Departemen Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
7. Rekan D3 Fisika yang mendukung penulis menyelesaikan laporan proyek ini.
Penulis menyadari sepenuhnya bahwa dalam pembuatan laporan proyek ini masih jauh dari kesempurnaan, untuk itu penulis mengharapkan kritik dan saran dari pembaca yang bersifat membangun dalam penyempurnaan laporan proyek ini.
Semoga laporan proyek ini menjadi ibadah yang baik bagi penulis dan menjadi ilmu yang bermanfaat bagi pembaca.
Medan, Juli 2020 Penulis
Eslita Rafida Azis Sinaga
DAFTAR ISI
SAMPUL ...
PENGESAHAN LAPORAN TUGAS PROYEK ... i
ABSTRAK ... ii
PENGHARGAAN ... vi
DAFTAR ISI ... v
DAFTAR TABEL... vii
DAFTAR GAMBAR………..… viii
BAB 1 PENDAHULUAN ... ..1
1.1. Latar Belakang ... ..1
1.2. Rumusan Masalah ... . 2
1.3. Tujuan Penelitian ... . 2
1.4. Batasan Masalah... . 2
1.5. Sistematika Penulisan... ..3
BAB 2 LANDASAN TEORI ... 4
2.1 Suhu Dan Hujan ... .4
2.1.1 Suhu... .4
2.1.2 Hujan ... .4
2.2 Mikrokontroller Nodemcu328 ... .4
2.2.1 Cara Mikrokontroller Nodemcu328 ... .5
2.2.2 Jenis-jenis Mikrokontroller Nodemcu328... .5
2.3 Sensor ... 16
2.3.1 Jenis-jenis Sensor ... 16
2.4 LCD (Liquid Crystal Display) ... 20
2.5.1 Cara Kerja LCD (Liquid Crystal Display) ... 21
2.6 Relay ... 22
2.7 Power Supplay ... 24
2.8 Kapasitor ... 25
3.1.1 Tahap Persiapan ... 27
3.1.2 Tahap Pembuatan Sistem ... 27
3.1.3 Tahap Pengukuran, Analisis dan Kesimpulan ... 27
3.2 Perancangan Sistem ... 27
3.2.1 Diagram Blok Sistem ... 27
3.2.2 Perancangan Rangkaian Sistem ... 31
3.2.3 Perancangan Perangkat Lunak ... 31
3.3 Pengujian Rangkaian Dan Pengukuran Hasil Sistem... 32
3.3.1 Pengujian Minimum Sistem NODEMCU ... 32
3.3.2 Pengujian Rangkaian LCD ... 32
3.3.3 Pengujian Sensor Hujan ... 34
3.3.4 Pengujian Sensor DS18B20 ... 34
3.3.5 Pengujian Esp8266 ... 35
3.3.5 Pengujian Keseluruhan... 38
3.3.6 Flowchart... 39
BAB 4 PEMBAHASAN HASIL PENGUKURAN ... 42
4.1 Analisis Hasil Pengukuran ... 42
4.2 Perhitungan Ralat Dan Kalibrasi ... 43
4.3 Hasil Suhu dan Hujan di Android ... 44
BAB 5 PENUTUP ... 45
5.1 Kesimpulan ... 45
5.2 Saran ... 45
DAFTAR PUSTAKA ... 46
DAFTAR TABEL
Tabel 2.1 Fungsi Pin Modul Sensor Hujan ... 17
Tabel 2.2 Deskripsi Pin Pada LCD ... 22
Tabel 3.1 Pengujian Minimum Sistem NODEMCU ... 37
Tabel 4.1 Hasil Data Pengukuran Pembanding Dengan Sensor Suhu ... 47
DAFTAR GAMBAR
Gambar 2.1 NODEMCU ... 6
Gambar 2.2 Atmega328 ... 8
Gambar 2.3 Arsitektur Atmega 328 ... 9
Gambar 2.4 Konfigurasi Pin Atmega328 ... 10
Gambar 2.5 Modul Sensor Hujan... 17
Gambar 2.6 Sensor Suhu DS18B20 ... 18
Gambar 2.7 LCD ( Liquid Crystal Display)... 21
Gambar 2.8 Relay ... 23
Gambar 2.9 Power Supplay... 25
Gambar 2.10 Kapasitor ... 26
Gambar 3.1 Diagram Blok Sistem ... 33
Gambar 3.2 Rangkaian Set DS18B20 Dan NODEMCU ... 34
Gambar 3.3 Rangkaian Set Sensor Hujan Dan NODEMCU ... 34
Gambar 3.4 Rangkaian Set NODEMCU Dan LCD ... 35
Gambar 3.5 Output Smartphone ... 35
Gambar 3.6 Rangkaian Keseluruhan Suhu Dan Hujan ... 36
Gambar 3.7 Program Hasil Kerja Sensor DS18B20 ... 41
Gambar 3.8 Program Hasil Kerja Esp8266 ... 42
Gambar 3.9 Pengujian Pada LCD ... 38
Gambar 3.10 Flowchart ... 40
Gambar 4.1 Grafik Hasil Data Pembanding Dengan Sensor Suhu ... 42
Gambar 4.2 Hasil Suhu Dan Hujan di Aandriod... 44
BAB 1 PENDAHULUAN 1.1Latar Belakang
Seiring dengan pesatnya kemajuan teknologi di segala bidang, maka meningkat pula daya pikir manusia akan teknologi tinggi sebagai kebutuhan. Dari perkembangan kompleks tersebut, tentu muncul teknologi-teknologi baru. Kemajuan teknologi sangat membantu dalam bidang industri. Seperti halnya sensor, yang kini banyak digunakan untuk mendapatkan informasi yang diinginkan tanpa keterbatasan ruang dan waktu dengan mendayagunakan secara maksimal cara kerja sistem sensor tersebut. Perkembangan ilmu pengetahuan dan teknologi saat ini sangat pesat sekali, terutama hal-hal yang dapat membantu pekerjaan manusia sehingga menjadi lebih mudah dan efisien. Rekayasa sering dilakukan untuk membantu dalam merancang alat yang dapat membantu dalam dunia industri. Rekayasa adalah pemilihan dan penyusunan komponen sistem yang melaksanakan fungsi atau tugas tertentu, dengan kata lain rekayasa adalah mencari suatu sistem yang dapat menyelesaikan tugas, yang spesifikasinya diberikan. Temperatur atau suhu merupakan salah satu momok bagi para pelaku industri untuk semua bidang yang meliputi kegiatan usaha dari awal hingga akhir proses usaha tersebut. Penyimpanan barang, produksi barang, pengujian kualitas barang ( quality control ) hingga pengiriman barang tidak akan pernah lepas dari suhu yang sesuai standar kegiatan usaha. Ketika semua proses kegiatan usaha tersebut terjadi kesalahan atau kelalaian dari satu faktor yaitu suhu yang tidak sesuai standar yang berlaku, tentunya akan mengganggu kualitas maupun kuantitas hasil produksi yang diinginkan. Suhu yang terlalu panas atau terlalu dingin kapan saja dan dimana saja dapat mengganggu jika tidak dipantau secara kurun waktu tertentu.
Pencatatan suhu yang saat ini dilakukan secara manual membuat pekerjaan menjadi tidak efisien. Apalagi jika pencatatan suhu dilakukan secara terus-menerus dengan pencatatan suhu tiap jam. Misalnya pencatatan statistik suhu dari sebuah ruangan, ruangan pembakaran, generator, ruangan yang tidak bisa dijangkau manusia dan lainnya pasti akan lebih mudah tanpa harus mencatat secara manual dengan waktu tertentu. Dalam hal ini dibutuhkan suatu alat yang dapat membuat pekerjaan tersebut
elektronik yang mencatat data dari waktu ke waktu baik yang terintegrasi dengan sensor dan instrumen. Atau secara singkat data logger adalah alat untuk melakukan perekaman data. Sehingga untuk mengatasi permasalahan pengamatan suhu yang harus dilakukan secara terus menerus pada lokasi yang tidak memungkin untuk dilakukan secara manual oleh manusia, penulis merancang data logger temperatur berbasis Nodemcu. Hanya dengan memasang sensor suhu yang di kontrol oleh Nodemcu tersebut pada ruangan atau benda maka dapat diketahui berapa suhunya.
Data nilai suhu dan hujan dapat diimport ke Microsoft Excel dalam bentuk grafik atau tabel untuk membantu dalam keperluan analisa.
1.2 Rumusan Masalah
Berdasarkan latar belakang diatas maka, diambil rumusan masalah sebagai berikut :
1. Bagaimana merancang sistem data logger untuk menentukan pembacaan data suhu dan hujan secara terus - menerus.
2. Bagaimana memprogram Nodemcu sebagai sistem data logger suhu dan hujan.
1.3 Tujuan Penelitian
Dari pembuatan alat ini memiliki tujuan yang hendak dicapai yaitu:
Merancang/membuat dan merekam nilai suhu dan hujan dengan menampilkan data suhu dan hujan tersebut ke android.
1.4 Batasan Masalah
Adapun pokok pembahasannya meliputi yaitu :
1. Hanya merekam suhu dan hujan menggunakan Nodemcu328P.
2. File rekaman berupa file CSV lalu di import dan ditampilkan grafik melalui Microsoft Excel.
1.5 Sistematika Penulisan
Untuk mempermudah penulisan tugas akhir ini, penulis membuat suatu sistematika penulisan yang terdiri dari :
1. BAB I: PENDAHULUAN
Bab ini akan membahas latar belakang tugas akhir, identifikasi masalah, batasan masalah, tujuan, manfaat, metode penelitian, dan sistematika penulisan.
2. BAB II: LANDASAN TEORI
Bab ini akan menjelaskan tentang teori pendukung yang digunakan untuk pembahasan dan alat yang dipakai dalam penelitian
3. BAB III: PERANCANGAN ALAT
Bab ini membahas tentang perencanaan dan pembuatantentang gambaran sistem penelitian secara keseluruhan baik itu berupa pengujian, diagram blok,dan flowchart.
4. BAB IV: HASIL DAN PEMBAHASAN
Berisi tentang pembahasan hasil dan kinerja alat secara menyeluruh.
5. BAB V: KESIMPULAN DAN SARAN
Sebagai bab terakhir penulis akan menguraikan beberapa kesimpulan dari uraian bab-bab sebelumnya, serta berisi saran.
BAB 2
LANDASAN TEORI
2.1 Suhu Dan Hujan 2.1.1 Suhu
Suhu adalah suatu besaran yang menunjukan derajat panas dari suatu benda.
Benda yang memiliki panas akan menunjukan suhu yang tinggi daripada benda dingin. Sering kita menyebutkan suatu benda panas atau dingin dengan cara menyentuh banda tersebut dengan alat indra kita, walau kita tidak dapat menyimpulkan berapa derajat panas dari benda tersebut, untuk mengetahui seberapa besar suhu benda tersebut maka digunakanlah termometer. Termometer adalah alat yang digunakan untuk mengukur suhu atau alat yang digunakan untuk menyatakan derajat panas atau dingin suatu benda. Termometer memanfaatkan sifat termometrik dari suatu zat, yaitu perubahan dari sifat-sifat zat disebabkan perubahan suhu dari zat tersebut.
2.1.2 Hujan
Hujan adalah sebuah peristiwa Presipitasi (jatuhnya suatu cairan dari atmosfer yang berwujud cair maupun beku ke permukaan bumi) berwujud cairan.
Hujan ini membutuhkan keberadaan lapisan atmosfer tebal agar bisa menemui suhu di atas titik leleh es di dekat dan dia atas suatu permukaan Bumi.Mengacu pada kondisi tersebut, penelitian ini menawarkan sebuah sistem monitoring pendeteksian hujan dan suhu berbasis sensor secara real time. Sebuah raindrop sensor digunakan untuk mendeteksi hujan.
2.2 Mikrokontroller
Mikrokontroler adalah sebuah komputer kecil yang dikemas dalam bentuk chip IC (Integrated Circuit) dan dirancang untuk melakukan tugas atau operasi tertentu. Pada dasarnya, sebuah IC Mikrokontroler terdiri dari satu atau lebih Inti Prosesor (CPU), Memori (RAM dan ROM) serta perangkat INPUT dan OUTPUT yang dapat diprogram.Penggunaan Mikrokontroler ini semakin populer karena kemampuannya yang dapat mengurangi ukuran dan biaya pada suatu produk atau
desain apabila dibandingkan dengan desain yang dibangun dengan menggunakan mikroprosesor dengan memori dan perangkat input dan output secara terpisah.
2.2.1 Cara Kerja Mikrokontroler
Prinsip kerja mikrokontroler adalah sebagai berikut:Berdasarkan nilai yang berada pada register Program Counter, mikrokontroler mengambil datapada ROM dengan alamat sebagaimana yang tertera pada register Program Counter. Selanjutnya isi dari register Program Counter ditambah dengan satu (Increment) secara otomatis.Data yang diambil pada ROM merupakan urutan instruksi program yang telah dibuat dan diisikansebelumnya oleh pengguna.Instruksi yang diambil tersebut diolah dan dijalankan oleh mikrokontroler. Proses pengerjaan bergantung pada jenis instruksi, bisa membaca, mengubah nilai-nilai pada register, RAM, isi Port,atau melakukan pembacaan dan dilanjutkan dengan pengubahan data.Program Counter telah berubah nilainya (baik karena penambahan otomatis pada langkah 1, atau karena pengubahan-pengubahan pada langkah 2). Selanjutnya yang dilakukan oleh mikrokontroler adalah mengulang kembali siklus ini pada langkah 1. Demikian seterusnya hinggapower dimatikan.
2.2.2 Jenis-Jenis Mikrokontroler
1. Mkrokontroller NodeMCU ESP8266
NodeMCU merupakan sebuah open source platform IoT dan pengembangan kit yang menggunakan bahasa pemrograman Lua untuk membantu dalam membuat prototype produk IoT atau bisa dengan memakai sketch dengan adruino IDE.
Pengembangan kit ini didasarkan pada modul ESP8266, yang mengintegrasikan GPIO, PWM (Pulse Width Modulation), IIC, 1-Wire dan ADC (Analog to Digital Converter) semua dalam satu board. GPIO NodeMCU ESP8266 seperti Gambar 2.1.
NodeMCU berukuran panjang 4.83cm, lebar 2.54cm, dan berat 7 gram. Board ini sudah dilengkapi dengan fitur WiFi dan Firmwarenya yang bersifat opensource.
Spesifikasi yang dimliki oleh NodeMCU sebagai berikut :
 Board ini berbasis ESP8266 serial WiFi SoC (Single on Chip) dengan onboard USB to TTL. Wireless yang digunakan adalah IEE 802.11b/g/n.
 2 tantalum capasitor 100 micro farad dan 10 micro farad.
 3.3v LDO regulator.
 Blue led sebagai indikator.
 Cp2102 usb to UART bridge.
 Tombol reset, port usb, dan tombol flash.
 Terdapat 9 GPIO yang di dalamnya ada 3 pin PWM, 1 x ADC Channel, dan pin RX TX 8. 3 pin ground.
 S3 dan S2 sebagai pin GPIO.
 S1 MOSI (Master Output Slave Input) yaitu jalur data dari master dan masuk ke dalam slave, sc cmd/sc.
 S0 MISO (Master Input Slave Input) yaitu jalur data keluar dari slave dan masuk ke dalam master.
 SK yang merupakan SCLK dari master ke slave yang berfungsi sebagai clock.
 Pin Vin sebagai masukan tegangan.
 Built in 32-bit MCU.
Gambar 2.1 NodeMcu2866
Fungsi dari kaki-kaki NodeMcu
 RST : berfungsi mereset modul
 ADC: Analog Digital Converter. Rentang tegangan masukan 0-1v, dengan skup nilai digital 0-1024
 EN: Chip Enable, Active High
 IO16 :GPIO16, dapat digunakan untuk membangunkan chipset dari mode deep sleep
 IO14 : GPIO14; HSPI_CLK
 IO12 : GPIO12: HSPI_MISO
 IO13: GPIO13; HSPI_MOSI; UART0_CTS 2. Mikrokontroller ATMEGA328
ATMEGA328 adalah mikrokontroller keluaran dari atmel yang mempunyai arsitektur RISC (Reduce Instruction Set Computer) yang dimana setiap proses eksekusi data lebih cepat dari pada arsitektur CISC (Completed Instruction Set Computer). Nodemcu328 memiliki beberapa fitur antara lain :
1. 130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus clock.
2. 32x 8-bit register serba guna.
3. Kecepatan mencapai 16 MIPS dengan clock 16 MHz.
4. 32 KB Flash memory dan pada arduino memiliki bootloader yang menggunakan 2 KB dari flash memori sebagai bootloader.
5. Memiliki EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 1KB sebagai tempat penyimpanan data semi permanent karena EEPROM tetap dapat menyimpan data meskipun catu daya dimatikan.
6. Memiliki SRAM (Static Random Access Memory) sebesar 2KB.
7. Memiliki pin I/O digital sebanyak 14 pin 6 diantaranya PWM (Pulse Width Modulation) output.
8. Master / Slave SPI Serial interface.
Mikrokontroler AVR (Alf and Vegaard’s Risc Processor) Nodemcu328P merupakan seri mikrokontroler Complementary Metal Oxide Semiconductor (CMOS ) 8-bit buatan Atmel berbasis arsitektur RISC (Reduced Instruction Set Computer).
Hampir semua instruksi pada program dieksekusi dalam satu siklus clock .Nodemcu328P mempunyai 8 Kbyte in-System Programmable Flash yang memungkinkan memori program untuk diprogram ulang (read/write) dengan koneksi secara serial yang disebut Serial Peripheral Interface (SPI). AVR memilki keunggulan dibandingkan dengan mikrokontroler lain, keunggulan mikrokontroler AVR yaitu memiliki kecepatan dalam mengeksekusi program yang lebih cepat, karena sebagian besar instruksi dieksekusi dalam 1 siklus clock (lebih cepat dibandingkan mikrokontroler keluarga MCS 51 yangmemiliki arsitek ( Complex Intrukstion Set Compute) mempunyai throughput m endekati 1 Millions Instruction Per Second (MIPS) per MHz, sehingga membuat konsumsi daya menjadi rendah terhadap kecepatan proses eksekusi perintah.
Gambar 2.2 ATMEGA328
Mikrokontroller ATMEGA328 memiliki arsitektur Harvard, yaitu memisahkan memori untuk kode program dan memori untuk data sehingga dapat memaksimalkan kerja dan parallelism. Instruksi – instruksi dalam memori Universitas Sumatera Utara 6 program dieksekusi dalam satu alur tunggal, dimana pada saat satu instruksi dikerjakan instruksi berikutnya sudah diambil dari memori program.Konsep inilah yang memungkinkan instruksi – instruksi dapat dieksekusi dalam setiap satu siklus clock. 32 x 8-bit register serba guna digunakan untuk mendukung operasi pada ALU (Arithmatic Logic unit) yang dapat dilakukan dalam satu siklus. 6 dari register serbaguna ini dapat digunakan sebagai 3 buah register pointer 16-bit pada mode pengalamatan tidak langsung untuk mengambil data pada ruang memori data Ketiga register pointer 16-bit ini disebut dengan register X ( gabungan R26 dan R27 ), register Y ( gabungan R28 dan R29 ), dan register Z (
gabungan R30 dan R31 ). Hampir semua instruksi AVR memiliki format 16-bit.
Setiap alamat memori program terdiri dari instruksi 16- bit atau 32-bit. Selain register serba guna di atas, terdapat register lain yang terpetakan dengan teknik memory mapped I/O selebar 64 byte. Beberapa register ini digunakan untuk fungsi khusus antara lain sebagai register control Timer/ Counter, Interupsi, ADC, USART, SPI, EEPROM, dan fungsi I/O lainnya. Register – register ini menempati memori pada alamat 0x20h – 0x5Fh.
Gambar 2.3 Arsitektur ATMEGA328
Mikrokontroler sebagai suatu terobosan teknologi mikroprosesor dan mikrokomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru.
Sebagai teknologi baru, yaitu teknologi semikonduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang yang kecil serta dapat diproduksi secara masal (dalam jumlah banyak) membuat harganya menjadi lebih murah dibandingkan mikroprosesor. Adapun kelebihan dari mikrokontroller adalah sebagai berikut :
1. Penggerak pada mikrokontoler menggunakan bahasa pemrograman assembly dengan berpatokan pada kaidah digital dasar sehingga pengoperasian sistem menjadi sangat mudah dikerjakan sesuai dengan logika sistem.
2. Mikrokontroler tersusun dalam satu chip dimana prosesor, memori, dan I/O
terintegrasi menjadi satu kesatuan kontrol sistem.
3. Sistem running bersifat berdiri sendiri tanpa tergantung dengan komputer Sedangkan parameterkomputer hanya digunakan untuk download perintah instruksi atau program.
4. Pada mikrokontroler tersedia fasilitas tambahan untuk pengembangan memori dan I/O yang disesuaikan dengan kebutuhan sistem.
5. Harga untuk memperoleh alat ini lebih murah dan mudah didapat.
a. Konfigurasi Pin ATMEGA328
Gambar 2.4 Konfigurasi Pin ATMEGA328
ATMEGA328 memiliki 3 buah Port utama yaitu Port B, Port C, dan Port D dengan total pin input/output sebanyak 23 pin. Port tersebut dapat difungsikan sebagai input/output digital atau difungsikan sebagai periperal lainnya.
Port B
Port B merupakan jalur data 8 bit yang dapat difungsikan sebagai input/output.
Selain itu Port B juga dapat memiliki fungsi alternatif seperti di bawah ini:
 ICP1 (PB0), berfungsi sebagai Timer Counter 1 input capture pin.
 OC1A (PB1), OC1B (PB2) dan OC2 (PB3) dapat difungsikan sebagai keluaran PWM (Pulse Width Modulation).
 MOSI (PB3), MISO (PB4), SCK (PB5), SS (PB2) merupakan jalur komunikasi SPI.
 Selain itu pin ini juga berfungsi sebagai jalur pemograman serial (ISP).
 TOSC1 (PB6) dan TOSC2 (PB7) dapat difungsikan sebagai sumber clock external untuk timer.
 XTAL1 (PB6) dan XTAL2 (PB7) merupakan sumber clock utama mikrokontroler.
Port C
Port C merupakan jalur data 7 bit yang dapat difungsikan sebagai input/output digital. Fungsi alternatif Port C antara lain sebagai berikut:
 ADC6 channel (PC0,PC1,PC2,PC3,PC4,PC5) dengan resolusi sebesar 10 bit. ADC dapat kita gunakan untuk mengubah input yang berupa tegangan analog menjadi data digital.
 I2C (SDA dan SDL) merupakan salah satu fitur yang terdapat pada Port C.
I2C digunakan untuk komunikasi dengan sensor atau device lain yang memiliki komunikasi data tipe I2C seperti sensor kompas, accelerometer nunchuck.
PortD
Port D merupakan jalur data 8 bit yang masing-masing pin-nya juga dapat difungsikan sebagai input/output. Sama seperti Port B dan Port C, Port D juga memiliki fungsi alternatif dibawah ini:
 USART (TXD dan RXD) merupakan jalur data komunikasi serial dengan Level sinyal TTL. Pin TXD berfungsi untuk mengirimkan data serial, sedangkan RXD kebalikannya yaitu sebagai pin yang berfungsi untuk menerima data serial.
 Interrupt (INT0 dan INT1) merupakan pin dengan fungsi khusus sebagai interupsi hardware. Interupsi biasanya digunakan sebagai selaan dari
program, misalkan pada saat program berjalan kemudian terjadi interupsi hardware/software maka program utama akan berhenti dan akan menjalankan program interupsi.
 XCK dapat difungsikan sebagai sumber clock external untuk USART, namun kita juga dapat memanfaatkan clock dari CPU, sehingga tidak perlu membutuhkan external clock.
 T0 dan T1 berfungsi sebagai masukan counter external untuk timer 1 dan
timer 0.
 AIN0 dan AIN1 keduanya merupakan masukan input untuk analog comparator.
b. Memori ATMEGA328
ATMEGA328 memiliki 32 KB flash memori untuk menyimpan kode, juga 2 KB yang digunakan untuk bootloader. Nodemcu328P memiliki 2 KB untuk SRAM dan 1 KB untuk EEPROM.
c. Komunikasi Serial Pada ATMEGA328
ATMEGA328 menyediakan komunikasi serial UART TTL (5V) yang tersedia di pin 0 (RX) dan pin 1 (TX). Sebuah chip FTDI yang terdapat pada board berfungsi menterjemahkan bentuk komunikasi ini melalui USB dan akan tampil sebagai Virtual Port di komputer. Pada Arduino Software (IDE) terdapat monitor serial yang memudahkan data textual untuk dikirim menuju Arduino atau keluar dari Arduino. Lampu led TX dan RX akan menyala berkedip-kedip ketika ada data yang ditransmisikan melalui chip FTDI USB to Serial via kabel USB ke komputer. Untuk menggunakan komunikasi serial dari digital pin, gunakan software serial library.
Chip Nodemcu328P juga mendukung komunikasi I2C (TWI) dan SPI. Di dalam Arduino software (IDE) sudah termasuk wire library untuk memudahkan anda menggunakan bus I2C. Untuk menggunakan komunikasi SPI, gunakan SPI library.
d. Daya
Mikrokontroler ATMEGA328 dapat diaktifkan dengan catu daya eksternal.
Adaptor ini dapat dihubungkan dengan menancapkan plug positif 2.1 mm ke colokan listrik. Dari baterai dapat dimasukkan dalam Gnd dan Vin pin header.
Mikrokontroler Nodemcu328P ini dapat beroperasi pada pasokan tegangan eksternal 6 sampai 20 volt. Jika diberikan dengan kurang dari 7 volt, pin yang keluaran 5 volt mungkin pasokannya kurang dari 5 volt dan mikrokontroler Nodemcu mungkin tidak stabil. Jika menggunakan lebih dari 12 volt, regulator tegangan bisa panas dan merusak IC mikro. Kisaran yang disarankan adalah 7-12 volt. Pin sumber daya dalam mikrokontroler Nodemcu328P ini adalah sebagai berikut :
 VIN Tegangan masukan pada mikrokontroler Nodemcu menggunakan sumber dayaeksternal.
 5V Catu daya 5 volt ini digunakan untuk daya mikrokontroler dan komponen lainnyapada boardmikrokontroler Nodemcu328P. Hal ini dapat terjadi dilakukan dari pin VIN melalui regulator on-board, atau melalui port USB atau sumber tegangan lainnya seperti adaptor.
 GND
 Pin ground.
3. Mikrokontroller ATEGA8
Mikrokontroller adalah sebuah system microprocessor dimana didalamnya sudah terdapat CPU,ROM, RAM, I/O, Clock dan peralatan internal lainnya yang sudah saling terhubung dan terorganisasi (teralamati) dengan baik oleh pabrik pembuatnya dan dikemas dalam satu chip yang siap pakai. Sehingga kita tinggal memprogram isi ROM sesuai aturan penggunaan oleh pabrik yang membuatnya.
Teknologi yang digunakan pada mikrokontroler AVR berbeda dengan
mikrokontroler seri MCS-51. AVR berteknologi RISC (Reduced Instruction Set Computer), sedangkan seri MCS-51 berteknologi CISC (Complex Instruction Set Computer). Mikrokontroler AVR dapat dikelompokkan menjadi empat kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga Nodemcu, dan keluarga AT89RFxx.Pada dasarnya yang membedakan masing-masing kelas adalah memori, kelengkapan periperal dan fungsi-fungsi tambahan yang dimiliki.
a. Arsitektur Mikrokontroller ATMEGA8
Mikrokontroler adalah suatu chip yang dapat digunakan sebagai pengontrol utama sistem elektronika, misalnya sistem pengukur suhu digital, sistem keamanan rumah dan lain sebagainya. Hal ini dikarenakan di dalam chip tersebut sudah ada unit pemroses, memori ROM (Read Only Memori), RAM (Random Access Memory), Input-Output, dan fasilitas pendukung lainnya. Mikrokontroler AVR memiliki arsitektur RISC 8 bit, di mana semua instruksi dikemas dalam kode 16-bit (16-bit word) dan sebagian besar instruksi dieksekusi dalam 1 (satu) siklus clock, berbeda dengan instruksi MCS51 yang membutuhkan 12 siklus clock. Hal ini terjadi karena kedua jenis mikrokontroler tersebut memiliki arsitektur yang berbeda. AVR
berteknologi RISC (Reduced Instruksi Set Computing), sehingga eksekusi instruksi dapat berlangsung sangat cepat dan efisien. Sedangkan seri MCS51 berteknoli CISC (Complex Instruktion Set Computing). Pada dasarnya yang membedakan masing- masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bias dikatakan hampir sama. Mikrokontroler AVR sudah menggunakan konsep arsitektur Harvard yang memisahkan memori dan bus untuk data dan program, serta sudah menerapkan single level pipelining.
Berikut adalah feature-feature mikrokontroller seri Nodemcu8.
 Memori Flash 8 Kbytes dalam programmable flash
 Memori EEPROM 512 bytes untuk data yang dapat diprogram saat operasi
 Memori SRAM 1 bytes untuk data
 Dua buah Timer / Counter18 bit dengan kemampuan pembandingan
 Watchdog Timerdengan osilator internal
 6 channel ADC, Empat Saluran 10-bit Akurasi dan Dua Saluran 8-bit Akurasi
 Lima Mode Sleep: Idle, ADC Noise Reduction, Power-save, Power-down, dan Siaga
 Antar muka komparator analog
 Saluran I/O sebanyak 23 buah, yaitu Port A, Port B, Port C, dan Port D.
 Unit interupsi internal dan eksternal
 Programmable Serial USART
 Master / Slave SPI Serial Interface
 Power-on reset dan Deteksi Programmable Brown-out
 Internal dikalibrasi RC Oscillator
4. Arduino Uno
Menurut Abdul Kadir (2013 : 16), Arduino Uno adalah salah satu produk berlabel arduino yang sebenarnya adalah suatu papan elektronik yang mengandung mikrokontroler Nodemcu328 (sebuah keping yang secara fungsional bertindak seperti sebuah komputer). Piranti ini dapat dimanfaatkan untuk mewujudkan rangkaian elektronik dari yang sederhana hingga yang kompleks. Pengendalian LED hingga pengontrolan robot dapat diimplementasikan dengan menggunakan papan berukuran relatif kecil ini. Bahkan dengan penambahan komponen tertentu, piranti
ini bisa dipakai untuk pemantauan kondisi pasien di rumah sakit dan pengendalian alat-alat di rumah. Hardware arduino uno memilki spesifikasi sebagai berikut: a. 14 pin IO Digital (pin 0–13) Sejumlah pin digital dengan nomor 0–13 yang dapat dijadikan input atau output yang diatur dengan cara membuat program IDE. b. 6 pin Input Analog (pin 0–5) Sejumlah pin analog bernomor 0–5 yang dapat digunakan untuk membaca nilai input yang memiliki nilai analog dan mengubahnya ke dalam angka antara 0 dan 1023. c. 6 pin Output Analog (pin 3, 5, 6, 9, 10 dan 11) Sejumlah pin yang sebenarnya merupakan pin digital tetapi sejumlah pin tersebut dapat diprogram kembali menjadi pin output analog dengan cara membuat programnya pada IDE. Papan Arduino Uno dapat mengambil daya dari USB port pada komputer dengan menggunakan USB charger atau dapat pula mengambil daya dengan menggunakan suatu AC adapter dengan tegangan 9 volt. Jika tidak terdapat power supply yang melalui AC adapter, maka papan Arduino akan mengambil daya dari USB port. Tetapi apabila diberikan daya melalui AC adapter secara bersamaan dengan USB port maka papan Arduino akan mengambil daya melalui AC adapter secara otomatis.
5. Mikrokontroler PCI
Pada awalnya, PIC merupakan kependekan dari Programmable Interface Controller.PIC termasuk keluarga mikrokonktroler berarsitektur Harvard yang dibuat olehMicrochip Technology. Awalnya dikembangkan oleh Divisi Mikroelektronik General Instruments dengan nama PIC1640.PIC memungkinkan anda untuk mengontrol perangkat output ketika mereka dipicu oleh sensor dan switch.Program dapat hasilkan dengan menggunakan diagram alur dalam perangkat lunak komputer, yang kemudian dapat di download ke dalam chip PIC. Mereka dapat ditulis ulang Sebanyak yang anda inginkan. Memori jenis ini disebut memori flash. Sebuah mikro kontroler PIC adalah sirkuit terpadu tunggal cukup kecil untuk muat ditelapak tangan dan berisi memori pengolahan unit, Jam dan sirkuit Input / Output dalam satu unit.
Sebuah mikrokontroler PIC, oleh karena itu, sering di gambarkan sebagai komputer dalam sirkuit terpadu. Mikrokontroler PIC dapat dibeli kosong dan kemudian diprogram dengan program control tertentu. Mikrokontroler PIC juga dapat dibeli dengan diprogram seperangkat perintah yang memungkinkan download langsung
dari kabel komputer dan mengurangi biaya peralatan pemrograman.
2.3 Sensor
Sensor adalah perangkat yang dapat mendeteksi atau mengukur kuantitas fisik, sedangkan definisi sensor sesuai dengan Instrumen Society of America adalah, sebuah perangkat yang dapat memberikan output untuk dapat digunakan sebagai respon terhadap besaran suatu ukur tertentu.
2.3.1 Jenis-Jenis Sensor 1. Sensor Hujan
Sensor hujan adalah jenis sensor yang dapat mendeteksi hujan atau adanya cuaca hujan yang berada di sekitarnya, sensor ini dapat digunakan sebagai switch, saat adanya tetesan air hujan yang jatuh melewati raining board yang terdapat pada sensor, selain itu sensor hujan dapat juga digunakan untuk mengukur intensitas curah hujan. Output analog sensor hujan digunakan untuk melakukan pendeteksian hujan, dengan kondisi nilai output sensor tinggi pada saat tidak mendeteksi hujan, sedangkan pada saat sensor mendeteksi hujan, nilai output sensor rendah. Dipasaran sensor ini dijual dalam bentuk module sehingga hanya perlu menyediakan kabel jumper untuk dihubungkan ke mikrokontroler atau arduino.Prinsip kerja dari module sensor ini yaitu pada saat ada air hujan turun dan mengenai panel sensor maka akan terjadi proses elektrolisasi oleh air hujan. Dan karena air hujan termasuk dalam golongan cairan elektrolit yang dimana cairan tersebut akan menghantarkan arus listrik, meskipun sangat kecil dan proses ini akan menyebabkan keadaan aktif yang akan mengaktifkan relay. Pada sensor hujan ini terdapat ic komparator yang dimana output dari sensor ini dapat berupa logika high dan low (on atau off). Serta pada modul sensor ini terdapat output yang berupa tegangan pula. Sehingga dapat dikoneksikan ke pin khusus arduino yaitu Analog Digital Converter. Sensor ini dapat digunakan untuk memantau kondisi ada tidaknya hujan di lingkungan luar yang dimana output dari sensor ini dapat berupa sinyal analog maupun sinyal digital.
Spesifikasi sensor hujan :
1. Sensor ini bermaterial dari FR-04 dengan dimensi 5cm x 4cm berlapis nikel dan dengan kualitas tinggi pada kedua sisinya.
2. Pada lapisan module mempunyai sifat anti oksidasi sehingga tahan terhadap korosi.
3. Tegangan kerja masukan sensor 3.3V – 5V.
4. Menggunakan IC comparator LM393 yang stabil.
5. Output dari modul comparator dengan kualitas sinyal bagus lebih dari 15mA.
6. Dilengkapi lubang baut untuk instalasi dengan modul lainnya.
7. Terdapat potensiometer yang berfungsi untuk mengatur sensitifitas sensor.
8. Terdapat 2 Output yaitu digital (0 dan 1) dan analog (tegangan).
9. Dimensi PCB yaitu 3.2 cm x 1.4 cm.
Gambar 2.5 Modul Sensor Hujan
Fungsi pin pada modul hujan dapat dilihat pada tabel 2.1 dan modul hujan dapat dilihat pada gambar 2.4
Tabel 2.1 Fungsi Pin Modul Sensor Hujan PinFungsi
VCC GND DO A0
Sumber tegangan Ground
Digital Output ( berlogika high dan low ) Analog Output ( berlogika high dan low )
2. Sensor DS18B20
DS18B20 adalah Jenis sensor yang berfungsi untuk merubah besaran panas yang di tangkap menjadi besaran tegangan. Sensor ini dapat mendeteksi suhu dari - 55°C sampai 125°C dengan tingkat keakurasian (+/-0.5°C ) dan dengan resolusi 9 –
12-bit. Sensor ini merupakan salah satu jenis sensor suhu yang unik. Apabila terdapat banyak sensor yang disusun secara paralel data dari keluaran setiap sensor tersebut dapat dibaca hanya dengan menggunakan 1 kabel data atau (one wire) saja. Jenis sensor suhu yang digunakan dalam sistem ini adalah IC DS18B20, sensor ini meiliki presisi tinggi. Sensor ini sangat sederhana dengan hanya memiliki 3 buah kaki. Kaki pertama IC DS18B20 dihubung kesumber daya, kaki kedua sebagai output dan kaki ketika di hubungkan ke ground.
Gambar 2.6 Sensor Suhu DS18B20 Sensor DS18B20 memiliki 3 kaki
kaki 1 = GND (0V) kaki 2 = VCC (3-5.5 Vdc)
kaki 3 (s) = Data (to digital Pin UController)
a. Karakteristik dari IC DS18B20 adalah sebagai berikut:
1. Dapat dikalibrasikan langsung ke dalam besaran Celsius.
2. Faktor skala linear +10mV/ .
3. Tingkat akurasi 0,5 . Saat suhu kamar (25 .).
4. Jangkauan suhu antara -55 . Sampai 150 . 5. Bekerja pada teganagan 4 volt sehingga 30 volt.
6. Arus kerja kurang dari 60 A.
7. Impedensi keluaran rendah 0,1Ω untuk beban 1 mA.
Sensor DS18B20 bekerja dengan mengubah besaran suhu menjadi besaran tegangan. Tegangan ideal yang keluar dari DS18B20 mempunyai perbandingan 100 setara dengan 1 volt. Sensor ini mempunyai pemanasan diri (self heating) kurang dari 0.1 , dapat dioperasikan dengan menggunakan pawer supplay tunggal dan dapat
dihubungkan antar muka (interface) rangkain control yang sangat mudah.
Mikrokontroler Ic DS18B20 dapat langsung dihubungkan dengan PINA. Dimana PINA merupakan PIN mikrokontroler yang dapat mengkonversi tegangan menjadi bilangan digital (analog digital conversation) atau lebih dikenal dengan ADC.
b. Fitur dari sensor DS18B20
 Interface menggunakan 1-wire sebagai komunikasi data.
 Terdapat pengenal unik 64 bit pada setiap sensor.
 Dapat mengukur suhu dari range -55°C sampai +125 °C.
 Keakurasian sensor yaitu +/-0.5 °C pada suhu -10 °C sampai +85 °C.
 Resolusi sensor yaitu 9 – 12 bit.
 Dapat mengkonversi data suhu 12-bit (digital word) hanya membutuhkan waktu 750 ms.
 Mempunyai konfigurasi alarm yang dapat di setting.
 Pengaplikasianya yaitu pada sistem industri, termometer, atau sistem apapun yang memerlukan pembacaan suhu.
3. Thermocouple (T/C)
Thermocouple terdiri dari dua kawat logam penghantar (konduktor) yang memiliki jenisyang berbeda. Kedua ujung kawat tersebut dihubungkan menjadi satu.
Ketika ujung kawat dipanaskan maka kedua logam tersebut akan mengalami pemuaian. Pemuaian ini terjadi akibat pergerakan atom atau elektron akibat perubahan temperatur dari temperatur tinggi menuju ke temperatur rendah.
Pergerakan elektron ini dipengaruhi oleh bahan logam itu sendiri, artunya antara logam yang satu dengan logam lainnya mempunyai kecepatan muai berbda ini tergantug dari masa jenis suatu logam tersebut.Salah satu jenis thermocouople adalah JTC Thermocouple. JTC merupakan sensor mengubah besaran suhu menjadi tegangan, dimana sensor ini dibuat dari sambungan dua bahan metalik yang berlainan jenis. Sambungan ini dikomposisikan dengan campuran kimia tertentu, sehingga dihasilkan beda potensial antar sambungan yang akan berubah terhadap suhu yang dideteksi.
4. RTD (Resistance Temperature Detector)
Resistance Temperature Detector (RTD) memiliki tahanan listrik dari logam yang bervariasi sebanding dengan suhu. Kesebandingan variasi ini adalah presisi dengan tingkat konsisten/kestabilan yang tinggi pada pendeteksian tahanan. Platina adalah bahan yang sering digunakan karena memiliki tahanan suhu, kelinearan, stabilitas dan reproduksibilitas.
5. LM35
Sensor LM35 bekerja dengan mengubah besaran suhu menjadi besaran tegangan. Tegangan ideal yang keluar dari LM35 mempunyai perbandingan 100°C setara dengan 1 volt. Sensor ini mempunyai pemanasan diri (self heating) kurang dari 0,1°C, dapat dioperasikan dengan menggunakan power supply tunggal dan dapat dihubungkan antar muka (interface) rangkaian control yang sangat mudah. IC LM 35 ini tidak memerlukan pengkalibrasian atau penyetelan dari luar karena ketelitiannya sampai lebih kurang seperempat derajat celcius pada temperature ruang. Jangka sensor mulai dari – 55°C sampai dengan 150°C, IC LM35 penggunaannya sangat mudah, difungsikan sebagai kontrol dari indicator tampilan catu daya terbelah. IC LM 35 dapat dialiri arus 60 μ A dari supplay sehingga panas yang ditimbulkan sendiri sangat rendah kurang dari 0 ° C di dalam suhu ruangan.
2.4 LCD (Liquid Crystal Display)
LCD (Liquid Crystal Display) adalah suatu jenis media tampil yang menggunakan kristal cair sebagai penampil utama. LCD sudah digunakan diberbagai bidang misalnya alal–alat elektronik seperti televisi, kalkulator, ataupun layar komputer. Pada bab ini aplikasi LCD yang dugunakan ialah LCD dot matrik dengan jumlah karakter 2 x 16. LCD sangat berfungsi sebagai penampil yang nantinya akan digunakan untuk menampilkan status kerja alat. Adapun fitur yang disajikan dalam LCD ini adalah :
1. Terdiri dari 16 karakter dan 2 baris.
2. Mempunyai 192 karakter tersimpan.
3. Terdapat karakter generator terprogram.
4. Dapat dialamati dengan mode 4-bit dan 8-bit.
5. Dilengkapi dengan back light.
6. Tersedia VR untuk mengatur kontras.
7. Pilihan konfigurasi untuk operasi write only atau read/write.
8. Catu daya +5 Volt DC.
9. Kompatibel dengan DT-51 dan DT-AVR Low Cost Series serta sistem mikrokontroler/mikroprosesor lain.
Gambar 2.7 LCD (Liquid Crystal Display)
Tabel 2.2 Deskripsi Pin Pada LCD Pin Deskripsi
1 Ground 2 Vcc
3 Pengatur kontras
4 “RS” Intruction/Register Select 5 “R/W” Read/Write LCD Register 6 “EN” Enable
7-14 Data I/O Pins 15 Vcc
16 Ground
2.4.1 Cara kerjaLCD (Liquid Crystal Display)
Pada aplikasi umumnya RW diberi logika rendah “0”.Bus data terdiri dari 4- bit atau 8-bit.Jika jalur data 4-bit maka yang digunakan ialah DB4 sampai dengan DB7. Sebagaimana terlihat pada table diskripsi, interface LCD merupakan sebuah parallel bus, dimana hal ini sangat memudahkan dan sangat cepat dalam pembacaan dan penulisan data dari atau ke LCD. Kode ASCII yang ditampilkan sepanjang 8-bit dikirim ke LCD secara 4-bit atau 8 bit pada satu waktu. Jika mode 4-bit yang digunakan, maka 2 nibble data dikirim untuk membuat sepenuhnya 8-bit (pertama dikirim 4-bit MSB lalu 4-bit LSB dengan pulsa clock EN setiap nibblenya). Jalur
kontrol EN digunakan untuk memberitahu LCD bahwa mikrokontroller mengirimkan data ke LCD.Untuk mengirim data ke LCD program harus menset EN ke kondisi high “1” dan kemudian menset dua jalur kontrol lainnya (RS dan R/W) atau juga mengirimkan data ke jalur data bus.Saat jalur lainnya sudah siap, EN harus diset ke
“0” dan tunggu beberapa saat (tergantung pada datasheet LCD), dan set EN kembali ke high “1”. Ketika jalur RS berada dalam kondisi low “0”, data yang dikirimkan ke LCD dianggap sebagai sebuah perintah atau instruksi khusus (seperti bersihkan layar, posisi kursor dll). Ketika RS dalam kondisi high atau “1”, data yang dikirimkan adalah data ASCII yang akan ditampilkan dilayar. Misal, untuk menampilkan huruf
“A” pada layar maka RS harus diset ke “1”. Jalur kontrol R/W harus berada dalam kondisi low(0) saat informasi pada data bus akan dituliskan ke LCD. Apabila R/W berada dalam kondisi high “1”, maka program akan melakukan query (pembacaan) data dari LCD. Instruksi pembacaan hanya satu, yaitu Get LCD status (membaca status LCD), lainnya merupakan instruksi penulisan.Jadi hampir setiap aplikasi yang menggunakan LCD, R/W selalu diset ke “0”.Jalur data dapat terdiri 4 atau 8 jalur (tergantung mode yang dipilih pengguna), DB0, DB1, DB2, DB3, DB4, DB5, DB6 dan DB7.Mengirim data secara parallel baik 4-bit atau 8-bit merupakan 2 mode operasi primer. Untuk membuat sebuah aplikasi interface LCD, menentukan mode operasi merupakan hal yang paling penting.
2.5 Relay
Relay merupakan salah satu jenis komponen elektronika yang banyak diaplikasi di berbagai macam rangkaian elektronika mulai dari yang sederhana sampai dengan yang rumit. Perlu diketahui bahwa relay sebenarnya adalah sebuah saklar elektrik yang digerakkan oleh listrik. Cara kerja relay sebenarnya tak berbeda dibanding dengan saklar biasa. Perlu diketahui bahwa relay menggunakan prinsip elektromagnetik sebagai penggerak kontak saklar. Jadi tanpa listrik komponen relay tidak dapat digunakan. Relay adalah komponen elektronika yang berupa saklar atau switch elektrik yang dioperasikan menggunakan listrik. Relay juga biasa disebut sebagai komponen electromechanical atau elektromekanikal yang terdiri dari dua bagian utama yaitu coil atau elektromagnet dan kontak saklar atau mekanikal.
Komponen relay menggunakan prinsip elektromagnetik sebagai penggerak kontak
saklar, sehingga dengan menggunakan arus listrik yang kecil atau low power, dapat menghantarkan arus listrik yang yang memiliki tegangan lebih
tinggi. Berikut adalah gambar relay gambar
Gambar 2.8 Relay
Seperti yang telah dikatakan tadi bahwa relay memiliki fungsi sebagai saklar elektrik. Namun jika diaplikasikan ke dalam rangkaian elektronika, relay memiliki beberapa fungsi yang cukup unik. Berikut adalah beberapa fungsi komponen relay saat diaplikasikan ke dalam sebuah rangkaian elektronika. Mengendalikan sirkuit tegangan tinggi dengan menggunakan bantuan signal tegangan rendah. Menjalankan fungsi logika alias logic function. Memberikan fungsi penundaan waktu alias time delay function. Melindungi motor atau komponen lainnya dari kelebihan tegangan atau korsleting. Setelah mengetahui pengertian dan fungsi relay, berikut adalah cara kerja atau prinsip kerja relay yang juga harus anda ketahui. Namun sebelumnya anda perlu tahubahwa dalam sebuah relay terdapat 4 buah bagian penting yakni Electromagnet (Coil), Armature, Switch Contact Point (Saklar), dan Spring. Sebuah Besi (Iron Core) yang dililit oleh kumparan Coil, berfungsi untuk mengendalikan Besi tersebut. Apabila Kumparan Coil dialiri arus listrik, maka akan muncul gaya elektromagnetik yang dapat menarik Armature sehingga dapat berpindah dari posisi sebelumnya tertutup (NC) menjadi posisi baru yakni terbuka (NO).
2.6 Power Supplay
Power supplay sebagai alat atau perangkat keras yang mampu menyuplai tenaga atau tegangan listrik secara langsung dari sumber tegangan listrik ke tegangan
listrik yang lainnya. Power supplay biasanya digunakan untuk komputer sebagai penghantar tegangan listrik secara langsung kepada komponen-komponen atau perangkat keras lainnya yang ada di komputer tersebut, seperti hardisk, kipas, motherboard dan lain sebagainya. Power supplay memiliki input dari tegangan yang berarus alternating current (AC) dan mengubahnya menjadi arus direct current (DC) lalu menyalurkannya ke berbagai perangkat keras yang ada di komputer . Karena memang arus direct current (DC)-lah yang dibutuhkan untuk perangkat keras agar dapat beroperasi, direct current biasa disebut juga sebagai arus yang searah sedangkan alternating current merupakan arus yang berlawanan.Power supply/unit catu daya secara efektif harus mengisolasi rangkaian internal dari jaringan utama, dan biasanya harus dilengkapi dengan pembatas arus otomatis atau pemutus bila terjadi beban lebih atau hubung singkat.Bila pada saat terjadinya kesalahan catu daya, tegangan keluaran DC meningkat di atas suatu nilai aman maksimum untuk rangkaian internal, maka daya secara otomatis harus diputuskan. Fungsi Power Supply ( PSU )Power Supply sendiri berfungsi sebagai pengubah dari tegangan listrik AC (Alternating Current) menjadi tegangan (Direct Current), karena hardware komputer hanya dapat beroperasi dengan arus DC. Power supply pada umumnya berupa kotak yang diletakan dibagian belakang atas casing. Besarnya listrik yang mampu ditangani power supply ditentukan oleh dayanya dan dihitung dengan satuan Watt.Daya power supply berkisar 150 watt sampai 350 watt. Untuk daya 150 watt sudah jarang dijumpai karena hanya digunakan untuk komputer yang sederhana tanpa banyak komponen tambahan. Sedangkan jika dalam sebuah komputer yang memiliki beberapa banyak komponen misal: CD-ROM, CD-RW, dan menggunakan banyak hard disk direkomendasikan menggunakan power supply 300 watt atau lebih besar.Fungsi power supply yang kurang baik/rusak dapat menghasilkan tegangan DC yang tidak rata dan banyak riaknya (ripple). Jika digunakan dalam jangka waktu yang cukup lama akan menyebabkan kerusakan pada komponen computer, misalnya Harddisk.Power supplay sebagai alat atau perangkat keras yang mampu menyuplai tenaga atau tegangan listrik secara langsung dari sumber tegangan listrik ke tegangan listrik yang lainnya. Power supply biasanya digunakan untuk komputer sebagai penghantar tegangan listrik secara langsung kepada komponen-komponen atau perangkat keras lainnya yang ada di komputer tersebut, seperti hardisk, kipas,
motherboard dan lain sebagainya. Power supply memiliki input dari tegangan yang berarus alternating current (AC) dan mengubahnya menjadi arus direct current (DC) lalu menyalurkannya ke berbagai perangkat keras yang ada di komputer .
Gambar 2.9 Power Supplay
2.10 Kapasitor
Kapasitor adalah komponen elektronika yang mempunyai kemampuan menyimpan elektron-elektron selama waktu yang tertentu atau komponen elektronika yang digunakan untuk menyimpan muatan listrik yang terdiri dari dua konduktor dan di pisahkan oleh bahan penyekat (bahan dielektrik) tiap konduktor di sebut keping.
Seperti juga halnya resistor, kapasitor adalah termasuk salah satu komponen pasif yang banyak digunakan dalam membuat rangkaian elektronika. Kapasitor berbeda dengan akumulator dalam menyimpan muatan listrik terutama tidak terjadi perubahan kimia pada bahan kapasitor. Pengertian lain Kapasitor adalah komponen elektronika yang dapat menyimpan dan melepaskan muatan listrik. Kapasitor atau yang sering disebut kondensator merupakan komponen listrik yang dibuat sedemikian rupa sehingga mampu menyimpan muatan listrik. Prinsip sebuah kapasitor pada umumnya sama halnya dengan resistor yang juga termasuk dalam kelompok komponen pasif, yaitu jenis komponen yang bekerja tanpa memerlukan arus panjar.Kapasitor terdiri atas dua konduktor (lempeng logam) yang dipisahkan oleh bahan penyekat (isolator). Isolator penyekat ini sering disebut sebagai bahan (zat) dielektrik. Zat dielektrik yang digunakan untuk menyekat kedua penghantar komponen tersebut dapat digunakan untuk membedakan jenis kapasitor. Beberapa pengertian kapasitor yang menggunakan bahan dielektrik antara lain berupa kertas, mika, plastik cairan dan lain sebagainya. Jika kedua ujung plat metal diberi tegangan
listrik, maka muatan-muatan positif akan mengumpul pada salah satu kaki (elektroda) metalnya dan pada saat yang sama muatan-muatan negatif terkumpul pada ujung metal yang satu lagi. Muatan positif tidak dapat mengalir menuju ujung kutup negatif dan sebaliknya muatan negatif tidak bisa menuju ke ujung kutup positif, karena terpisah oleh bahan dielektrik yang non-konduktif. Muatan elektrik ini
“tersimpan” selama tidak ada konduksi pada ujung-ujung kakinya. Kemampuan untuk menyimpan muatan listrik pada kapasitor disebuat dengan kapasitansi atau kapasitas. Kapasitansi didefenisikan sebagai kemampuan dari suatu kapasitor untuk dapat menampung muatan elektron. Coulombs pada abad 18 menghitung bahwa 1 coulomb = 6.25 x 1018 elektron.
Gambar 2.12 Kapasitor
Cara kerja kapasitor dalam sebuah rangkaian adalah dengan mengalirkan elektron menuju kapasitor. Pada saat kapasitor sudah di penuhi dengan elektron, tegangan akan mengalami perubahan. Selanjutnya, elektron akan keluar dari sebuah kapasitor dan mengalir menuju rangkaian yang membutuhkannya. Dengan begitu, kapasitor akan membangkitkan reaktif suatu rangkaian. Fungsi Kapasitor sangat di perlukan dalam suatu komponen elektronika. Kapasitor adalah komponen elektronika yang berfungsi untuk menyimpan muatan listrik, selain itu kapasitor juga dapat digunakan sebagai penyaring frekuensi. Kapasitas untuk menyimpan kemampuan kapasitor dalam muatan listrik disebut Farad (F) sedangkan simbol dari kapasitor adalah C (kapasitor). Fungsi Kapasitor sendiri terbagi atas 2 kelompok yaitu kapasitor yang memiliki kapasitas yang tetap dan kapasitor yang memiliki kapasitas
yang dapat diubah-ubah atau dengan kata lain kapasitor variabel.
Sifat dasar dalam sebuah kapasitor adalah dapat menyimpan muatan listrik, dan Untuk arus DC kapasitor berfungsi sebagai isulator/penahan arus listrik, sedangkan untuk arus AC Kapasitor berfungsi sebagai konduktor.
BAB 3
PERANCANGAN DAN PEMBUATAN PROYEK
3.1 Metodologi Perancangan 3.1.1 Tahap Persiapan
Pada sub bab ini penulis memaparkan persiapan analisis permasalahan yang diangkat dan dirancang menjadi sebuah alat yang disajikan diawal dengan diagram blok dan flowchart serta dipaparkan juga perancangan sistem yang akan dibangun,baik yang berupa perangkat keras ataupun perangkat lunak, dan cara melakukan pengujian.
3.1.2 Tahap Pembuatan Sistem
Pada tahap Pembuatan sistem penulis memaparkan bagaimana perancangan pembuatan sistem,baik mulai dari peracangan rangkaian,hingga menyelesaikan perancangan alat secara keseluruhan.Sehingga dapat melalukan pengujian nantinya.
3.1.3 Tahap pengukuran, Analisis dan Kesimpulan
Analisis masalah adalah mengidentifikasi sebuah masalah, guna untuk memperoleh informasi agar dapat dipecahkan atau deselesaikan.Data-data yang telah diperoleh dari pengujian sensor kemudian dilakukan analisa baik dari sensor suhu DS18B20 dan sensor hujan.Dilakukan analisa pada output-nya juga yaitu LCD dan Android yang menampilkan hasil data yang di dapat. Data analisa yang diperoleh adalah data saat alat digunakan pada pengujian yang telah dibuat,dan melakukan perbandingan dengan alat standar.
3.2 Perancangan Sistem 3.2.1 Diagram Blok Sistem
Diagram merupakan pernyataan hubungan yang berurutan dari suatu atau lebih komponen yang memiliki kesatuan kerja tersendiri,dan setiap blok komponen mempengaruhi komponen yang lainnya.Diagram blok merupakan salah satu cara yang paling sederhana untuk menjelaskan cara kerja dari suatu sistem.
Dengan diagram blok kita dapat menganalisa cara kerja rangkaian dan merancang hardware yang akan dibuat secara umum. Adapun diagram blok dari system yang dirancang,seperti yang diperlihatkan pada gambar dibawah ini.
Gambar 3.1 Diagram Blok Sistem A. Penjelasan Diagram Blok Sistem
Dapat dilihat dari diagram blok bahwa saat alat di hidupkan maka system akan meminta inputan suhu dan hujan, setelah suhu dan hujan dideteksi dengan menggunakan sensor DS18B20 dan sensor hujan kemudian diteruskan mengirim data ke system. Data sensor hujan dalam bentuk analog dan suhu dalam bentuk digital. Oleh karena itu sensor suhu dihubungkan ke pin digital mikrokontroler dan hujan ke pin analog. Di program dapat dilihat yang dimana program yang mengolah sensor suhu dan hujan menjadi persentase hujan dan suhu yang ditampilkan di LCD dan keluaran dalam bentuk huruf. Karena dirangkaian ini menggunakan ESP2866, maka rangkaian ini bisa connect ke dunia internet. Dengan menggunakan aplikasi blynk dapat dilihat berapa suhu dan hujan yang ada. Aplikasi blynk ini ada memori yang disiapkan untuk menyimpan data. Sehingga hasil nilai suhu dan hujan dapat ditampilkan di hanphone yang dikoneksi ke internet. Dan sistemya itu sistem monitoring, dimana waktu yang dipakai adalah waktu dari internet. Dan dengan data logger dihubungkan ke komputer (Ms. Excel), maka data suhu dan hujan akan dikirim ke komputer melalui komunikasi serial. Komunikasi serial diperlukan untuk melihat pengukuran suhu dan hujan dalam bentuk grafik.
PSA 9 v
Node MCu DS18B20
Sensor Hujan
Esp8266
Display
Smartphone
Grafik
3.2.2 Perancangan Rangkaian Sistem
1. Rangkaian Sensor DS18B20 dan NodeMcu
Hubungan antara sensor suhu DS18B20 dengan NodeMcu, saat sensor suhu mendeteksi suhu maka akan diikirim ke NodeMcu sehingga di proses agar menghasilkan output sesuai dengan yang diset. Sensor DS18B20 memiliki 3 Pin yang dihubungkan ke 2 Pin Digital NodeMcu, D8 dan GND.
Gambar 3.2 Rangkaian Set DS18B20 dan NodeMcu
2. Rangkaian Sensor Hujan dan NodeMcu
Hubungan antara sensor hujan dengan NodeMcu, saat sensor hujan mendeteksi hujan maka akan diikirim ke NodeMcu sehingga di proses agar menghasilkan output sesuai dengan yang diset. Sensor hujan memiliki 3 Pin yang dihubungkan ke 3 Pin Digital NodeMcu, A0, VCC dan GND.
3. Rangkaian NodeMcu Dan LCD
Hubungan antara NodeMcu dan LCD, saat sensor hujan dan suhu terdeteksi maka akan diikirim ke NodeMcu sehingga di proses agar menghasilkan output sesuai dengan yang diset dan di tampilkan ke LCD. LCD memiliki 16 Pin yang dihubungkan ke 4 Pin Digital NodeMcu, GND, 3V, D2, D3.
Gambar 3.4 Rangkaian Set NodeMcu Dan LCD
5. Rangakaian Smartphone
Smartphone berfungsi sebagai output menampilkan nilai dari suhu dan hujan. Rangkaian ini berfungsi untuk mengubah satuan bilangan heksa menjadi karakter yang di tampilkan di LCD dan juga pada smartphone.
Gambar 3.5 Output Smartphone
6. Perancangan Sistem Keseluruhan
Gambar 3.6 Rangkaian Sistem Monitoring Suhu Dan Hujan
3.2.3Perancangan Perangkat Lunak 1. Software
a. Protel & eagle
Protel dan Eagle sebagai program yang digunakan untuk menggambar rangkaian elektronik.
b. Aec_FTDI RS232
Aec_FTDI RS232 digunakan untuk mengambil file dengan ekstensi HEX dan memprogram ke dalam minisystem NODEMCU.
c. Asm_51
Asm_51 digunakan untuk mengubah file dengan ekstensi ASM menjadi file dengan ekstensi HEX.
3.3 Pengujian Rangkaian Dan Pengukuran Hasil Sistem 3.3.1 Pengujian Minimum Sistem NODEMCU
Pengecekan minimum sistem NODEMCU dilakukan dengan memberikan nilai high pada port 0, 1, 2, 3. Untuk melakukan pengujian keluaran pada portnya, dirangkai menggunakan lampu led. Kaki positif pada led dihubungkan ke Port 0.1 kemudian negatif pada ground, dan led akan menyala.
Tabel 3.1 Pengujian Minimum Sistem NODEMCU Pin no Pin nama I/O Ketarangan 1 VSS power powersupply(-) 2 VDD power power supply (-) 3 VO power LCD
4 RS input Register select - RS = HIGH - RS = LOW
5 R/W input read/writing control bus R/W = HIGH
R/W = LOW 6 E input data enable
7 DB0 I/O 8 bit mode DB0-DB7 14 DB F 4bit mode, DB4-DB7 15 B1A power LED backlight supply (+) 16 B1K power LED back light Suply (=)
3.3.2 Pengujian Rangkaian LCD
Dilakukan dengan mengaupload program:
DateTime now = rtc.now();
lcd.setCursor(0,0);
lcd.print(namaHari[now.dayOfTheWeek()]);
lcd.print(",");
printAngka(now.day());
lcd.print("-");
printAngka(now.month());
lcd.print("-");
printAngka(now.year());
lcd.setCursor(0,1);
lcd.print("Jam");
lcd.setCursor(4,1);
printAngka(now.hour());
lcd.print(":");
printAngka(now.minute());
lcd.print(":");
printAngka(now.second());
}
void printAngka(int digits){
if(digits < 10){
lcd.print('0');
lcd.print(digits);
}
else lcd.print(digits);
}
Gambar 3.7 Pengujian Pada LCD
3.3.3 Pengujian Sensor hujan Dengan program:
#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal.h>
#include <SPI.h>
#include <SD.h>
#include <OneWire.h>
#include <DallasTemperature.h>
LiquidCrystal lcd(4, 5,6, 7, 8, 9);
const int chipSelect = 10;
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
RTC_DS3231 rtc;
float se = analogRead(A1); // reads the value of the potentiometer (value between 0 and 1023)
se = map(se, 1024, 400, 0, 100);
3.3.4 Pengujian Sensor DS18B20
Pengcekan sensor suhu dilakukan dengan mengaupload program sebagai berikut:
#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 2
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
/*
* The setup function. We only start the sensors here */
void setup(void) {
// start serial port Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");
// Start up the library sensors.begin();
}
/*
* Main function, get and show the temperature */
void loop(void) {
// call sensors.requestTemperatures() to issue a global temperature // request to all devices on the bus
Serial.print("Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get temperatures Serial.println("DONE");
// After we got the temperatures, we can print them here.
// We use the function ByIndex, and as an example get the temperature from the first sensor only.
Serial.print("Temperature for the device 1 (index 0) is: ");
Serial.println(sensors.getTempCByIndex(0));
}
Dengan hasil kerja sensor sebagai berikut:
Gambar 3.8 Program Hasil Kerja Sensor DS18B20
3.3.5 Pengujian esp8266 Dilakukan dengan program:
#define BLYNK_PRINT Serial
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#define ONE_WIRE_BUS D4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
const int rs = D3, en = D2, d4 = D5, d5 = D6, d6 = D7, d7 = D8;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "DFKcsCDDBT3oRsh3QOvLSy6nDYT7QMn5";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "S T A K";
char pass[] = "Berkat681568";
void setup() {
// Debug console Serial.begin(9600);
sensors.begin();
lcd.begin(16, 2);
Blynk.begin(auth, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
}
void loop() {
float hujan = analogRead(A0);
hujan = map(hujan, 1024, 400, 0, 100);
sensors.requestTemperatures();
float suhu = sensors.getTempCByIndex(0);
Serial.print("Temperature for the device 1 (index 0) is: ");
Serial.println(suhu);
Gambar 3.9 Program Hasil Kerja Esp8266
3.3.6 Pengujian Keseluruhan Dilakukan dengan program
#define BLYNK_PRINT Serial
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#define ONE_WIRE_BUS D4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
const int rs = D3, en = D2, d4 = D5, d5 = D6, d6 = D7, d7 = D8;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "DFKcsCDDBT3oRsh3QOvLSy6nDYT7QMn5";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "S T A K";
char pass[] = "Berkat681568";
void setup() {
// Debug console Serial.begin(9600);
sensors.begin();
lcd.begin(16, 2);
Blynk.begin(auth, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
}
void loop() {
float hujan = analogRead(A0);