Sunday, August 4, 2019

Kontrol LED Menggunakan NodeMCU

Pada praktikum kali ini akan dijelaskan mengenai cara mengkontrol LED menggunakan Blynk Example Browser yang dijalankan menggunakan modul wifi ESP8266. ESP8266 adalah sebuah modul WiFi yang akhir-akhir ini semakin digemari para hardware developer. 

Selain karena harganya yang sangat terjangkau, modul WiFi serbaguna ini sudah bersifat SoC (System on Chip), sehingga kita bisa melakukan programming langsung ke ESP8266 tanpa memerlukan mikrokontroller tambahan. Kelebihan lainnya, ESP8266 ini dapat menjalankan peran sebagai adhoc akses poin maupun klien sekaligus.

Berikut adalah gambar rangkaian yang digunakan :




Setelah merangkai gambar rangkaian seperti gambardi atas, buka aplikasi arduino dan pilih 'Preferences' pada edit, setelah memasukkan link yang akan digunakan pilih tools dan NodeMcu 0.9

Blynk berfungsi sebagai penghubung modul komunikasi antara handphone dan ESP8266. Setelah aplikasi Blynk telah terinstal, maka buatlah button untuk mengakses LED dengan menyesuaikan port yang telah terpasang dengan ketentuan yang saya buat :

LED Merah : D1
LED Kuning : D2
LED Hijau : D3




Masukkan program yang digunakan pada nodemcu

#define BLYNK_PRINT Serial


#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

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

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "Disturb";
char pass[] = "polo1622";

WidgetLED led1(V1);

BlynkTimer timer;

// V1 LED Widget is blinking
void blinkLedWidget()
{
  if (led1.getValue()) {
    led1.off();
    Serial.println("LED on V1: off");
  } else {
    led1.on();
    Serial.println("LED on V1: on");
  }
}

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

  Blynk.begin(auth, ssid, pass);
  // You can also specify server:
  //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);

  timer.setInterval(1000L, blinkLedWidget);
}

void loop()
{
  Blynk.run();
  timer.run();
}


Program tersebut adalah program Basic dari Blynk yang di dapatkan melalui link Blynk Example yang telah kita download sebelumnya. Nantinya akan didapati zip file kemudia di extract pada folder Arduino Uno. Masukkan program tersebut harus sama dengan penyimpanan file Librarynya agar program tersebut dapat dijalankan dengan baik.

Setelah program tersebut diupload dan memproses sampai selesai maka program terebut dapat berjalan pada rangkaian. Hasillnya sebagai berikut :


CONTROL SENSOR MENGGUNAKAN ARDUINO UNO

MENGAKSES TIGA SENSOR SEKALIGUS DENGAN KELUARAN YANG BERBEDA MENGGUNAKAN ARDUINO UNO

Alat dan komponen:
  • Arduino UNO
  • Sensor PIR
  • Sensor Ultrasonik
  • Sensor Suhu
  • Led
  • Motor DC
  • Buzzer
Langkah kerja:
  • pertama rangkailah komponen seperti Gambar di bawah ini:

  • setelah siap merangkai komponen seperti gambar di atas, arahkan kursor pada toggle code editor.
  • pada jendela toggle code editor pilih text dan akan tampil lembar editing program.
  • setelah lembar prograng tampil, ketikkan program seperti berikut:
#include<LiquidCrystal.h>
int sensorPin = 0;
int echoPin= 6;
int trigPin= 7;
int distanceCm;
int inputPin = 2;               
int pirState = LOW;                                
int val = 0;                            
int pinSpeaker = 4;  
void setup()
{
  pinMode (8, OUTPUT);
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(13, OUTPUT);
  pinMode(inputPin, INPUT);
  pinMode(pinSpeaker, OUTPUT);
  Serial.begin(9600);
}
void loop(){
   val = digitalRead(inputPin);
  if (val == HIGH) {
    playTone(300, 160);
    delay(150);
  
    if (pirState == LOW) {
      Serial.println("Terdeteksi suatu pergerakan!");
      pirState = HIGH;
    }
  } else {
      playTone(0, 0);
      delay(300);   
      if (pirState == HIGH){
      Serial.println("Motion ended!");
      pirState = LOW;
    }
  }
 int reading = analogRead(sensorPin);
 float voltage = reading * 5.0;
 voltage /=1024.0;
 float tempC = (voltage - 0.5) * 100;
 if (tempC > 30)
 {
   digitalWrite (8, HIGH);
 }
  if (tempC < 30)
 {
   digitalWrite (8, LOW);
 }
  long duration, distance;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin,
 LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
   if (distance <= 50) {
    digitalWrite(13, HIGH);
}
  else { digitalWrite(13,LOW);
  }
}
    void playTone(long duration, int freq) {
    duration *= 1000;
    int period = (1.0 / freq) * 1000000;
    long elapsed_time = 0;
    while (elapsed_time < duration) {
        digitalWrite(pinSpeaker,HIGH);
        delayMicroseconds(period / 2);
        digitalWrite(pinSpeaker, LOW);
        delayMicroseconds(period / 2);
        elapsed_time += (period);
    }
}
  • lalu tekan tombol "Start Simulation" pada sudut atas kanan laman tinkercad
  • rangkaian Sensor siap diguakan.

Kontrol LED Menggunakan NodeMCU

Pada praktikum kali ini akan dijelaskan mengenai cara mengkontrol LED menggunakan Blynk Example Browser yang dijalankan menggunakan modul ...