Translate

TUTORIAL MEMBUAT ROBOT KENDALI HP ANDROID BLUETOOTH ARDUINO

TUTORIAL MEMBUAT ROBOT KENDALI HP ANDROID BLUETOOTH ARDUINO


           Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah robot atau RC dengan berbasis Android atau bluetooth. jadi robot ini dikendalikan via Android dengan media komunikasinya yaitu bluetooth. robot ini menggunakan Arduino sebagai mikrokontrollernya dan driver menggunakan L293D shield. untuk lebih jelasnya berikut adalah program dan komponennya.



a. Arduino Uno




b. Driver L293d Shield




c. Bluetooth HC-05 




d. Program Android








e. Program Arduino IDE

#include <Wire.h>
#include <AFMotor.h>

AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);

String dataku;

void setup(){
  Serial.begin (9600);
  Serial.setTimeout (5);
  motor1.setSpeed(255);
  motor1.run(RELEASE);
  motor2.setSpeed(255);
  motor2.run(RELEASE);
  motor3.setSpeed(255);
  motor3.run(RELEASE);
}

void loop(){

if (Serial.available()>0)
{
    dataku = Serial.readString();
    Serial.println(dataku);
   
      if (dataku == "100"){
        motor2.run(FORWARD);
        motor3.run(FORWARD);
      }
      
      if (dataku == "200"){
        motor2.run(BACKWARD);
        motor3.run(FORWARD);
      }

      if (dataku == "300"){
        motor2.run(FORWARD);
        motor3.run(BACKWARD);
      }

      if (dataku == "400"){
        motor2.run(RELEASE);
        motor3.run(RELEASE);
      }

      if (dataku == "500"){
        motor2.run(BACKWARD);
        motor3.run(BACKWARD);
      }

      if (dataku == "600"){
        motor1.run(FORWARD);
      }

      if (dataku == "700"){
        motor1.run(RELEASE);
      }
  
}

}





f. VIDEO HASILNYA







Monitor Arus dan Tegangan AC Vrms 220 volt Server THINGSPEAK sensor PZEM-004t v3.0

Monitor Arus dan Tegangan AC Vrms 220 volt Server THINGSPEAK sensor PZEM-004t v3.0


         Pada kesempatan kali ini saya akan menjelaskan mengenai sebuah alat yang dapat berfungsi untuk monitor arus dan tegangan secara ONLINE menggunakan server THINGSPEAK sehingga user bisa memantau secara jarak jauh. sensor yang dipakai yaitu PZEM-004t v3 yang mana satu sensor bisa buat mendeteksi beberapa parameter. untuk lebih jelasnya berikut adalah program dan daftar komponenya.  


a. Arduino Uno




b. Wemos D1





c. Sensor PZEM-004t v3





d. Program Arduino Uno

#include <PZEM004Tv30.h>
#include <Wire.h>  // i2C Conection Library
PZEM004Tv30 pzem(11, 12);

void setup() {
  Serial.begin(9600);  
}

void loop() {

    float voltage = pzem.voltage();
    int tegangan = voltage * 100;
    float current = pzem.current();
    int arus = current * 100;
    float power = pzem.power();
    float energy = pzem.energy();
    float frequency = pzem.frequency();
    float pf = pzem.pf();

Serial.print("*");
Serial.print(tegangan);
Serial.print(",");
Serial.print(arus);
Serial.println("#");  
delay(1000);
}



e. Program Wemos D1

#define BLYNK_PRINT Serial    
#include <SPI.h>
#include <ESP8266WiFi.h>

int temp;
int x = 5;
int y;

int value1;
int value2;

float tegangan;
float arus;

int datain1;
int datain2;

String dataIn;
String dt[10];
int i;
boolean parsing=false;

String apiKey = "JHGJH6775FGHJKG";     //  Enter your Write API key from ThingSpeak
const char* resource = "/update?api_key=";

const char *ssid =  "Hotspotku";     // replace with your wifi ssid and wpa2 key
const char *pass =  "123456789";
const char* server = "api.thingspeak.com";

WiFiClient client;

void setup()
{
  
  dataIn=""; 

       Serial.begin(9600);
       delay(10);

  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, pass);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");

      while (WiFi.status() != WL_CONNECTED)
     {
            delay(500);
            Serial.print(".");
     }
      Serial.println("");
      Serial.println("WiFi connected");

}

