Senin, 29 Februari 2016

Program kunci pintu

PENGUNCI PINTU (DOOR LOCK) BERPASSWORD MENGGUNAKAN KEYPAD DAN LCD DENGAN CODEVISION AVR

Mungkin teman-teman semua sudah tahu tentang aplikasi yang bernama pengunci pintu (door lock) berpassword, pada aplikasi ini sudah saya realisasikan pada hardware yang sesungguhnya dan berhasil. Tetapi ketika saya simulasikan tidak berjalan dengan baik, saya tidak tahu kenapa. Tapi itu tidak masalah yang penting sudah saya coba pada hardware yang sesungguhnya dan berhasil.
Motivasi pembuatan aplikasi ini adalah awalnya saya sedang browsing dengan mengunjungi salah satu forum mikrokontroler yang ada di Indonesia, disitu ada yang bertanya tentang penyimpanan input yang berasal dari keypad kedalam satu variabel, tetapi tidak ada yang menanggapinya bahkan memberikan saran pun tidak. Entah karena budaya tidak mau berbagi ilmu atau entah kenapa, saya kurang mengerti. Maka dari itu saya mencoba membuat aplikasi ini.
Kesulitan utama dari aplikasi ini adalah ketika seorang user memasukkan password dengan menggunakan keypad, kita harus dapat menyimpan input yang berasal dari keypad kedalam satu variabel. Misalnya user menekan 6, lalu 2, lalu 0 dan 4 berarti passwornya adalah 6204 (misalkan). Nilai tersebut harus dijadikan dalam 1 variabel yang kemudian akan dibandingkan dengan password yang sebenarnya. Jika user memasukkan password dengan benar maka akan membuka kunci, jika salah maka kunci tidak akan terbuka.
Untuk mengatasi masalah tersebut saya menggunakan array untuk mendeteksi berapa kali penekanan keypad dan angka berapa yang akan ditekan. Baiklah disini saya akan menjelaskan algoritma yang saya buat. Jika user menekan 6, lalu 2 lalu 0 dan 4 maka seperti ini logikanya:
Awalnya saya deklarasikan array sebagai berikut:
array[10], i=0;
saat terjadi penekanan angka 6 maka;
i++ (saya increamentkan) jadi i=1
kemudian angka 6 saya simpan pada variabel array[i] jadi array[1]=6
kemudian saat terjadi penekanan angka 2, maka:
i++ (saya increamentkan lagi) jadi i=2
kemudian angka 2 saya simpan pada variabel array[i] jadi array[2]=2
kemudian saat terjadi penekanan angka 0, maka:
i++ (saya increamentkan lagi) jadi i=3
kemudian angka 0 saya simpan pada variabel array[i] jadi array[3]=0
kemudian saat terjadi penekanan angka 4, maka:
i++ (saya increamentkan lagi) jadi i=4
kemudian angka 4 saya simpan pada variabel array[i] jadi array[4]=4
maka didapat array[1]=6, array[2]=2, array[3]=0, array[4]=4
kalo sudah didapat seperti diatas maka kita tinggal kumpulkan dalam satu variabel (nama variabelnya misalkan nilai) caranya:
saat i bernilai 1, i=1 kita hitung dengan rumus:
nilai=array[1]  //jadi nilai=6
saat i bernilai 2, i=2 kita hitung dengan rumus:
nilai=(array[1]*10)+array[2]  //jadi nilai=62
saat i bernilai 3, i=3 kita hitung dengan rumus:
nilai=(array[1]*100)+(array[2]*10)+array[3]  //jadi nilai=620
saat i bernilai 4, i=4 kita hitung dengan rumus:
nilai=(array[1]*1000)+(array[2]*100)+(array[3]*10)+array[4]  //jadi nilai=6204
sudah mengerti bukan, dari rumus-rumus diatas masih dapat disederhanakan, menjadi:
jika i=1
nilai=array[i]
jika i bernilai  if (i>=2 dan i<=8)
nilai=(nilai*10)+array[i]
Banyaknya penekanan tombol saya batasi sampai 8 kali. Sebenarnya saya ingin membuatnya sampai 10 kali tetapi saat saya coba tidak berjalan dengan lancar saat penekanan ke 9 kali. Saya tidak tahu kenapa? Jika teman-teman bisa memecahkannya tolong beri tahu saya!
Baiklah kembali lagi ke aplikasi yang akan kita buat. Langsung saja ke cara kerjanya, gambar rangkaiannya bisa anda lihat dibawah ini. Saat pertama kali alat ini saya nyalakan maka dalam keadaan tidak terkunci (unlock), untuk menguncinya (lock) anda harus menekan tombol = (lihat gambar keypad dibawah). Setelah terkunci, jika anda ingin membukanya kembali anda harus memasukkan passwordnya (jika sudah mengetikan password tekan tombol + untuk memasukkannya). Jika benar maka akan membuka kunci, tetapi jika salah kunci tidak akan terbuka. Ketika sudah terbuka maka cara kerjanya kembali lagi ke awal. Sedangkan tombol ON/C saya gunakan untuk menghapus password jika salah dalam pengetikannya. Untuk indikator kuncinya saya menggunakan sebuah LED, jika LED menyala maka dalam keadaan tidak terkunci dan jika mati dalam keadaan terkunci.

