Berbage Ilmu | Tutorial Arduino Android SEO Networking Software

Koneksi RTC DS1307 dan Nodemcu v3

Kali ini saya akan memberikan tutorial tentang bagaimana melakukan koneksi atau menghubungkan RTC DS1307 dengan Esp Nodemcu V3. berikut ini merupakan koneksi antar pin RTC DS1307 dan Nodemcu v3.
Koneksi Pin :
RTC         Nodemcu
GND ----- GND
VCC ------ 3v / 5v
SDA ------ D2
SCL ------- D1
Selanjutnya anda download library RTC nya DISINI. Kemudian anda tambahkan library tersebut ke Arduino IDE anda. Langkah selanjutnya copy sketch berikut dan paste di projek pada Arduino IDE anda.

// CONNECTIONS:
// DS1307 SDA --> D2
// DS1307 SCL --> D1
// DS1307 VCC --> 5v
// DS1307 GND --> GND

#include <Wire.h> // must be included here so that Arduino library object file references work
#include <RtcDS1307.h>
RtcDS1307<TwoWire> Rtc(Wire);
/* for normal hardware wire use above */
void setup ()
{
    Serial.begin(9600);
    Serial.print("compiled: ");
    Serial.print(__DATE__);
    Serial.println(__TIME__);
   
    Rtc.Begin();
    RtcDateTime compiled = RtcDateTime(__DATE__, __TIME__);
    printDateTime(compiled);
    Serial.println();
    if (!Rtc.IsDateTimeValid())
    {
        Serial.println("RTC lost confidence in the DateTime!");
        Rtc.SetDateTime(compiled);
    }
    if (!Rtc.GetIsRunning())
    {
        Serial.println("RTC was not actively running, starting now");
        Rtc.SetIsRunning(true);
    }
    RtcDateTime now = Rtc.GetDateTime();
    if (now < compiled)
    {
        Serial.println("RTC is older than compile time!  (Updating DateTime)");
        Rtc.SetDateTime(compiled);
    }
    else if (now > compiled)
    {
        Serial.println("RTC is newer than compile time. (this is expected)");
    }
    else if (now == compiled)
    {
        Serial.println("RTC is the same as compile time! (not expected but all is fine)");
    }
    Rtc.SetSquareWavePin(DS1307SquareWaveOut_Low);
}
void loop ()
{
    if (!Rtc.IsDateTimeValid())
    {
        Serial.println("RTC lost confidence in the DateTime!");
    }
    RtcDateTime now = Rtc.GetDateTime();
    printDateTime(now);
    Serial.println();
    delay(1000);
}
#define countof(a) (sizeof(a) / sizeof(a[0]))
void printDateTime(const RtcDateTime& dt)
{
    Serial.print(dt.Day());
    Serial.print("/");
    Serial.print(dt.Month());
    Serial.print("/");
    Serial.println(dt.Year());
    Serial.print(dt.Hour());
    Serial.print(":");
    Serial.print(dt.Minute());
    Serial.print(":");
    Serial.println(dt.Second());
}
maka hasilnya akan seperti pada gambar berikut.


Sekian & terimakasih, Semoga bermanfaat..๐Ÿ˜๐Ÿ˜

Smart TV dengan arduino dan android

Kali ini saya akan memberikan tutorial tentang cara atau bagaimana membuat sebuah smart tv dengan arduino yang di kontrol dengan perintah suara atau voice recognition di aplikasi android. yang fungsimya bisa sebagai on/off tv, ganti channel dll. disesuaikan dengan kebutuhan anda saja. pada percobaan ini menggunakan koneksi bluetooth yang menghubungkan arduino & smartphone android. video percobaan dapat dilihat pada video berikut.


Alat - alat yang digunakan :
- Arduino
- IR transmitter
- IR reciver
- Bluetooth HC05 / HC06
- Breadboard 
- Jumper Kabel

Skema :
HC05 ---- Arduino
VCC ---- 5v
GND ---- GND
RX ---- TX
TX ---- RX

Ir Transmitter ---- Arduino
Signal ----- D3
GND ----- GND
VCC ---- VCC

Ir Reciver ---- Arduino
Signal ---- D11
GND ---- GND
VCC ---- VCC

