Translate

Membuat Alat Kendali dengan Accelerometer Hand Phone Android

Membuat Alat Kendali Robot dengan Accelerometer Hand Phone Android


            Di malam hari menjelang pagi ini, saya akan menjelaskan mengenai bagaimana cara mengakses accelero pada HP android yang digunakan untuk kendali arah gerak robot, jadi menggunakan HP Android yang memiliki fitur accelerometer, data yang diambil dengan memiringkan HP ke arah utara, selatan, timur dan barat, sehingga didapat nilai yang akan dikirimkan ke Arduino dengan perantara bluetooth, memang perantara yang digunakan adalah bluetooth sehingga jarak yang bisa dioptimalkan tidak-lah jauh, seperti halnya sensor accelero, pada tampilan di HP akan tampak nilai X, Y dan Z, namun yang dikirimkan ke Arduino bukanlah X, Y maupun Z tapi penjumlahan dari ketiga nilai X, Y dan Z sehingga akan dihasilkan nilai yang berbeda tiap gerakannya. Untuk lebih jelasnya berikut skema dan Programnya.


a. Hand Phone Android




b. Arduino  UNO




c. Bluetooth HC-05



d. Motor Driver L293




e. Program Arduino

int kiri = 4;
int kiri2 = 5;
int kanan = 3;
int kanan2 = 2;

int accelero;

void setup() {
Serial.begin(9600);
Serial.setTimeout(5);
}

void loop() {
 
if (Serial.available() > 0)
{
  accelero = Serial.parseInt();
 if (accelero >= 1 && accelero <= 3)
 {
 //maju
 digitalWrite(kiri, HIGH);
 digitalWrite(kiri2, LOW);
 digitalWrite(kanan, HIGH);
 digitalWrite(kanan2, LOW);
 }

 if (accelero >= 11 && accelero <= 12)
{
 //mundur
 digitalWrite(kiri, LOW);
 digitalWrite(kiri2, HIGH);
 digitalWrite(kanan, LOW);
 digitalWrite(kanan2, HIGH);
}

 if (accelero >= 13 && accelero <= 20)
 {
 //kiri
 digitalWrite(kiri, HIGH);
 digitalWrite(kiri2, LOW);
 digitalWrite(kanan, LOW);
 digitalWrite(kanan2, LOW);
 }

 if (accelero >= 4 && accelero <= 6)
 {
 //kanan
 digitalWrite(kiri, LOW);
 digitalWrite(kiri2, LOW);
 digitalWrite(kanan, HIGH);
 digitalWrite(kanan2, LOW);
 }

  if (accelero >= 7 && accelero <= 10)
 {
 //stop
 digitalWrite(kiri, LOW);
 digitalWrite(kiri2, LOW);
 digitalWrite(kanan, LOW);
 digitalWrite(kanan2, LOW);
 }


}

}



f. Program Android







g. Cara Pasang

Bluetooth      Arduino
Rx                  Tx
Tx                   Rx
Vcc                 5v
Gnd                Gnd


Motor Driver    Arduino
Vss                     Vin
Vcc                     5v
1A                      Pin 3
2A                      Pin 2
3A                      pin 5
4A                      pin 4


            Langkah diatas adalah langkah yang digunakan untuk menghubungkan antara Arduino dan Hp Android, namun bagaimana jika Hp Android di hubungkan ke mikrokontroller menggunakan Bascom AVR ?, jawabnya sama saja, langkah dan alatnya sama saja, yang berbeda adalah programnya, berikut adalah program menggunakan Bascom AVR dan video hasilnya.




h. Program Bascom AVR

$regfile = "m16def.dat"
$crystal = 11059200

Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4
Config Lcdpin = Pin , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7
Config Lcd = 16 * 2

Dim Cek As String * 20
Dim Datas As String * 20
Dim Id As String * 20
Dim I As Integer
Dim X As Single


Cls
Cursor Off


Datas = ""
I = 0

Do
Cek = Inkey()

If Cek <> "" Then
Incr I
Datas = Datas + Cek
Id = Mid(datas , 4 , 7 )
X = Val(id)

End If

Loop Until I > 7

I = 0

Cls
Cursor Off

Locate 2 , 1
Lcd X

If X > 7 And X < 9 Then
Upperline
Lcd "Tengah"
End If

If X >= 3 And X <= 5 Then
Upperline
Lcd "ATAS"
End If

If X < 3 Then
Upperline
Lcd "KANAN"
End If

If X >= 10 And X < 13 Then
Upperline
Lcd "BAWAH"
End If

If X > 13 Then
Upperline
Lcd "KIRI"
End If
Wait 1




i. VIDEO HASILNYA