Berikut adalah listing program lengkapnya:
#include <mega16.h>
#include <delay.h>
#include <stdlib.h>
#include <stdio.h>
float nilai=0, password=12345678;
char temp[12], array[10], i=0, indeks=0;
//variabel indeks digunakan untuk mendeteksi jika indeks=0 unlock, indeks=1 lock
// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
void lock()
{
 while (indeks==0)
      {
      lcd_gotoxy(0,0);
      lcd_putsf(“Please press =”); 
      lcd_gotoxy(0,1);
      lcd_putsf(“to lock”);
      PORTB = 0b11111011;
      delay_ms(30);
      if (PINB.7 == 0)
       {
        indeks=1;
        PORTD.0=1;//terkunci
        lcd_clear();   
        lcd_gotoxy(0,0);
        lcd_putsf(“locked”);
        delay_ms(1000);
        lcd_clear();
        }
      }
}
void enter()
{
if (nilai==password)
   {
   lcd_clear();
   lcd_gotoxy(0,0);
   lcd_putsf(“unlocked”);
   delay_ms(1000);
   i=0; nilai=0;
   PORTD.0=0;//kunci terbuka
   indeks=0;  
   }                       
else 
   {
   lcd_clear();
   lcd_gotoxy(0,0);
   lcd_putsf(“wrong password”);
   delay_ms(2500);
   i=0; nilai=0;
   indeks=1;//karena password salah jadi masih terkunci
   }
}
void simpan_dlm_1variabel()
{
       if (i==1){nilai=array[i];}
       if (i>=2 && i<=8)
           {
           nilai=(nilai*10)+array[i];
           }   
}
void scanning_keypad()//scanning pendeteksian penekanan keypad
{
lcd_gotoxy(0,0);
lcd_putsf(“enter u’r pass”);
PORTB = 0b11111110;
delay_ms(30);
if (PINB.4 == 0) {i++; array[i]=1; simpan_dlm_1variabel(); delay_ms(300);}
if (PINB.5 == 0) {i++; array[i]=4; simpan_dlm_1variabel(); delay_ms(300);}
if (PINB.6 == 0) {i++; array[i]=7; simpan_dlm_1variabel(); delay_ms(300);}
if (PINB.7 == 0) {lcd_clear();i=0;nilai=0;delay_ms(300);}
PORTB = 0b11111101;
delay_ms(30);
if (PINB.4 == 0) {i++; array[i]=2; simpan_dlm_1variabel(); delay_ms(300);}
if (PINB.5 == 0) {i++; array[i]=5; simpan_dlm_1variabel(); delay_ms(300);}
if (PINB.6 == 0) {i++; array[i]=8; simpan_dlm_1variabel(); delay_ms(300);}
if (PINB.7 == 0) {i++; array[i]=0; simpan_dlm_1variabel(); delay_ms(300);}
PORTB = 0b11111011;
delay_ms(30);
if (PINB.4 == 0) {i++; array[i]=3; simpan_dlm_1variabel(); delay_ms(300);}
if (PINB.5 == 0) {i++; array[i]=6; simpan_dlm_1variabel(); delay_ms(300);}
if (PINB.6 == 0) {i++; array[i]=9; simpan_dlm_1variabel(); delay_ms(300);}
if (PINB.7 == 0) {delay_ms(300);}
PORTB = 0b11110111;
delay_ms(30);
if (PINB.4 == 0) {delay_ms(300);}
if (PINB.5 == 0) {delay_ms(300);}
if (PINB.6 == 0) {delay_ms(300);}
if (PINB.7 == 0) {enter();delay_ms(300);}
}
void tampil_lcd()
{
if (nilai>0)
    {
        ftoa(nilai,0,temp);
        lcd_gotoxy(0,1);
        lcd_puts(temp);
    }
}
void main(void)
{
PORTB=0xff;
DDRB=0x0f;
PORTD=0x00;//PD0 belogika low atau dlm keadaan unlock awalnya
DDRD=0x01;//PD0 sebagai output
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// LCD module initialization
lcd_init(16);
lcd_putsf(“ElectrO-cOntrOl”);
delay_ms(1500);
lcd_clear();
while (1)
      {
      lock(); 
      scanning_keypad();
      tampil_lcd();         
      };
}
Jika ingin mendapatkan program dalam bentuk file CodeVision AVR dan file simulasi menggunakan proteus untuk aplikasi ini, silakan download pada link dibawah ini.
CATATAN: saat memasukkan password disarankan tidak diawali dengan angka 0, untuk lebih jelasnya lihat perhitungan untuk menjadikannya dalam satu variabel.
Semoga bermanfaat bagi banyak orang, khususnya yang membutuhkan.