Langkah awal download library IrRemote disini kemudian import ke arduino IDE. selanjutnya anda perlu melakukan decode remote kontrol tv tersebut, dengan cara upload sketch dibawah ini ke arduino anda.

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn();
}

void dump(decode_results *results) {
  int count = results->rawlen;
  if (results->decode_type == UNKNOWN) {
    Serial.print("Unknown encoding: ");
  }
  else if (results->decode_type == NEC) {
    Serial.print("Decoded NEC: ");
  }
  else if (results->decode_type == SONY) {
    Serial.print("Decoded SONY: ");
  }
  else if (results->decode_type == RC5) {
    Serial.print("Decoded RC5: ");
  }
  else if (results->decode_type == RC6) {
    Serial.print("Decoded RC6: ");
  }
  else if (results->decode_type == PANASONIC) {
    Serial.print("Decoded PANASONIC - Address: ");
    Serial.print(results->address, HEX);
    Serial.print(" Value: ");
  }
  else if (results->decode_type == LG) {
    Serial.print("Decoded LG: ");
  }
  else if (results->decode_type == JVC) {
    Serial.print("Decoded JVC: ");
  }
  else if (results->decode_type == AIWA_RC_T501) {
    Serial.print("Decoded AIWA RC T501: ");
  }
  else if (results->decode_type == WHYNTER) {
    Serial.print("Decoded Whynter: ");
  }
  Serial.print(results->value, HEX);
  Serial.print(" (");
  Serial.print(results->bits, DEC);
  Serial.println(" bits)");
  Serial.print("Raw (");
  Serial.print(count, DEC);
  Serial.print("): ");
  for (int i = 1; i < count; i++) {
    if (i & 1) {
      Serial.print(results->rawbuf[i]*USECPERTICK, DEC);
    }
    else {
      Serial.write('-');
      Serial.print((unsigned long) results->rawbuf[i]*USECPERTICK, DEC);
    }
    Serial.print(" ");
  }
  Serial.println();
}
void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    dump(&results);
    irrecv.resume();
  }
}
Selanjutnya buka serial monitor pada Arduino IDE set baudrate pada serial monitor anda menjadi 9600. kemudian lakukan decode pada remote tv tersebut misalkan menekan tombol on/off pada remote.



Lakukan decode untuk semua siaran tv dan fungsi yang anda perlukan misalkan channel 30


Setelah selesai, upload sketch berikut ini ke arduino anda.

#include <IRremote.h>
char val;
IRsend irsend;
void setup()
{
Serial.begin(9600);
}
void loop() {
if(Serial.available()>0){
  val = Serial.read();
  Serial.println(val);
  if (val == 'a') //jika terdapat data 'a' pada serial yang dikirim dari android
  {
    irsend.sendNEC(0xFAA847B, 32); //send ON/OFF TV
  }
  else if(val=='b')//jika terdapat data 'b' pada serial yang dikirim dari android
  {
    irsend.sendNEC(0xFAAC837, 32); //send angka 3
    delay(400);//delay 4ms
    irsend.sendNEC(0xFAA08F7, 32);//send angka 0
    delay(4000);//delay 4 detik
  }
  /*
   * Percobaan menyalakan TV dan mengirim sinyal channel 30 pada TV
   * sesuaikan dengan type remote, misalkan menggunakan sony
     maka typenya menjadi "sendSony"
   * tambahkan "0x" pada hasil decode.
   */
  }
}
Selanjutnya login ke akun app inventor anda, kemudian susun design dan blocknya seperti pada gambar berikut :



Membuat remote TV sederhana dengan IR transmitter menggunakan arduino

Penggunaan IR atau infrared sebagai media transmisi data yang telah diaplikasikan pada TV, AC dan peralatan elektronik lainya dapat memberikan kemudahan untuk melakukan pengontrolan suatu alat atau device tersebut. pada kesempatan ini saya akan memberikan tutorial yaitu membuat suatu sistem remote control, dimana objek-nya yaitu sebuah TV decoder. Berikut ini merupakan alat yang perlu di persiapkan dalam projek ini.

Daftar alat :

  • Arduino
  • IR transmitter
  • IR Reciver
  • Push Button
  • Resistor 220ohm
  • Remote TV
Selanjutnya silakan anda download terlebih dahulu library IRremote disini. Kemudian import file .zip library tersebut ke Arduino IDE anda. Setelah selesai silakan ikuti skema rangkaian berikut.


