Anda di halaman 1dari 100

RANCANG BANGUN PURWARUPA SMART CAGE PADA TERNAK AYAM

BROILER BERBASIS INTERNET OF THINGS (IOT)


Tugas Akhir
Untuk memenuhi sebagian persyaratan
Mencapai derajat Sarjana S-1 Jurusan Teknik Elektro

Oleh:
ALFAN SUFFA PRAMANA
F1B016009

JURUSAN TEKNIK ELEKTRO


FAKULTAS TEKNIK
UNIVERSITAS MATARAM
2022
RANCANG BANGUN PURWARUPA SMART CAGE PADA TERNAK AYAM
BROILER BERBASIS INTERNET OF THINGS (IOT)
Tugas Akhir
Untuk memenuhi sebagian persyaratan
Mencapai derajat Sarjana S-1 Jurusan Teknik Elektro

Oleh:
ALFAN SUFFA PRAMANA
F1B016009

JURUSAN TEKNIK ELEKTRO


FAKULTAS TEKNIK
UNIVERSITAS MATARAM
SURAT PERNYATAAN KEASLIAN TUGAS AKHIR

Yang bertanda tangan di bawah ini:

Nama : Alfan Suffa Pramana


NIM : F1B016009
Program Studi : Teknik Elektro
Perguruan Tinggi : Universitas Mataram

Dengan ini menyatakan bahwa tugas akhir yang telah saya buat dengan judul: “Rancang
Bangun Purwarupa Smart Cage Pada Ternak Ayam Broiler Berbasis Internet Of Things
(IoT)” adalah asli (orsinil) atau tidak plagiat (menjiplak) dan belum pernah
diterbitkan/dipublikasikan dimanapun dan dalam bentuk apapun.

Demikianlah surat pernyataan ini saya buat dengan sebenar-benarnya tanpa ada paksaan
dari pihak manapun juga. Apabila dikemudian hari ternyata saya memberikan keterangan
palsu dan atau ada pihak lain yang mengklaim bahwa tugas akhir yang telah saya buat
adalah hasil karya milik seseorang atau badan tertentu, saya bersedia diproses baik secara
pidana maupun perdata dan kelulusan saya dari Universitas Mataram dicabut/dibatalkan.

Dibuat di : Laboratorium Jaringan dan Komputer, JTE, FT, Universitas Mataram


Pada tanggal : __________________
Yang menyatakan

Alfan Suffa Pramana


PRAKATA
Segala puji dan syukur penulis panjatkan kehadirat Allah AWT atas segala
nikmat, berkat dan karunia-Nya sehingga penulis data menyelesaikan penyusunan Tugas
akhir ini dengan judul “RANCANG BANGUN PURWARUPA SMART CAGE PADA
TERNAK AYAM BROILER BERBASIS INTERNET OF THINGS ( IOT )”.
Tugas akhir ini dilaksanakan di kediaman penulis yag berada di Desa Anyar,
kecamatan Bayan, Kabupaten Lombok Utara, Provinsi Nusa Tenggara Barat. Tugas akhir
ini disusun untuk memenuhi salah satu syarat kelulusan yang harus ditempuh guna untuk
mencapai gelar S1 (Strata) di Jurusan Teknik Elektro Fakultas Teknik Universitas
Mataram. Penelitian ini juga bertujuan untuk melakukan mengembangan terhadap
beberapa penelitian yang pernah dilakukan oleh orang lain dalam melakukan
pengontrolan terhadap pakan ayam serta pengontrolan terhadap suhu ruangan kandang
ayam.
Penulis menyadari bahwa Tugas Akhir ini jauh dari kata kesempurnaan. Oleh
karena itu penulis mengharapkan segala kritik dan saran yang dapat membangun dan
membuat penelitian ini menjadi lebih baik untuk kedepannya. Ahkhir kata, penulis
berharap Tugas Akhir ini dapat bermanfaat bagi pembaca.

Mataram , 3 Maret 2022

Alfan Suffa Pramana


UCAPAN TERIMAKASIH

Dengan kerendahan hati, penulis menyadari bahwa dalam menyelesaikan Tugas


Akhir ini tidak lepas dari peran berbagai macam pihak yang telah memberikan dukungan,
semangat, bantuan serta bimbingan. Dalam kesempatan ini penulis ingin mengucapkan
terima kasih yang setulus-tulusnya terutama kepada:

1. Allah Subhanahu Wa Ta’ala yang telah memberikan berkat, rahmat, hidayah,


kesabaran, kekuatan dan kesempatan untuk mampu menyelesaikan tugas akhir ini
dengan baik.
2. Keluarga tercinta khususnya kepada kedua orang tua penulis (Bapak Edy sukamto
dan Ibu Faridha) dan adik (Firza Suffa Nugraha) serta seluruh keluarga yang telah
memberikan dukungan, semangat serta do’a dalam menempuh pendidikan yang
sedang dijalani serta menyelesaikan tugas akhir ini dengan baik.
3. Bapak A. Sjamsijar Rachman, ST., MT. selaku Ketua Jurusan Teknik Elektro
Fakultas Teknik, Universitas Mataram yang selalu memberikan motivasi untuk
menyelesaikan tugas akhir ini.
4. Bapak A. Sjamsijar Rachman, ST., MT. selaku Dosen Pembimbing Utama yang
telah memberikan bimbingan, masukan serta semangat kepada penulis untuk
menyelesaikan Tugas Akhir ini.
5. Bapak Syafarudin Ch, ST.MT. selaku Dosen Pembimbing Pendamping yang telah
memberikan bimbingan, masukan, serta semangat kepada penulis untuk
menyelesaikan Tugas Akhir ini.
6. Tim Dosen Penguji yang telah memberikan kritikan, arahan, saran dan masukan
guna menyempurnakan Tugas Akhir ini.
7. Sahabat serta teman-teman seperjuangan, keluarga besar Teknik Elektro
Angkatan 2016 yang telah banyak membantu, mendoakan dan memberikan
dukungan kepada penulis untuk menyelesaikan Tugas Akhir ini dengan baik.
8. Sahabat yang telah membantu penulis dalam menyelesaikan Tugas akhir seperti
Gildas (Gio), Ilham Bayu (Bikes), Ade Nusa, Dodi, dan Sahabat lainya yang tidak
bisa disebutkan satu-persatu.
9. Sahabat SMAN 1 BAYAN Angkatan 2013 yang selalu mendukung dengan
semangat, mendoakan dan memotivasi penulis dalam menyelesaikan Tugas Akhir
ini.
10. Semua pihak yang tidak dapat disebutkan satu persatu yang telah memberikan
bimbingan serta saran kepada penulis dalam menyelesaikan Tugas Akhir ini.
Maka dari itu kritik dan saran yang dapat membangun penelitian ini dari pembaca,
sangat diharapkan guna menyempurnakan Tugas Akhir ini agar kedepannya menjadi
lebih baik lagi.
Akhir kata, dengan segala hormat penulis ucapkan terima kasih yang
sebesarbesarnya dan mohon maaf atas segala kekurangan yang ada dalam penelitian ini,
semoga dapat memberikan manfaat bagi pembaca.

Mataram, 3 Maret 2022

Alfan Suffa Pramana


DAFTAR ISI

HALAMAN JUDUL
LEMBAR PENGESAHAN
SURAT PERNYATAAN KEASLIAN TUGAS AKHIR ................................................ ii
PRAKATA........................................................................................................................ v
UCAPAN TERIMAKASIH ............................................................................................ vi
DAFTAR ISI.................................................................................................................... iii
DAFTAR GAMBAR ........................................................................................................ v
DAFTAR TABEL........................................................................................................... vii
BAB I ................................................................................................................................ 1
1.1 Latar Belakang ................................................................................................... 1
1.2 Rumusan Masalah .............................................................................................. 3
1.3 Batasan Masalah................................................................................................. 3
1.4 Tujuan ................................................................................................................ 3
1.5 Manfaat .............................................................................................................. 3
1.6 Sistematika Penulisan......................................................................................... 4
BAB II............................................................................................................................... 5
2.1 Tinjauan Pustaka ................................................................................................ 5
2.2 Dasar Teori ......................................................................................................... 6
2.2.1 Smart Cage ................................................................................................. 6
2.2.2 Ayam Broiler ( Ras Pedaging ) ................................................................... 6
2.2.3 Internet of Things (IoT) .............................................................................. 8
2.2.4 MQTT ( Message Qeuening Telemetri Transport )................................... 8
2.2.5 Mean Absolute Persentage Error ( MAPE ) ............................................... 9
2.2.6 ESP32.......................................................................................................... 9
2.2.7 RTC DS3231............................................................................................. 11
2.2.8 Sensor Suhu dan Kelembaban DHT 11 .................................................... 12
2.2.9 Relay ......................................................................................................... 13
2.2.10 Motor Stepper ........................................................................................... 15
2.2.11 Sensor Beban ( Load Cell ) ....................................................................... 17
2.2.12 Motor Servo .............................................................................................. 19
2.2.13 Sensor Ultrasonic HCSR 04 ..................................................................... 20
BAB 3 ............................................................................................................................. 22
3.1 Metode Penelitian............................................................................................. 22
iii
3.2 Persiapan ( Prepare ) ........................................................................................ 23
3.3 Perencanaan ( Plan ) ......................................................................................... 24
3.3.1 Perangkat Keras ........................................................................................ 24
3.3.2 Perangkat Lunak ....................................................................................... 24
3.4 Perancangan ( Design ) .................................................................................... 25
3.4.1 Perancangan Mekanik ............................................................................... 25
3.4.2 Perancangan Sistem Perangkat Keras ....................................................... 26
3.4.3 Perancangan Sistem Perangkat Lunak ...................................................... 27
3.5 Pengimplementasian ( Implement ) ................................................................. 31
3.6 Pengoprasian ( Operate ) .................................................................................. 31
3.7 Optimalisasi ( Optimize ) ................................................................................. 31
3.8 Langkah-Langkah Perancangan ....................................................................... 32
3.9 Lokasi Penelitian .............................................................................................. 33
BAB IV ........................................................................................................................... 34
4.1 Pengujian Sistem .............................................................................................. 34
4.2 Pengujian Catu Daya ........................................................................................ 34
4.3 Pengujian Ketepatan Waktu ............................................................................. 35
4.4 Pengujian Motor Servo .................................................................................... 36
4.5 Pengujian Sensor Ultrasonic HCSR04 ............................................................. 41
4.6 Pengujian Sensor Suhu ..................................................................................... 44
4.7 Pengujian Relay ............................................................................................... 49
4.8 Pengujian Motor Stepper 28byj-48 Menggunakan Driver DRV 8825 ............ 52
4.9 Pengujian Sensor Load Cell Dengan Modul HX711 ....................................... 53
4.10 Pengujian Interface ....................................................................................... 55
4.11 Pengujian Sistem Keseluruhan ..................................................................... 60
4.11.1 Pengujian mekanik system otomatis ......................................................... 60
4.11.2 Pengujian interface ................................................................................... 62
BAB V ............................................................................................................................ 64
5.1 Kesimpulan ...................................................................................................... 64
5.2 Saran ................................................................................................................. 64
DAFTAR PUSTAKA ..................................................................................................... 66

iv
DAFTAR GAMBAR

BAB II
Gambar 2. 1 Morfologi Ayam Broiler .............................................................................. 7
Gambar 2. 2 Arsitektur MQTT ......................................................................................... 9
Gambar 2. 3 ESP32 ......................................................................................................... 10
Gambar 2. 4 Modul RTC DS3231 .................................................................................. 11
Gambar 2. 5 Sensor Suhu DHT11 KY-015 .................................................................... 12
Gambar 2. 6 konfigurasi DHT 11 ................................................................................... 13
Gambar 2. 7 Simbol Relay Elektromekanik ................................................................... 14
Gambar 2. 8 Konstruksi Relay Elektromekanik ............................................................. 14
Gambar 2. 9 Modul Relay............................................................................................... 15
Gambar 2. 10 Konstruksi Motor DC .............................................................................. 16
Gambar 2. 11 Motor DC RS-385S.................................................................................. 16
Gambar 2. 12 Sensor Load Cell ...................................................................................... 18
Gambar 2. 13 Modul HX711 .......................................................................................... 18
Gambar 2. 14 Motor Servo MG996R ............................................................................. 19
Gambar 2. 15 Sensor Ulltrasonic HCSR 04 ................................................................... 22
BAB III
Gambar 3. 1 Metode PPDIOO ........................................................................................ 22
Gambar 3. 2 Desain 3 Dimensi Smart Cage ................................................................... 25
Gambar 3. 3 Blok diagram perancangan sistem ............................................................. 26
Gambar 3. 4 Diagram alir (flow chart) perancangan sistem ........................................... 27
Gambar 3. 5 Diagram alir perencanaan software ........................................................... 28
Gambar 3. 6 Diagram alir program node MCU ESP 32 ................................................. 28
Gambar 3. 7 Diagram alir program Arduino IDE ........................................................... 29
Gambar 3. 8 Diagram alir sistem keseluruhan ................................................................ 30
Gambar 3. 9 Diagram Alir Perancangan Penelitian ........................................................ 33
BAB IV

Gambar 4. 1 Rangkaian IC Regulator LM705 ................................................................ 34


Gambar 4. 2 Rangkaian Rtdc DS3231 ............................................................................ 36
Gambar 4. 3 Notifikasi Ketika Pakan Dituang ............................................................... 36
Gambar 4. 4 Rangkaian Servo Dengan Esp 32 ............................................................... 37

v
Gambar 4. 5 Grafik hasil pengukuran volume terulur pada tangka pakan ..................... 44
Gambar 4. 6 Rangkaian sensor ultrasonic ...................................................................... 44
Gambar 4. 7 Grafik perbandingan suhu berdasarkan waktu pengambilan data ............ 48
Gambar 4. 8 grafik data suhu terukur selama 24 jam ..................................................... 48
Gambar 4. 9 Rangkaian Sensor DHT 11 Dengan Esp 32 ............................................... 49
Gambar 4. 10 Rangkaian Relay dengan Esp 32.............................................................. 49
Gambar 4. 11 Notifikasi Kondisi pada Relay Terhadap Suh .......................................... 52
Gambar 4. 12 Rangkaian Motor Stepper dengan Esp 32 ................................................ 53
Gambar 4. 13 Rangkaian Sensor Load Cell dan Modul HX711 dengan Esp 32 ............ 53
Gambar 4. 14 Tampilan Awal Website Ubidots ............................................................. 56
Gambar 4. 15 Gambar Tampilan Halaman Widget pada website Ubidots data pembacaan
sensor .............................................................................................................................. 56
Gambar 4. 16 Tampilan Aplikasi Ubidot........................................................................ 57
Gambar 4. 17 Gambar Rangkaian Sistem Secara Keseluruhan ...................................... 60
Gambar 4. 18 Tampilan awal website ubidots ................................................................ 62
Gambar 4. 19 tampilan halaman widget pada website ubidots data pembacaan sensor . 63
Gambar 4. 20 Gambar tampilan pada aplikasi Ubidots .................................................. 63

vi
DAFTAR TABEL

BAB II
Tabel 2. 1 Kadar Pakan Ayam Sesuai Usia ...................................................................... 7
Tabel 2. 2 Spesifikasi ESP32 .......................................................................................... 10
Tabel 2. 3 Spesifikasi Modul RTC DS3231 ................................................................... 11
Tabel 2. 4 Konfigurasi pin Modul RTC DS3231............................................................ 12
Tabel 2. 5 Spesifikasi Sensor Suhu DHT11 KY-015 ..................................................... 13
Tabel 2. 6 Konfigurasi Pin DS18B20 ............................................................................. 13
Tabel 2. 7 Spesifikasi Relay ........................................................................................... 15
Tabel 2. 8 Konfigurasi Pin Relay.................................................................................... 15
Tabel 2. 9 Spesifikasi Motor DC RS-385S ..................................................................... 17
Tabel 2. 10 Spesifikasi sensor Load cell......................................................................... 18
Tabel 2. 11 Spesifikasi Motor Servo MG996R .............................................................. 19
Tabel 2. 12 Konfigurasi Kabel Motor Servo MG996R .................................................. 20
Tabel 2. 13 Konfigurasi Kabel Motor Servo MG996R .................................................. 23

BAB IV
Tabel 4. 1 Pengujian Penguraian Catu Daya .................................................................. 35
Tabel 4. 2 Data Hasil Pengujian Waktu Gerak Motor Servo Tehadap Pemberian Berat
Pakan ............................................................................................................................... 38
Tabel 4. 3 Data Hasil Pengujian Gerak Motor Servo Tehadap Pemberian Berat Pakan
Tiap waktu bukan tuangan pakan ................................................................................... 40
Tabel 4. 4 Tabel Pengujian Sensor Ultrasonik HCSR 04 ............................................... 42
Tabel 4. 5 Data hasil pengukuran pada tangki pakan berdasarkan berat terhadap volume
........................................................................................................................................ 43
Tabel 4. 6 Pengujian Suhu pada pukul 07.00 – 08.00 .................................................... 45
Tabel 4. 7 Pengujian Suhu pada pukul 12.00 – 13.00 .................................................... 46
Tabel 4. 8 Pengujian Suhu pada pukul 16..00 – 18.00 ................................................... 46
Tabel 4. 9 Pengujian Relay Terhadap Kondisi Suhu ...................................................... 50
Tabel 4. 10 Pengujian Sensor Load Cell dengan Berat Beban Pada Tanki Pakan ......... 54
Tabel 4. 11 pengujian interface terhadap suhu ............................................................... 57
Tabel 4. 12 pengujian interface terhadap berat pakan .................................................... 57

