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.
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
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.
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.
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);
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);
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";
// 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);
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.