Mengakses sensor MPX5700AP (Air pressure sensor / tekanan udara)

Mengakses sensor MPX5700AP (Air pressure sensor / tekanan udara)


           Kali ini saya akan menjelaskan mengenai bagaimaa cara mengakses sensor MPX5700AP, seperti yang telah diketahui sebelumnya bahwa sensor ini adalah sensor yang digunakan untuk mengetahui tekanan udara dalam sebuah benda, baik itu di dalam botol, didalam ban, dan lainnya, sensor ini bisa mengukur dengan range 0 to 700 kPa (0 to 101.5 psi) - 15 to 700 kPa (2.18 to 101.5 psi), serta tegangan outputnya berada di range 0.2 to 4.7 volt. berikut penjelasan gambar dan detailnya.

Pin 1: Signal out (0.2 volts to 4.9 volts)
Pin 2: Ground
Pin 3: 5 Volts
Pin 4: No connection
Pin 5: No connection
Pin 6: No connection 

Features :
• Differential and Gauge Applications Available
• 1.4% Maximum Error Over 0° to 85°C
• Patented Silicon Shear Stress Strain Gauge
• Temperature Compensated Over –40° to +125°C
• Offers Reduction in Weight and Volume Compared to Existing Hybrid Modules
• Durable Epoxy Unibody Element



1. Minimum System 



2. Program Bascom AVR

$regfile = "m16def.dat"
$crystal = 12000000

Config Lcdpin = Pin , Rs = Portc.6 , E = Portc.7 , Db4 = Portc.2
Config Lcdpin = Pin , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd = 16 * 2


Ddrb.0 = 1

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Cursor Off
Cls

Dim Dataadc As Word
Dim V As Single
Dim X As String * 5

Start Adc

Do

Dataadc = Getadc(0)

V = Dataadc * 5
V = V / 1023

X = Fusing(v , "#.##")

Locate 1 , 1
Lcd "adc= " ; Dataadc

Locate 2 , 1
Lcd "V= " ; X

Loop




3. Cara Merubah Volt ke kPa dan Psi dan mmHg


   v =(float)(Dataadc*5.0)/1023.0      
   kpa = (float)((v / 5)-0.04)/0.0012858
   Psi = (float)(kpa * 0.145)
   mmhg = (float)(kpa * 7.5)





4. VIDEO HASILNYA







Mengakses Raspberry PI Serial Webserver

Mengakses Raspberry PI Serial Webserver



               Malam hari yang penuh inspirasi, kali ini saya akan menjelaskan mengenai bagaimana mengakses raspberry pi dengan komunikasi serial kemudian data serial tersebut ditampilkan ke web browser melalui localhost raspberry. jadi terdapat sebuah mikrokontroller yang akan mengirimkan nilai ke raspberry via UART / serial, data tersebut diambil oleh raspberry dan ditampilkan ke web localhost. Keuntungan dengan menggunakan webserver ini yaitu bisa diakses melalui wireless dan juga bisa diakses lebih dari satu client. Untuk masalah jarak kirim tergantung kualitas router yang digunakan sebagai access point, jika jarak pancar router bisa jauh, maka client juga bisa memantau data yang dikirim mikrokontroller secara jauh. berikut langkah2 untuk membuat raspberry webserver. 

1. Ikuti langkah untuk mengaktifkan fitur serial Raspberry berikut LINK

2. Kemudian buat file kosong di Desktop Raspberry dengan nama "foo.txt"

3. Ketik program Python berikut dan beri nama "web.py"


import serial

port = serial.Serial("/dev/ttyAMA0",baudrate=9600,timeout=1)

while True:
    try:
        str=port.readline()
        print(str)
        fo = open("/home/pi/Desktop/foo.txt", "rw+")
        line = fo.write(str)
        fo.close()
    except:
        pass


4. Setelah install dahulu Apache dengan cara berikut, ketikkan perintah berikut di terminal

sudo apt-get install apache2 -y

 5. Dengan cara yang sama, install juga php5 dengan perintah berikut

sudo apt-get install php5 libapache2-mod-php5 -y

atau

sudo apt-get install php5

6. Setelah selesai install, hapus file index.html di /var/www dengan perintah berikut

sudo rm index.html

7. Lalu ketikkan program index.php yang baru dengan cara berikut

 >>masuk ke folder www
cd /var/www/


>>buat file index.php
sudo nano index.php


8. ketikkan program php berikut di nano

<?php

$data = fopen("/home/pi/Desktop/foo.txt", "r") or die("Unable to open file!");

$a = fread($data,filesize("/home/pi/Desktop/foo.txt"));

fclose($a);

$page = $_SERVER['PHP_SELF'];