vii
Tabel 4. 13 pengujian interface terhadap waktu ............................................................. 58
Tabel 4. 14 Pengujian interface terhadap volume tangki pakan ..................................... 58
Tabel 4. 15 pengujian notifikasi pada aplikasi telegram ................................................ 58
Tabel 4. 16 Tabel Data hasil pengujian keseluruhan secara mekanik ............................ 61

viii
ABSTRAK

Usaha berternak ayam khususnya Ayam Broiler (Ras Pedaging) cara pembudidayaanya
masih tergolong tradisional. Oleh karena itu para peternak ini biasanya mengalami
kesulitan dalam merawat ayam-ayam terebut terutama dalam hal pemberian pakan dan
pengontrolan suhu. Maka karena itu di era industri modern ini diharapkan adanya suatu
system perternakan ayam Broiler dengan mengunakan teknologi dan menajemen yang
modern guna memudahkan para peternak ayam dalam mengatur pakan dan suhu yang
tepat secara otomatis, system ini dapat dipantau dari mana saja melalui smartphone
dengan teknologi internet of things (iot).

System ini menggunakan sensor load cell untuk mengukur berat pakan pada tangki pakan,
digunakan sensor ultrasonic HCSR04 untuk mengukur volume pakan pada tangki,
digunakan sensor suhu DHT 11 untuk mengukur suhu pada area kandang. buka tutup kran
pakan pada tangki digerakkan menggunakan motor servo dan penyaluran pakan pada
wadah menggunakan conveyor dan digerakkan menggunakan motor stepper, semua
system ini dikedalikan oleh ESP 32. Menggunakan Message queuing telemetry transport
(Mqtt) broker sebagai server cloud iot.

Sistem ini telah diuji dengan waktu pemberian pakan yang diatur sebanyak tiga kali sehari
dengan takaran ±100 gram setiap kali tuang tiap wadah, pengujian pengontrolan suhu
pada area kandang menggunakan kipas pendingin dan lampu penghangat sehingga suhu
tetap berada pada rentang 28℃ – 30 ℃. Hasil pengujian menunjukkan bahwa persentase
galat dibawah 10%, artinya system telah bekerja dengan baik. Pengujian pemantauan
melalui website dan smartphone telah berhasil dengan baik dimana hasil pemantauan
sama dengan hasil pada system

Kata Kunci : ESP 32 , Mqtt , Sensor Load cell , Sensor DHT 11, motor servo

ix
ABSTRACT
The business of raising chickens, especially broilers, is still classified as traditional.
Therefore these breeders usually experience difficulties in caring for these chickens,
especially in terms of feeding and temperature regulation. Therefore, in this modern
industrial era, it is hoped that there will be a broiler farming system that uses modern
technology and management to make it easier for chicken farmers to adjust the feed and
the right temperature automatically, this system can be monitored from anywhere via a
smartphone with internet of things technology (iot).

This system uses a load cell sensor to measure the weight of the feed in the feed tank, uses
the HCSR04 ultrasonic sensor to measure the volume of feed in the tank, uses the DHT
11 temperature sensor to measure the temperature in the cage area. The opening and
closing of the feed valve on the tank is driven using a servo motor and the distribution of
feed to the container using a conveyor and driven using a stepper motor, all of these
systems are controlled by ESP 32. Using a Telemetry Message Queue Transport (Mqtt)
broker as an IoT cloud server.

This system has been tested by setting feeding times three times a day at a rate of ±100
grams each time each container is poured, temperature control testing in the cage area
using a cooling fan and heating lamp so that the temperature remains in the range of 28
℃ – 30 ℃. The test results show that the error percentage is below 10%, which means
the system is working properly. Monitoring testing through websites and smartphones
has been successful where the monitoring results are the same as the results on the system

Key Words : ESP 32, Mqtt, load cell sensor , DHT 11 sensor , Servo Motor

x
BAB I
PENDAHULUAN

1.1 Latar Belakang


Usaha berternak merupakan salah satu dari sekian banyak mata pencaharian yang
cukup dimiati oleh masyarakat. Salah satu dari sekian banyak usaha berternak yang
diminati yakni berternak Ayam. Tidak hanya di Indonesia, di negara lain banyak yang
memilih bermata pencaharian sebagai perternak ayam. Salah satunya yakni berternak
ayam Broiler (Ras Pedaging). Ayam Broiler adalah ayam yang secara khusus di
budidayakan untuk mengasilkan daging. Dari data Badan Pusat Staistik tercatat, bahwa
produksi daging ayam di Provinsi NTB ( Nusa Tenggara Barat ) terus meningkat dari
tahun ke tahun ( Data tahun 2012-2019 ), dan pada tahun 2019 produksi daging ayam di
Provinsi NTB mencapai 41 357.74 Ton ( Data Badan Statistik Pusat ).

Di Indonesia sendiri terutama di daerah pedesaan cara pembudidayaanya masih


tergolong tradisional. Dalam bertenak ayam broiler biasanya dilakukan dalam jumlah
banyak namun memerlukan perawatan yang sangat intensif. oleh karena itu para peternak
ini biasanya mengalami kesulitan dalam merawat ayam-ayam terebut. terutama dalam hal
pemberian pakan. Dalam berternak ayam biasanya pemberian pakan dilakukan dengan
cara yakni menaburkan pakan pada wadah sepanjang wadah pakan, Sehingga menyita
waktu dan tenaga untuk pemberian pakan karena kandang dari ayam broiler ini sangat
luas. Selain pemberian pakan ada juga ada yang perku di perhatikan dalam berternak
ayam broiler ini yaitu pemilihan bibit unggul, tempat tinggal atau kandang, penyakit,
program vaksinisasi. Apabila hal-hal tersebut tidak diperhatikan dengan benar maka akan
berdampak buruk bagi kesehatan ayam dan kualitas daging yang di hasilkan.

Untuk mengatasi permasalahan tersebut oleh karena itu di era 4.0 atau era industri
modern ini diharapkan adanya suatu perternakan ayam Broiler dengan mengunakan
teknologi dan menajemen yang modern guna memudahkan para peternak ayam dalam
melakukan usaha berternak ayam broiler

Berberapa peneliti telah melakukan penelitian tentang pakan pada ayam secara
otomatis diantaranya adalah,. Budi (2017) melakukan penelitian berjudul ”Rancang
bangun Sistem pemberian pakan ayam serta Monitoring Suhu dan Kelembaban Kandang
berbasis ATMega328”. Dalam penelitiannya, digunakan mikrokontroler yakni Aruduino

1
ATMega328 dan modul DHT11 untuk mengukur suhu dan kelembanban. Pada penelitian
yang dilakukan , suhu yang ada area sekitar akan terbaca oleh sensor suhu DHT11 sehinga
didapat nilai suhu terukur dan ditampilkan pada LCD 16 x 2, selanjutnya jika suhu
melebihi 30 oC maka blower akan aktif dan akan off jika kelembaban diatasn 65%,
rancangan sistem ini empunyai kelemahan yakni tidak bisa di monitoring secara jarak
jauh dan pada sensor terjadi gangguan pada saat mendeteksi suhu dan kelembaban yang
disebabkan oleh kelembaban yang lambat masuk kedalam kandang.

Amrullah (2019) melakukan penelitian yang berjudul “ Rancang Bangun Alat


Monitor Suhu dan Pemberi Sistem pakan Ayam berbasis Web ”. Dalam penelitiannya
diguakan NodeMCU8266 sebagai mikrokontroler dan Sensor LM35 sebagai sensor suhu
dan Modul LCD (lyquid Cristal Display) serta Motor Servo sebagai penggerak katup
pintu pakan. Pada penelitian yang dilakukan, suhu yang ada area sekitar akan terbaca oleh
sensor suhu LM35 sehinga didapat nilai suhu terukur, nilai ini kemudian dikirimkan ke
NodeMCU8266 selanjutnya NodeMCU8266 akan mengirimkan dan menampilkan nilai
tersebut web server dan modul LCD 16 x 2. walaupun data dapat di monitoring secara
jarak jauh namun tidak dapat di amati perubahanya karena sistem ini tidak dilengkapi
dengan data logger. sensor suhu yang digunkana kurang presisi sehingga data yang
terbaca sedikit minyimpang.

Wedhariny (2019) melakukan penelitian yang berjudul “ Rancang Bangun


Purwarupa Sistem Pengendali Otomatis Pemberi Pakan Ayam Petelur Berbasis Internet
Of Things (IOT)” Dalam Penelitiannya . Digunakan Raspberry Pi Sebagai Penghubung
ke internet sekaligus sebagai Mikrokontroler serta sebagai penyedia sebuah website yang
terhubung melalui jaringan local (localhost), Motor Servo sebagai penggerak buka tutup
kran secara otomatis pada saat pemberian pakan, Sensor Load Cell digunakan untuk
mendeteksi berat pakan yang tersedia pada wadah. Tentunya penelitian ini juga masih
memiliki kekurangan yaitu minimnya parameter yang diamati, yaitu hanya jumlah
ketersediaan pakan pada wadah.

Dari beberapa penelitian yang sudah dilakukan oleh beberapa peneliti, maka penulis
ingin melengkapi rancangan tersebut yakni mengontrol dan memonitoring suhu dan
kelembaban area kandang menggunkan sensor suhu DHT11 , menyalakan lampu kandang
jarak jauh dan kemudian data tersebut akan dikirmkan ke server MQTT dan akan di
tampilkan pada aplikasi MQTT Panel IoT pada smartphone.

2
1.2 Rumusan Masalah
Berdasarkan latar belakang didapatkan suatu rumusan masalah para perternak ayam
broiler yaitu

1 Sistem pemberian pakan ayam pedaging masih dilaukan secara manual dengan
meletakkan pakan pada wadah atau menaburkan pakan pada lantai kandang
2 Beberapa peternak masih sering lalai dalam memberian pakan sehingga tidak
selalu tidak tepat waktu
3 Para perternak masih melakukan pengecekan suhu dan mengatur suhu kandang
secara manual dan tidak secara intensif
4 Untuk mengetahui berapa galat pada sistem permberian pakan otomatis dan
kontrol suhu otomatis pada kandang ( smart cage )

1.3 Batasan Masalah


Untuk menyelesaikan masalah dalam penelitian dan perancangan ini perlu adanya
batasan-batasan masalah agar dalam penelitian ini tidak melebar pembahasannya.
Adapun batasan masalah dalam perancangan dan penelitian ini yaitu :

• Sistem otomatisasi ini di rancang memiliki dua parameter yang akan dicapai,
yakni parameter pertama dapat mengeluarkan pakan ayam dari wadah 1 (satu)
ke wadah 2 (dua) sesuai dengan penjadwalan. Parameter kedua yakni dapat
mendeteksi suhu pada area kandang dan mengontrol suhu pada kandang
dengan menyalakan lampu dan kipas pendingin secara otomatis.
• Menggunakan objek Ayam broiler berusia 29 – 35 hari

1.4 Tujuan
Adapun tujuan dari penelitian ini yaitu :
• Dapat merancang dan menghasilkan purwarupa pemberi pakan ayam secara
otomatis sesuai dengan takaran yang di butuhkan dari ayam itu sendiri yakni
sesuai dengan usia ayam dan dapat di jadwalkan serta dapat memantau dan
mengontrol kondisi suhu pada kandang.
• Dapat merancang dan membuat alat pakan ayam dengan pemantauan jarak jauh

1.5 Manfaat
Manfaat yang diharapkan dari alat ini yaitu dapat memberikan kemudahan
kepada peternak ayam dalam memberi pakan ayam broiler (pedaging) secara
3
otomatis dan terjadwal serta dapat memantau suhu dan serta dapat menyetabilkan
suhu pada area kendang secara otomatis

1.6 Sistematika Penulisan


Usulan Tugas Akhir ini disusun menggunakan sistematika penulisan
sebagai berikut :

1. BAB I Pendahuluan
Dalam Bab ini akan dijelasakan latar belakang pengambilan judul tugas
akhir, permasalah, batasan masalah, tujuan, manfaat dan sistematika penulisan.
2. BAB II Tinjauan Pustaka dan Dasar Teori
Memaparkan dan menjelaskan tinjauan pustaka dan landasan teori yang
menunjang pembahasan tugas akhir.

3. BAB III Metode Perancangan


Membahas tentang analisa kebutuhan dalam perancangan, perancangan
sistem secara umum, perancangan perangkat keras serta perancangan perangkat
lunak.

4. BAB IV Hasil dan Pembahasan


Bab Ini membahas tentang pengujian alat dan menganalisa hasil
penelitian yang telah dilakukan
5. BAB V Penutup
Bab ini berisi tentang kesimpulan dan saran yang diperoleh dari
pembahasan dan hasil penelitian
6. Daftar Pustaka
Berisi sumber-sumber yang diacu dalam penulisan tugas akhir ini.

4
BAB II
TINJAUAN PUSTAKA DAN DASAR TEORI

2.1 Tinjauan Pustaka


Budi (2017) melakukan penelitian berjudul ”Rancang bangun Sistem pemberian
pakan ayam serta Monitoring Suhu dan Kelembaban Kandang berbasis ATMega328”.
Dalam penelitiannya, digunakan mikrokontroler yakni Aruduino ATMega328 dan modul
DHT11 untuk mengukur suhu dan kelembanban. Pada penelitian yang dilakukan , suhu
yang ada area sekitar akan terbaca oleh sensor suhu DHT11 sehinga didapat nilai suhu
terukur, selanjutnya jika suhu melebihi 30 oC maka blower akan aktif dan akan off jika
kelembaban diatasn 65%, digunakan motor servo sebagai pembuka katup pemberi pakan
yang diatur menggunakan photodiode yang terkoneksi dengan cahaya infra merah.

Amrullah (2019) melakukan penelitian yang berjudul “Rancang Bangun Alat


Monitor Suhu dan Pemberi Sistem pakan Ayam berbasis Web”. Dalam penelitiannya
diguakan NodeMCU8266 sebagai mikrokontroler dan Sensor LM35 sebagai sensor suhu
dan Modul LCD (lyquid Cristal Display) serta Motor Servo sebagai penggerak katup
pintu pakan. Pada penelitian yang dilakukan, suhu yang ada area sekitar akan terbaca oleh
sensor suhu LM35 sehinga didapat nilai suhu terukur, nilai ini kemudian dikirimkan ke
NodeMCU8266 selanjutnya NodeMCU8266 akan mengirimkan dan menampilkan nilai
tersebut ke web server dan LCD 16 x 2. hasil yang didapat dari penelitian tersebut adalah
data dari hasil pembacaan sensor dapat terkirim dan dan dikendalikan serta di tampilkan
melalui web server dan LCD dan ketika suhu terukur berada diats 30 C maka secara
otomatis kipas akan menyala (On) dan lampu akan mati (Off).

Wedhariny (2019) melakukan penelitian yang berjudul “Rancang Bangun


Purwarupa Sistem Pengendali Otomatis Pemberi Pakan Ayam Petelur Berbasis Internet
Of Things (IOT)” Dalam Penelitiannya. Digunakan Raspberry Pi Sebagai Penghubung ke
internet sekaligus sebagai Mikrokontroler serta sebagai penyedia sebuah website yang
terhubung melalui jaringan local (localhost), Motor Servo sebagai penggerak buka tutup
kran secara otomatis pada saat pemberian pakan, Sensor Load Cell digunakan untuk
mendeteksi berat pakan yang tersedia pada wadah. Pada penelitian yang dilakukan,
Rasphberry pi diprogram untuk memberikan pakan secara otomatis dengan mendeteksi

5
berat pakan pada wadah, Hasil yang di dapat dari penelitian tersebut adalah alat dapat
dimonitoring dari mana saja melalui Web dengan teknologi internet of things.

2.2 Dasar Teori


2.2.1 Smart Cage
Pemberian pakan ayam dan pemantauan kondisi suhu pada kandang pada umumnya
masih dilakukan atau dikerjakan secara manual oleh para peternak dengan cara
menaburkan pakan ayam pada wadah pakan, kegiatan ini dilakukan secara rutin setiap
hari. Waktu pemberian pakan ayam juga harus diperhatikan sehingga ayam tersebut
membutuhkan jadwal pemberian pakan secara teratur dan diberikan secara intensif atau
terus-menerus setiap hari.

Smart Cage merupakan suatu pengimplementasian teknologi di era 4.0 yakni IoT
(Internet Of Things) untuk membantu dan mempermudah pekerjaan para peternak ayam
khususnya ayam broiler atau pedaging. Smart Cage ini digunakan untuk membantu
pekerjaan para peternak untuk memberi pakan secara otomatis setiap hari sehingga
peternak dapat memantau jumblah ketersediaan pakan, kondisi suhu pada kandang serta
menjadwalkan pemberian pakan melalui perangkat smartphone ataupun personal
computer

2.2.2 Ayam Broiler (Ras Pedaging)


Ayam ras pedaging merupakan jenis ayam ras unggulan hasil persilangan dari
bangsa-bangsa ayam yang memiliki daya produkvitas tinggi, terutama dalam
memproduksi daging ayam. Ayam pedaging merupakan jenis ternak bersayap dari kelas
Aves yang telah didomestikasikan dan cara hidupnya diatur oleh manusia dengan tujuan
memberikan nilai ekonomis dalam bentuk daging. (Yuwata 2004). Morfologi Ayam
broiler dapat dilihat pada Gambar 2.1

