Berbage Ilmu | Tutorial Arduino Android SEO Networking Software: Arduino
Showing posts with label Arduino. Show all posts
Showing posts with label Arduino. Show all posts

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 ๐Ÿ˜Š
Flag Counter