scrip backup windows

Backup data di server? gampang kok…


0
Sekilas kalo kita denger kata server pokoknya serba sulit. Tapi kalo udah ngebaca yang ini pasti dah tahu gampangnya gimana. Jangan tersungging kalo dah pada tahu… ini cuman segelintir cara ngebackup file di server.
Dari pada yg tiap harinya ngerjain hal-ihwal tentang ngebackup data aja mulu ato teruuus aja berkutat di di server milih2 data yang untuk dibackup. Mending ngerjain yg laen dan lebih bermanfaat.
Okeh.. kayak gini caranye…!
Kalo mau backup database access atau file penting diserver sebenernya kayak perintah copy biasa, cuman perintah copy ini dibuat schedulenya di schedular windows. Itu aja. Cara ngebuat file script bat-nya itu gampang bgt, buka notepad trus isi scriptnya dengan perintah batch programming trus lo save dengan extension *.bat. Contoh script copy biasa misalnya :
cp [path database/file yg ingin dibackup] [tujuan path dimana diletakkan]
cp d:\DATA\secret.mdb d:\backup\DATA
Contoh atas itu artinya adalah database .mdb access yang namanya secret.mdb itu dicopy di folder d:\backup\DATA, ngerti kan? Trus kalo yang di backup itu banyak dan didalemnya ada sub folder lagi, sintaknya beda lagi yaa.
xcopy [path database/file yg ingin dibackup] [tujuan path dimana diletakkan] /E /Y(setahu gw /Y itu kalo udah ada filenya trus di replace yg baru dgn jawaban yes)

xcopy d:\DATA d:\backup\DATA /E /Y atauxcopy d:\DATA \\backupsvr\DATA /E /Y atau
xcopy \\
FileSvr1 \DATA d:\backup\DATA /E /Y atau
xcopy \\FileSvr1 \DATA \\backupsvr\DATA /E /Y
atau nama FileSvr1 dan backupsvr bisa diganti dengan IP address misalnya:
xcopy \\192.168.0.1\DATA \\192.168.0.5\DATABACKUP /E /Y
Bisa lo coba dulu di komputer lo, trus kalo dah sukses baru lo pake di server. Setelah dah dibuat file scriptnya yang ber extensi *.bat maka bisa dibuat schedule timenya dgn cara:
  1. masuk di control panel, cari yang namanya Scheduled Tasks
  2. trus klik Add Scheduled Tasks
  3. klik next
  4. klik browse untuk cari file scriptnya yang dah dibuat tadi, trus klik next
  5. pilih daily, klik next (ini terserah mau dibackup berapa saat sekali, bisa tiap hari, tiap bulan atau tahun. TERSERAhhhh. Tapi yang langkah dibawah itu daily yak!!!! Biar aman.)
  6. trus jam berapa?, mulai tgl berapa?, mau setiap hari, Tiap hari masuk atau selang berapa hari sekali? Trus klik next
  7. masukin password adminnya, inget kalo password diganti. Maka lo harus buat ulang schedule timenya yak. Misalnya lo kemaren dah buat schedule task, trus karena suatu hal password admiin OS lo ganti, otomatis schedule yang lo buat gak bisa jalan karena passwordnya dah gak cocok, jadi harus diganti OK.
  8. trus ya udah kalo mau liat apa yg dibuat centang, kalo ga ya klik finish aja.