$sec = "1";

header("Refresh: $sec; url=$page");

?>

<html>

  <head>

    <title>Library Visiting Counter</title>

  </head>

  <body>

    <TABLE BORDER="1"   WIDTH="50%"   CELLPADDING="4" CELLSPACING="3">

   <TR>

          <TH COLSPAN="3" BGCOLOR = "CORNFLOWERBLUE"><BR><H3>Jumlah Pengunjung</H3>

          </TH>

   </TR>

   <TR>

          <TH>Masuk</TH>

          <TH>Keluar</TH>

    <TH>Total</TH>

   </TR>

   <TR ALIGN="CENTER">

    <TH><BR><H4><?php echo $a?></H4>

          <TH><BR><H4>Data 2</H4>

    <TH><BR><H4>Data 3</H4>

   </TR>

</TABLE>

  </body>

</html>


9. Setelah di simpan, kemudian konekkan RX dan TX MCU ke Raspi

10. Konekkan Raspi ke router dan lihat IP-nya dengan cara ketikkan"ifconfig" 

11. Run program Python dan buka web browser di alamat IP-nya, maka akan ada data yang tampil


12. VIDEO HASILNYA









Cara mengakses Bluetooth (Transfer data via Bluetooth) mikrokontroller

Cara mengakses Bluetooth (Transfer data via Bluetooth) mikrokontroller

          
                        Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara mengakses modul bluetooth JY-MCU HC-05 menggunakan mikrokontroller, alat yang akan dicontohkan adalah alat yang mengirimkan data ke komputer menggunakan bluetooth, jika ingin bermain dengan bluetooth, hal yang harus diperhatikan yaitu pairing, karena jika belum dipairing maka kedua device tidak dapat saling berkomunikasi, software yang digunakan pada contoh ini yaitu ivt bluesoleil 6.2.227.11,  untuk lebih jelasnya berikut adalah penjelasan skema dan programnya.

Software pairing bluetooth ( Bluesoleil )
LINK DOWNLOAD

Tutorial Pairing Bluetooth
 https://www.youtube.com/watch?v=FVIUOoE9GNo


 a. Minimum System




b. Bluetooth JY-MCU




c. Bluetooth USB




 d. Program Bascom AVR

$regfile = "m16def.dat"
$crystal = 11059200

Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2
Config Lcdpin = Pin , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd = 16 * 2

Ddrb.0 = 1

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Cursor Off
Cls

Dim Dataadc As Word
Dim V As Single
Dim X As String * 5

Start Adc

Do

Dataadc = Getadc(0)

V = Dataadc * 5
V = V / 1023

X = Fusing(v , "#.##")


Print V

Locate 1 , 1
Lcd "adc= " ; Dataadc

Locate 2 , 1
Lcd "V= " ; X

Wait 1

Loop




e. VIDEO HASILNYA









 

KOMUNIKASI SERIAL (UART) RASPBERRY PI (TERIMA DATA)

KOMUNIKASI SERIAL (UART) RASPBERRY PI (TERIMA DATA)


               Melanjutkan postingan sebelumnya yaitu tentang mengirim data, kali ini saya akan menjelaskan bagaimana cara agar Raspberry bisa menerima data melalui serial (UART), jadi terdapat sebuah mikrokontroller yang mengirim data berupa data ADC lalu di tangkap oleh Raspberry melalui port serial, ini sangat umum sekali digunakan untuk mengirim data ke Raspberry karena Raspberry tidak memiliki bagian ADC, jadi menggunakan ADC mikrokontroller yang dikirimkan ke Raspberry. berikut adalah beberapa langkah yang harus dilakukan.

0. pertama install dulu pySerial dengan mengetikkan "sudo apt-get install python-serial"

1. ketikkan "sudo nano /boot/cmdline.txt"

2. Rubah

"dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait"

menjadi

"dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait"

3. kemudian save dengan cara ctrl+X lalu ctrl+Y <enter>

4. setelah itu ketikkan "sudo nano /etc/inittab"

5. Rubah

"#Spawn a getty on Raspberry Pi serial line
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100"

menjadi

"#Spawn a getty on Raspberry Pi serial line
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100"

6. kemudian save dengan cara ctrl+X lalu ctrl+Y <enter>

7. pada tahap ini serial Raspberry siap digunakan tapi harus di Reboot dahulu

8. Ketikkan "sudo shutdown -r now", lalu hidupkan kembali Raspberry

9. Ketikkan program Python berikut, lalu save dengan nama "cobaterima.py"

import serial

port = serial.Serial("/dev/ttyAMA0", baudrate=9600, timeout=1.0)

