Jumat, 22 April 2016

Bermain dengan Arduino (Chapter 2.2)

Haaiii.. post saya kali ini akan melanjutkan tugas dua kemarin tentang percobaan dengan esp6288. Percobaan pertama kemarin memang gagal, namun percobaan selanjutnya ternyata berhasil yeaayyy. Salah satu alasan kenapa gagal adalah kami tidak men-set Both NL & NR atau kecepatan komunikasinya. Setelah di set dan mengikuti langkah-langkah pada referensi, ternyata esp6288 berjalan dengan baik, hehe..

Karena tidak melakukan perintah apapun, jadi code yag dimasukkan ke arduino kosong.








Referensi :

http://www.boarduino.web.id/2015/08/konfigurasi-esp8266-sebagai-client-dan.html

Progres Proyek Pet Feeder 2.0 (Chapter 3)

Halo *lagi* semuanyaaa..
Progres yang kelompok kami lakukan selanjutnya adalah membuat web interaction dan databasenya.
Nah, berikut saya tampilkan gambar-gambar dari progress yang telah kami buat.
Database

Database catfeeder dengan 2 tabel, pengguna dan jadwal

Home Web

Tampilan depan web interaction

Form pendaftaran

Form pendaftaran untuk masuk ke dalam sistem Cat Feeder

Pendaftaran berhasil



Database bertambah

Database pengguna bertambah

Terima Kasih :D


Link Source Code Web Sistem Cat Feeder :

Referensi :

Progres Proyek Pet Feeder 2.0 (Chapter 2)

Holaa.. Dalam tulisan ini saya akan memaparkan progres proyek kami yang bernama Pet Feeder 2.0.
Jadi sebelumnya kami sudah bisa menggerakkan 2 motor servo secara bersamaan, dan menjalankan RTC. Nah pada percobaan selanjutnya, kami berhasil menjalankan motor servo dengan menggunakan RTC.

Awalnya kami mencoba setting timer pada RTC. Ketika waktu sekarang (pada laptop) sesuai dengan waktu yang kami set, maka layar monitor akan menunjukkan bahwa setting timer yang kami jalankan sedang berlangsung. Nah, setelah itu kami mencoba menggabungkan kode motor servo ke dalam kode setting timer tersebut. Hasilnya motor servo mampu bergerak sesuai waktu yang telah ditentukan. Kemudian kami ubah arah putaran motor servo sesuai kebutuhan. Namun, motor servo yang berhasil digerakkan baru 1 buah, seharusnya RTC mampu menggerakkan 2 buah motor servo.

Rangkaian RTC-Arduino

Rangkaian MOtor Servo-Arduino

Code RTC-Servo

Hasil timer pada serial monitor

Hasil timer-motor servo pada serial monitor

Tugas selanjutnya yang harus dilakukan adalah mengirim data menggunakan ESP ke website yang selanjutnya harus dapat dibaca RTC untuk menjalankan kedua motor servo.

Tambahan :

Tampilan alat cat feeder 2.0


Terima Kasih :D

Berkirim Data dengan ESP8266 (Chapter 2)

