Search

Showing posts with label HC-SR04. Show all posts
Showing posts with label HC-SR04. Show all posts

Wednesday, October 5, 2016

[MICROCONTROLLER][ARDUINO][TUTORIAL] Kontrol Arduino menggunakan BLYNK (via USB serial)

Mengontrol arduino via handphone (android /iOS) sepertinya sih keren ya. Tapi susah gak sih? Mesti develop aplikasi di android/iOS secara khusus? Cara komunikasinya pake apa? Lama dong?
Pertanyaan-pertanyaan seperti itu pasti terlintas. Tak jarang, keraguan yang akhirnya juga dapat menjadi motif urungnya melanjutkan niatan diatas.
Dengan menggunakan BLYNK yang menyediakan dashboard berisi bermacam-macam widget, hal itu tidak lagi jadi masalah, bahkan tidak sampe 1 menit (seperti iklan video-nya), kita sudah dapat mengontrol Arduino via handphone (android/iOS).

Untuk kali ini, saya akan mencoba mengontrol arduino saya dengan rangkaian yang saya buat di artikel saya sebelumnya.

KEBUTUHAN PERANGKAT
  • Lihat kebutuhan perangkat di artikel ini
  • handphone (android/iOS). Saya menggunakan handphone android (Nexus 5).
  • koneksi internet dari laptop/komputer akan kita pakai
SIRKUIT
Menggunakan sirkuit yang ada di artikel ini.

LANGKAH-LANGKAH
  • Install BLYNK di handphone. Download BLYNK (android/iOS). Buat account di BLYNK atau login dengan account facebook.
  • Setelah berhasil login, buat proyek baru di BLYNK dan tambahkan widget Button dan Value. Silakan tambahkan widget lainnya sesuai kebutuhan. Yang perlu diingat adalah BLYNK free-version menyediakan sejumlah saldo nilai energi, dimana 1 widget seharga nilai energi tertentu. Klo saldo nilai energi ini, habis atau tidak mencukupi, maka kita tidak akan bisa menambahkan widget ke proyek. Jangan lupa mengirimkan AUTH TOKEN (yg ada di kotak merah) ke e-mail anda. AUTH TOKEN ini nantinya diperlukan untuk dimasukkan ke kode program ARDUINO-nya sebagai pengenal proyek ini.
BLYNK: Project Settings
BLYNK: Project Settings

BLYNK: Project view

BLYNK: Widgets

BLYNK: Widget Button Settings

BLYNK: Widget Value Display Settings

BLYNK juga sudah menyediakan in-app purchase untuk tambahan sejumlah nilai energi tertentu dengan harga tertentu.


  • Download BLYNK library. Saya menggunakan library yang ini.
  • Ekstrak file .zip dan copy-paste-kan semua folder ke folder {instalasi arduino}/libraries.
  • Masukkan AUTH TOKEN ke kode arduino (lihat di bagian kode di bawah)
  • Upload kode ke Arduino
  • Buka console windows, dan pindah ke folder {instalasi arduino}/libraries/Blynk/scripts
  • edit file blynk-ser.bat. Ubah nilai serial COM. Sesuaikan dengan nomor port serial Arduino Anda. Untuk kasus saya, COM8 adalah port serial Arduino saya.
  • Jalankan file blynk-ser.bat
  • Dan kini, Andapun sudah dapat mengontrol LED di Arduino dan menampilkan jarak yang dideteksi ULTRASONIC SENSOR secara online-realtime.
KODE
Berikut kode yang saya pakai:
#include <SoftwareSerial.h>
SoftwareSerial DebugSerial(2, 3); // RX, TX

#define BLYNK_PRINT DebugSerial
#include <BlynkSimpleStream.h>
#include <SimpleTimer.h>
#include <NewPing.h>

#define TRIGGER_PIN  12  // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN     11  // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

int distance = 0;
SimpleTimer timer;

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "AUTH_TOKEN_PROYEK_ANDA";

void myTimerEvent()
{
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  distance = sonar.ping_cm();
  Blynk.virtualWrite(V1, distance);
  Blynk.virtualWrite(V2, distance);
  Blynk.virtualWrite(V3, distance);
}