while True:
       try:
             state=port.readline()
             print (state)
       except:
             pass

10. Program diatas untuk menerima data dari mikrokontroller

11. Hubungkan pin RX-TX-GND raspberry dengan RX-TX-GND mikrontroller

12. Lalu ketikkan Program Bascom berikut.

$regfile = "m16def.dat"
$crystal = 12000000
$baud = 9600

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Dim X As Word

Start Adc

Do
X = Getadc(0)
Print X
Wait 1
Loop

13. Jika berhasil maka pada layar akan tampak data yang dikirimkan oleh mikrokontroller

14. VIDEO HASILNYA








.

KOMUNIKASI SERIAL (UART) RASPBERRY PI (KIRIM DATA)

KOMUNIKASI SERIAL (UART) RASPBERRY PI (KIRIM DATA)


                 Di malam yang sejahtera ini saya akan menjelaskan mengenai bagaimana cara mengakses Raspberry serial (UART), memang komunikasi serial sangat sering sekali digunakan untuk berkomunikasi, baik itu antar device yang sama maupun device yang berbeda, untuk contoh kali ini saya akan menjelaskan mengenai bagaimana berkomunikasi antara Raspberry dengan mikrokontroller dengan menggunakan serial. ada beberapa cara yang harus dilakukan untuk bisa berhasil melakukan komunikasi, yaitu seperti berikut.

0. pertama install dulu pySerial dengan mengetikkan "sudo apt-get install python-serial"

1.  ketikkan "sudo nano /boot/cmdline.txt"

2. Rubah 
"dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait"

menjadi

"dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait"

3. kemudian save dengan cara ctrl+X lalu ctrl+Y <enter>

4. setelah itu ketikkan "sudo nano /etc/inittab"

5. Rubah 
"#Spawn a getty on Raspberry Pi serial line
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100"

menjadi
"#Spawn a getty on Raspberry Pi serial line
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100"

6. kemudian save dengan cara ctrl+X lalu ctrl+Y <enter>

7. pada tahap ini serial Raspberry siap digunakan tapi harus di Reboot dahulu

8. Ketikkan "sudo shutdown -r now", lalu hidupkan kembali Raspberry

9. Ketikkan program Python berikut, lalu save dengan nama "cobakirim.py"

import serial

port = serial.Serial("/dev/ttyAMA0", baudrate=9600, timeout=3.0)

while True:
        port.write("1")  


10. Program diatas untuk mengirimkan angka "1" ke mikrokontroller

11. Hubungkan pin RX-TX-GND raspberry dengan RX-TX-GND mikrontroller

12. Tulis Program bascom berikut

$regfile = "m16def.dat"
$crystal = 12000000
$baud = 9600

Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2
Config Lcdpin = Pin , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd = 16 * 2

Ddrb.0 = 1

Dim Perintah As String * 1

Cls
Cursor Off

Upperline
Lcd "COBA"
Wait 1

Do

Perintah = Waitkey()
Lowerline
Lcd Perintah

  Select Case Perintah

    Case "1" :
    Upperline
    Lcd "SENSOR ON"
    Portb.0 = 1

    Case "2" :
    Upperline
    Lcd "SENSOR OFF"
    Portb.0 = 0

  End Select
Loop

13. Jika berhasil maka akan ada tulisan angka "1" di LCD







Membuat Rangkaian ECG (Electrocardiography)

Membuat Rangkaian ECG (Electrocardiography)


            Malam sebelum sidang TA, kali ini saya akan menjelaskan mengenai bagaimana cara membuat alat untuk mendeteksi sinyal detak jantung, alat ini bisa digunakan untuk memonitoring bentuk sinyal jantung seperti gambar diatas dan juga bisa untuk heart beat (perhitungan detak jantung) dalam satuan BPM. Banyak sekali aplikasi dari ECG ini, salah satunya untuk mendeteksi apakah seseorang menderita suatu penyakit atau-kah tidak, untuk membuat ECG ini yang harus diperhatikan adalah rangkaian filter yang digunakan, ada beberapa filter yang dipakai, yaitu : HPF, LPF, BSF dan Amplifier Penguat. berikut penjelasan skemanya. Untuk mendapatkan file skema dan simulasinya dapat di unduh di link berikut.




a. Amplifier Penguat





 b. Low Pass Filter




c. High Pass Filter



d. Band Stop Filter





e. Output Sinyal





f. VIDEO HASILNYA
















Membuat Rangkaian EOG (Electrooculography)