Langkah awal kita perlu melakukan decode pada remote tersebut, agar supaya nilai yang dikirim dari ir transmitter sesuai dengan yang dikirim remote kontrol TV teresebut. pada percobaan kali ini saya hanya melakukan decode pada tombol untuk mengganti siaran TV. untuk melakukan upload sketch berikut ini.


#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn();
}

void dump(decode_results *results) {
  int count = results->rawlen;
  if (results->decode_type == UNKNOWN) {
    Serial.print("Unknown encoding: ");
  }
  else if (results->decode_type == NEC) {
    Serial.print("Decoded NEC: ");
  }
  else if (results->decode_type == SONY) {
    Serial.print("Decoded SONY: ");
  }
  else if (results->decode_type == RC5) {
    Serial.print("Decoded RC5: ");
  }
  else if (results->decode_type == RC6) {
    Serial.print("Decoded RC6: ");
  }
  else if (results->decode_type == PANASONIC) {
    Serial.print("Decoded PANASONIC - Address: ");
    Serial.print(results->address, HEX);
    Serial.print(" Value: ");
  }
  else if (results->decode_type == LG) {
    Serial.print("Decoded LG: ");
  }
  else if (results->decode_type == JVC) {
    Serial.print("Decoded JVC: ");
  }
  else if (results->decode_type == AIWA_RC_T501) {
    Serial.print("Decoded AIWA RC T501: ");
  }
  else if (results->decode_type == WHYNTER) {
    Serial.print("Decoded Whynter: ");
  }
  Serial.print(results->value, HEX);
  Serial.print(" (");
  Serial.print(results->bits, DEC);
  Serial.println(" bits)");
  Serial.print("Raw (");
  Serial.print(count, DEC);
  Serial.print("): ");
  for (int i = 1; i < count; i++) {
    if (i & 1) {
      Serial.print(results->rawbuf[i]*USECPERTICK, DEC);
    }
    else {
      Serial.write('-');
      Serial.print((unsigned long) results->rawbuf[i]*USECPERTICK, DEC);
    }
    Serial.print(" ");
  }
  Serial.println();
}
void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    dump(&results);
    irrecv.resume();
  }
}

Selanjutnya setelah selesai upload arahkan remote TV anda ke IR Reciver dan tekan tombol untuk mengganti siaran maka hasilnya akan seperti pada gambar berikut.


Pada tanda merah merupakan hasil decoded NEC pada remote untuk mengganti siaran TV. Selanjutnya copy sketch dibawah ini, untuk melakukan pengontrolan menggunakan IR Transmitter yang terhubung pada arduino.

#include <IRremote.h>
int RECV_PIN = 11;
int BUTTON_PIN = 12;
int STATUS_PIN = 13;
IRsend irsend;
void setup()
{
  pinMode(BUTTON_PIN, INPUT);
  pinMode(STATUS_PIN, OUTPUT);
  digitalWrite(BUTTON_PIN, LOW);
  Serial.begin(9600);
}
void loop() {
  int buttonState = digitalRead(BUTTON_PIN);
  if (buttonState == HIGH) {
    irsend.sendNEC(0xFAAA45B, 32); // Hasil Decode NEC
    digitalWrite(STATUS_PIN, HIGH);
    delay(500);
  }
  digitalWrite(STATUS_PIN, LOW);
}

Tambahkan "0x" pada awalan NEC sehingga menjadi nilai hex. kemudian upload ke arduino anda. untuk hasil pengujianya dapat dilihat pada video berikut.


Silakan anda melakukan kreativitas anda dalam melakukan pengembangan. terimakasih telah menjadikan tutorial ini sebagai bahan refrensi anda. Semoga bermanfaat. ๐Ÿ˜Š๐Ÿ˜Š

Membuat alat ukur tinggi badan dengan arduino dan ultrasonik

Kali ini saya akan memberikan tutorial mengenai pembuatan alat ukur tinggi badan 200cm atau sama dengan 2m (meter). pada percobaan ini saya menggunakan sensor ultrasonik HC-SR04 sebagai media pengukur jarak tinggi objek yang berada tepat dibawah sensor tersebut dan akan ditampilkan di LCD hasil pengukuranya. Adapun rumus yang digunakan dalam pengukuran ini yaitu :
jarak = posisi sensor dari tanah (200cm)
gape = hasil pembacaan / pengukuran sensor 
rumusnya :
jarak - gape = TINGGI BADAN


