Translate

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 









Cara Mengirim Data Dari Arduino Ethernet Ke Database MySQL Localhost Komputer

Cara Mengirim Data Dari Arduino Ethernet Ke Database MySQL Localhost Komputer


               Pada malam yang kelam berbalut kegetiran kali ini, saya akan menjelaskan mengenai bagaimana cara mengirim data dari arduino ethernet ke database MySQL yang berada di localhost komputer, jika step ini berhasil maka untuk step berikutnya yaitu mengirimkan data ke web hosting juga akan berhasil, pada percobaan kali ini hanya sebatas mengirim data dari arduino ke localhost komputer, selanjutnya akan dibahas mengenai arduino IOT (internet of things) yaitu mengirimkan data dari arduino ke internet, keren kan ?. maka dari itu kuasai dulu dasarnya kemudian berkembang ke step yang lebih tinggi. untuk melakukan percobaan ini yang dibutuhkan yaitu beberapa device, device tersebut adalah :

1. Arduino UNO / Mega
2. Ethernet Shield
3. Router / Wifi
4. Komputer / laptop
5. Software Arduino IDE
6. XAMPP 1.8.2 


1. Arduino + Ethernet Shield




2. Program Arduino IDE

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

int pgigi = 10 ;
int pumum = 9 ;
int petugas = 7 ;
int petugas1 = 5;
int y;
int currx;
String txData="";

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

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()
{
  kirim ();
}


void kirim (){
  pgigi++;
  petugas++;
  pumum++;
  petugas1++;
  EthernetClient client;
  //if (client.connect(server, 80)){
   if (client.connect("192.168.1.111", 80)){
    txData = "pgigi="+ (String (pgigi)) + "&petugas="+ (String (petugas)) + "&pumum="+ (String (pumum)) + "&petugas1="+ (String (petugas1));
    Serial.println("connected");
    Serial.print(txData);
    client.println("POST /antri/update1.php HTTP/1.1");
    //jika menggunakan insert pakai client.println("POST /antri/insert.php HTTP/1.1");
    client.println("Host: 192,168,1,111");
    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.println(txData);
    delay (1000);
   
  }   
  else{
    Serial.println("Connection Failed."); 
    Serial.println();
    delay (1500);
  }
}

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




3. File config1.php

<?php

$dbhost = 'localhost';
$dbuser = 'root';
//$dbpass = '';    
$dbname = 'coba'; //This is the name of your database on the mysql server

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




4. File update1.php

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

$query = "UPDATE tbcoba 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;
}
?>



5. File insert.php

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

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


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

?>



6. Cara Penggunaan Alat

a. Pertama ketik file.update1.php dan config1.php
b. Simpan di C:\xampp\htdocs\antri\  (buat folder antri)



c. Setelah itu ketik program Arduino Uno dan Upload
d. Jadikan IP komputer / laptop static dan set ke IP = 192.168.1.111 dan subnet mask = 255.255.255.0
e. Pastikan IP router satu kelas dengan IP komputer dan IP Arduino
f.  Buka PhpmyAdmin dan buat database berikut

- Nama Database = coba
- Nama Tabel = tbcoba
- Coloum Tabel = 5
>> Coloum1 = no
>> Coloum2 = pgigi
>> Coloum3 = petugas
>> Coloum4 = pumum
>> Coloum5 = petugas1
>> semua dalam bentuk INT (integer)

g. Masukkan data pertama, klik menu insert di phpmyadmin kemudian masukkan data berikut

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


h. Hidupkan XAMPP, aktifkan apache dan MySQL
i. kemudian hidupkan Arduinonya dan lihat apa yang tersimpan di database 



 

7. VIDEO HASILNYA