Selamat mencoba bro.

Minggu, 28 Februari 2016

Multimedia Streaming dg vortebox

Ada dua pilihan instalasi pada saat boot, satu untuk menginstal sistem operasi di hard disk drive dan yang kedua untuk menyebarkan itu ke USB flash drive atau perangkat penyimpanan portabel lainnya.
Proses instalasi berbasis teks saja, tetapi sepenuhnya otomatis. Pada awalnya, ia akan mendownload beberapa GB paket, sebuah proses yang akan memakan waktu, tergantung pada kecepatan internet Anda. Setelah itu, ia akan memulai proses utama, mengkonfigurasi koneksi jaringan, mengatur zona waktu, dan partisi drive.
Langkah ketiga dalam proses instalasi untuk menginstal semua paket, yang akan menjadi sekitar 300-400 ratusan pada instalasi minimal (2GB - pilihan kedua pada prompt boot) .Features di fitur glanceKey mencakup kemampuan untuk rip Audio- CD ke format digital, seperti MP3, Ogg Vorbis atau FLAC, secara otomatis menandai file dikonversi menggunakan CDDB (Compact Disc Database) layanan, dan secara otomatis men-download album artwork.
Selain itu, memungkinkan pengguna untuk berbagi dan streaming file ke Windows atau komputer Mac OS X melalui protokol Samba, serta perangkat compliant DLNA lain, termasuk Xbox 360, PlayStation 3, Sonos, dan Apple TV.Bottom lineSumming up, VortexBox adalah proyek yang menarik yang akan mengubah setiap mesin menjadi NAS khusus (storage jaringan-terlampir), jukebox atau Audio-CD sistem ripper dalam waktu kurang dari 20 menit.
Apa yang baru dalam rilis ini:
  • Squeezebox Server 7.8.0 rilis terbaru dari Squeeze Komunitas
  • Fedora 20 dengan dukungan hardware yang lebih baik untuk DAC baru, motherboard, dll
  • Squeezelite sebagai pemain built-in
  • Dukungan penuh DSD - bermain DSD langsung ke DSD mampu DAC atau transcode ke PCM in-line untuk DAC DSD non
  • Backup dan restore sekarang melakukan pengaturan LMS juga
  • Jaringan berbasis menginstal sehingga Anda dapat menginstal dari USB key
  • Terbaru PlexMedia Server untuk melayani file ke TV dan perangkat video
  • Squeezebox Server Google Music plug-in prebuilt untuk VortexBox
  • Squeezebox Server Shairport (Airplay) plug-in prebuilt untuk VortexBox
Apa yang baru di versi 2.1:
  • Sudah lama sejak kami memiliki sebuah rilis. Rilis ini adalah roll-up dari banyak fitur dan perbaikan kami telah bekerja sejak rilis terakhir. Sudah lebih dari 6 bulan sejak 2.0 dirilis sehingga ada banyak fitur baru dan perbaikan di versi ini. Rilis ini meliputi Logitech Media Server 7.7.2. Backup sekarang mendukung lebih dari 2.2TB drive. Ini bagus untuk 3TB + VortexBoxes. Kami memiliki Fedora kernel terbaru dengan upgrade drive audio. ALSA baru drive-sekarang memiliki dukungan yang lebih baik untuk perangkat audio USB. Kami sekarang menggunakan ALBUMARTIST bukan tag BAND di FLAC untuk mp3 mirroring.
  • Kami memiliki dukungan eksperimental untuk beberapa fitur terdepan. VortexBox Pemain sekarang memiliki dukungan DSD. Anda dapat memainkan DSD Anda robekan langsung. Kami sekarang mendukung perangkat audio Bluetooth melalui VortexBox Player. Blu-Ray ripping bekerja dengan baik tetapi
  • masih belum 100%.
  • Kami menambahkan Plex Media Server untuk aplikasi yang tersedia untuk instalasi. Bagi Anda yang belum melihat Plex, itu adalah cara yang bagus untuk melihat film Anda pada banyak perangkat yang berbeda.