6
Gambar 2. 1 Morfologi Ayam Broiler
(sumber: https:// japfacomfeed.co.id)

Ayam broiler memiliki kelebihan dan kelemahan. Kelebihan ayam broiler adalah
daging empuk, ukuran badan besar, bentuk dada lebar, padat dan berisi, efisiensi terhadap
pakan cukup tinggi, sebagian besar dari pakan diubah menjadi daging dan pertambahan
bobot badan sangat cepat sedangkan kelemahannya adalah memerlukan pemeliharaan
secara intensif dan cermat, relatif lebih peka terhadap suatu infeksi penyakit, sulit
beradaptasi, dan sangat peka terhadap perubahan suhu lingkungan. Pemeliharaan ayam
meliputi banyak factor yakni seperti persiapan kandang, kedatangan DOC, pakan dan air
minum, temperatur, sistem alas lantai.

Ayam memiliki suhu tubuh yang selalu konstan yakni 36-40° C sehingga
temperature yang cocok untuk ayam broiler yakni kisaran 24-27° C. Kebutuhan pakan
ayam broiler pada umunya dapat dilihat pada tabel 2.1

Tabel 2. 1 Kadar Pakan Ayam Sesuai Usia


Usia Ayam Kadar Pakan per Ekornya

Usia 1 – 7 Hari 1, 3 gr/ekor

Usia 8 – 14 Hari 1, 3 - 2 gr/ekor

Usia 15 – 21 Hari 48-60 gr/ekor

Usia 22 – 28 Hari 68-80 gr/ekor

Usia 29 – 35 Hari 88-100 gr/ekor

7
Sifat yang dimiliki oleh ayam pedaging yakni Bentuk badan segi empat dan
dalam,Bulu luas dan lebar dengan alas dada bulat,bulu lebat dan agak longgar,gerakan
lamban.( Yuwata 2004).

2.2.3 Internet of Things (IoT)


Internet of Things atau lebih sering disebut dengan singkatan IoT adalah sebuah
konsep dimana semua benda didunia mempunyai kemampuan berkomunikasi dan
mentransfer data satu dengan yang lainnya sebagai bagian dari satu kesatuan sistem
terpadu menggunakan jaringan internet sebagai penghubung tanpa memerlukan adanya
interaksi dari manusia ke manusia ataupun dari manusia ke perangkat komputer. Ide awal
Internet of Things pertama kali dimunculkan oleh Kevin Ashtn pada tahun 1999 dimana
benda-benda disekitar kita dapat berkomunikasi antara satu sama lain melalui sebuah
jaringan seperti internet. Berawal dari Auto-ID Center, teknologi yang berbasis pada
Radio Frequency Identification (RFID) merupakan identifikasi kode produk elektronik
yang bersifat unik ini kemudian berkembang menjadi teknolgi bahwa pada setiap benda
dapat memiliki alamt Internet Prtocol (IP). Teknologi IoT memungkinkan pengendalian
objek dari jarak jauh di seluruh infrastruktur jaringan yang ada dan mampu menciptakan
peluang untuk jarak jauh diseluruh infrastruktur jaringan yang ada dan mampu
menciptakan peluang untuk integrasi antara dunia fisik dan sistem digital berbasis cyber
sehingga dapat meningkatkan efisiensi, akurasi dan manfaat ekonomi.

2.2.4 MQTT ( Message Qeuening Telemetri Transport )


MQTT ( Message Queuing Telemetry Transport ) merupakan sebuah protokol yang
berjalan diatas stack TCP/IP dan dirancang khusus untuk machine to machine yang tidak
memiliki alamat khusus. Protokol MQTT menggunakan arstitektur publish/subscribe
yang dirancang secara terbuka dan mudah untuk diimplementasikan, yang mampu
menangani ribuan client jarak jauh hanya dnegan satu server. MQTT meminimalkan
bandwidth jaringan dan kebutuhan sumber daya perangkat ketika mencoba untuk
menjamin kehandalan dan pengiriman. Pendekatan ini membuat protokol MQTT sangat
cocok untuk menghubungkan mesin ke mesin (M2M), merupakan aspek penting dari
konsep Internet of things. Arsitektur MQTT dapat dilihat pada Gambar 2.2

8
Gambar 2. 2 Arsitektur MQTT

2.2.5 Mean Absolute Persentage Error ( MAPE )


Menurut Pajaka ( dalam Margi & Pandawa 2015 ) Mean Absolute Persentage Error
MAPE dihitung dengan menggunakan kesalahan absolute dibagi dengan nilai observasi
yang nyata untuk periode itu. Atau dapat dikatakan MAPE merupakan pengukuran
kesalahan yang menghitung persentase penyimpangan antara data aktual dengan data
peramalan. Metode MAPE mempunyai kemampuan peramalan sangat baik jika nilai
MAPE yang didapat kurang dari 10 persen ( % ), dan mempunyai kemampuan peramalan
yang baik jika nilai MAPE yang di dapat kurang dari 20 persen ( % ). Nilai MAPE yang
melebihi 20 persen menunjukkan kemampuan peramalan suatu model peramalan yang
kurang baik. Nilai MAPE dapat dihitung dengan menggunakan persamaan (2-1) :

1 𝑦𝑖−𝑓𝑖
𝑀𝐴𝑃𝐸 = 𝑁 ∗ 100% ∑𝑁
𝑖=1 | | (2-1)
𝑦𝑖

Keterangan ;

N = jumlah data dalam periode perkiraan

Yi = data actual pada periode ke i

Fi = data perkiraan pada period ke 1

2.2.6 ESP32
ESP32 adalah mikrokontroler yang dirancang oleh Espressif, Espressif merupakan
perusahaan asal Cina yang terletak di Shanghai. ESP32 merupakan mikrokontroler
pengembangan dari seri yang sebelumnya yaitu ESP8266 dengan firmware berbasis e-
Lua yang dilengkapi dengan Bluetooth BLE. Selain dengan bahasa Lua ESP32 juga
support dengan software Arduino IDE dengan melakukan pengaturan pada Board
Manager pada Arduino IDE dan sebelum digunakan mikrokontroler ini harus dilakukan
flashing terlebih dahulu. Gambar fisik beserta keterangan masing-masing pin dari ESP32
dapat dilihat pada Gambar 2.3.

9
Gambar 2. 3 ESP32
(sumber: randomnerdtutorials.com)

Tabel 2. 2 Spesifikasi ESP32


Tegangan suplai 2.7 V ~ 3.6 V
Tegangan kerja modul 5 VDC via port Micro USB
Arus Kerja 80 mA (arus USB minimum : 500 mA)
USB Driver CP2102
Arus minimum USB 500 mA
Wi-Fi protokol 802.11n up to 150 Mbps
Frekuensi 2.4 GHz ~ 2.5 GHz
Bluetooth BLE (Bluetooth Low Energy)
SPI Flash 4 Mb
Internal Clock 40 MHz
RAM 512 KB
Pin 30 Pins antara lain :
a. 26 GPIO
b. 18 Analog-to-Digital Converter
(ADC) channels
c. 2 Digital-to-Analog Converter (DAC)
d. 16 PWM output channels

Dimensi 28.5 mm × 51.5 mm


Dual Cores 32 bit

10
2.2.7 RTC DS3231
Real Time Clock (RTC) merupakan suatu IC penghitung yang dapat difungsikan
sebagai pengatur waktu atau sumber data tanggal dan waktu baik berupa detik, menit,
jam, hari, bulan maupun tahun atau bisa dibilang sebagai jam elektronik. Modul RTC
DS3231 ini dilengkapi dengan baterai, sehingga saat supplai tegangan mati RTC tetap
mendapatkan tegangan dari baterai. Pengaksesan data dilakukan dengan sistem
komunikasi serial atau yang sering disebut I2C (Inter-integrated Circuit) sehingga hanya
membutuhkan dua jalur untuk berkomunikasi yaitu jalur clock (SCL) dan data (SDA).
Modul RTC DS3231 +ATS24C32 adalah modul RTC + EEPROM 4K adalah versi
pengembangan dari RTC tipe DS3231 karna RTC DS3231 sudah memiliki internal
clock/osilator, berbeda dengan RTC DS3231 yang masih memerlukan komponen
kristal/osilator tambahan yang akurasinya bisa terpangur oleh suhu sekitar. Bentuk fisik
dari RTC DS3231 dapat dilihat pada Gambar 2.4.

Gambar 2. 4 Modul RTC DS3231


(sumber: jogjarobotika.com)
Tabel 2. 3 Spesifikasi Modul RTC DS3231
Tegangan suplai 3.3 ~ 5.5 V
Output data Detik, Menit, Jam, Hari, Minggu, Bulan
Dan Tahun
Dimensi 38mm × 22mm × 14mm
Suhu kerja 0-40 oC
Komunikasi I2C
Memori AT24C32 32K
Dilengkapi Baterai Lithium CR2032

11
Akurasi Waktu Eror per tahun ± 1 menit
Berat 8 gram

Modul RTC DS3231 menggunakan komunikasi I2C (Inter-Integrated Ciircuit),


sehingga pin yang digunakan hanya 4, antara lain:

Tabel 2. 4 Konfigurasi pin Modul RTC DS3231


SCL Serial Clock
SDA Serial Data
VCC 3.3 ~ 5.5V
GND Ground (0V)

2.2.8 Sensor Suhu dan Kelembaban DHT 11


Suhu adalah besaran yang menyatakan derajat panas dingin suatu benda atau
lingkungan. Sensor suhu adalah komponen elektronika yang memiliki fungsi untuk
mengubah besaran suhu mmenjadi besaran listrik dalam bentuk tegangan (Astria, Subito,
& Nugraha, 2014). Bentuk fisik sensor DHT 11 dapat dilihat pada gambar 2.5

Gambar 2. 5 Sensor Suhu DHT11 KY-015


(sumber: https://arduinomodules.info)

Salah satu jenis sensor suhu yang banyak digunakan di industri adalah tipe sensor
suhu berbahan semikonduktor. Sensor suhu DHT11 dengan kemampuan utuk mendeteksi
suhu dan kelembaban. Sensor suhu DHT11 dapat beroperasi dalam kisaran suhu 0 oC
sampai 50 oC dan memiliki tingkat keakuratan ± 2 oC dalam kisaran 1 oC. dan jangkauan
deteksinya hingga 20 m. Konfigurasi Sensor DHT 11 dapat dilihat pada gambae 2.6

12
Gambar 2. 6 konfigurasi DHT 11
(sumber: https://arduinomodules.info)
Tabel 2. 5 Spesifikasi Sensor Suhu DHT11 KY-015
Tegangan suplai 3.3 ~ 5.5V
Tegangan Keluaran 0 ~ 3V
Rentang pengukuran suhu 0 ~ 55 oC
Rentang pengukuran kelembaban 20% ~ 90% RH (relative
humidity)
Output Digital
Rentang sinyal 20 m

Tabel 2. 6 Konfigurasi Pin DS18B20


VDD (Kabel Merah) 3.3 ~ 5V
DQ (Kable Biru) Data Output (Digital)
GND (Kabel Htiam) Ground (0V)

2.2.9 Relay
Relay elektromekanik merupakan suatu komponen elektronika yang dapat
mengimplementasikan logika controlling switch. Relay menggunakan prinsip
elektromagnetik untuk menggerakan kontak saklar atau switch sehingga dengan arus yang
kecil (low current trigger) dapat menghantarkan listrik yang bertegangan tinggi. Simbol
Relay elektromagnetik dapat dilihat pada gambar 2.7 dan konstruksi relay dapat dilihat
pada gamber 2.8

13
Gambar 2. 7 Simbol Relay Elektromekanik
(sumber: edukasielektronika.com)
Konstruksi relay elektromekanik pada dasarnya terdiri dari 4 komponen dasar
yaitu:

1. Kumparan (Coil)
2. Armature
3. Kontak saklar (switch contact point)
4. Spring

Gambar 2. 8 Konstruksi Relay Elektromekanik


(sumber: edukasielektronika.com)
Berdasarkan Gambar 2.11 kontak point relay terdiri dari 2 jenis, yaitu:

7. Normally close (NC) yaitu kondisi awal relay sebelum diaktifkan dimana relay akan
selalu dalam kondisi close (rangkian tertutup).
8. Noramlly Open (NO) yaitu kondisi awal relay sebelum diaktifkan dimana relay
akan selalu dalam kondisi open (rangkaian terbuka).
Prinsip kerja relay elektromekanik apabila kumparan (coil) dialiri arus listik maka
akan timbul gaya elektromagnetik pada inti besi (iron core) yang kemudian menarik
armature yang menyebabkan kontak saklar (switch) berpindah dari posisi seblumnya atau
posisi awalnya. Jika posisi awal dalam keadaan NC berubah kekeadaan NO sehingga

14
menjadi saklar yang tidak dapat menghantarkan arusl listrik. Pada saat kumparan tidak
dialiri arus listrik armature akan kembali lagi ke posisi awal NC sehingga saklar dapat
menghantarkan arus listrik. Kumparan yang berada pada relay umumya diaktifkan
dengan arus DC yang relatif kecil. Bentuk fisik dari relay dapat dilihat pada gambar 2.9

Gambar 2. 9 Modul Relay


(sumber: edukasielektronika.com)
Tabel 2. 7 Spesifikasi Relay
Tegangan kerja 5V (low input voltage trigger)
Beban maksimal 250V/10A AC ; 30V/10A DC
Dilengkapi LED indicator

Tabel 2. 8 Konfigurasi Pin Relay


VCC 5V
GND Ground (0V)
IN active low control signal input

2.2.10 Motor Stepper


Motor merupakan alat yang dapat merubah energi listrik menjadi energi mekanik
berupa gerak rotasi. Motor Stepper adalah motor listrik yang memerlukan arus searah
pada kumparan medan untuk diubah menjadi energi mekanik. Pada motor stepper
terdapat dua bagian utama, yaitu:

9. Stator atau bisa juga disebut kumparan medan pada motor DC merupakan bagian
pada motor DC yang tidak berputar.

15
10. Rotor atau bisa juga disebut kumparan jangkar pada motor DC merupakan bagian
pada motor DC yang berputar.

Dari dua bagian utama pada motor stepper terdapat beberapa komponen penting
lainnya, yaitu kerangka Magnet , Ball Beraring, Shaft, Coil, Flange. Konstruksi Motor
Stepper dapat dilihat pada gambar 2.10

Gambar 2. 10 Konstruksi Motor Stepper


(sumber: www.andalanelektro.id)
Motor Stepper bekerja berdasarkan fenomena elektromagnetik untuk bergerak atau
berotasi, motor stepper mengubah sinyal-snyal listrik menjadi gerakan mekanis diskrit,
dan bergerak dalam Langkah ( step ) secara teratur.Torsi dari motor stepper tidak sebesar
motor dc. Namun memilki tingkat presisi yang tinggi dalam putaran. Bentuk fisik dari
motor dc dapat dilihat pada gambar 2.11

Gambar 2. 11 Motor Stepper


(sumber: www.andalanelektro.id)

16
Tabel 2. 9 Spesifikasi Motor DC RS-385S
Tegangan 5 DC
Banyak Phasa 4
Variasi Kecepatan Rasio 1/64
Frekuensi 100 Hz
Arus 2A
Torsi 435 g.cm
Sudut langkah 5.625’
Gesekan torsi 600-1200 gf.cm
Tarikan Torsi 300 gf.cm

2.2.11 Sensor Beban ( Load Cell )


Load cell adalah sebuah transducer gaya yang bekerja berdasarkan prinsip
deformasi sebuah material akibat adanya tegangan mekanis yang bekerja. Untuk
menentukan tegangan mekanis didasarkan pada hasil penemuan Robert Hooke, bahwa
hubungan antara tegangan mekanis dan deformasi yang diakibatkan disebut regangan.
Regangan ini terjadi pada lapisan kulit dari material sehingga memungkinkan untuk

Diukur menggunakan sensor regangan atau strain gage. Sensor berat merupakan
sebuah modul pendeteksi berat, struktur logam yang dirancang dengan sangat hati-hati,
dengan elemen kecil yang disebut pengukur regangan dan dipasang di tempat yang tepat
pada strukturnya. Sensor berat dirancang untuk mengukur beban tertentu. Keluaran dari
sensor ini sangat kecil, sinyal keluaran yang dihasilkan oleh sensor berat ini berbanding
lurus dengan eksitasi dan beban yang diterapkan. Sinyal keluaran dari sensor ini dalam
satuan mV/V atau V/A dan memerlukan penguatan khusus. Sensor berat (load cell)
dirancang untuk mengukur beban dalam satu arah. Apabila mengukur beban dengan arah
yang lain maka sensitivitas sensor akan berbeda, karena bagian dari sensor berat yang
beroperasi yaitu dalam kondisi tekanan (Nhut, 2012). Bentuk fisik dari sensor load cell
dapat dilihat pada gambar 2.12

17
Gambar 2. 12 Sensor Load Cell
(sumber: https://instructables.com)
HX711 adalah modul timbangan, yang memiliki prinsip kerja mengkonversi
perubahan yang terukur dalam perubahan resistansi dan mengkonversinya ke dalam
besaran tegangan melalui rangkaian yang ada. Modul melakukan komunikasi dengan
computer/mikrokontroller melalui TTL232. Kelebihan dari modul ini adalah Struktur
yang sederhana, mudah dalam penggunaan, hasil yang stabil dan reliable, memiliki
sensitivitas tinggi, dan mampu mengukur perubahan dengan cepat. Bentuk fisik dari
modul HX711 dapat dilihat pada gambar 2.13

Gambar 2. 13 Modul HX711


(sumber: https://instructables.com)
Tabel 2. 10 Spesifikasi sensor Load cell
Material Alumunium alloy

Tipe Strain gauge


Kapasitas 5000 gr (5 kg)

18
Ukuran 55,25 mm × 12,7 mm × 12,7 mm
Presisi 0,05 %
Impendansi masukan 1130 ± 10 Ohm
Impendansi keluaran 1000 ± 10 Ohm

Tegangan masukan 5V DC
Rentang tegangan keluaran 1.0 ± 0.15 mv/V
Rentang suhu oprasional -20 ~ +55°C
Dimensi
Diameter 27.7 mm
Panjang 37.8mm

2.2.12 Motor Servo


Motor servo merupakan salah satu jenis motor DC yang dirancang dengan sistem
kontrol umpan balik loop tertutup dimana pergerakan dari motor servo berupa sudut,
kontrol umpan balik loop tertutup juga membatasi seberapa besar sudut servo. Sedangkan
untuk menggerakan servo dapat diatur dengan lebar pulsa yang dikirmkan kontroler
berupa sinyal PWM. Bentuk fisik dari motor servo dapat dilihat pada gambar 2.14

Gambar 2. 14 Motor Servo MG996R


(sumber: edukasielektronika.com)
Tabel 2. 11 Spesifikasi Motor Servo MG996R
Tegangan Kerja 4.8 ~ 6.6 V (suplai eksternal)
Torsi stall
4.6 V 9.4 kg.cm
6V 11 kg.cm

19
Dimensi 40 mm × 19 mm × 42 mm
Berat 55 g
Tipe gear Metal gear
Rentang suhu 0 ~ 55 oC
Kecepatan
4.8 V 0.19 detik/60 derajat
6V 0.13 detik/60 derajat
Output 7.6 W
Dimensi
Diameter 27.7 mm
Panjang 37.9mm

Tabel 2. 12 Konfigurasi Kabel Motor Servo MG996R


Oranye Sinyal PWM
Merah VCC
Coklat Ground

2.2.13 Sensor Ultrasonic HCSR 04


HC-SR04 adalah sebuah modul sensor ultrasonik yang biasanya digunakan untuk
alat pengukur jarak. Pada artikel ini kita akan mempelajari bagaimana cara kerja dari
sensor HC-SR04 dan berikut contoh programnya dengan menggunakan Arduino. Pada
HC-SR04 terdapat sepasang transducer ultrasonik yang satu berfungsi sebagai transmitter
yang bertugas untuk mengubah sinyal elektrik menjadi sinyal pulsa gelombang suara
ultrasonik dengan frekuensi 40KHz, dan satunya berfungsi sebagai receiver yang
bertugas untuk menerima sinyal gelombang suara ultrasonik. Bentuk fisik dari sensor
ultrasonic dapat dilihat pada gambar 2.15

20
Gambar 2. 15 Sensor Ultrasonic HCSR 04
(sumber: edukasielektronika.com)
Cara kerja dari sensor ultrasonic sebuah sinyal pulsa dengan durasi setidaknya 10
μS (10 mikrodetik) diterapkan ke pin Trigger. Setelah itu, sensor mentransmisikan
gelombang ultrasonik delapan pulsa pada frekuensi 40 KHz. Pola 8-pulsa ini digunakan
untuk sebuah penanda sinyal ultrasonik dari modul ini, yang memungkinkan receiver /
penerima untuk membedakan pola yang ditransmisikan dari kebisingan ultrasonik sekitar.

Tabel 2. 13 Spesifikasi sensor ultrasonic HCSR 04


Tegangan 5V DC

Arus statis < 2ma

Level output 5V – 0V

Sudut sensor < 15 Derajad

Jarak yang bisa dideteksi 2cm – 450 cm

Tingkat keakuratan 0.3 cm ( 3 mm )

21
BAB 3
METODOLOGI PENELITIAN

3.1 Metode Penelitian


Metode yag digunakan dalam penelitian ini yakni menggunakan metode
perancangan dan pengembangan suatu jaringan yang dikembangkan oleh Cisco, (2010)
yang dimana metode ini terdiri dari beberapa tahap yakni : Prepare, Plan, Design,
Implement , Operate, and Optimize ( PPDIOO ). berikut tahapan dari PPDIOO yang dapat
dilihat pada gambar 3.1

Gambar 3. 1 Metode PPDIOO

1. Persiapan (Prepare)
Tahap ini merupakan tahap awal yang menganalisa situasional pada
sistem Smart cage pada kandang ayam broiler dengan cara melakukan
pengumpulan data-data yang dilakukan dengan cara survey lapangan yang di
tujukan untuk mendapatkan data primer dan memvefrifikasi model. survey
dilakukan dengan cara observasi dan wawancara terhadap pengambilan
keputusan terkait penelitian ini.
2. Perencanaan (Plan)
Tahap perancangan ini diawali dengan mengidentifikasi kebutuhan-
kebutuhan dan dilakukan pengumpulan data-data dari berbagai pihak Dengan
menentukan perancangan sistem dan desain arsitektur yang terbaik guna mampu
di implementasikan. Tahap ini dilakukan pembuatan rencana dimulai dari

22
perancangan alur sistem dan desain serta menentukan kebutuhan perangkat yang
akan digunakan dalam penelitian ini.
3. Perancangan (Design)
Tahap ini merupakan proses pembuatan desain dari data-data dan bahan-
bahan yang dikumpulkan dari berbagai Referensi terkait misalnya dalam proses
Pendistribusian Pakan dan penggambaran bentuk dari smartcage sehingga akan
menjelaskan rangkaian sistem yang hendak di implementasikan. Perancangan
sistem ini akan dibagi menjadi dua, yaitu: perancangan software (perangkat
lunak) dan hardware (perangkat keras).
4. Pengimpelementasian (Implement)
Pada tahap pengimplementasian ini merupakan tahap verifikasi dari
desain yang telah di setujui. Desain sistem dan desain mekanik serta desain
aplikasi yang dibagun sesuai kebutuhan pada penelitian ini.
5. Pengoprasian (Operate)
Tahap pengoprasian ini merupakan tahap pengujian akhir dari desain
sistem yang telah dibuat. Tahap ini juga dilakukan pemeliharaan dari desain
sistem dengan cara pemantauan sehari-hari yang bertujuan agar dapat
mengeetahui dan mengevaluasi masalah-masalah yang mungkin dapat terjadi
dalam alat yang telah dibuat dalam penelitian ini.
6. Optimalisasi (Optimize)
Fase Optimalisi atau Optimize dapat terjadi kapan saja setelah alat di
jalankan. Fase ini terjadi biasanya karena adanya perubahan teknis atau
persyaratan teknis dan perawatan terhadap alat yakni smart cage. Tahapan ini
akan dilakukan uji perbandingan pada tahap sebelumnya. Jika ada perubahan
fase ini akan diperbarui untuk memastikan smart cage berjalan dengan konsisten
sesuai dengan desain dan perencanaan.

3.2 Persiapan (Prepare)


Prepare merupakan tahap awal dari penelitian yang bertujuan untuk melakukan
identifikasi dan pengumpulan data-data yang dibutuhkan dalam penyusunan sistem.
Tahap prepare adalah tahap persiapan awal yang dilakukan dengan cara melakukan
observasi dan wawancara dari berbagai pihak serta meninjau berbagai referensi yang
bertujuan untuk memenuhi kebutuhan kebutuhan untuk mendisain sistem. Misalnya

23
kebutuhan informasi dari cara pengontrolan pakan pada ayam broiler serta menggunakan
mqtt broker pada IoT.

3.3 Perencanaan (Plan)


Pada tahap ini merupakan tahap perncanaan awal setelah melakukan observasi dan
wawancara dari berbagai pihak serta meninjau dari berbagi sumber referensi sehingga
mendapatkan informasi terkait kebutuhan-kebutuhan yang berkaitan dengan pembuatan
sistem dari smart cage ini, dalam hal ini terdapat dua bagian dalam perencanaan yaitu:

3.3.1 Perangkat Keras


Perangkat keras yang digunakan pada pembuatan alat smart cage ini yakni
adalah sebagai berikut:

1. Laptop
2. ESP 32
3. Sensor Ultrasonic
4. Motor Servo
5. Relay
6. Power Supply
7. Sensor suhu dan kelembaban
8. Sensor berat (Load cell)
9. Motor Stepper
10. Motor Driver

3.3.2 Perangkat Lunak


Perangkat lunak yang digunakan pada pembuatan alat smart cage ini yakni
adalah sebagai berikut:

1. Arduino IDE
2. Aplikasi Ubidots panel Mqtt
3. Sketch Up
4. adobe Xd
5. aplikasi telegram
6. Microsoft Office

24
3.4 Perancangan (Design)
Desain dari sistem ini terfokus pada perancangan mekanik dan perancangan sistem
monitoring pada tingkat kelembaban dan kontrol pada wakru dan kadar pakan pada
kandang secara otomatis dengan sensor load cell yang nantinya dapat dipantau melalui
aplikasi mqtt panel.

3.4.1 Perancangan Mekanik


Pada gambar 3.2 merupakan tampilan perancangan desain Smart Cage yang
tampak dari beberapa arah.

Gambar 3. 2 Desain 3 Dimensi Smart Cage

Gambar 3.2 merupakan tampilan perancangan mekanik tampak dari


beberapa arah. Penelitian ini dilakukan menggunkan ESP32 sebagai mikrokontroler
yang dihubungkan dengan berbagai komponen seperti motor servo yang berfungsi
sebagai pembuka dan penutup kran pakan sebagai tempat keluarnya pakan ayam,
motor DC sebagai penggerak conveyor untuk media penyalur pakan pada wadah,
sensor load cell dan sensor suhu DHT11 berfungsi sebagai pengakusisi data berupa
jumlah pakan yang tersedia serta suhu dan kelembaban pada area sekitar kandang,
Sebagai sistem pemantauan dan pengontrolan digunakan Smartphone dan Cloud
sebagai server untuk menyimpan data yang dikirim dari mikrokontroller yang dapat
di akses melalui smartphone maupun personal computer.

25
3.4.2 Perancangan Sistem Perangkat Keras

Secara umum, prisnip dari perancangan sistem dapat dilihat pada gambar
3.3 berikut.

Gambar 3. 3 Blok diagram perancangan system


Gambar 3.3 merupakan gambar blog diagram dari perancangan system secara
umum. Dapat diamati bahwa prinsip kerja dari mekanisme perancangan ini yakni Mqtt
Client yakni Smartphone android melalui Aplikasi Ubidots mqtt-dash mengontrol dan
memonitoring modul sensor dan relay dimana sensor-sensor dan modul kmponen tersebut
yakni terdiri dari sensor suhu dan kelembaban, sensor ultrasonic, sensor load cell, motor
servo, motor stepper terhubung ke sebuah mikrokontroler ESP 32. Wifi atau router
berfungsi sebagai media koneksi ESP dan Client Mqtt dengan Cloud Mqtt broker
menggunakan jaringan internet. ESP mengirimkan data modul sensor ke cloud mqtt
broker dan diakses oleh Client Mqtt dengan terkoneksi jaringan internet. Untuk diagram
alir dari perancangan system dapat dilihat pada gambar 3.4

26
Gambar 3. 4 Diagram alir (flow chart) perancangan sistem

Gambar 3.4 merupakan diagram alir (flow chart) dari perancangan sistem
pertama dilakukan penyesuaian jadwal dan waktu dengan RTDC DS3132. setelah
penyesuain waktu selesai maka tahap selanjutnya yakni pembacaan sensor untuk
mendapatkan nilai suhu dan kelembaban, jumlah kadar pakan yang tersedia dan api
menggunakan sensor yang terhubung ke NodeMCU. selanjutnya NodeMCU akan
mencari koneksi Wi-fi yang telah diatur, jika terhubung oleh koneksi wi-fi maka node
mcu akan mengirim data tersebut ke server MQTT Broker. setelah nilai-nilai
terkirim maka akan dilakukan menampilkan hasil pembacaan nilai melalui aplikasi
di smartphone, dari data yang di tampilkan dapat dilakukan pemberian pakan ayam
atau menyalakan lampu dengan menekan tombol pada aplikasi di smartphone. pada
saat dijalankan Motor Servo berfungsi sebagai pembuka katup kran pakan ketika
perintah peberian pakan dijalankan sedangkan Relay dan motor DC berfungsi
sebagai penggerak kran pakan yang akan menaburkan sepanjang wadah pakan serta
sebagai saklar untuk menyalakan lampu.

3.4.3 Perancangan Sistem Perangkat Lunak

Perancangan perangkat lunak untuk mikrokontroler dapat dilakukan dengan


membuat program perintah pada aplikasi Arduino IDE yang menggunakan Bahasa
pemerograman sendiri yang hamper menyerupai Bahasa C. Program yang dibuat
tentunya akan mengacu pada perancagan skema dari perangkat keras yang telah

27
dirancang sebelumnya. Setelah perangkat dapat dijalankan dengan program yang
telah dibuat maka dilakukan fungsi mikrokontroler ESP 32 ke Cloud MQTT IoT
Panel yang ada pada smartphone. Untuk diagram alir perencanaan software dapat
dilihat pada gambar 3.5. Diagram alir program ESP 32 ke mqtt broker dapat dilihat
pada gambar 3.5. Diagram alir program Arduino IDE dapat dilihat pada gambar 3.6

1. perancangan perencanaan software

Gambar 3. 5 Diagram alir perencanaan software


2. pembuatan program NodeMCU ESP 32 ke MQTT Broker

Gambar 3. 6 Diagram alir program node MCU ESP 32

28
3. pembuatan program Arduino IDE

Gambar 3. 7 Diagram alir program Arduino IDE

29
4. pembuatan diagram alir sistem keseluruhan

Gambar 3. 8 Diagram alir sistem keseluruhan

30
3.5 Pengimplementasian (Implement)
Sistem ini akan di implementasikan pada kendang ayam yang bertujuan untuk
memudahkan pengerjaan dalam memantau ayam di kendang terutama memantau jumlah
kadar pakan pada wadah penampungan serta kontrol dan penjadwalan pemberian pakan
pada ayam. System ini juga dibuat dengan berbasis IoT agar dapat dikontrol melalui
aplikasi panel IoT untuk memantau suhu dan kelembaban area kendang agar tetap stabill
sesuai dengan kriteria suhu normal pada ayam.

3.6 Pengoprasian (Operate)


System ini direkomendasikan pada peternak ayam dimana system ini akan
melakukan operasi pemberian pakan dari tangka pakan menuju wadah pakan agar jumlah
kadar pakan yang di berikan sesuai dengan takaran yang diberikan dan system ini juga
melakuakn operasi pengendalian suhu area kendang dimana jika suhu melebihi batas suhu
yang di tentukan maka kipas akan menyala dan jika suhu dibawah batas yang ditentukan
maka lampu akan menyala sebagai pengahangat. System ini juga beroprasi secara
otomatis dari pemberian pakan dan pengontrolan suhu sehinga peternak ayam tidak
langsung datang ke kendang untuk melakukan pemberian pakan dan pengontrolan suhu
pada kendang, karena sudah dilakukan oleh system secara otomatis melalui smartphone.
Pada tahap ini akan dilakuan proses ujicoba yang meliputi:

1. Pengujian Sensor
Pengujian sensor dilakukan dengan cara mengukur tingkat error
perhitungan data pada system yang dilakukan oleh sensor
2. Pengujian Sistem Secara Keseluruhan
Pengujian system secarta keseluruhan dilakukan dengan cara
menghubungkan system baik dari perangkat keras serta perangkat lunak yang
telah dirancang sebelumnya apakah telah bekerja sesuai dengan ketentuan
spesifikasinya.

3.7 Optimalisasi ( Optimize )


Pada tahap ini dilakukan menejemen system agar dapat memecahkan masalah-
masalah yang mungkin baik dari masalah system hingga masalah pada jaringan. Sehingga
dapat memecahkan masalah tersebut sesuai dengan teori-teori dan literatur-literatur yang
telah dipelajari.

31
3.8 Langkah-Langkah Perancangan
Untuk melakukan perancangan purwarupa Smart Cage ini dibuat dalam beberapa
langkah kerja untuk mempermudah pengerjaan, adapun langkah kerja perancangan
sebagai berikut:

1. Membuat konsep perancangan purwarupa Smart Cage yang dapat dipantau dan
dikontrol secara jarak jauh melalui internet.
2. Melakukan studi literatur terkait perancangan yang sudah terkonsepkan baik
melalui ebook, jurnal ataupun buku-buku.
3. Mempersiapkan alat dan bahan yang digunakan dalam penelitian.
4. Melakukan perancangan mekanik beserta perangkat keras (hardware) sesuai
konsep yang sudah dibuat.
5. Melakukan pengujian terhadap perangkat keras (hardware).
6. Melakukan pembuatan program.
7. Melakukan pengujian terhadap program.
8. Melakukan Pengujian terhadap sistem keseluruhan
Semua langkah perancangan dirangkum kedalam diagram alir yang dapat dilihat
pada Gambar 3.9

32
Gambar 3. 9 Diagram Alir Perancangan Penelitian
3.9 Lokasi Penelitian
Penelitian ini dilakukan di:

1. Laboratorium Teknik Komputer Jaringan, Fakultas Teknik Unversitas


Mataram.
2. rumah Peneliti yang berlokasi di desa anyar, kecamatan bayan, kab.
Lombok Utara.
3. kandang ternak ayam pedaging “Bale manuq“ yang berlokasi di desa loloan,
kecamatan Bayan, Kab. Lombok Utara

33
BAB IV

HASIL DAN PEMBAHASAN

4.1 Pengujian Sistem

Pengujian sistem dilakukan dengan tujuan untuk mengetahui hasil dari perancangan
yang telah dibuat pada bab sebelumnya. Apakah sistem dapat bekerja dengan bak sesuai
dengan perancangan atau tidak. Proses pengujian dilakukan pada masing-masing bagian
agar mempermudah dalam menganalisa kesalahan, serta memperbaiki ntuk
kesempurnaaannya. Pengujian sistem meliputi beberapa bagian, yaitu:

1. pengujian catu daya


2. pengujian ketepatan waktu
3. pengujian motor servo
4. pengujian sensor suhu
5. pengujian relay
6. pengujian motor stepper menggunakan driver drv8825
7. pengujian sensor load cell
8. pengujian interface
9. pengujian sistem keseluruhan

4.2 Pengujian Catu Daya

Pengujian catu daya dilakukan dengan memberikan tegangan masukan sebesar 12


Volt DC pada IC Regulator LM7805 adalah 5 Volt DC. Perlu diketahui bahwa tegangan
masukan maupun teganan keluaran IC regulator ini mempunyai batasan maksimal dan
batasan minimal yang dapat dilihat pada data sheet IC Regulator LM7805. Simulasi
rangkaian dapat dilihat pada gambar 4.1 dibawah ini.

Gambar 4. 1 Rangkaian IC Regulator LM705

34
Tabel 4. 1 Pengujian Penguraian Catu Daya
No Rangkaian Tegangan yang Tegangan hasil
diinginkan pengukuran
1 Tegangan Masukan
Regulator 12 Volt 11.85 Volt

2 Tegangan Keluaran
Regulator 5 Volt 5.07 Volt

Data hasil pengukuran catu daya Direct Current ( DC ) pada Tabel 4.1 didapat
bahwa Ketika tegangan masukan untuk regulator yang diinginkan adalah sebesar 12 volt,
maka tegangan terukur yang didapat adalah sebesar 11.85 Volt Untuk pengukuran
tegangan IC Regulator LM7805, tegangan yang terukur adalah sebesar 5.07 Volt yang
dimana idelanya adlaah 5 Volt. Hal ini terjadi dikarenakan setiap komponen memiliki
nilai toleransi yang berbeda, akan tetapi tegangan keluaran sebesar 5.07 Volt termasuk
aman dan tidak berefek buruk terhadap system. Pada sumber tegangan 12 Volt ini
digunakan untuk Fan ( kipas pendingin ), dan driver motor DRV8825 hal ini dikarenakan
spesifikasi dari Fan dan Driver motor yang digunakan membutuhkan sumber tegangan
12 Volt. Sedangkan untuk tegangan keluaran 5 Volt digunakan untuk mensuplai tegangan
untuk modul relay,sensor load cell, motor servo, rtdc, motor stepper serta esp 32, hal ini
dikarenakan modul dan sensor yang digunakan memiliki spesifikasi yang membutuhkan
sumber tegangan 5 Volt. Titik pengukuran pada catu daya dengan multimeter dapat dilihat
pada Lampiran.

Pengujian catu daya dilakukan dengan memberikan sumber tegangan pada IC


Regulator Step down sebesar 5 Volt DC. Terlihat bahwa LED berwarna merah yang
menandai bahwa ESP 32 sudah bekerja.

4.3 Pengujian Ketepatan Waktu

Pengujian ini bertujuan untuk mengetahui apakah waktu yang ditetapkan dan diatur
sudah bisa bekerja dengan baik, sebagaimana peberian pakan dilakukan tiga kali dalam
sehari yakni pada pagi hari ( 07.00 Wita ), siang hari ( 12.00 Wita ) dan sore hari ( 16.00
Wita ), selama satu minggu. Pengaturan penjadwalan waktu pemberian pakan
mengunakan modul Rtdc (Real Time Date Clock) DS3231, rangkaian modul Rtdc
DS3231 dapat dilihat pada gambar 4.2

35
Gambar 4. 2 Rangkaian Rtdc DS3231

Pengujian ketepatan waktu dilakukan dengan memberikan input waktu untuk


mengetahui respon yang diberikan setelah waktu yang ditentukan dimulai, apakah sistem
bisa berkerja atau tidak. Pengaturan waktu sesuai pengujian dapat ditampilkan pada Script
dibawah ini

bool currentFeed_state=(jam==7 || jam==12 || jam==16) && menit==10;


static bool previousFeed_state=false;
// notifikasi
String notif = "Waktunya Makan...\n";
notif += "Pakan telah dituang pada pukul \n";
notif += int(jam);
notif += ":";
notif += int(menit);
notif += " \n";
bot.sendMessage(chatid_user,notif, "");

Dari gambar potongan script diatas dapat diketahui bahwa pada penelitian ini
perintah penuangan pakan diatur tiga kali dalam sehari atau dalam 3 x 24 jam yakni pada
pukul 7, 12 , 16 dan pada menit ke 10. Ketika perintah penuangan pakan telah aktif maka
akan muncul notifikasi yang bertuliskan “ waktunya makan “ disertai dengan waktu jam
pemberian pakan, hal ini sebagai penanda bahwa sebagai penanda jika system pada alat
bekerja sesuai dengan waktu yang telah ditentukan seperti pada Gambar 4.3

Gambar 4. 3 Notifikasi Ketika Pakan Dituang


4.4 Pengujian Motor Servo

Pada pengujian ini bertujuan untuk memastikan bahwa servo dapat membuka dan
menutup kran pakan. Selain itu juga motor servo mampu mengeluarkan pakan sesuai
36
dengan berat pakan yang telah ditentukan. Pengujian ini dilakukan dengan Bahasa
pemerograman C++ pada Arduino IDE seperti pada script dibawah ini :

int openlid = 15; //15 open the tank


lid servo
int closelid = 135; //135 close the
tank lid servo
int spoon1down = 105;
int spoon1up = 170;
int spoon2down = 105;
int spoon2up = 170;

Teknik pengendalian motor servo yaitu memberikan pulsa Pulse Width Modulation
(PWM) yang akan menggerakkan motro servo ke sudut tertentu sesuai dengan pulsa yang
diberikan ke kabel motor servo. Dalam pengujian ini menggunakan tiga (3) buah servo
yakni satu (1) buah servo pada tangka pakan yang berfungsi sebagai pembuka kran pakan
dan dua (2) buah servo pada conveyor yang berfungsi sebagai palang buka-tutup untuk
menggiring pakan agar jatuh pada wadah. Dapat dilihat bahwa pada servo yang sebagai
pembuka dimana akan bergerak membuka kran pakan sebesar 15’ dan akan menutup
Kembali pada posisi dengan bergrak menutup Kembali dengan sudut pergerakan 135’
dan untuk palang buka-tutup akan bergerak naik membuka palang dan bergerak pada
sudut 170’ dan akan bergerak turun menutup bergerak pada sudut 105’ hal imi dapat
dilihat pada gambar. Untuk melakukan pengujian terhadap motro servo dapat dirangkai
seperti rangkaian pada Gambar 4.4

Gambar 4. 4 Rangkaian Servo Dengan Esp 32

37
Tabel 4. 2 Data Hasil Pengujian Waktu Gerak Motor Servo Tehadap Pemberian Pakan
Berat yang Berat 𝑦𝑖 − 𝑓𝑖 % MAPE Rata-Rata Waktu
diinginkan yang (𝑔𝑟) berat gerak
𝑦𝑖
( gram ) terukur yang servo
(𝑦𝑖) C terukur

150 149 0.0066 1.85% 148.1 1.5


detik
148 0,0133

146 0,0266

147 0,02

148 0,0133

149 0,0066

149 0.0066

148 0,0133

150 0

147 0,02

100 98 0.02 2.5% 97.5 1


detik
99 0.01

97 0.03

98 0.02

96 0.04

95 0.05

98 0.02

96 0.04

99 0.01

99 0.01

50 51 0.019 2.4% 49.4 0.5


detik
48 0.041

49 0.020

38
49 0.020

48 0.041

52 0.038

50 0

50 0

48 0.041

49 0.020

Hasil pengujian pada Tabel 4.2 yaitu mengukur ketepatan pemberian berat pakan
yang dikeluarkan melalui pergerakan motor servo. Apabila nilai berat pakan yang
diinginkan berbeda, maka waktu yang dibutuhkan juga berbeda. Pada penelitian ini waktu
yang digunakan yakni satu detik untuk menggerakkan motor servo terbuka. Dari data
tersebut didapatkan bahwa kesalahan error (MAPE) kurang dari 10 persen. Hal ini
menandakan bahwa waktu yang diperlukan untuk menggerakkan motor servo sudah tepat
dan bekerja sangat baik.

Perhitungan data 150 gram menggunakan persamaan (2-1)

1 𝑁 𝑦𝑖 − 𝑓𝑖
𝑀𝐴𝑃𝐸 = ∗ 100% ∑ | |
𝑁 𝑖 𝑦𝑖

1 0.066 + 0.0133 + 0.0266 + 0.02 + 0.066


= ∗ 100% ( )
10 +0.0133 + 0.0066 + 0.0133 + 0 + 0.02

= 0.0185 ∗ 100%

= 1.85%

39
Tabel 4. 3 Data Hasil Pengujian Gerak Motor Servo pada pakan yang tertuang
pengujian Berat Berat Rata-
servo Tuangan pakan pakan Rata
𝑦𝑖 − 𝑓𝑖 %
dengan pakan yang yang (𝑔𝑟) berat
𝑦𝑖 MAPE
waktu sebanyak dihasilkan diinginkan yang
gerak1 3 kali terukur
(𝑦𝑖) (𝑓𝑖)
detik

1 298 300 gram 0.0066


Pengujian 1 2 299 300 gram 0.0033 298.6 0.44%

3 299 300 gram 0.0033

1 298 300 gram 0.0066


Pengujian 2 2 298 300 gram 0.0066 298.3 0.55%

3 299 300 gram 0.0033

1 297 300 gram 0.01


Pengujian 3 2 295 300 gram 0.016 296.3 1.4%

3 295 300 gram 0.016

Hasil pengujian pada Tabel 4.3 yaitu mengukur ketepatan pemberian berat pakan
yang dikeluarkan melalui pergerakan motor servo berdasarkan waktu atau jadwal
pemberian pakan. Apabila nilai berat pakan yang diinginkan berbeda, maka waktu
kecepatan bukaan servo yang dibutuhkan juga berbeda. Pada penelitian ini waktu yang
digunakan yakni satu detik untuk menggerakkan motor servo terbuka. Dari data tersebut
didapatkan bahwa kesalahan error kurang dari 10 persen. Hal ini menandakan bahwa
waktu yang diperlukan untuk menggerakkan motor servo sudah tepat dan bekerja sangat
baik.

Perhitungan data 100 gram menggunakan persamaan (2-1)

40
1 𝑁 𝑦𝑖 − 𝑓𝑖
𝑀𝐴𝑃𝐸 = ∗ 100% ∑ | |
𝑁 𝑖 𝑦𝑖

1
= ∗ 100% (0.0066 + 0.0033 + 0.0033)
3

= 0.44 ∗ 100%

= 0.44%

4.5 Pengujian Sensor Ultrasonic HCSR04

Pengujian sensor ultrasonic bertujuan untuk mendeteksi ketinggian pakan yang


tersedia pada tangki penampungan pakan sehingga volume pakan pada tangki dapat
diketahui sering berkurangnya berat pakan ketika pakan dituang pada wadah. Pengujian
ini dilakukan dengan menggunakan Bahasa pemerograman C++ pada Arduino IDE
seperti pada script dibawah ini:

#define TRIGGER_PIN 18
#define ECHO_PIN 4
#define MAX_DISTANCE 20
//note: if distance measured exceed max distance, the outputs will
0
int tankLevel; //contain feeder tank level capacity value
int feedPercentage;

Pada potogan script diatas diketahui bahwa pada penelitian ini, bahwa batas
ukur sensor dibatasi yakni maksimum 20 cm dan setiap kondisi diambil berdasarkan
pengurangan jumlah berat pakan yang dikurangi per 500 gram dan dilakukan lima kali
pegukuran yang dicatat setiap 15 detik. Kemudian data tersebut dibandingkan dengan
hasil pengukuran penggaris. Lalu dihitung persentase error pada data, hal ini dilakukan
untuk menghitung keakuratan pengukuran ketinggian oleh sensor untrasonik pada
tangki pakan

tankLevel=sonar.ping_cm();
if (tankLevel>=0){
feedPercentage=map(tankLevel, 20, 0, 0, 100);
}

41
if (tankLevel<=0){
feedPercentage=0;
}

Tabel 4. 4 Tabel Pengujian Sensor Ultrasonik HCSR 04


Hasil pengukuran Hasil pengukuran 𝑌𝑖 − 𝐹𝑖 %MAPE Rata-rata
( )
dangan penggaris dengan sensor 𝐹𝑖 terukur
Ultrasonik
5.10 cm 0.02
5.10 cm 0.02
5.10 cm 0.02
5 cm 5.10 cm 0.02 2% 5.10

5.10 cm 0.02
5.10 cm 0.02
5.10 cm 0.02
5.10 cm 0.02
5.10 cm 0.02
5.10 cm 0.02
10.10 cm 0.01
10.10 cm 0.01
10.10 cm 0.01
10.10 cm 0.01
10 cm 10.10 cm 0.01 0.1 % 10.10

10.10 cm 0.01
10.10 cm 0.01
10.10 cm 0.01
10.10 cm 0.01
10.10 cm 0.01
15.10 cm 0.0066
15.10 cm 0.0066

42
15.10 cm 0.0066
15.10 cm 0.0066
15 cm 15.10 cm 0.0066 0.66 % 15.10

15.10 cm 0.0066
15.10 cm 0.0066
15.10 cm 0.0066
15.10 cm 0.0066
15.10 cm 0.0066

Dari tabel diatas dapat dlihat bahwa hasil pengujian didaptkan nilai MAPE
dibawah 10 persen hal ini membuktikan bahwa sensor ultrasonic yang digunakan sangat
bekerja dengan baik.

Perhitungan jarak terukur oleh sensor ultrasonic pada data 5 cm menggunakan


persamaan (2-1)

1 𝑁 𝑦𝑖 − 𝑓𝑖
𝑀𝐴𝑃𝐸 = ∗ 100% ∑ | |
𝑁 𝑖 𝑦𝑖

1 0.02 + 0.02 + 0.02 + 0.02 + 0.02


= ∗ 100% ( )
10 +0.02 + 0.02 + 0.02 + 0.02 + 0.02

= 0.02 ∗ 100%

=2%

Tabel 4. 5 Data hasil pengukuran pada tangki pakan berdasarkan berat terhadap volume

No. Data Berat pakan pada tangki Volume terukur terukur


oleh sensor yang
ditampilkan pada interface

1 3000 gr 80

2 2500 gr 60

3 2000 gr 40

43
4 1500 gr 30

5 1000 gr 20

Gambar 4. 5 Grafik hasil pengukuran volume terulur pada tangka pakan

Rangkaian sensor ultrasonic ini dapat dilihat pada Gambar 4.6 dibawah ini :

Gambar 4. 6 Rangkaian sensor ultrasonic


4.6 Pengujian Sensor Suhu

Pengujian sensor suhu bertujuan untuk mendeteksi suhu di area kandang,


memanfaatkan prinsip kerja dari sensor suhu DHT 11, sensor suhu di letakkan di area
titik tengah pada kandang dan akan mendeteksi suhu dan ketika temperatur suhu kurang
dari titik nilai yang ditentukan yakni 28 C maka Lampu sebagai penghangat akan menyala
dan jika temperatur suhu lebih dari titik yang ditentukan yakni 30 C maka kipas pendingin
akan menyala. Pengaturan suhu sesuai dengan pengujian dapat dilihat pada dibawah ini :

44
float tempMin=28.80; //set minimum allowed temperature value
float tempMax=30.00; //set maximum allowed temperature value

Dari potongan script diatas dapat diketahui bahwa float akan mendeklarasikan
variable tempMin dengan nilai 28.80 ℃ sebagai nilai Batasan minimal suhu dan tempMax
dengan nilai 30.00 ℃ sebagai nilai Batasan suhu maksimal. Dalam penelitan ini dilakukan
pengujians sensor DHT 11 yang dilakukan dalam waktu 3 x 24 jam yakni pada pukul
07.00-08.00 Wita, pukul 12.00-13.00 Wita, Pukul 16.00-17.00 Wita. Hasil pengujian
dapat dilihat pada tabel 4.6, tabel 4.7 dan tabel 4.8

Tabel 4. 6 Pengujian Suhu pada pukul 07.00 – 08.00

Dengan waktu 5 menit


No. Sensor Termometer Rata-
%MAPE
Data DHT 11 (𝐹𝑖) 𝑌𝑖 − 𝐹𝑖 rata
( )
(𝑌𝑖) 𝐹𝑖 suhu
terukur
1 29.21 29.30 0.0030
2 29.30 29.40 0.0034
3 29.30 29.40 0.0034
4 29.30 29.30 0
5 29.40 29.40 0 0.16 % 29.37
6 29.40 29.40 0
7 29.40 29.50 0.0033
8 29.50 29.50 0
9 29.50 29.50 0
10 29.40 29.40 0
11 29.40 29.50 0.0034
12 29.40 29.50 0.0034

45
Tabel 4. 7 Pengujian Suhu pada pukul 12.00 – 13.00

Dengan waktu 5 menit


No Sensor Termometer 𝑌𝑖 − 𝐹𝑖 Rata-
( ) %MAPE
Data DHT 11 (𝐹𝑖) 𝐹𝑖 rata
(𝑌𝑖) suhu
terukur
1 30.40 30.30 0.0033
2 30.40 30.30 0.0033
3 30.50 30.30 0.0066
4 30.50 30.40 0.0032
5 30.70 30.70 0
6 30.70 30.70 0 2.92% 30.7
7 30.70 30.70 0
8 30.60 30.70 0.0032
9 31.20 31.10 0.0032
10 31.20 31.10 0.0032
11 31.30 31.20 0.0032
12 30.20 30.20 0

Tabel 4. 8 Pengujian Suhu pada pukul 16..00 – 18.00

Dengan waktu 5 menit


No Sensor Termometer 𝑌𝑖 − 𝐹𝑖 Rata-
( ) %MAPE
Data DHT 11 (𝐹𝑖) 𝐹𝑖 rata
(𝑌𝑖) suhu
terukur
1 30.21 30.20 0.0003
2 30.21 30.20 0.0003
3 30.30 30.30 0
4 30.30 30.40 0.0032 1.66% 30.29
5 30.30 30.40 0.0032
6 30.50 30.40 0.0032
7 30.50 30.50 0

46
8 30.60 30.50 0.0032
9 30.50 30.50 0
10 30.50 30.50 0
11 30.40 30.50 0.0032
12 30.40 30.40 0

Pengujian sensor DHT 11 dilakukan dengan memasang sensor ditengah area kandang
dan data suhu terukur pada sensor yang didapat lalu dibandingkan dengan suhu terukur
pada thermometer digital. Pada penelitan ini didapatkan hasil MAPE kurang dari 10
persen. Hal ini menandakan bahwa sensor suhu yang digunakan dapat bekerja dengan
sangat baik. Grafik perbandingan suhu berdasarkan waktu pengambilan data dapat dilihat
pada gambar 4.7 dan grafik data suhu suhu terukur salaam 24 jam dapat dilihat pada
gambar 4.8

Perhitungan Suhu pada waktu 07.00-08.00 menggunakan persamaan (2-1)

1 𝑁 𝑦𝑖 − 𝑓𝑖
𝑀𝐴𝑃𝐸 = ∗ 100% ∑ | |
𝑁 𝑖 𝑦𝑖

1 0.0030 + 0.0034 + 0.0034 + 0 + 0


= ∗ 100% ( )
12 +0 + 0.0033 + 0 + 0 + 0 + 0.0034 + 0.0034

= 0.0016 ∗ 100%

= 0.16 %

47
Gambar 4. 7 Grafik perbandingan suhu berdasarkan waktu pengambilan data

Gambar grafik 4.7 dapat dilihat bahwa suhu yang terukur oleh sensor dht 11 pada
jam 07.00 - 08.00 berada pada rata-rata suhu 29.3 ℃, sedangkan pada jam 12.00 -13.00
berada pada suhu rata-rata 30.7 ℃ ,dan pada jam 16.00 -17.00 berada pada rata-rata suhu
30.29 ℃. Data tersebut diambil dan dicatat selama rentang waktu 5 menit sekali.

Gambar 4. 8 grafik data suhu terukur selama 24 jam


Gambar grafik 4.8 dapat dilihat bahwa data suhu yang terukur oleh sensor selama
24 jam pada rentang jam 07.00 hingga 12.00 berada pada rata-rata suhu 29℃ hingga 30
℃, selanjutnya pada rentang jam 12.00 hingga 19.00 mengalami penurunan suhu yakni
berada pada rata-rata suhu 30 ℃ hingga 28 ℃, dan pada rentang jam 19.00 hingga 01.00

48
berada pada rata-rata suhu 29 ℃, serta pada rentang jam 01.00 hingga 07.00 berada pada
rata-rata suhu 28 ℃. Suhu yang melebihi Batasan suhu terukur yakni 28 ℃ - 30 ℃ akan
dinormalkan hingga mencapai rentang suhu tersebut.

Rangkaian sensor DHT 11 dapat dilihat pada Gambar 4.9

Gambar 4. 9 Rangkaian Sensor DHT 11 Dengan Esp 32


4.7 Pengujian Relay

Relay mempunyai fungsi sebagai saklar untuk mengatur lampu pijar dan kipas
pendingin ( fan ) untuk menyala berdasarkan kondisi suhu pada area kendang. Pada jika
suhu pada kendang lebih rendah dari Batasan minimal suhu normal yakni 28℃ maka
lampu pijar akan menyala sebagai penghangat area kendang dan jika suhu pada kendang
melebihi Batasan maksimal suhu normal yakni 30℃ maka kipas akan menyala, hal
tersebut dapat dilihat pada gambar rangkaian 4.10

Gambar 4. 10 Rangkaian Relay dengan Esp 32

49
Tabel 4. 9 Pengujian Relay Terhadap Kondisi Suhu
suhu batas manimum = 28 C dan suhu batas maksimum = 30 C

No Suhu yang terbaca Relay 1 ( Lampu ) Relay 2 ( kipas Kondisi


pada sensor DHT pendingin )
11

1 27 C Relay On ( Low ) Relay Off ( High ) Lampu menyala

2 28 C Relay Off ( High ) Relay Off ( High ) Suhu normal

3 29 C Relay Off ( High ) Relay Off ( High ) Suhu normal

4 29 C Relay Off ( High ) Relay Off ( High ) Suhu normal

5 31 C Relay Off ( High ) Relay On ( Low ) Kipas menyala

Pada Tabel 4.5 merupakan hasil pengujian relay terhadap konsisi suhu pada area
kandang menggunakan sensor suhu DHT 11. Dapat dilihat bahwa kondisi relay ketika
suhu terukur berada pada batas minimum ,normal, dan maksimum akan mempengaruhi
kondisi relay seperti pada Tabel 4.9 Relay ini diatur dengan menggunakan Bahasa
pemerograman C++ Arduino IDE seperti pada potongan script dibawah ini :

pinMode(relayFan, OUTPUT);
pinMode(relayLamp, OUTPUT);
digitalWrite(relayFan, HIGH);
digitalWrite(relayLamp, HIGH)

Dari potongan script tersebut dapat dilihat fungsi dari pinMode akan
mendeklarasiakan relayFan dan relayLamp sebagai output sinyal pada
mikrokontroler ESP 32. Kemudian relayFan dan relayLamp diatur dalam kondisi
HIGH yang dimana kondisi high ini adalah kondisi relay tidak aktif yang menandakan
bahwa relah bersifat aktiv low. Dan pada pengimplementasiannya Ketika relay tidak aktif
hal ini juga menandakan kondisi suhu pada area sekitar kendang normal. Hal ini dapat
dilihat pada gambar potongan script dibawah ini

digitalWrite(relayLamp, HIGH);
digitalWrite(relayFan, HIGH);

50
String notif = "Suhu telahnormal...\n";
notif += "Suhu ketika normal \n";
notif += float(temperature);
bot.sendMessage(chatid_user,notif, "");

Pada potongan script tersebut dimana digitalWrite akan memberikan


perintah High pada relay, bahwa relay dalam kondisi tidak aktif. Hal ini juga menandakan
bahwa kondisi suhu diarea kendang normal yakni kisaran antara 28 C – 30 C dan Ketika
suhu berada dalam kondisi normal maka akan muncul notifikasi “ Suhu Telah Normal “
seperti pada potongan script diatas. Dan jika kondisi suhu pada area kendang dibawah
Batasan minimum suhu yakni 28 C maka relayyang berfungsi untuk menyalakan lampu
pijar akan aktif seperti pada potongan script dibawah ini :

digitalWrite(relayLamp, LOW);
digitalWrite(relayFan, HIGH);
String notif = "Lampu menyala...\n";
notif += "Suhu saat ini \n";
notif += float(temperature);
bot.sendMessage(chatid_user,notif, "");

Dari potongan script diatas dapat diketahui bahwa digitalWrite akan


memberikan perintah Low pada relayLamp yang menandakan bahwa jika dalam
kondisi suhu lebih rendah dari Batasan suhu minimum maka relay akan aktif dan lampu
pijar akan menyala. Dan juga akan memunculkan notifikasi “ Lampu menyala “ .
sedangkan untuk relay pada kipas pendingin yakni relayFan tetap pada kondisi High
atau tidak aktif. Jika kondisi suhu melebihi Batasan maksimum suhu yang telah
ditentukan yakni 30 C maka relay kipas pendingin akan aktif hal ini dapat dilihat pada
potongan script dibawah ini :

digitalWrite(relayLamp, HIGH);
digitalWrite(relayFan, LOW);
String notif = "Kipas menyala...\n";
notif += "Suhu saat ini \n";
notif += float(temperature);
bot.sendMessage(chatid_user,notif, "");

Dari potongan script diatas dapat diketahui bahwa digitalWrite akan


memberikan perintah Low pada relayFan yang menandakan bahwa jika dalam kondisi

51
suhu melebihi Batasan suhu maksimal yang telah ditentukan maka relay akan aktif dan
kipas pendingin akan aktif. Dan juga akan menampilkan notifikasi “ kipas menyala “
sedangkan untuk relay pada lampu pijar yakni relayLamp tetap pada kondisi High atau
tidak aktif. Notifikasi yang menandakan Relay akan aktif pada kondisi tertentu dapat
dilihat pada Gambar 4.11

Gambar 4. 11 Notifikasi Kondisi pada Relay Terhadap Suh


4.8 Pengujian Motor Stepper 28byj-48 Menggunakan Driver DRV 8825

Driver DRV8825 mempunyai fungsi untuk mengatur pergerakan sebua motor,


dimana driver motro ini disuplai dengan tegangan sebesar 12 Volt DC yang berasal dari
tegangan keluaran dari regulator. Pin Enable yang digunakan pada driver ini yaitu pin 13
yang berfungsi untuk mengontrol pergerakan dari motor stepper dengan cara memutuskan
sinyal tegangan ke motor stepper. Pergerakan motor stepper ini diatur dengan
menggunakan bahasa pemerograman C++ Arduino IDE seperti pada potongan script
dibawah ini :

#define dirPin 26 // kabel biru ke pin 26


#define stepPin 27 // kabel kuning ke pin 27
#define enPin 13 // kabel coklat ke pin 13
#define motorInterfaceType 1
AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin,
dirPin);

pinMode(enPin, OUTPUT);
digitalWrite(enPin, HIGH);
stepper.setMaxSpeed(1000); //stepper motor max
speedstepper.setSpeed(550); //set stepper motor speed to run at

Dari potongan script tersebut dapat dilihat fungsi dari pinMode akan
mendeklarasikan enPin atau pin enable yaitu pin 13 pada ESP 32 sebagai output sinyal,
kemudian enpin diatur dalam kondisi High agar memutus tegangan 12 Volt dari power

52
supply ke stepper motor sehingga tidak sepenuhnya mendapatkan tegangan Ketika fungsi
motor stepper dijalankan. Untuk melakukan pengujian terhadap Motor Stepper dapat
dirangkai seperti rangkaian pada Gambar 4. Dari hasil pengujian yang sudah dilakukan
bahwa Motor Stepper dapat bergerak sesuai dengan waktu yang telah ditentukan.
Rangkaian motor stepper dan driver drv 8825 dapat dilihat pada gambar 4.12

Gambar 4. 12 Rangkaian Motor Stepper dengan Esp 32


4.9 Pengujian Sensor Load Cell Dengan Modul HX711

Pengujian sensor berat bertujuan untuk mendeteksi tekanan yang diterima apabila
sensor diberikan beban. Memanfaatkan prinsip kerja dari sensor berat, beban yang
diletakkan di bawah wadah tangki penampung pakan dan akan terdeteksi dan ditampilkan
pada interface. Rangkaian sensor load cell dengan modul HX711 yang dihubungkan
dengan mikrokontroler ESP 32. Rangkaian sensor load cell dengan modul Hx711 dapat
dilihat Gambar 4.13

Gambar 4. 13 Rangkaian Sensor Load Cell dan Modul HX711 dengan Esp 32
53
Tabel 4. 10 Pengujian Sensor Load Cell dengan Berat Beban Pada Tanki Pakan
Pakan pada tangki penampungan yang telah dilakukan pengurangan sebanyak 5
kali dengan beban rentang 1000 gram – 5000 gram

Berat yang di Berat yang 𝑦𝑖 − 𝑓𝑖 % MAPE Berat


(𝑔𝑟)
inginkan terukur 𝑦𝑖 rata-rata

1000 gram 1000 gr 0


998 gr 0.0020
999 gr 0.0010 0.8% 996.4
997 gr 0.0030
998 gr 0.0020
2000 gram 1998 gr 0.0010
1999 gr 0.0005
1997 gr 0.0015 0.6% 1997.6
1996 gr 0.0020
1998 gr 0.0010
3000 gram 2990 gr 0.0033
2994 gr 0.0020
2996 gr 0.0013 0.82% 2994.8
2996 gr 0.0013
2998 gr 0.0006
4000 gram 3997 gr 0.0007
3995 gr 0.0012
3995 gr 0.0012 0.45% 3995
3997 gr 0.0007
3997 gr 0.0007
5000 gram 4995 gr 0.0010
4995 gr 0.0010
4996 gr 0.0008 0.42% 4995.8
4997 gr 0.0006
4996 gr 0.0008

54
Dari hasil pengujian sensor load cell dapat dilihat pada Tabel 4.10 , diketahui
bahwa perbandingan antara tidak jauh berbeda dengan berat pakan yang terukur
menggunakan sensor load cell. Sehingga didapatkan persentase error kurang dari 10
persen. Dapat dikategorikan bahwa kakuratan sensor load cell sangat baik.

Untuk nilai sample yang diambil yaitu sama dengan nilai yang digunakan pada
pengujian sensor load cell pada tangki pakan. Pada pengujian sensor load cell pada tangki
diperoleh nilai persentase error yang semakin kecil. Dapat dikatakan bahwa semakin
besar regangan beban yang diletakkan diatas wadah pakan, maka persentase errornya
relative kecil.

Perhitungan persentase error pada data 1000 gram :

1 𝑁 𝑦𝑖 − 𝑓𝑖
𝑀𝐴𝑃𝐸 = ∗ 100% ∑ | |
𝑁 𝑖 𝑦𝑖

1
= ∗ 100% (0 + 0.0020 + 0.0010 + 0.0030 + 0.0020
5

= 0.008 ∗ 100%

= 0.8%

4.10 Pengujian Interface

Pada pengujian ini bertujuan untuk menyesuaikan pembacaan dari sensor load
cell, sensor Ultrasonic, sensor suhu dengan yang ditampilkan pada smartphone dan
Website. Gambar 4.14 Merupakan tampilan halaman yang diakses melalui website
Ubidots. Gambar 4.15 merupakan tampilan dashboard pada website ubudits. Gambar
4.16 merupakan tampilan dashboard Smartphone, dan dapat diperhatikan bahwa data
pada Tabel 4.11 sesuai dengan yang tertampil pada smartphone maupun Website yang
menampilkan pembacaan sensor suhu. Tabel 4.12 sesuai dengan yang tertampil pada
smartphone maupun Website yang menampilkan pembacaan sensor load cell terhadap
berat pakan. Tabel 4.13 sesuai dengan yang tertampil pada smartphone maupun Website
modul rtdc terhadap ketepatan waktu. Tabel 4.15 sesuai dengan yang tertampil pada
smartphone maupun Website yang menampilkan pembacaan ultrasonic terhadap volume
tangki pakan. Tabel 4.11 sesuai dengan yang tertampil pada aplkasi telegram pada

55
smartphone yang notifikasi . Hal ini menandakan bahwa yang tertampil pada smartphone
dan website sesuai dengan yang terbaca pada terminal perangkat ESP 32.

Gambar 4. 14 Tampilan Awal Website Ubidots

Gambar 4. 15 Gambar Tampilan Halaman Widget pada website Ubidots data


pembacaan sensor

56
Gambar 4. 16 Tampilan Aplikasi Ubidot
Data hasil pengujian interface pada masing-masing fitur dapat dilihat pada tabel
dibawah ini
Tabel 4. 11 pengujian interface terhadap suhu
webiste Aplikasi telegram

Tabel 4. 12 pengujian interface terhadap berat pakan


webiste Aplikasi telegram

57
Tabel 4. 13 pengujian interface terhadap waktu
webiste Aplikasi

Tabel 4. 14 Pengujian interface terhadap volume tangki pakan


webiste Aplikasi

Tabel 4. 15 pengujian perintah dan notifikasi pada aplikasi telegram


Perintah dan Tampilan pada aplikasi
notifikasi
Start / mulai

Berat pakan

58
Stok pakan kurang

Suhu tersisa

Pemberian pakan

Relay kipas
pendingin aktif

Relay lampu
pengahangat aktif

Suhu normal

Conveyor cleaning

Tuangan pakan

59
4.11 Pengujian Sistem Keseluruhan

Setelah dilakukannya oengujian terhadap masing-masing bagian, maka ytahap


selanjutnya yaitu melakukan tahap pengujian system secara keseluruhan baik secara
mekanik maupun pemantauan dari aplikasi .

4.11.1 Pengujian mekanik system otomatis

Dalam pengujian mekanik ini dengan menggabungkan komponen secara


keseluruhan seperti pada Gambar 4.17

Rangkian mekanik sistem secara keseluruhan

Gambar 4. 17 Gambar Rangkaian Sistem Secara Keseluruhan

Pada Gambar 4.17 merupakan rangkaian system otomatis secara keseluruhan,


dimana pada rankaian ini mengunakan Esp 32 sebagai mikrokontroler untuk menjalankan
system dan terdapat beberapa komponen yang terhubung yakni sensor load cell sebagai
sensor pendeteksi berat pakan, sensor dht 11 sebagai sensor pendeteksi suhu, sensor

60
ultrasonic sebagai sensor pendeteksi volume pada tangki pakan, modul relay sebagai
saklar kipas pendingin dan lampu penghangat, modul rtc sebagai pengatur waktu, motor
stepper sebagai penggerak conveyor, dan servo sebagai pembuka kran pakan dan palang
pada conveyor. Pada pengujian ini dilakukan dengan awalnya mengatur pemberian
pakan. Setelah ditentukan, maka tangki pakan akan menjalankan system dengan
membuka kran pakan dan akan mengeluarkan pakan sebanyak 100 gram per wadah yang
nantinya akan di salurkan melalui conveyor menuju wadah pakan. System ini bekerja
sebanyak tiga kali sehari dengan jadwal pemberian pakan yaitu pagi, siang dan sore.
Sehingga ayam makan 300 gram per hari dan dilakukan pengujian selama empat hari
berturut-turut. Berikut data hasil pengujian system keseluruhan secara otomatis dapat
dilihat pada tabel 4.16

Tabel 4. 16 Tabel Data hasil pengujian keseluruhan secara mekanik

Pemberian pakan Berat Berat yang Volume Kondisi


berdasarkan jadwal yang terukur diinginkan tangki yang Relay
telah ditentukan Suhu
terukur
terukur saat
waktu
Pengujian Waktu Berat awal Volume penuangan
pakan fan Lamp
pengujian 4498 4500 awal
98%
07.10 4198 4200 92 % 29 Off Off
1 12.10 3897 3900 87 % 30 Off Off
16.10 3598 3600 82 % 30 Off Off
07.10 3296 3300 75 % 29.3 Off Off
2 12.10 2996 3000 67 % 30.6 On Off
16.10 2694 2700 62 % 31 On Off
07.10 2396 2400 57 % 28 Off On
3 12.10 2097 2100 52 % 32 On Off
16.10 1797 1800 47 % 30 Off Off
07.10 1498 1500 42 % 28 Off On
4 12.10 1199 1200 37 % 30 Off Off
16.10 899 900 32 % 29 Off Off

Dari tabel 4.16 dapat diketahui bahwa berat pakan akan dikurangi sebanyak
300 gram per sekali jadwal tuang dan akan terus berlanjut hingga berat pada tangka
akan terbaca semakin kecil nilainya oleh sensor load cell yang meadakan bahwa
pakan pada tangki sudah mulai berkurang dan sensor ultrasonic menampilkan dan
61
membaca volume pakan yang tersisa pada tangki pakan. Dan selanjutnya system akan
mengirimkan notifikasi berat tersedia terkni pada smartphone dan sensor suhu akan
membaca kondisi suhu pada area kandang dan akan menormalkan suhu pada area
kandang jika suhu terbaca melebihi batas maksimum dan batas minimum pembacaan
sensor suhu yang telah ditetapkan dengan mengaktifkan relay dan system juga akan
mengirimkan notifikasi pada smartphone sesuai dengan kondisi suhu yang terdeteksi.

4.11.2 Pengujian interface

Pada pengujian ini bertujuan untuk menyesuaikan pembacaan dari sensor


load cell, sensor ultrasonic, sensor suhu dan waktu pada modul rtdc dengan
diampilkan pada halaman website. Gambar 4.18 merupakan halaman awal
website. Sedangkang Gambar 4.19 merupakan halaman dashboard yang
menampilkan yang menampilkan hasil pembacaan sensor. Gambar 4.20
merupakan tampilan dashboard pada smartphone yang menampilkan yang
menampilkan pembacaan sensor. Hal ini menandakan bahwa yang tertampil pada
Website dan Smartphone sesuai dengan yang terbaca pada terminal perangkat ESP
32

Gambar 4. 18 Tampilan awal website ubidots

62
Gambar 4. 19 tampilan halaman widget pada website ubidots data pembacaan
sensor

Gambar 4. 20 Gambar tampilan pada aplikasi Ubidots

63
BAB V

PENUTUP
5.1 Kesimpulan

Setelah melakukan rangkaian pengujian alat smart cage dan dipantau


melalui website dan smartphone yang direalisasikan, maka dapat ditarik kesimpulan
sebagai berikut :

1. Alat pemberi pakan ayam broiler secara otomatis sudah berjalan dengan baik
yaitu sesuai dengan waktu yang ditentukakn pada pagi, siang, dan sore hari.
System ini juga mampu mengeluarkan pakan dengan takaran berat yang sama
yakni ± 100 gram di setiap wadah pakan per sekali waktu tuang, dengan
persentase error yang didapat dibawah 10 persen.
2. Pengontrolan suhu pada Alat smart cage berjalan dengan sangat baik, yaitu
dapat menyetabilkan suhu area kandang hingga pada suhu normal yakni pada
rentang suhu 28 ℃ - 30 ℃
3. Pemantauan ukuran sisa pakan pada tangki pakan yang dilakukan pada
halaman website dan smartphone sama dengan yang tertampil pada teriminal
ESP 32
4. Sistem pengendali secara otomatis pemberian pakan dan kontrol suhu pada
area kandang ayam broiler dengan pemantauan jarak jauh sudah berhasil dan
berjalan dengan baik.

5.2 Saran

Dalam pengerjaan dan penyelesaian tugas akhir ini tidak lepas dari berbagai
macam kekurangan dan kelemahan, baik dari perangkat keras atau perangkat lunak
yang dirancang. Untuk memperbaiki kekurangan tersebut, maka dapat diambil
beberapa saran yang dapat dikembangkan lebih lanjut diantaranya:

1. Dibutuhkan sensor load cell yang lebih presisi agar pembacaan sensor lebih
stabil dan akurat Ketika pakan didistribusikan dari tangki pakan ke wadah
pakan.

64
2. Dibutuhkan sensor suhu yang lebih presisi agar pembacaan suhu diarea
kandang dapat lebih akurat sehingga sesuai dengan kebutuhan suhu pada
ayam broiler
3. Dibutuhkan stepper motor yang memiliki torsi dan kecepatan yang lebih
bagus agar pendistribusian pakan dapat bergerak dengan lancar

65
DAFTAR PUSTAKA

Ajibekti, D. (2019). Sistem Monitoring Peternakan Ayam Broiler Berbasis Internet of


Things.Telekontran,Vol.7,No.1, April 2019 Doi: 10.34010/telekontran.v7i1.1641
, 1-13.

Amrullah, M. (2019). Rancang Bangun Alat Monitor Pemberi Pakan Ayam Berbasis Web
. Jurnal Teknosains FTIE UTY, 1-15.

Andalanelektro.com (2021). Mengenal Motor Stepper: Pengertian ,Cara Kerja Dan


Jenisnya . Diakses Pada 10 Agustus 2021, Dari https:// www.andalanelektro.id
/2021/01/mengenal-motor-stepper.html

Anonim.(2013). Getting Started With The Esp 32 Developmment Board. Diakes pada 10
agustus 2021. Dari https://randomnerdtutorials.com/ getting-started-with-esp32

Anonim. (2016). Pengertian dan penjelasan tentang relay. Diakses pada 10 Agustus
2021, Dari https://www.edukasielektronika.com/2022/10/pengertian-dan-
penjelasan-tentang-relay.html

Anonim. (2018). Ayam broiler live birds, Diakses pada tanggal 10 agustus 2021, Dari
https://www.japfacomfeed.co.id/id/poultry/ayam-broiler-live-birds

Anonim. (2019).penjelasan tentang modul rtcds3231.Diakses pada 10 agustus 2021. Dari


http://www.jogjarobotika.com/modulrtcds3231

Anonim. (2019). Ky-015 temperature and humidity sensor module. Diakses pada 10
agustus 2021, Dari https://arduinomodules.info/ ky-015-temperature

Astria, F., Subito, M., & Nugraha, W. D. (2014). Rancang Bangun Alat Ukur PH Dan
Suhu Berbasis Short Message Service (SMS) Gateaway. Jurnal MEKTRIK, 1(1),
47–55.

Budi, A. (2017). Rancang Bangun Sistem Pemberi Pakan Ayam Serta Monitoring Suhu
dan Kelembaban Kandang Berbasis Atmega328 . JE-Unisla Program Studi
Elektro , Vol 2 No 2 , 1-5.

66
Budioko. (2016). Sistem Monitoring Suhu Jarak Jauh Berbasis Internet Of Things
Menggunakan Protokol Mqtt . Seminar Riset Teknologi Informasi (SRITI) tahun
2016 , 353.

Degraw S. (2017). Arduino scale with 5kg load cell and hx7111 amplifier. Diakses pada
10 agustus 2021, Dari instructables.com/arduino-scale-with-5kg-load-cell-and-
hx711-amplifi/.

Gigih, K. (2018). Smart Kandang Ayam Petelur Berbasis Internet Of Things Untuk
Mendukung Sdgs 2030 (Sustainable Development Goals) . Jurnal TEKNOINFO,
Vol. 12, No. 2, 2018, 43-48, ISSN 2615-224X , 43-48.

Husnul, A. E. (2017). Pengembangan Iot Middleware Berbasis Event-Based dengan


Protokol Komunikasi CoAP, MQTT dan Websocket . urnal Pengembangan
Teknologi Informasi dan Ilmu Komputer e-ISSN: 2548-964X Vol. 1, No. 12,
Desember 2017, hlm. 1560-1567 http://j-ptiik.ub.ac.id, 1-8.

Komala, D. (2011). Rancang Bangun Pemberi Pakan Ayam Otomatis Pada Peternakan
Ayam Berbasis Mikrokontroller. Tugas Akhir - 2011, 1-9.

Margi, K., & Pendawa, S. (2015). Analisa dan Penerapan Metode Single Exponential
Smoothing untuk Prediksi Penjualan pada Periode Tertentu (Studi Kasus: PT.
Media Cemara Kreasi). Prosiding SNATIF Ke-2, (1998), 259–266.

Nhut, N. M. (2012). 3133 - Micro Load Cell (0-5kg) - CZL635 Contents, 1–4

Ramadhan, R. (2019). Perancangan Purwarupa E-Fishery Pada Budidaya Ikan Nila


Berbasis Iot. Fakultas Teknik Unram., Universitas Mataram., 2019, 1-9.

Ridhamuttaqin, D. (2013). Rancang Bangun Model Sistem Pemberi Pakan Ayam


Otomatis Berbasis Fuzzy Logic Control . ELECTRICIAN – Jurnal Rekayasa dan
Teknologi Elektro , 1-13.

Ridwan, M. B. (2019). Sistem Monitoring Tanaman Hidroponik Dengan Sensor Ph, Suhu
Air Dan Pemupukan Berbasis Internet Of Thing . Jurnal Teknosains FTIE UTY,
1-13.

Wedhariny, V. (2019). Rancang Bangun Purwarupa Sistem Pengendali Otomatis Pemberi


Pakan Ayam Petelur Berbasis Internet Of Things (Iot) . Fakultas Teknik Unram :
Universitas Mataram., 2019.

67
Yuwata. (2004). Dasar Ternak Unggas. Yogyakarta: Kanisius.

68
LAMPIRAN

No Keterangan GAMBAR
dokumentasi

1 Desain
rancangan
Smart Cage

2 Pengukuran
Catu Daya

69
3 Pengukuran
Suhu

4 Pengukuran
Berat pakan

5 Pengukuran
Volume Tangki
pakan

70
6 Objek
penelitian yang
digunakan
“Ayam broiler”

71
Program Arduino IDE Sistem Keseluruhan
/****************************************
* Include Libraries
// Alfan Suffa Pramana//
// F1B016009 //
****************************************/
#include "UbidotsEsp32Mqtt.h" //Developed by Jose Garcia,
https://github.com/jotathebest/
#include <NewPing.h> //Ultrasonic sensor library
#include "DHT.h" //DHT 11 sensor library
#include "RTClib.h" // Date and time functions using a DS3231 RTC connected via I2C and
Wire lib
#include <Servo.h>
#include <AccelStepper.h>
#include "HX711.h"
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
// Initialize Telegram BOT parameters
#define BOTtoken "5484724669:AAFQOvefASNzP_H8OjCd5IrknyJ6mhucyGI" // Bot token from
telegram app
//Initialize telegram user that receive the notification
#define chatid_user "1476233823"
// Initialize Wifi connection to the router
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
//Checks for new messages every 1 second.
int botRequestDelay = 500;
unsigned long lastTimeBotRan;
// HX711 circuit wiring parameters
const int LOADCELL_DOUT_PIN = 19;
const int LOADCELL_SCK_PIN = 23;
HX711 scale;
float weight;
float lastWeight;
//stepper motor parameters
#define dirPin 26 // kabel biru ke pin 26
#define stepPin 27 // kabel kuning ke pin 27
#define enPin 13 // kabel coklat ke pin 13
#define motorInterfaceType 1
AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin);
//servos parameters
Servo feedservo; // create servo object to control a servo
Servo spoon1; // create servo object to control a servo
Servo spoon2; // create servo object to control a servo
int openlid = 15; //15 open the tank lid servo
int closelid = 135; //135 close the tank lid servo
int spoon1down = 105;
int spoon1up = 170;
int spoon2down = 105;
int spoon2up = 170;
int counter=0;
int pourOnce_Time=1000; //set the value in miliseconds to adjust amount of feed poured
int stepperMove_Time=0; //set the value in miliseconds to adjust how long the stepper
active
int pourDelay;
//new int variable for new program
int pourDelaySingle;
int counterSingle=0;
int pourDelayDouble;
int counterDouble=0;
boolean pourOnce_State=false;
boolean pourThrice_State=false;
boolean stepperState=false;
boolean sendState=false;

72
boolean servoStandby_state=false;
boolean tempCheck_state=false;
boolean lampON_state=false;
boolean fanON_state=false;
boolean lampOFF_state=false;
boolean fanOFF_state=false;

//new boolean variable for new program


boolean singleOverride_state=false;
boolean doubleOverride_state=false;
boolean tripleOverride_state=false;
boolean conveyorCleaning_state=false;
boolean pourSingleFeed_state=false;
boolean pourDoubleFeed_state=false;
unsigned long pourOnce_Millis=0;
unsigned long counter_Millis=0;
unsigned long stepper_Millis=0;
unsigned long weight_Millis=0;
unsigned long sonar_Millis=0;
unsigned long previousMillis = 0;
unsigned long previousTelegram_Millis=0;
unsigned long previousNotif_Millis=0;
unsigned long interval = 30000;
//new unsigned long variables for new program
unsigned long counterSingle_Millis=0;
unsigned long counterDouble_Millis=0;
//ultrasonic parameters
#define TRIGGER_PIN 18 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN 4 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 20 // Maximum distance we want to ping for (in centimeters). Maximum
sensor distance is rated at 400-500cm.
//note: if distance measured exceed max distance, the outputs will 0
int tankLevel; //contain feeder tank level capacity value
int feedPercentage;
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum
distance.
//dht11 parameters
#define DHTPIN 15
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
float humidity;
float temperature;
float tempMin=28.80; //set minimum allowed temperature value
float tempMax=30.00; //set maximum allowed temperature value
//Real Time Clock parameters
RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
"Friday", "Saturday"};
int jam;
int menit;
int detik;
//Relay parameters
const int relayFan =16; //relay in1 attached to ESP32 pin number 16, this is for DC Fan
const int relayLamp =17; //relay in2 attached to ESP32 pin number 17, this is for Lamp
/****************************************
* Define ubidots Constants
****************************************/
const char *UBIDOTS_TOKEN = "BBFF-62b5p9FXN7SnQRnqlek7ONkLKXezs9"; // Put here your
Ubidots TOKEN
const char *WIFI_SSID = "s"; // Put here your Wi-Fi SSID
const char *WIFI_PASS = "1234567890"; // Put here your Wi-Fi password
const char *DEVICE_LABEL = "esp32-brochick-database"; //Put here your Device label to
which data will be published
const char *TEMP_VARIABLE_LABEL = "temp-brochick"; // Put here your Variable label to
which data will be published

73
const char *HUMID_VARIABLE_LABEL = "humid-brochick"; // Put here your Variable label to
which data will be published
const char *RTCHOUR_VARIABLE_LABEL = "rtchour-brochick"; // Put here your Variable
label to which data will be published
const char *RTCMINUTE_VARIABLE_LABEL = "rtcminute-brochick"; // Put here your Variable
label to which data will be published
const char *WEIGHT_VARIABLE_LABEL = "weight-brochick"; // Put here your Variable label
to which data will be published
const char *TANK_VARIABLE_LABEL = "tank-brochick"; // Put here your Variable label to
which data will be published
const int PUBLISH_FREQUENCY = 60000; // Ubidots update rate in milliseconds

unsigned long ubidotsTimer;


Ubidots ubidots(UBIDOTS_TOKEN);
/****************************************
* Auxiliar Functions
****************************************/
void callback(char *topic, byte *payload, unsigned int length)
{
Serial.print("Message arrived [");
Serial.print(topic);
Serial.print("] ");
for (int i = 0; i < length; i++)
{
Serial.print((char)payload[i]);
}
Serial.println();
}
//---------------//start of handleNewMessages()---------------
void handleNewMessages(int numNewMessages) {
for (int i=0; i<numNewMessages; i++) {
String chat_id = String(bot.messages[i].chat_id);
String text = bot.messages[i].text;
String from_name = bot.messages[i].from_name;
if (from_name == "") from_name = "Guest";
if (text == "/weight") {
float weight = (round(scale.get_units())/1000)-0.61; //converted to Kg, 0.61 is
overall tank weight when empty
String temp = "Weight : ";
temp += float(weight);
temp +=" Kg";
bot.sendMessage(chat_id,temp, "");
}
if (text == "/temp") {
float t = dht.readTemperature();
String temp = "Temperature: ";
temp += float(t);
temp += " *C";
bot.sendMessage(chat_id,temp, "");
}
if (text == "/singleOverride") {
singleOverride_state=true;

String info = "Single Override Selected ";


bot.sendMessage(chat_id,info, "");
}
if (text == "/doubleOverride") {
doubleOverride_state=true;

String info = "Double Override Selected ";


bot.sendMessage(chat_id,info, "");
}
if (text == "/tripleOverride") {
tripleOverride_state=true;

74
String info = "Triple Override Selected ";
bot.sendMessage(chat_id,info, "");
}
if (text == "/conveyorCleaning") {
conveyorCleaning_state=true;
String info = "Conveyor Cleaning Selected ";
bot.sendMessage(chat_id,info, "");
}
if (text == "/start") {
String welcome = "Welcome " + from_name + ".\n";
welcome += "/weight : Tank weight info\n";
welcome += "/temp : Temperature info\n";
welcome += "/singleOverride : Run Single Override\n";
welcome += "/doubleOverride : Run Double Override\n";
welcome += "/tripleOverride : Run Triple Override\n";
welcome += "/conveyorCleaning : Clean conveyor from excess pellets by 1 minute
run\n";
bot.sendMessage(chat_id, welcome, "Markdown");
}
}//end of for
}//end of handleNewMessages()
//===============//end of handleNewMessages()===============
/****************************************
* Main Functions
****************************************/
void setup()
{
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
//ubidots.setDebug(true); // uncomment this to see Ubidots debugging message
//ubidots.setCallback(callback); //ubidots debug message to be displayed in serial
monitor if necessary
ubidots.connectToWifi(WIFI_SSID, WIFI_PASS); //connect to WiFi using previously
defined WiFi parameters
ubidots.setup(); //set ubidots
ubidots.reconnect(); //reconnect to ubidots if ESP32 is reset
ubidotsTimer = millis(); //
sendState=true;
dht.begin();
client.setInsecure();
//RTC debugging message
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
while (1) delay(10);
}
//this statement will check if RTC run for first time, if not, it will set the RTC date
based on computer compile time
if (rtc.lostPower()) {
Serial.println("RTC lost power, let's set the time!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
//rtc.adjust(DateTime(2022, 6, 13, 22, 11, 0));
}
pinMode(enPin, OUTPUT);
digitalWrite(enPin, HIGH);
stepper.setMaxSpeed(1000); //stepper motor max speed
stepper.setSpeed(550); //set stepper motor speed to run at
feedservo.attach(25); // attaches the servo for feed pouring on ESP32 pins 25 (labeled
as Servo 1 in PCB silkscreen)
spoon1.attach(33); // attaches the servo for the farthest spoon conveyor belt on
ESP32 pins 33 (labeled as Servo 2 in PCB silkscreen)
spoon2.attach(32); // attaches the servo for the closest spoon conveyor belt on
ESP32 pins 32 (labeled as Servo 3 in PCB silkscreen)

feedservo.write(closelid); // set initial servo positiion after setup

75
spoon1.write(spoon1up);
spoon2.write(spoon2up);

scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
scale.set_scale(412.731); // this value is obtained by calibrating
the scale with known weights; see the README for details

pinMode(relayFan, OUTPUT);
pinMode(relayLamp, OUTPUT);
digitalWrite(relayFan, HIGH);
digitalWrite(relayLamp, HIGH);
} //end of setup

void loop()
{
pourOnce();
pourThrice();
stepperRun();
kirimData();
tempCheck();
servoStandby();
singleOverride();
doubleOverride();
tripleOverride();
conveyorCleaning();
pourSingleFeed();
pourDoubleFeed();
}//end of loop
//===============//end of main loop()===============

//---------------//start of kirimData()---------------
//inside this function, calling all necessary sensors function and store it to variables
//then send it to Ubidots Dashboard
void kirimData(){
if(sendState==true){

//Real Time Clock parameters


DateTime now = rtc.now(); //basically this statement calling DateTime function
jam=now.hour(); //insert hour value to 'jam' variable
menit=now.minute(); //insert minute value to 'menit' variable
detik=now.second(); //insert second value to 'detik' variable

//this ultrasonic reading value to monitor feeder tank level


tankLevel=sonar.ping_cm();
if (tankLevel>=0){
feedPercentage=map(tankLevel, 20, 0, 0, 100);
}
if (tankLevel<=0){
feedPercentage=0;
}

//DHT11 parameters
humidity = dht.readHumidity(); //insert DHT 11 humidity reading value to 'hum'
variable
temperature = dht.readTemperature(); //insert DHT 11 temperature reading value to
'temp' variable

//Load Cell parameters


float weight = (round(scale.get_units())/1000)-0.61; //converted to Kg, 0.61 is overall
tank weight when empty

//is it feeding time? if yes, do the feeding routine


bool currentFeed_state=(jam==1 || jam==8 || jam==11) && menit==15;
static bool previousFeed_state=false;

76
if(currentFeed_state!=previousFeed_state){

//change previous state with new current state


previousFeed_state=currentFeed_state;

if(currentFeed_state){

servoStandby_state=false; //deactivate servoStandby() function


tempCheck_state=false; //deactivate tempCheck() function
pourThrice_State=true; //activate pourThrice() function
stepperMove_Time=210000;
stepperState=true; //activate stepperRun() function
stepper_Millis=millis();

String notif = "Waktunya Makan...\n";


notif += "Pakan telah dituang pada pukul \n";
notif += int(jam);
notif += ":";
notif += int(menit);
notif += " \n";
bot.sendMessage(chatid_user,notif, "");
}

else{
//do nothing if else a.k.a the currentFeed_state is false
}
}

//check incoming message from telegram user


unsigned long currentTelegram_Millis = millis();
if (currentTelegram_Millis-previousTelegram_Millis>=1000){
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);

if(numNewMessages) {
handleNewMessages(numNewMessages);
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}
previousTelegram_Millis=currentTelegram_Millis;
}

//check if tank weight is below limit, if so, it will spamming the telegram bots with
notification message every 1 mins
if(weight<0.20){
unsigned long currentNotif_Millis = millis();
if (currentNotif_Millis-previousNotif_Millis>= 60000){
previousNotif_Millis = currentNotif_Millis;
String notif = "Peringatan!!!!\n";
notif += "Stok pakan kurang dari 0.70 Kg!!\n";
notif += "Stok pakan saat ini: ";
notif += float(weight);
notif += " Kg";
bot.sendMessage(chatid_user,notif, "");
}
}

//---------------send all necessary data to ubidots dashboard---------------


if (!ubidots.connected()) //this statement check if ubidots connected or not
{
ubidots.reconnect(); //if so, run reconnect function
}

// triggers the routine every 5 seconds, in other words, it will send all variable every
5 seconds
if ((millis() - ubidotsTimer) > PUBLISH_FREQUENCY)

77
{
ubidotsTimer = millis(); //insert millis value to 'timer' variable
//unfortunately, we can send 5 variables only for now,,
//its because the max payload length is 512 bytes, if the payload exceed the limit,
ESP32 will sent nothing to Ubidots Dashboard
// Insert your variable Labels and the value to be sent

//ubidots.add(HUMID_VARIABLE_LABEL, humidity); //DHT 11 humidity value


ubidots.add(TEMP_VARIABLE_LABEL, temperature); //DHT 11 temperature value
ubidots.add(RTCHOUR_VARIABLE_LABEL, jam); //RTC recent hours value
ubidots.add(RTCMINUTE_VARIABLE_LABEL, menit); //RTC recent minute value
ubidots.add(WEIGHT_VARIABLE_LABEL, weight); //weight value
ubidots.add(TANK_VARIABLE_LABEL, feedPercentage); //height value
ubidots.publish(DEVICE_LABEL); //set which device to be used to contain all those
variables
//debugMessage(); //uncomment this for debugging purpose only
}
ubidots.loop();
}

}//end kirimData()
//===============//end of kirimData()===============

//---------------//start of stepperRun()---------------
//activate the stepper motor to move the conveyor belt
void stepperRun(){
if(stepperState==true){
sendState=false;
digitalWrite(enPin, LOW);
stepper.runSpeed(); //start the stepper
}

//adjust the stepperMove_Time to ensure all feed stock completely out from belt
if((millis()-stepper_Millis)>=stepperMove_Time){
stepperState=false; //deactivate stepperRun() function
digitalWrite(enPin, HIGH); //disable a.k.a turn the DRV8825 off to avoid stepper
motor overheat while idle
sendState=true; //re-activate kirimData() function, this function will send all data
to ubidots and telegram if requested
servoStandby_state=true; //re-activate servoStandby() function, this function will
set all servo at up position
tempCheck_state=true; //re-activate tempCheck() function
singleOverride_state=false;
doubleOverride_state=false;
tripleOverride_state=false;
conveyorCleaning_state=false;
}
}//end
//===============//end of stepperRun()===============
//---------------//start of pourThrice()---------------
//this function will do pourOnce() function three times
void pourThrice(){
if(pourThrice_State==true){
if(counter<3){
if((millis()-counter_Millis)>=pourDelay){
counter_Millis=millis();
pourOnce_State=true;
pourOnce_Millis=millis();
counter++;
}
}
if(counter==3){
counter=0;
pourThrice_State=false;
}

78
if (counter==1){
pourDelay=25000; //wait 20 seconds before spoon1 down
spoon1.write(spoon1up);
spoon2.write(spoon2up);
}
if (counter==2){
pourDelay=20000; //wait 15 seconds before spoon 2 down
spoon1.write(spoon1down);
spoon2.write(spoon2up);
}
if (counter==0){
spoon1.write(spoon1down);
spoon2.write(spoon2down);
}
}//end if triplefour state check
}//end pour3times()
//===============//end of pourThrice()===============

//---------------//start of pourOnce()---------------
//this function will open tank lid for a second then close it
void pourOnce(){
if (pourOnce_State==true){
//Serial.println("Pour Mode Started"); // uncomment this for debugging only
feedservo.write(openlid);

if ((millis() - pourOnce_Millis)>= pourOnce_Time) {


feedservo.write(closelid);
pourOnce_State = false;
}//end of if millis()
}//end of if (pourMode==true)
}//end pour()
//===============//end of pourOnce()===============

//---------------//start of tempCheck()---------------
//runs relay, fan, heater lamp, and DHT11 temperature check
void tempCheck(){
//check if DHT11 temp is below tempThreshold or not
if (tempCheck_state==true){

//DHT11 parameters
humidity = dht.readHumidity(); //insert DHT 11 humidity reading value to 'hum'
variable
temperature = dht.readTemperature(); //insert DHT 11 temperature reading value to
'temp' variable

//------------------------------------------------------------------------
//send message if temperature is Normal
bool currentNormalTemp_state=temperature>tempMin && temperature<tempMax;
static bool previousNormalTemp_state=false;

if(currentNormalTemp_state!=previousNormalTemp_state){

//change previous feed state with new current feed state


previousNormalTemp_state=currentNormalTemp_state;

if(currentNormalTemp_state){

digitalWrite(relayLamp, HIGH);
digitalWrite(relayFan, HIGH);

String notif = "Suhu telah normal...\n";


notif += "Suhu ketika normal \n";
notif += float(temperature);
bot.sendMessage(chatid_user,notif, "");
}

79
else{
//do nothing if else a.k.a the normalTemp_state is false
}
}
//========================================================================

//------------------------------------------------------------------------
//send message if temperature is below Normal
bool currentBelowTemp_state=temperature<tempMin;
static bool previousBelowTemp_state=false;

if(currentBelowTemp_state!=previousBelowTemp_state){

//change previous feed state with new current feed state


previousBelowTemp_state=currentBelowTemp_state;

if(currentBelowTemp_state){

digitalWrite(relayLamp, LOW);
digitalWrite(relayFan, HIGH);

String notif = "Lampu menyala...\n";


notif += "Suhu saat ini \n";
notif += float(temperature);
bot.sendMessage(chatid_user,notif, "");
}

else{
//do nothing if else a.k.a the belowTemp_state is false
}
}
//========================================================================

//------------------------------------------------------------------------
//send message if temperature is above Normal
bool currentAboveTemp_state=temperature>tempMax;
static bool previousAboveTemp_state=false;

if(currentAboveTemp_state!=previousAboveTemp_state){

//change previous feed state with new current feed state


previousAboveTemp_state=currentAboveTemp_state;

if(currentAboveTemp_state){

digitalWrite(relayLamp, HIGH);
digitalWrite(relayFan, LOW);

String notif = "Kipas menyala...\n";


notif += "Suhu saat ini \n";
notif += float(temperature);
bot.sendMessage(chatid_user,notif, "");
}

else{
//do nothing if else a.k.a the aboveTemp_state is false
}
}
//========================================================================

}////===============//end of tempCheck state===============


}//===============//end of tempCheck()===============

80
//---------------//start of servoStandby()---------------
void servoStandby(){
if (servoStandby_state==true){
spoon1.write(spoon1up);
spoon2.write(spoon2up);
}
}
//===============//end of servoStandby()===============

/*
* hey, new program started from here
* hey, new program started from here
* hey, new program started from here
* hey, new program started from here
* hey, new program started from here
* hey, new program started from here
* hey, new program started from here
*/

//---------------//start of singleOverride()---------------
void singleOverride(){
//------------------------------------------------------------------------
//check if single override is called
bool currentSingleOverride_state=singleOverride_state;
static bool previousSingleOverride_state=false;

if(currentSingleOverride_state!=previousSingleOverride_state){

//change previous state with new current state


previousSingleOverride_state=currentSingleOverride_state;

if(currentSingleOverride_state){
servoStandby_state=false; //deactivate servoStandby() function
tempCheck_state=false; //deactivate tempCheck() function
pourSingleFeed_state=true; //calling pourSingleFeed() function

//do stepperRun()
stepperMove_Time=30000;
stepperState=true; //activate stepperRun() function
stepper_Millis=millis();

String notif = "Single Override Started\n";


bot.sendMessage(chatid_user,notif, "");
}

else{
//do nothing if else a.k.a the singleOverride is false or not called
}
}
//========================================================================
}//===============//end of singleOverride()===============

//---------------//start of doubleOverride()---------------
void doubleOverride(){
//------------------------------------------------------------------------
//check if double override is called
bool currentDoubleOverride_state=doubleOverride_state;
static bool previousDoubleOverride_state=false;

if(currentDoubleOverride_state!=previousDoubleOverride_state){

//change previous state with new current state

81
previousDoubleOverride_state=currentDoubleOverride_state;

if(currentDoubleOverride_state){
servoStandby_state=false; //deactivate servoStandby() function
tempCheck_state=false; //deactivate tempCheck() function
pourDoubleFeed_state=true; //calling pourDoubleFeed() function

//do stepperRun()
stepperMove_Time=60000;
stepperState=true; //activate stepperRun() function
stepper_Millis=millis();

String notif = "Double Override Started\n";


bot.sendMessage(chatid_user,notif, "");
}

else{
//do nothing if else a.k.a the doubleOverride is false or not called
}
}
//========================================================================
}//===============//end of doubleOverride()===============

//---------------//start of tripleOverride()---------------
void tripleOverride(){
//------------------------------------------------------------------------
//check if triple override is called
bool currentTripleOverride_state=tripleOverride_state;
static bool previousTripleOverride_state=false;

if(currentTripleOverride_state!=previousTripleOverride_state){

//change previous state with new current state


previousTripleOverride_state=currentTripleOverride_state;

if(currentTripleOverride_state){
servoStandby_state=false; //deactivate servoStandby() function
tempCheck_state=false; //deactivate tempCheck() function
pourThrice_State=true; //activate pourThrice() function

//do stepperRun()
stepperMove_Time=150000;
stepperState=true; //activate stepperRun() function
stepper_Millis=millis();

String notif = "Triple Override Started\n";


bot.sendMessage(chatid_user,notif, "");
}

else{
//do nothing if else a.k.a the tripleOverride is false or not called
}
}
//========================================================================
}//===============//end of tripleOverride()===============

//---------------//start of conveyorCleaning()---------------
void conveyorCleaning(){
//------------------------------------------------------------------------
//check if conveyor cleaning is called
bool currentConveyorCleaning_state=conveyorCleaning_state;
static bool previousConveyorCleaning_state=false;

if(currentConveyorCleaning_state!=previousConveyorCleaning_state){

82
//change previous state with new current state
previousConveyorCleaning_state=currentConveyorCleaning_state;

if(currentConveyorCleaning_state){
tempCheck_state=false; //deactivate tempCheck() function

//do stepperRun()
stepperMove_Time=60000;
stepperState=true; //activate stepperRun() function
stepper_Millis=millis();

String notif = "Conveyor Cleaning Started\n";


bot.sendMessage(chatid_user,notif, "");
}

else{
//do nothing if else a.k.a the conveyor Cleaning is false or not called
}
}
//========================================================================
}//===============//end of conveyorCleaning()===============

//---------------//start of pourSingleFeed()---------------
//this function will do pourOnce() function once
void pourSingleFeed(){
if(pourSingleFeed_state==true){
if(counterSingle<1){
if((millis()-counterSingle_Millis)>=pourDelaySingle){
counterSingle_Millis=millis();
pourOnce_State=true;
pourOnce_Millis=millis();
counterSingle++;
}
}
if(counterSingle==1){
counterSingle=0;
pourSingleFeed_state=false;
}
if (counterSingle==1){
pourDelaySingle=20000; //wait 20 seconds before spoon1 down
spoon1.write(spoon1up);
spoon2.write(spoon2down);
}
if (counterSingle==0){
spoon1.write(spoon1up);
spoon2.write(spoon2down);
}
}//end if pourSingleFeed_state check
}//end pourSingleFeed()
//===============//end of pourSingleFeed()===============

//---------------//start of pourDoubleFeed()---------------
//this function will do pourOnce() function twice
void pourDoubleFeed(){
if(pourDoubleFeed_state==true){
if(counterDouble<2){
if((millis()-counterDouble_Millis)>=pourDelay){
counterDouble_Millis=millis();
pourOnce_State=true;
pourOnce_Millis=millis();
counterDouble++;
}
}
if(counterDouble==2){
counterDouble=0;

83
pourDoubleFeed_state=false;
}
if (counterDouble==1){
pourDelay=20000; //wait 20 seconds before spoon1 down
spoon1.write(spoon1down);
spoon2.write(spoon2up);
}
if (counterDouble==0){
spoon1.write(spoon1down);
spoon2.write(spoon2down);
}
}//end if pourDoubleFeed_state check
}//end pourDoubleFeed()
//===============//end of pourDoubleFeed()===============

84

Anda mungkin juga menyukai