Contoh :
Seorang yang melakukan pengukuran dan mendapatkan hasil "gape" dari sensor yaitu 20cm. maka tinggi orang tersebut adalah : 200cm - 20cm = 180cm.

Untuk pembuatanya, berikut ini daftar alat yang digunakan dalam projek ini :

- Arduino Uno / Mega
- HC-SR04 ( Ultrasonik Sensor )
- LCD 16x2
- I2C

Berikut ini merupakan wairing pada projek kali ini :




Silakan anda copy sketch dibawah ini kedalam projek pada Arduino IDE anda.

////www.berbageilmu.blogspot.com////
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define trigPin 2
#define echoPin 3
LiquidCrystal_I2C lcd(0x3f ,2,1,0,4,5,6,7,3, POSITIVE);
int jarak = 200;
int tinggi;
void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
  lcd.begin(16,2);
    lcd.setCursor(2,0);
    lcd.print("SISTEM AKTIF");
    delay(1000);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Tinggi : ");
}
void loop() {
  long duration, gape;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  gape = (duration/2) / 29.0;
  tinggi = jarak - gape;
    lcd.setCursor(8,0);
    lcd.print(tinggi);
    lcd.print(" ");
    lcd.print("CM");
    lcd.print("   ");
}

Silakan anda kembangkan tutorial diatas, semoga bermanfaat untuk anda ๐Ÿ˜Š

MIT APP Inventor menyimpan data ke MySQL


Kali ini saya akan memberikan tutorial tentang bagaimana mengkoneksi atau mengirim data ke database yang ada di hosting dengan aplikasi android yang dibuat lewat APP INVENTOR. dimana pada tutorial kali ini kita akan membuat satu database online. berikut ini merupakan video hasil percobaan



Langkah - Langkah

1. Buatlah website hosting dan domain gratisan terlebih dahulu bisa via IDHostinger atau 000Webhost
2. Buat 1 database pada hosting, dan buat 1 table yang bernama t_coba dengan 6 field. berikan nama field masing-masing :

- id
- tanggal
- jam
- nama
- alamat
- pekerjaan

Untuk tipe datanya, lebih jelasnya bisa dilihat pada gambar berikut 


3. Setelah selesai, buatlah sebuah file simpan.php dan silakan copy script dibawah ini kedalam simpan.php

<?php
$connect=mysqli_connect("DB HOST", "DB USER", "PASSWORD DB", "NAMA DB");
date_default_timezone_set('Asia/Makassar');

$tanggal= date("Y-m-d H:i:s");
$jam= date("Y-m-d H:i:s");
$nama= $_POST["Nama"];
$alamat= $_POST["Alamat"];
$pekerjaan= $_POST["Pekerjaan"];
mysqli_query($connect,"INSERT INTO t_data(tanggal,jam,nama,alamat,pekerjaan) VALUES('$tanggal','$jam','$nama','$alamat','$pekerjaan')");
?>
Catatan :Yang ditandai warna Merah silakan anda ganti sesuai nama host, user, password, dan nama database yang sudah anda buat pada hosting anda 
4. Selanjutnya upload file simpan.php ke file manager direktori public_html hosting anda
5. Silakan download project  SimpanDB Berbageilmu disini
6. Selanjutnya import project yang sudah didownload tadi ke MIT APP Inventor 2. Pada bagian block ganti url dengan URL dengan URL website anda dan pada akhir url domain website anda tambahkan simpan.php?



Setelah semua selesai, Silakan anda coba apakah berhasil atau tidak. Jika data belum terkirim coba dicek kembali konfigurasi file simpan.php anda.

Tutorial SIM800L melakukan Panggilan dan SMS dengan arduino


Kali ini saya akan memberikan tutorial tentang bagaimana melakukan SMS dan Melakukan panggilan telepon atau istilah indonesia-nya miss call dengan SIM800L dan Arduino tanpa library atau via AT Command. Pada tutorial ini akan dibahas menjadi empat bagian yaitu :
- Mengirim SMS dengan SIM800L
- Mengirim SMS Lebih dari satu nomor dengan SIM800L
- Melakukan panggilan (miss call) dengan SIM800L
- Melakukan panggilan (miss call) lebih dari satu nomor dengan SIM800L