void loop()
{

while(Serial.available()>0) {
//   dataIn="";
    char inChar = (char)Serial.read();
    dataIn += inChar;
    if (inChar == '\n') {
    parsing = true;
  }
}

if(parsing){
    parsingData();
       
  if (client.connect(server,80))   //   "184.106.153.149" or api.thingspeak.com
                      { 
                           
                             String postStr = apiKey;
                             postStr +="&field1=";
                             postStr += String(tegangan);
                             postStr += "\r\n\r\n";

                             client.print(String("GET ") + resource + apiKey + "&field1=" + tegangan + "&field2=" + arus + " HTTP/1.1\r\n" + "Host: " + server + "\r\n" + "Connection: close\r\n\r\n");
                                       
                             client.print("Host: api.thingspeak.com\n");
                             client.print("Connection: close\n");
                             client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
                             client.print("Content-Type: application/x-www-form-urlencoded\n");
                             client.print("Content-Length: ");
                             client.print(postStr.length());
                             client.print("\n\n");
                             client.print(postStr);
                           
                             Serial.print("Tegangan: ");
                             Serial.print(tegangan);
                             Serial.print(" Arus: ");
                             Serial.print(arus);
                             Serial.println(". Send to Thingspeak.");
                        }
                       
          client.stop();

          Serial.println("Waiting...");

  delay(10000);
  
 } 
}

void parsingData(){
int j=0;

//kirim data yang telah diterima sebelumnya
//Serial.print("data masuk : ");
//Serial.print(dataIn);
//Serial.print("\n");

//inisialisasi variabel, (reset isi variabel)
dt[j]="";
//proses parsing data
for(i=1;i<dataIn.length();i++){
//pengecekan tiap karakter dengan karakter (#) dan (,)
if ((dataIn[i] == '#') || (dataIn[i] == ','))
{
//increment variabel j, digunakan untuk merubah index array penampung
j++;
dt[j]="";       //inisialisasi variabel array dt[j]
}
else
{
//proses tampung data saat pengecekan karakter selesai.
dt[j] = dt[j] + dataIn[i];
}
}

 datain1 = dt[0].toInt();
 datain2 = dt[1].toInt();

//kirim data hasil parsing
Serial.print("data 1 : ");
Serial.print(datain1);
Serial.print("\n");
Serial.print("data 2 : ");
Serial.print(datain2);
Serial.print("\n");
//Serial.print("data 3 : ");
//Serial.print(dt[2].toInt());
//Serial.print("\n\n");

 tegangan = datain1 / 100.0;
 arus = datain2 / 100.0;

}




f. Gambar Hasilnya






g. VIDEO HASILNYA






Monitor Arus dan Tegangan AC 220 volt dan Kendali Relay ONLINE via Blynk Sensor PZEM-004t v3

Monitor Arus dan Tegangan AC 220 volt dan Kendali Relay ONLINE via Blynk Sensor PZEM-004t v3


          Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat mengukur arus dan tegangan AC Vrms 220 volt secara ONLINE dan bisa kendali relay via ONLINE juga sehingga pengguna bisa nyaman dan enak saat melakukan fungsi pengawasan dan monitor secara jarak jauh dan juga jika terjadi sesuatu bisa ON/OFF relay secara jarak jauh pula menggunakan aplikasi Blynk. untuk lebih jelasnya berikut adalah program dan daftar komponennya.



a. Arduino Uno




b. Wemos D1




c. Sensor PZEM-004t 100A V3.0




d. Relay Modul 1 Channel





e. Program Arduino Uno

#include <PZEM004Tv30.h>
#include <Wire.h>  // i2C Conection Library
PZEM004Tv30 pzem(11, 12);

void setup() {
  Serial.begin(9600);  
}

void loop() {

    float voltage = pzem.voltage();
    float current = pzem.current();
    float power = pzem.power();
    float energy = pzem.energy();
    float frequency = pzem.frequency();
    float pf = pzem.pf();

Serial.print(voltage);
Serial.print("\n");
Serial.print(current);
Serial.print("\n");
  
delay(1000);
}




f. Program Wemos D1

#define BLYNK_PRINT Serial    
#include <SPI.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>

int temp;
int x = 5;
int y;

int value1;
int value2;

float tegangan = 0;
float arus = 0;

float datain1;
float datain2;

String dataIn;
String dt[10];
int i;
boolean parsing=false;

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

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "My Hotspot";
char pass[] = "123456789";