void setup()
{
  // Debug console
  DebugSerial.begin(9600);

  // Blynk will work through Serial
  Serial.begin(9600);
  Blynk.begin(auth, Serial);
  
  // Setup a function to be called every second
  timer.setInterval(1000L, myTimerEvent);
}

void loop()
{
  Blynk.run();
  timer.run(); // Initiates SimpleTimer
}

TIPS: masukkan AUTH TOKEN proyek Anda menggantikan teks AUTH_TOKEN_PROYEK_ANDA.
VIDEO
Berikut video hasil tutorial ini.


REFERENSI

Selamat mencoba!

Tuesday, October 4, 2016

[MICROCONTROLLER][ARDUINO][TUTORIAL] Ultrasonic Sensor

Jika Anda pecinta mokit/gunpla maupun figure statue yang memiliki LED, mungkin proyek ini cocok bagi Anda yang menghendaki LED menyala secara otomatis jika ada orang yang mendekati mokit/gunpla maupun figure statue Anda, dan secara otomatis pula LED akan mati untuk periode waktu tertentu (dan tentunya LED akan tetap menyala jika orang tersebut tetap terdeteksi berada di sekitar objek tersebut). Nah, jika Anda menghendaki mekanisme deteksi yang akan digunakan adalah jarak orang dengan objek, maka kita dapat menggunakan sensor jarak berbasis ULTRASONIC.

KEBUTUHAN PERANGKAT
  • Arduino (uno)
  • sensor ultrasonic (HC-SR04)
  • kabel jumper (warna-warni)
  • mokit/gunpla/figure statue. Dalam tutorial ini, penulis menggunakan figure statue bust ironman yang memiliki LED di MATA dan ARC REACTOR-nya. Figure statue yang digunakan ini sudah memiliki rangkaian internal yang menggunakan tenaga batere yang secara terus-menerus akan menyala jika sudah di-ON-kan. Tapi kalo hanya seperti itu, kurang menarik kan? Selain itu juga tidak hemat energi.
SIRKUIT
  • TIPS: Untuk menghubungkan titik satu ke titik lainnya yang berjauhan, silakan gunakan kabel jumper dengan warna kesukaanmu. Akan tetapi, sebaiknya gunakan warna tertentu untuk membedakan arus positif dan negatif. 


SKEMATIK


KODE

Setelah membuat rangkaian sirkuitnya:
  • sambungkan Arduino ke komputer
  • jalankan Arduino Software (IDE). Jika belum terinstal, silakan didownload disini.
  • masukkan kode berikut:
// ---------------------------------------------------------------------------
// LED-ON using Sonar
// ---------------------------------------------------------------------------

#include <NewPing.h>

#define LED_PIN 13 // Arduino pin tied to trigger pin on LED.
#define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN 11 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
#define REQUIRE_DISTANCE 20 // // cm - maximal required distance to triger LED
#define MAX_INTERVAL_ON 5000 // ms - change this value for LED interval

bool bON = false;
int distance = 0;
unsigned long ulFirstCT = 0;
unsigned long ulCT = 0;

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

void setup() {
  while (!Serial) delay(1);
  Serial.begin(9600);
  pinMode(LED_PIN, OUTPUT);
  DoLED(LOW);
}

void loop() {
  // sonar
  distance = sonar.ping_cm();
  //Serial.println("d = " + String(distance)); // uncomment for DEBUGGING
  if (distance > 0 && distance <= REQUIRE_DISTANCE) {
    if (!bON) {
      // light-UP
      DoLED(HIGH);
      ulFirstCT = millis();
    }
    bON = true;
  }
  else { // not in range
    bON = false;
  }

  // check ON-timer
  if (!bON) {
    ulCT = millis();
    if (ulCT - ulFirstCT >= MAX_INTERVAL_ON) {
      DoLED(LOW);
      bON = false;
    }
  }

  // breathe
  delay(5);
}

void DoLED(int state) {
  digitalWrite(LED_PIN, state);
}


  • TIPS: untuk NewPing library dapat didownload disini.


VIDEO

Video hasil tutorial ini dapat dilihat YouTube:




Selamat mencoba!