Bahan Percobaan :
- Arduino uno
- SIM800L
- Step down DC-DC LM2596
- Micro SIM Card (All Operator GSM) percobaan ini saya menggunakan Operator TSEL.
- Kabel Jumper

Untuk selanjutnya ikuti skema berikut ini :

Dari skema rangkaian diatas, power yang diberikan arduino yaitu 5V kemudian di turunkan menggunakan module Step down LM2596 sehingga module SIM800L menerima supply tegangan 3,4 - 4,4V. Gunakan multimeter atau voltmeter untuk mengukur volt yang diterima SIM800L. jika lampu indikator SIM 800L sudah berkedip lambat berarti itu sudah siap digunakan.



Percobaan 1 
Mengirim SMS dengan SIM800L


#include <SoftwareSerial.h>
SoftwareSerial SIM800L(2, 3);
void setup()
{
Serial.begin(9600);
SIM800L.begin(9600);
while(!Serial);
SIM800L.write("AT+CMGF=1\r\n");
Serial.println("SIM 800L Ready");
delay(5000);
Serial.println("Kirim SMS Dimulai");
SIM800L.write("AT+CMGS=\"08229678XXXX\"\r\n");//Masukan nomor tujuan
delay(500);
SIM800L.write("Uji Coba SMS");
delay(500);
SIM800L.write((char)26);
delay(500);
Serial.println("SMS Selesai Dikirim");
}
void loop()
{
}


Percobaan 2
Mengirim dua (2) SMS dengan SIM800L

#include <SoftwareSerial.h>
SoftwareSerial SIM800L(2, 3);
void setup()
{
Serial.begin(9600);
SIM800L.begin(9600);
while(!Serial);
SIM800L.write("AT+CMGF=1\r\n");
Serial.println("SIM 800L Ready");
delay(5000);
Serial.println("Kirim SMS Dimulai");
SIM800L.write("AT+CMGS=\"08229678xxxx\"\r\n");//Masukan nomor tujuan
delay(500);
SIM800L.write("Uji Coba SMS Satu");
delay(500);
SIM800L.write((char)26);
delay(5000);
SIM800L.write("AT+CMGS=\"08124190xxxx\"\r\n");
delay(500);
SIM800L.write("Uji Coba SMS Dua");
delay(500);
SIM800L.write((char)26);
delay(500);
Serial.println("SMS Selesai Dikirim");
}
void loop()
{
}


Percobaan 3
Melakukan Panggilan Miscall dengan SIM800L


#include <SoftwareSerial.h>
SoftwareSerial SIM800L(2, 3);
void setup()
{
Serial.begin(9600);
SIM800L.begin(9600);
while(!Serial);
Serial.println("Miscall dimulai");
delay(2000);
SIM800L.write("ATD08124190xxxx;\r\n");//masukan nomor tujuan
delay(17000); //delay panggilan
SIM800L.write("ATH\r\n");//hangup panggilan sesuai delay
Serial.println("Miscall Selesai");
}
void loop()
{
}



Percobaan 4
Melakukan Panggilan Miscall pada dua (2) nomor dengan SIM800L


#include <SoftwareSerial.h>
SoftwareSerial SIM800L(2, 3);
void setup()
{
Serial.begin(9600);
SIM800L.begin(9600);
while(!Serial);
Serial.println("Miscall Nomor Satu dimulai");
delay(2000);
SIM800L.write("ATD08124190xxxx;\r\n");//masukan nomor tujuan
delay(17000); //delay panggilan
SIM800L.write("ATH\r\n");//hangup panggilan sesuai delay
Serial.println("Miscall Satu Selesai");
Serial.println("");
Serial.println("Miscall Nomor Dua dimulai");
delay(2000);
SIM800L.write("ATD08229678xxxx;\r\n");
delay(17000);
SIM800L.write("ATH\r\n");
Serial.println("Miscall Dua Selesai");
Serial.println("");
}
void loop()
{
}



Demikian tutorial kali ini, semoga bisa bermanfaat untuk anda ๐Ÿ˜Š๐Ÿ˜Š

Flag Counter