Membuat Rangkaian EOG (Electrooculography)


               Malam yang sunyi menegangkan, bertabur ketidakpastian. Kali ini saya akan menjelaskan mengenai bagaimana membuat alat yangdigunakan untuk mendeteksi arah lirikan mata (ke kiri atau ke kanan), biasanya aplikasi untuk alat ini yaitu digunakan untuk orang yang lagi sakit, tidak bisa berbicara dan juga bergerak, namun bisa melihat dan melirik dengan matanya, dengan menggunakan alat ini, si pasien bisa seolah2 berbicara dengan menggunakan lirikan mata, tapi harus ditambah dengan device lain seperti komputer atau lainnya. Pada demo kali ini hanya dicontohkan mengenai rangkaian EOG yang digunakan untuk mengontrol E-book di komputer. berikut skema dan videonya. Untuk mendownload skema dan simulasi bisa unduh di link berikut.

DOWNLOAD


a. Minimum System ATMega16





b. Rangkaian EOG





c. VIDEO HASILNYA




  

BELAJAR RASPBERRY PI (BASIC I/O) INPUT-OUTPUT

BELAJAR RASPBERRY PI (BASIC I/O) INPUT-OUTPUT


              Jam 3 dini hari yang menyejukkan, kali ini saya akan menjelaskan bagaimana cara belajar Raspberry untuk pemula, biasanya menggunakan bahan sederhana seperti menghidupkan led dan bermain dengan tombol push-button, memang kedua device tersebut adalah yang umum digunakan untuk pemula dan harus dikuasai terlebih dahulu agar kedepannya tidak pusing. Kali ini saya akan menjelaskan dua buah basic project yaitu cara menghidupkan led dan cara mengirim pesan saat tombol ditekan, berikut adalah program dan skematiknya.


a. Raspberry B pin




b. Program Menghidupkan Led




c. Program Mengirim Text di Layar Saat Tombol Ditekan












Raspberry Automatic Door Opening and Closing System using PIR and Servo 360 (Pintu Otomatis buka / tutup menggunakan raspberry)

Raspberry Automatic Door Opening and Closing System using PIR and Servo 360 (Pintu Otomatis buka / tutup menggunakan raspberry)


             Tengah malam yang sepi, sunyi dan menenangkan jiwa, kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah project / alat menggunakan Raspberry Pi, ini adalah project pertama saya untuk Raspberry, jadi memang harus banyak belajar lagi guna mengimbangi kebutuhan jaman. judul project yang akan dibahas kali ini yaitu "Buka-Tutup pintu otomatis menggunakan sensor PIR, Raspberry Pi dan motor servo 360", prinsip kerjanya yaitu jika sensor PIR mendeteksi adanya manusia maka pintu akan terbuka secara otomatis, kemudian setelah beberapa saat, pintu akan tertutup secara otomatis, untuk lebih lengkapnya, berikut penjelasan gambarnya.


a. Raspberry Pi B




b. Sensor PIR & Servo 360




c. Konfigurasi PIR  ke RASPI
                                                                   GPIO 25




d. Program RASPBERRY PI






e. VIDEO HASILNYA







Cara mengakses motor servo 360 / motor servo continous

Cara mengakses motor servo 360 / motor servo continous


              Malam ini saya akan membahas mengenai bagaimana cara mengakses motor servo continous atau motor servo 360 derajat, memang motor servo ini berbeda dengan motor servo pada umumnya, motor servo ini bisa berputar layaknya motor dc, namun kelebihannya servo ini yaitu bisa berputar CW atau CCW dan stop hanya dengan mengatur lebar pulsa 1 dan 0 tanpa harus menggunakan driver motor, sehingga bisa digunakan untuk keperluan apapun, kelemahannya servo ini adalah kecepatannya sangat lambat dibanding motor DC. aplikasi motor servo ini biasanya untuk buka / tutup pintu atau pagar, kendali gordin, kendali kamera dan lainnya. berikut penjelasan program dan skemanya.





a. Minimum System ATMega16




b. Program Bascom AVR

$regfile = "m16def.dat"
$crystal = 12000000

Dim A As Integer
A = 0

Ddrd.7 = 1
Ddrb.0 = 0
Ddrb.1 = 0
Ddrb.2 = 0

Set Pinb.0
Set Pinb.1
Set Pinb.2
Do

Do

'cw
Portd.7 = 1
Waitms 2
Portd.7 = 0
Waitms 18
Incr A
Loop Until A > 200

A = 0

Do
'stop
Portd.7 = 1
Waitus 1500
Portd.7 = 0
Waitus 18500
Incr A
Loop Until A > 200

A = 0

Do
'ccw
Portd.7 = 1
Waitms 1
Portd.7 = 0
Waitms 19
Incr A
Loop Until A > 200

A = 0
Loop




c. VIDEO HASILNYA