Halo semuaaa.. Sepertinya saya memang sudah lama tidak menulis progress di blog ini, maafkaaann :(:( Kalo begitu langsung saja dalam tulisan ini saya akan mengulas tentang ESP8266 beserta ketidakberhasilan dan sedikit pencerahan yang kami temukan.

Percobaan-percobaan sebelumnya telah diketahui bahwa kami belum berhasil menggunakan ESP ini untuk mengirim pesan. Nah, ketika masing-masing kelompok diminta menceritakan progress yang mereka jalani di dalam kelas, ada kelompok yang progress-nya lebih baik dari kami yaitu kelompok Andra dkk. Dari sana, kami mencoba mengikuti langkah-langkah kelompok tersebut untuk mengetahui apa perbedaan yang kami lakukan sehingga hasilnya bisa berbeda.

Setelah ditelaah, ternyata ada 2 kesalahan yang kami lakukan. Pertama, alokasi byte untuk mengirim data harus sesuai dengan panjang data yang dikirimkan pada “AT+CIPSEND=<data-length>”. Awalnya kami mengira alokasi byte tersebut tidak akan menjadi masalah jika melebihi panjang data asalkan tidak kurang dari panjang yang seharusnya. Ternyata, jika alokasi lebih panjang, IDE akan terus menunggu sisa data command yang masuk sehingga membuatnya “busy”. Kedua, alokasi byte tersebut termasuk memasukkan “\r\n” untuk megirim command dan membuat baris baru sepanjang 4 byte dengan mengetikkan 2 kali enter setelah syntax request “GET \TES_ESP.php?temperature=20HTTP\1.0\”. Syntax ini digunakan untuk meminta keluaran dari file php dengan masukan temperature = 20. Ketika kita menuliskan syntax tersebut sebagai kode program, “\r\n” ditulis dibelakangnya, sehingga ketika “\r\n” tidak ditulis, arduino akan terus menunggunya. Sebelumnya hasil yang kami terima adalah 408 atau request timeout yang menandakan bahwa arduino terlalu lama menunggu waktu respon dari server.

Nah setelah itu, kami lakukan percobaan ulang dengan kode yang sudah diperbaiki hasilnya voila… kata yang selama ini kami nantikan akhirnya muncul juga, “Send OK” pun ada di depan mata. Meski masih manual, belum pada kodingannya, sudah lumayan memberi sedikit kelegaan. Tapi kami juga tahu bahwa perjalanan masih harus dilanjutkan hehe..

Okee berikut langkah-langkah mengirim data menggunakan ESP8266 yang kami lakukan.
1. Pasang rangkaian ESP8266 dan arduino.


2. Lakukan koneksi ke access point (kami menggunakan connectify pada laptop).















3. Aktifkan web server menggunakan apache pada xampp.



4. Buat file .php

file .php (TES_ESP.php) ini digunakan untuk membuat file external bernama myFile.txt
yang akan menerima data dari serial monitor


5. Upload kode kosong ke arduino kemudian buka serial monitor.
6. Ketik AT+CWLAP untuk melihat daftar access point.
7. Ketik AT+CWJAP=”<nama access point>”,”<password>” untuk berkoneksi dengan access point.
8. Ketik AT+CIPSTART=”<socket connection>”,”<IP address>”,<port web server>.
9. Ketik AT+CIPSEND=<data-length> untuk alokasi byte syntax request.
10. Tunggu respon dari server. (400 = bad request, 408 = request timeout, 200 OK = server menerima request)
Menggunakan byte counter untuk menghitung jumlah byte yang diperlukan dalam alokasi byte

Tampilan serial monitor ketika mengetikkan AT command

Hasilnya, file.txt terbuat dan berisi data yang dikirimkan

Terima Kasih :D

Kamis, 14 April 2016

Progres Proyek Pet Feeder 2.0

Halo semuaa, saya kembali hadir untuk menceritakan progres pembuatan proyek IMKA kelompok kami yaitu Pet Feeder 2.0.

Sebelumnya kami telah melakukan percobaan untuk mengirim data menggunakan ESP ke web server yang nantinya berguna dalam pembuatan proyek akhir Pet Feeder 2.0 untuk mengirim data jadwal makan pehewan peliharaan oleh pengguna ke web server. Namun, setelah tiga kali melakukan percobaan dalam 3 hari, hasilnya nihil, web server belum dapat menerima data melalui ESP. Progres yang kami capai hanya sampai status send ok, jawaban yang diterima masih dalam status 408. Kami juga telah mencoba menggunakan ethernet (dipinjami asisten), hasilnya sama, kami tidak berhasil mendapatkan IP dari ethernet tersebut. Oleh karena itu, kami memutuskan untuk rehat sejenak dalam bermain-main dengan ESP.

Status send ok
Status 408

Move On
Pada percobaan yang terakhir dilakukan, kami mulai membeli bahan-bahan yang diperlukan untuk membangun alat ini. Bahan-bahan tersebut adalah
1.     infraboard
2.     botol air mineral
3.     lakban
4.     klem
5.     duplex
6.     cup mie instan
7.     gunting
8.     cutter
Setelah semua bahan terkumpul kami mulai melakukan poin-poin kerja dalam to do list kami.

To do list percobaan
Seperti terlihat pada gambar, kami mencoba semua komponen yang dibutuhkan secara mandiri (satu-satu) untuk mengecek kinerjanya. Motor servo berhasil bergerak baik sendiri maupun bersamaan (kami menggunakan 2 servo), LDR berhasil mendeteksi cahaya, RTC berhasil menampilkan date dan time yang diinputkan secara manual pada code-nya. Berikut tampilan rangkaian RTC dan hasilnya pada monitor, serta rangkaian motor servo, dan pembacaan sensor cahaya.


Sampai di situ, alhamdulillah semua berhasil. Nah, setelah kita lanjut dengan menggabungkan RTC dan motor servo, kendala mulai muncul. Motor servo mampu bergerak hanya berdasarkan delay yang di-set secara manual pada RTC. Namun, kami belum bisa mengatur RTC untuk menggerakkan motor servo secara otomatis pada waktu yang ditentukan. Setelah beberapa jam, akhirnya kami memutuskan untuk merangkai dulu bahan-bahan yang ada dan komponen yang dapat dijalankan. Hasilnya sama dengan proyek tahun kemarin hanya ada sedikit modifikasi. Pada percobaan selanjutnya kami mungkin akan mencoba RTC + motor servo lagi dan tidak lupa mengutak-atik ESP untuk kesekian kalinya...hehe

Terima Kasih ^^

Kamis, 24 Maret 2016

Berkirim Data dengan ESP8266

Hai… seperti biasa saya hadir untuk menulis progress proyek arduino untuk mata kuliah Interaksi Manusia dan Komputer. Tugas kali ini adalah mengirim data menggunakan ESP8266. Kelompok kami memutuskan untuk mencoba membuat proyek monitoring suhu melalui internet. Menurut kelompok kami, proyek ini sederhana karena hanya menggunakan sensor suhu yang sebelumnya sudah pernah dipakai. Rencananya pembacaan suhu dari LM35 akan ditampilkan dalam bentuk grafik pada web memanfaatkan esp8266 sebagai media berkirim data.

Komponen

Komponen-komponen yang kami gunakan adalah
  • Arduino Uno
  • ESP8266
  • LM35
  • Breadboard
  • Jumper

Rangkaian

Gambar rangkaian (diambil dari website boarduino pada referensi)


Hasil

Kami mendapat referensi dari website boarduino. Proyek pada website ini paling sederhana dibandingkan dari website lain. Awalnya kami membuat blog pada website thingspeak. Pada blog ini kami membuat channel terlebih dahulu yang nantinya akan menampilkan grafik dari data pembacaan suhu oleh LM35 melalui koneksi wi-fi dengan esp8266. Namun, setelah kami melakukan langkah-langkah sesuai pada referensi, hasilnya tidak terjadi apapun. Baik pada monitor maupun channel, suhu tidak dapat terbaca.

Kami sudah mengecek seluruh komponen mulai dari ragkaian yang sudah benar sesuai gambar, source code sudah disesuaikan (api key sudah diganti sesuai channel thingspeak), esp8266 sudah dikonfigurasi agar dapat digunakan, LM35 sudah diganti dua kali (takutnya LM35 nya rusak), wi-fi juga berfungsi. Namun tetap saja pada layar monitor yang seharusnya menampilkan list suhu (seperti proyek sebelumnya) tidak menampilkan apapun, begitu pula pada web. Setelah berjam-jam mencoba hasilnya tetap nihil.

Sekian progress dari kelompok kami. Terima Kasih. 


Referensi



Kamis, 17 Maret 2016

Ide Proyek IMKA

Tugas IMKA ini akhirnya mulai menuju ke titik inti, dimana kami harus menentukan topik atau ide untuk proyek akhir mata kuliah ini. Tentu saja masih menggunakan perangkat kesayangan kita bersama yaitu arduino uno, hanya saja kali ini mengintegrasikan lebih banyak komponen dan sedikit lebih kompleks dari biasanya.

Pemilihan Ide

Nah ketika brainstorming ide, ada 3 ide yang kami dapatkan yaitu Get Bus, Pet Feeder 2.0, Printer Braille. Ide Get Bus didapat dari proyek mata kuliah lain yang menurut kami juga dapat diimplementasikan ke dalam proyek IMKA ini menggunakan bantuan RFID. Sementara Pet Feeder 2.0 merupakan lanjutan proyek mata kuliah SisDigMik semester sebelumnya yang dibuat lebih kompleks. Dan yang terakhir, Printer Braille adalah ide salah satu anggota kami yang sudah cukup kompleks. Kemudian kami membuat feasibility matriks untuk menentukan ide mana yang paling efisien dan sedikit resiko. Berikut gambarnya.

Feasibility Matriks Get Bus, Pet Feeder 2.0, Printer Braille


Dari feasibility matriks, akhirnya kami menentukan bahwa ide proyek IMKA yang akan kami ambil adalah Pet Feeder 2.0. Yeay.


Pet Feeder 2.0

Latar Belakang

Ide Pet Feeder ini muncul dari pemelihara kucing yang khawatir dengan kucingnya ketika dia harus keluar rumah dalam waktu yang lama. Bagaimana kalau dia kelaparan? Siapa yang akan memberinya makan? Apa mungkin dia bisa mengambil makananannya sendiri? Tentu akan sulit bagi kucing melakukan pekerjaan manusia dalam menyiapkan makanan. Meskipun pemiliknya sudah menyiapkan makanan akan muncul kekhawatiran lain. Bagaimana jika kucingnya terlalu banyak makan atau makanannya malah tercecer.
Sebenarnya hewan pun memiliki pola makan sendiri yang harus diperhatikan oleh pemilik. Pola makan ini harus diatur secara teratur agar hewan peliharaan tidak jatuh sakit seperti layaknya manusia. Selain itu,  ada komposisi makanan yang harus terpenuhi agar kesehatannya terjaga. Hal-hal seperti dapat dilaksanakan selama pemiliknya ada di rumah untuk mengawasi hewan peliharannya. Namun terkadang ada aktivitas yang mengharuskan pemiliknya untuk meninggalkan hewan peliharaannya di dalam rumah.
Salah satu cara menangani kondisi ini adalah dengan automatisasi. Pemilik membutuhkan alat yang secara otomatis mampu mengatur pola makan hewan peliharaannya sekaligus menentukan takaran dan komposisi yang tepat dari makanan yang disajikan.

Deskripsi Proyek

Pet Feeder 2.0 akan membutuhkan database untuk menyimpan jadwal makan hewan dan jenis makanannya. Database tersebut akan disimpan di dalam web untuk memudahkan user dalam mengedit jadwal makan. Pemilik memasukkan informasi yang diinginkannya ke dalam database yang nantinya akan dibaca oleh arduino. Ada 2 tabung yang dipasang sebagai penampung makanan jenis 1 dan jenis 2. Dalam masing-masing tabung tersebut akan dipasangi pintu sebagai jalan keluarnya makanan ke wadah berikutnya. Wadah berikutnya merupakan wadah untuk menampung makanan yang dicampur (misal makanan yang mengandung protein dan vitamin hewan). Kemudian dari wadah tersebut ada pintu lagi sebagai keluarnya makanan ke takaran sebelum akhirnya keluar ke tempat makan hewan. Pada masing-masing pintu kan dipasang motor sebagai penggerak. Motor ini yang akan bergerak sesuai data yang disimpan dalam database untuk memastikan makanan siap disajikan pada waktu tertentu.

Berikut desain kasar proyek Pet Feeder 2.0

Desain proyek Pet Feeder 2.0


Kemampuan :
  1. Mampu mengatur jadwal makan hewan sesuai masukan dari user. Pemilik akan memasukkan waktu makan dan frekuensinya dalam sehari ke dalam database. Alat ini akan beroperasi sesuai database yang dibuat. Database ini akan disimpan di dalam web sehingga mudah diubah.
  2. Mampu mengkomposisikan jenis makanan hewan yang sesuai keinginan pemilik. Pemilik dapat menginputkan beberapa jenis makanan yang sesuai dengan hewan peliharaannya pada waktu tertentu.
  3.  Menentukan takaran umum (kuantitas) makanan dalam satu waktu atau sekali makan.
  4. Menyesuaikan kuantitas makanan dengan suhu saat itu.

Komponen (sementara) :
  • 2 tabung makanan
  • 1 wadah penampung
  • 3 motor
  • 1 toples
  • 1 Arduino
  • Kabel Jumper
  • 1 LED
  • 1 Buzzer
  • 1 Sensor Suhu
  • 1 Kamera (opsional)



 Flow Diagram :


Flow diagram secara garis besar proyek Pet Feeder 2.0

Input-Proses-Output :

Dari flow diagram, input ke dalam Pet Feeder 2.0 adalah (input) database dari user. Prosesnya adalah ketika arduino membaca kapan waktu yang tepat untuk membuka pintu makanan dan menentukan pintu mana yang harus terbuka saat itu. Kemudian pintu 3 akan menunggu beberapa detik sebelum terbuka untuk mengeluarkan makanan ke tempat makanan terakhir. Arduino juga akan menentukan lama waktu masing-masing pintu terbuka sebelum secara otomatis akan menutup ketika waktu habis. Sementara output dari proyek ini adalah makanan yang keluar sesuai spesifikasi dari user dalam database.




Semoga Proyek Pet Feeder 2.0 ini berhasil ya. Amin ^^

Terima Kasih.