SimpleTimer timer;

// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
{

 Blynk.virtualWrite(V5, tegangan);
 Blynk.virtualWrite(V6, arus);
 delay(1000);

}

void setup()
{

  pinMode(D1,OUTPUT);
  pinMode(D2,OUTPUT);
  pinMode(D3,OUTPUT);
  pinMode(D4,OUTPUT);
  pinMode(D5,OUTPUT);
  
  dataIn=""; 
  // Debug console
  Serial.begin(9600);

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


  // Setup a function to be called every second
  timer.setInterval(1000L, sendSensor);
}

void loop()
{

while(Serial.available()>0)
 { 

  datain1 = Serial.parseFloat();          
  datain2 = Serial.parseFloat();

 if(Serial.read()=='\n')
 {
  tegangan = datain1;
  arus = datain2;
 }  
 }

  Blynk.run();
  timer.run();
}




g. Gambar Interface Blynk






h. VIDEO HASILNYA







Fingerprint Sensor Control Relay ARDUINO

Fingerprint Sensor Control Relay ARDUINO


             Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang menggunakan sensor fingerprint sebagai kendalinya, alat ini menggunakan 2 buah relay sebagai outputnya, untuk alat yang dikendalikan bisa bervariasi yaitu motor, lampu AC dll. alat ini cukup simple cuma yang harus diperhatikan yaitu wiring saat register finger dan saat running finger sensor. untuk program dan komponenya seperti berikut.



a. Arduino Uno




b. Sensor Fingerprint




c. Modul relay 2 Channel






d. Program Arduino IDE

#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>

int getFingerprintIDez();
int relay1 = 8;
int relay2 = 9;
int tanda;

//arduino uno
// pin #2 is IN from sensor (GREEN wire)
// pin #3 is OUT from arduino  (WHITE wire)
SoftwareSerial mySerial(2, 3);

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

void setup()
{

  Serial.begin(9600);
  Serial.println("fingertest");

  // set the data rate for the sensor serial port
  finger.begin(57600);

  if (finger.verifyPassword()) {
    Serial.println("Found fingerprint sensor!");
  } else {
    Serial.println("Did not find fingerprint sensor :(");
    while (1);
  }
  Serial.println("Waiting for valid finger...");

  pinMode(relay1,OUTPUT);
  digitalWrite(relay1,HIGH);
  pinMode(relay2,OUTPUT);
  digitalWrite(relay2,HIGH);

}

void loop()                 
{
  getFingerprintIDez();
  delay(50); 

  if((finger.fingerID == 1)&&(tanda == 0)){
  digitalWrite(relay1,LOW);
  tanda = 1;
  delay(50);
  finger.fingerID = 0;
  }
 
  if((finger.fingerID == 1)&&(tanda == 1)){
  digitalWrite(relay2,LOW);
  tanda = 2;
  delay(50);
  finger.fingerID = 0;
  }
 
  if((finger.fingerID == 1)&&(tanda == 2)){
  digitalWrite(relay1,HIGH);
  digitalWrite(relay2,HIGH);
  tanda = 0;
  delay(50);
  finger.fingerID = 0;
  }

}

uint8_t getFingerprintID() {
  uint8_t p = finger.getImage();
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image taken");
      break;
    case FINGERPRINT_NOFINGER:
      Serial.println("No finger detected");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      return p;
    case FINGERPRINT_IMAGEFAIL:
      Serial.println("Imaging error");
      return p;
    default:
      Serial.println("Unknown error");
      return p;
  }

  // OK success!

  p = finger.image2Tz();
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image converted");
      break;
    case FINGERPRINT_IMAGEMESS:
      Serial.println("Image too messy");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      return p;
    case FINGERPRINT_FEATUREFAIL:
      Serial.println("Could not find fingerprint features");
      return p;
    case FINGERPRINT_INVALIDIMAGE:
      Serial.println("Could not find fingerprint features");
      return p;
    default:
      Serial.println("Unknown error");
      return p;
  }

  // OK converted!
  p = finger.fingerFastSearch();
  if (p == FINGERPRINT_OK) {
    Serial.println("Found a print match!");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("Communication error");
    return p;
  } else if (p == FINGERPRINT_NOTFOUND) {
    Serial.println("Did not find a match");
    return p;
  } else {
    Serial.println("Unknown error");
    return p;
  }

  // found a match!
  Serial.print("Found ID #"); Serial.print(finger.fingerID);
  Serial.print(" with confidence of "); Serial.println(finger.confidence);
}