CARA MEN-SAMPLING SINYAL SINUSOIDAL DC DENGAN ARDUINO

CARA MEN-SAMPLING SINYAL SINUSOIDAL DC DENGAN ARDUINO




                 Pada pagi hari ini, saya akan menjelaskan mengenai bagaimana cara men-sampling tegangan DC atau sinyal yang berbentuk sinus agar terdeteksi nilai Vp / nilai puncaknya, biasanya ini yang membuat kebanyakan orang bingung bagaimana cara menentukan dan mendapatkan nilai tegangan DC sinus, sebenarnya cara untuk mendapatkannya cukup mudah yaitu dengan mensampling data sekecil mungkin dan data sampling bisa disimpan sebanyak mungkin, ini diperuntukkan agar nilai tertinggi dapat diketahui dan dideteksi setiap kali proses sampling dilakukan, saya mencoba pakai Arduino UNO dengan frekuensi sampling 8,9 KHz / 50KHz namun data yang tersimpan hanya 100 data, namun jika Arduino Mega dapat menyimpan lebih banyak lagi hingga mencapai 300 data, maka dari itu saya sarankan untuk menggunakan Arduino Mega untuk sinyal sinus yang rentang nya besar. Berikut adalah program untuk mencari nilai tertinggi dari 300 data yang disampling.


1. Program Arduino

// Arrays to save our results in
unsigned long start_times[300];
unsigned long stop_times[300];
unsigned long values[300];


// Define various ADC prescaler
const unsigned char PS_16 = (1 << ADPS2);
const unsigned char PS_32 = (1 << ADPS2) | (1 << ADPS0);
const unsigned char PS_64 = (1 << ADPS2) | (1 << ADPS1);
const unsigned char PS_128 = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);

// Setup the serial port and pin 2
void setup() {
  Serial.begin(9600);

  // set up the ADC
  ADCSRA &= ~PS_128;  // remove bits set by Arduino library

  // you can choose a prescaler from above.
  // PS_16, PS_32, PS_64 or PS_128
  ADCSRA |= PS_128;    // set our own prescaler to 64 / 128 / 32 / 16

}


void loop() { 
  unsigned int i;
  unsigned int z;
  z = 0;
   
  // capture the values to memory
  for(i=0;i<300;i++) {
    start_times[i] = micros();
    values[i] = analogRead(0);             
 
  if (values[i] >= z) {
  z = values[i]; 
  }
 
    stop_times[i] = micros();

  }

  // print out the results

  Serial.println("\n\n--- Results ---");
  for(i=0 ; i<300 ;i++ ) {
 
    Serial.print(values[i]);
    Serial.print(" ");
    Serial.print(z);
    Serial.print(" ");
    Serial.print(" ");
    Serial.print(" elapse = ");
    Serial.print(stop_times[i] - start_times[i]);
    Serial.print(" us\n");
  }

z = 0;

}



2. Hasil sampling 100 data 

549 716   elapse = 116 us
558 716   elapse = 112 us
566 716   elapse = 116 us
573 716   elapse = 116 us
580 716   elapse = 116 us
587 716   elapse = 116 us
592 716   elapse = 116 us
598 716   elapse = 116 us
603 716   elapse = 120 us
609 716   elapse = 112 us
616 716   elapse = 112 us
622 716   elapse = 112 us
628 716   elapse = 112 us
636 716   elapse = 112 us
642 716   elapse = 112 us
648 716   elapse = 112 us
654 716   elapse = 112 us
658 716   elapse = 112 us
664 716   elapse = 120 us
669 716   elapse = 116 us
675 716   elapse = 116 us
679 716   elapse = 116 us
683 716   elapse = 116 us
688 716   elapse = 116 us
690 716   elapse = 116 us
693 716   elapse = 112 us
696 716   elapse = 124 us
699 716   elapse = 116 us
701 716   elapse = 116 us
705 716   elapse = 116 us
707 716   elapse = 116 us
710 716   elapse = 116 us
712 716   elapse = 116 us
713 716   elapse = 116 us
713 716   elapse = 120 us
714 716   elapse = 112 us
714 716   elapse = 112 us
714 716   elapse = 112 us
715 716   elapse = 112 us
716 716   elapse = 112 us
716 716   elapse = 112 us
716 716   elapse = 112 us
714 716   elapse = 112 us
712 716   elapse = 120 us
709 716   elapse = 116 us
705 716   elapse = 116 us
702 716   elapse = 116 us
698 716   elapse = 116 us
694 716   elapse = 116 us
690 716   elapse = 116 us
686 716   elapse = 116 us
682 716   elapse = 120 us
678 716   elapse = 112 us
674 716   elapse = 116 us
670 716   elapse = 116 us
666 716   elapse = 116 us
661 716   elapse = 116 us
657 716   elapse = 116 us
653 716   elapse = 116 us
648 716   elapse = 116 us
643 716   elapse = 124 us
637 716   elapse = 120 us
630 716   elapse = 116 us
624 716   elapse = 116 us
618 716   elapse = 116 us
611 716   elapse = 116 us
605 716   elapse = 116 us
598 716   elapse = 116 us
591 716   elapse = 116 us
583 716   elapse = 116 us
576 716   elapse = 112 us
568 716   elapse = 112 us
559 716   elapse = 112 us
549 716   elapse = 112 us
541 716   elapse = 112 us
532 716   elapse = 112 us
525 716   elapse = 112 us
518 716   elapse = 116 us
511 716   elapse = 116 us
503 716   elapse = 116 us
496 716   elapse = 116 us
488 716   elapse = 116 us
481 716   elapse = 116 us
472 716   elapse = 116 us
465 716   elapse = 116 us
457 716   elapse = 116 us
449 716   elapse = 116 us
442 716   elapse = 116 us
436 716   elapse = 116 us
430 716   elapse = 116 us
423 716   elapse = 116 us
418 716   elapse = 116 us
412 716   elapse = 116 us
406 716   elapse = 116 us
400 716   elapse = 120 us
392 716   elapse = 112 us
385 716   elapse = 112 us
378 716   elapse = 112 us
373 716   elapse = 112 us
367 716   elapse = 112 us