Apa yang baru di versi 2.0:
  • Dengan rilis terbaru dari Fedora 16 sudah waktunya untuk merilis Versi baru dari VortexBox berdasarkan itu. VortexBox 2.0 didasarkan pada Fedora 16 dan juga termasuk baru Logitech Media Server 7.7.0. Kami telah menambahkan beberapa perbaikan lainnya dan update juga termasuk versi baru dari MPD dan kami
  • dibangun pada Server DLNA.
Apa yang baru di versi 1.9:
versi
  • Rilis ini menambahkan update banyak paket yang yang membuat VortexBox bekerja dengan baik. Versi ini mencakup kernel baru untuk dukungan hardware yang lebih baik. DVD ripping paket juga telah ditingkatkan dan tentu saja kami menambahkan versi terbaru dari Squeezebox Server (7.5.4).
  • The DAAP Server telah diperbarui untuk mendukung AppleTV dan sekarang Anda dapat melakukan streaming musik langsung dari VortexBox Anda ke Apple TV Anda, termasuk cover art. VortexBox bahkan dapat mengalirkan koleksi FLAC ke AppleTV meskipun AppleTV tidak mendukung FLAC.
Apa yang baru dalam versi 1.8:.
  • VortexBox sekarang mengidentifikasi DVD dan nama itu sesuai
  • VortexBox juga dapat membuat mp4 cermin DVD dengan file xml Windows Media Center.
  • Ini karya besar untuk melihat film pada Windows Media Center.
  • Sekarang Anda dapat memilih jangka DVD lagu mana yang ingin robek.
  • Ini bagus untuk acara TV DVD di mana Anda ingin merobek semua trek yang lebih besar maka panjang tertentu.
  • Kami juga menambahkan versi terbaru dari Squeezebox Server (7.5.3) dan sekelompok perbaikan dan upgrade lainnya.
Apa yang baru di versi 1.7:
  • VortexBox dapat CD atau DVD sekarang autodetect dan merobek sesuai. Yang perlu Anda lakukan adalah memasukkan DVD film ke VortexBox dan akan otomatis robek ke format MKV. Ini bagus untuk semua pemain baru media seperti Logitech Revue, Boxee Box, Windows Media Center, dan XBMC.
  • Kami juga menambahkan versi terbaru dari Squeezebox Server (7.4.2) dan sekelompok perbaikan dan upgrade lainnya. VortexBox kini tidak hanya cara termudah untuk mendapatkan CD untuk pemain Anda, tetapi cara termudah untuk mendapatkan DVD di sana juga.
Apa yang baru di versi 1.6:
  • Rilis ini memiliki Fedora 14, 4K dukungan driver sektor, dan
  • dukungan untuk USB 2 dan 192/24 DAC USB.
Apa yang baru di versi 1.5:
  • Kami sangat senang mengumumkan rilis VortexBox 1.5. Seperti biasa tujuan kami untuk membuat pekerjaan VortexBox dengan media player. Rilis terbaru dari iTunes 10 tidak bekerja bekerja dengan server VortexBox DAAP tua. Kami mengambil kesempatan ini untuk menggantikan server DAAP di VortexBox dengan yang lebih baik. Server DAAP baru tidak hanya bekerja dengan iTuens 10 tetapi bisa file FLAC server untuk iTunes dengan pengkodean sebagai file WAV inline. Hal ini mengurangi kebutuhan untuk menjaga cermin dari file musik dalam format mp3.
  • Kami juga memperbarui server squeezebox terbaru dan menambahkan panel kontrol untuk mengontrol layanan di VortexBox. Terima kasih kepada semua orang yang membantu dengan fitur dan perbaikan bug untuk rilis ini.
Apa yang baru di versi 1.4:
  • Kami sangat senang mengumumkan rilis VortexBox 1.4. Melanjutkan dengan tujuan kami untuk membuat VortexBox server universal untuk setiap media player kami telah menambahkan dukungan DLNA penuh untuk VortexBox. DLNA adalah masa depan media sharing dan banyak pemain seperti PS3, Windows 7 Media Player, dan Samsung televisi dukungan DLNA. Sekarang Anda dapat dengan mudah melayani file musik dan video Anda ke semua perangkat tersebut.
  • Kami juga menambahkan Bliss ke web GUI VortexBox. Bliss dapat menemukan cover art bahkan untuk album yang paling jelas.
  • Seperti biasa ada juga mungkin perbaikan lainnya dan update yang diminta oleh masyarakat VortexBox