// returns -1 if failed, otherwise returns ID #
int getFingerprintIDez() {
  uint8_t p = finger.getImage();
  if (p != FINGERPRINT_OK)  return -1;

  p = finger.image2Tz();
  if (p != FINGERPRINT_OK)  return -1;

  p = finger.fingerFastSearch();
  if (p != FINGERPRINT_OK)  return -1;

  // found a match!
  Serial.print("Found ID #"); Serial.print(finger.fingerID);
  Serial.print(" with confidence of "); Serial.println(finger.confidence);

  return finger.fingerID;
}





e. VIDEO HASILNYA








Monitor Jarak Online Blynk dan Interface 7Segment

Monitor Jarak Online Blynk dan Interface 7Segment


       Pada kesempatan kali ini saya akan menjelaskan mengenai sebuah alat yang berbasis mikrokontroller untuk mengukur jarak secara online dengan interface 7Segment. alat ini sangat cocok sekali bagi yang ingin mencoba project berbasis IOT yang basic. alat ini menggunakan sebuah sensor jarak yaitu HC-SRF04. untuk lebih jelasnya berikut adalah program dan komponennya.




a. Wemos D1




b. Sensor Jarak HC-SRF04




c. Modul Interface 7Segment






d. Program Arduino IDE

#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <SPI.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
#define trigPin 4
#define echoPin 5

byte zero  = B00000011;
byte one   = B10011111;
byte two   = B00100101;
byte three = B00001101;
byte four  = B10011001;
byte five  = B01001001;
byte six   = B01000001;
byte seven = B00011111;
byte eight = B00000001;
byte nine  = B00001001;

long duration, distance;
int latchPin = D4;  //Pin connected to STR(pin 1) of HEF4094
int clockPin = D5; //Pin connected to CP(pin 3) of HEF4094
int dataPin = D6;  //Pin connected to D(pin 2) of HEF4094
int oe = D7;  //Pin connected to OE(pin 2) of HEF4094

int temp;
int x = 5;
int y;

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

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

SimpleTimer timer;

// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
{
 
  digitalWrite(trigPin, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin, HIGH);
//  delayMicroseconds(1000); - Removed this line
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;

  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V5, distance);

  temp = distance;
  int ribuan = temp / 1000;
  temp = temp % 1000;
  int ratusan = temp / 100;
  temp = temp % 100;
  int puluhan = temp / 10;
  int satuan = temp % 10;

 switch(ribuan){
   case 0:
   ribuan = zero;
   break;
   case 1:
   ribuan = one;
   break;
   case 2:
   ribuan = two;
   break;
   case 3:
   ribuan = three;
   break;
   case 4:
   ribuan = four;
   break;
   case 5:
   ribuan = five;
   break;
   case 6:
   ribuan = six;
   break;
   case 7:
   ribuan = seven;
   break;
   case 8:
   ribuan = eight;
   break;
   case 9:
   ribuan = nine;
   break; 
 }

 switch(ratusan){
   case 0:
   ratusan = zero;
   break;
   case 1:
   ratusan = one;
   break;
   case 2:
   ratusan = two;
   break;
   case 3:
   ratusan = three;
   break;
   case 4:
   ratusan = four;
   break;
   case 5:
   ratusan = five;
   break;
   case 6:
   ratusan = six;
   break;
   case 7:
   ratusan = seven;
   break;
   case 8:
   ratusan = eight;
   break;
   case 9:
   ratusan = nine;
   break; 
 }
 
 switch(puluhan){
   case 0:
   puluhan = zero;
   break;
   case 1:
   puluhan = one;
   break;
   case 2:
   puluhan = two;
   break;
   case 3:
   puluhan = three;
   break;
   case 4:
   puluhan = four;
   break;
   case 5:
   puluhan = five;
   break;
   case 6:
   puluhan = six;
   break;
   case 7:
   puluhan = seven;
   break;
   case 8:
   puluhan = eight;
   break;
   case 9:
   puluhan = nine;
   break; 
 }

 switch(satuan){
   case 0:
   satuan = zero;
   break;
   case 1:
   satuan = one;
   break;
   case 2:
   satuan = two;
   break;
   case 3:
   satuan = three;
   break;
   case 4:
   satuan = four;
   break;
   case 5:
   satuan = five;
   break;
   case 6:
   satuan = six;
   break;
   case 7:
   satuan = seven;
   break;
   case 8:
   satuan = eight;
   break;
   case 9:
   satuan = nine;
   break;
 }

 digitalWrite(latchPin, HIGH); //Pull latch HIGH to send data
 shiftOut(dataPin, clockPin, LSBFIRST, satuan);
 shiftOut(dataPin, clockPin, LSBFIRST, puluhan);
 shiftOut(dataPin, clockPin, LSBFIRST, ratusan);
 digitalWrite(latchPin, LOW); //Pull latch HIGH to send data
 delay(1000);

}