Membuat alat pengaman sepeda motor dengan sms gateway

Membuat alat pengaman sepeda motor dengan sms gateway


             Kali ini saya akan menjelaskan mengenai bagaimana membuat alat untuk pengaman sepeda motor, jadi prinsipnya terdapat mikrokontroller yang akan mendeteksi saat motor dinyalakan atau saat pengaman aktif, ketika pengaman aktif dan motor menyala / dicuri maka akan menghidupkan buzzer dan mematikan pengapian mesin sehingga motor akan mati / off, setelah itu pengaman akan mengirimkan sms ke pemilik motor melalui sms. berikut adalah penjelasan skematik dan programnya. 



1. Skematik Minimum System




2. Skematik RS232




3. Modem Wavecom





4. Program Bascom AVR

$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600

Config Lcdpin = Pin , Rs = Portc.4 , E = Portc.5 , Db4 = Portc.0
Config Lcdpin = Pin , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3
Config Lcd = 16 * 2

Dim No_hp As String * 15
Dim Data_masuk As String * 100
Dim Cmti_pos As Byte , Cmgr_pos As Byte , Index_pos As Byte , Cmd_pos As Byte
Dim Pjg_sms_index As Byte , Pjg_data As Byte
Dim Sms_index As String * 3
Dim Cmd As String * 4
Dim Cmdbin As Byte

Dim Hp As String * 30
Hp = "085643619527"                                         'no HP yang dituju / Target

'On Urxc Getchar
'Dim Inchar As String * 1

'Enable Interrupts
'Enable Urxc

'buzzer
Ddrd.5 = 1
'relay
Ddrd.7 = 1
'sensor
Ddrd.6 = 0

Cls
Cursor Off


Do


If Pind.6 = 0 Then
Portd.5 = 1
Portd.7 = 1
Cls
Upperline
Lcd "MOTOR TIDAK AMAN"
Wait 3

Cls
Upperline
Lcd "Kirim sms"
Lowerline
Lcd Hp

Print "AT+CMGS=" ; Hp
Wait 1
Print "MOTOR TIDAK AMAN !!!"
Print Chr(26)
Wait 1

Upperline
Lcd "Sudah dikirim "
Wait 1


Else

Portd.5 = 0
Portd.7 = 0

Cls
Upperline
Lcd "MOTOR AMAN"
Wait 1

End If


Loop










Cara Menyimpan Data di Database Internet dengan Arduino Ethernet (IOT)

Cara Menyimpan Data di Database Internet dengan Arduino Ethernet (IOT)

      
       Hari minggu yang membahagiakan, cerah dan berwarna, kali ini saya akan menjelaskan mengenai Arduino IOT (internet of things), project ini adalah project pertama saya dalam hal koneksi internet, memang internet sudah menjadi prioritas untuk masalah koneksi data oleh para electronics hobbys, jadi tidak perlu kagum atau merasa kesulitan untuk mengakses ke internet, pada penjelasan saya kali ini bertema bagaimana cara meng-koneksikan arduino dengan internet dan juga menyimpan data ke database hosting gratis, untuk masalah hosting bisa bermacam-macam pilihannya, ada www.kwikphp.com atau www.idhostinger.com, dan lainnya. caranya rata-rata sama jadi perhatikan saja langkah-langkah yang dilakukan, untuk melakukan percobaan ini diperlukan beberapa device yaitu seperti berikut.