void setup()
{

  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
 
  // Debug console
  Serial.begin(9600);

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

 pinMode(latchPin, OUTPUT);
 pinMode(clockPin, OUTPUT);
 pinMode(dataPin, OUTPUT);
 pinMode(oe, OUTPUT);
 //digitalWrite(oe,LOW);
         
 digitalWrite(oe,HIGH);

  // Setup a function to be called every second
  timer.setInterval(1000L, sendSensor);
}

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





e. VIDEO HASILNYA










Monitor Suhu DHT11 Interface Blynk dan 7Segment WEMOS D1 ARDUINO

Monitor Suhu DHT11 Interface Blynk dan 7Segment WEMOS D1 ARDUINO


       Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang berbasis IOT dengan menggunakan interface Blynk dan 7segment untuk memonitor suhu secara realtime dan juga alat ini bisa dipantau secara online melalui aplikasi Blynk. alat ini menggunakan sensor DHT11 yang mana dapat mendeteksi 2 parameter sekaligus yaitu suhu dan kelembaban. untuk lebih jelasnya berikut adalah program dan daftar komponennya.




a. Wemos D1




b. Sensor Suhu dan Kelembaban DHT11





c. Interface 7Segment






d. Program Arduino IDE

#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <SPI.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
#include <DHT.h>

byte zero  = B00000011;
byte one   = B10011111;
byte two   = B00100101;
byte three = B00001101;
byte four  = B10011001;
byte five  = B01001001;
byte six   = B01000001;
byte seven = B00011111;
byte eight = B00000001;
byte nine  = B00001001;


int latchPin = D4;  //Pin connected to STR(pin 1) of HEF4094
int clockPin = D5; //Pin connected to CP(pin 3) of HEF4094
int dataPin = D6;  //Pin connected to D(pin 2) of HEF4094
int oe = D7;  //Pin connected to OE(pin 2) of HEF4094

int temp;
int x = 5;
int y;

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

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

#define DHTPIN 0          // D3 dan led di D4

// Uncomment whatever type you're using!
#define DHTTYPE DHT11     // DHT 11
//#define DHTTYPE DHT22   // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21   // DHT 21, AM2301

DHT dht(DHTPIN, DHTTYPE);
SimpleTimer timer;

// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
{
 
  float h = dht.readHumidity();
  float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit

  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
 
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V5, t);

  temp = t;
  int ribuan = temp / 1000;
  temp = temp % 1000;
  int ratusan = temp / 100;
  temp = temp % 100;
  int puluhan = temp / 10;
  int satuan = temp % 10;

 switch(ribuan){
   case 0:
   ribuan = zero;
   break;
   case 1:
   ribuan = one;
   break;
   case 2:
   ribuan = two;
   break;
   case 3:
   ribuan = three;
   break;
   case 4:
   ribuan = four;
   break;
   case 5:
   ribuan = five;
   break;
   case 6:
   ribuan = six;
   break;
   case 7:
   ribuan = seven;
   break;
   case 8:
   ribuan = eight;
   break;
   case 9:
   ribuan = nine;
   break; 
 }

 switch(ratusan){
   case 0:
   ratusan = zero;
   break;
   case 1:
   ratusan = one;
   break;
   case 2:
   ratusan = two;
   break;
   case 3:
   ratusan = three;
   break;
   case 4:
   ratusan = four;
   break;
   case 5:
   ratusan = five;
   break;
   case 6:
   ratusan = six;
   break;
   case 7:
   ratusan = seven;
   break;
   case 8:
   ratusan = eight;
   break;
   case 9:
   ratusan = nine;
   break; 
 }
 
 switch(puluhan){
   case 0:
   puluhan = zero;
   break;
   case 1:
   puluhan = one;
   break;
   case 2:
   puluhan = two;
   break;
   case 3:
   puluhan = three;
   break;
   case 4:
   puluhan = four;
   break;
   case 5:
   puluhan = five;
   break;
   case 6:
   puluhan = six;
   break;
   case 7:
   puluhan = seven;
   break;
   case 8:
   puluhan = eight;
   break;
   case 9:
   puluhan = nine;
   break; 
 }

 switch(satuan){
   case 0:
   satuan = zero;
   break;
   case 1:
   satuan = one;
   break;
   case 2:
   satuan = two;
   break;
   case 3:
   satuan = three;
   break;
   case 4:
   satuan = four;
   break;
   case 5:
   satuan = five;
   break;
   case 6:
   satuan = six;
   break;
   case 7:
   satuan = seven;
   break;
   case 8:
   satuan = eight;
   break;
   case 9:
   satuan = nine;
   break;
 }

 digitalWrite(latchPin, HIGH); //Pull latch HIGH to send data
 shiftOut(dataPin, clockPin, LSBFIRST, satuan);
 shiftOut(dataPin, clockPin, LSBFIRST, puluhan);
 shiftOut(dataPin, clockPin, LSBFIRST, ratusan);
 digitalWrite(latchPin, LOW); //Pull latch HIGH to send data
 delay(1000);

}


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", 8442);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8442);

  dht.begin();

 pinMode(latchPin, OUTPUT);
 pinMode(clockPin, OUTPUT);
 pinMode(dataPin, OUTPUT);
 pinMode(oe, OUTPUT);
 //digitalWrite(oe,LOW);
         
 digitalWrite(oe,HIGH);

  // Setup a function to be called every second
  timer.setInterval(1000L, sendSensor);
}

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




e. VIDEO HASILNYA








Cara Mengakses Robot Lengan (ARM Robot) ARDUINO

Cara Mengakses Robot Lengan (ARM Robot) ARDUINO


         Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara mengakses robot lengan yang dilengkapi dengan mini servo sg90 sebanyak 4 buah, keempat buah servo tersebut memiliki fungsi gerakan yang berbeda misal untuk servo 1 adalah untuk gerak kanan kiri dan servo 2 untuk gerak maju mundur kemudian servo 3 untuk gerak atas bawah dan yang servo 4 untuk japit lepas. untuk lebih jelasnya berikut adalah program dan komponennya.



a. Arduino Uno





b.  Mini Servo SG90






c. Program Arduino IDE (Robot)

#include<Wire.h>
#include<Servo.h>

Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo5;

int a;
int b;
int c;
int d;
int e;

void setup(){
myservo1.attach(11);
myservo2.attach(9);
myservo3.attach(10);
myservo5.attach(7);

 myservo1.write(70);
 myservo2.write(130);
 myservo3.write(150);
 myservo5.write(150);
 delay(3000);
}


void loop(){
  
kanan();  
turun();
maju();
japit();
mundur();
naik();

kiri();  
turun();
maju();
lepas();
mundur();
naik();

}

void kanan(){
  for(a=70;a<=150;a++){
  myservo1.write(a);
  delay(50);
  }
  return;
}

void kiri(){
  for(a=150;a>=70;a--){
  myservo1.write(a);
  delay(50);
  }
  return;
}

void mundur(){
  for(b=130;b>=100;b--){
  myservo2.write(b);
  delay(50);
  }
  return;
}

void maju(){
  for(b=100;b<=130;b++){
  myservo2.write(b);
  delay(50);
  }
  return;
}

void turun(){
  for(c=150;c>=90;c--){
  myservo3.write(c);
  delay(50);
  }
  return;
}

void naik(){
  for(c=90;c<=150;c++){
  myservo3.write(c);
  delay(50);
  }
  return;
}


void japit(){
  for(e=150;e>=120;e--){
  myservo5.write(e);
  delay(50);
  }
  return;
}


void lepas(){
  for(e=120;e<=150;e++){
  myservo5.write(e);
  delay(50);
  }
  return;
}





d. Program Arduino IDE (Test Servo)

#include<Wire.h>
#include <Servo.h> 

Servo myservo;

void setup(){
myservo.attach(9);
myservo.write(100);
}

void loop(){  
  myservo.write(100);
  delay(1000);
  myservo.write(150);
  delay(1000);
}





e. VIDEO HASILNYA