1. Arduino Uno / Mega
2. Ethernet Shield
3. Router / wifi (Pilih yang ada USB Port)
4. USB modem (jika menggunakan modem internet)
5. Kabel Ethernet


1. Arduino + Ethernet Shield



2. Router + USB Port



 3. Modem Internet



 4. Program Arduino IDE

#include <SPI.h>
#include <Ethernet.h>

int pgigi= 0;
int pumum=0;
int petugas=0 ;
int petugas1=0;

String txData="";


byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
char server[] = "www.chargingstation.hol.es";  
IPAddress ip(192,168,1,167);
EthernetClient client;

void setup() {
 
  Serial.begin(9600);
  while (!Serial) {
    ; //wait for serial port to connect. Needed for Leonardo only
  }
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    Ethernet.begin(mac, ip);
  }
    delay(1000);
    Serial.println("connecting...");
    kirim ();

 
}

void loop()
{
  tombol ();
  kirim();
  delay(1000);
}


void tombol(){
pgigi++;
pumum++;
petugas++;
petugas1++;

}


void kirim (){
  EthernetClient client;
  if (client.connect(server, 80)){
    txData = "pgigi="+ (String (pgigi)) + "&petugas="+ (String (petugas)) + "&pumum="+ (String (pumum)) + "&petugas1="+ (String (petugas1));
    Serial.println("connected");
    client.println("POST /update.php HTTP/1.1");
    //jika menggunakan insert pakai client.println("POST /insert.php HTTP/1.1");
    client.println("Host: www.chargingstation.hol.es");
    client.println("Connection: close");
    client.print("Content-Type: application/x-www-form-urlencoded\n");
    client.print("Content-Length: ");
    client.print(txData.length());
    client.print("\n\n");
    client.print(txData);
    Serial.print(txData);
  }   
  else{
    Serial.println("Connection Failed."); // Again the Serial is for feedback.  
    Serial.println();
  }
}

//---------selesai----------//}



5. Membuat Database Internet

a. Pertama masuk ke web www.idhostinger.com
b. Buat akun baru atau bisa masuk menggunakan akun google+ / facebook
c. Buat hosting gratis dengan nama "www.chargingstation.hol.es"

 
d. Pilih database MySQL



 e. Buat database dengan kriteria seperti berikut

nama database = antri
username = local
password = 12345 (misal)

f. kemudian pilih menu Phpmyadmin buat tabel seperti berikut

nama tabel = antri
jumlah coloum = 5
>>no
>>pgigi
>>petugas
>>pumum
>>petugas1
Value = 3
Tipe data = INT


  
g. Masukkan dulu data pertama, pilih insert kemudian isikan data berikut

>> no = 1  (maksudnya value isikan nilai 1)
>> pgigi = 2
>> petugas = 3
>> pumum = 4
>> petugas1 = 5


h. tekan tombol "SAVE" maka database sudah terbuat, sekarang ketikkan file berikut

config.php

<?php

$dbhost = 'mysql.idhostinger.com';
$dbuser = 'u38xxxxx_local';
$dbpass = '12345';    
$dbname = 'u38xxxxx_antri';

$conn = mysql_connect($dbhost,$dbuser,$dbpass) or die ('Error connecting to mysql'); 
mysql_select_db($dbname);
if(!$conn){
        echo "database gak konek";
    }else{
        echo "database konek";
    }
?>

*note = ubah "xxxxxx" dengan ID anda 



 update.php

<?php
require("config.php");
                 
$query = "UPDATE antri SET pgigi='$_POST[pgigi]', petugas='$_POST[petugas]', pumum='$_POST[pumum]', petugas1='$_POST[petugas1]' WHERE no=1";

if(!@mysql_query($query))
{
    echo "&Answer; SQL Error - ".mysql_error();
    return;
}
?>


insert.php

<?php
require("config1.php");

$query = "INSERT INTO antri (pgigi, petugas, pumum, petugas1) VALUES('$_POST[pgigi]','$_POST[petugas]','$_POST[pumum]','$_POST[petugas1]')";


if(!@mysql_query($query))
{
    echo "&Answer; SQL Error - ".mysql_error();
    return;
}


?>



i. Masukkan kedua file tersebut ke menu file >> file manager 1




 j. Hosting siap digunakan



6. THE last step
>> masukkan usb modem ke router atau hubungkan router ke internet telephone
>> upload program Arduino
>> lihat apa yang tersimpan di database