YAKA Creative Dsign_Membuat Program WIFI_CAR MESIN RUMPUT
KATA PENGANTAR
Segala puji senantiasa disampaikan kepada Allah SWT yang
telah memberikan kekuatan dan rahmat-Nya sehingga penyusunan laporan kegiatan
KKSI ddi bidang Applied Robotics ini dapat berjalan lancar. Laporan praktik
kerja lapangan ini berjudul WiFi Car Pemotong Rumput.
Laporan praktik kerja lapangan ini disusun dengan kerja keras
tim dan pihak-pihak yang turut berperan di dalamnya. Karena itu, secara khusus
kami mengucapkan terima kasih kepada pihak-pihak yang turut membantu dalam
menyelesaikan penyusunan laporan ini.
1. Bapak Handri Zakki S.Pd selaku Kepala Sekolah SMK YADIKA KALIJATI
2. Bapak Juansah stiadi S,Kom selaku pendamping selama kegiatan KKSI di
SMK YADIKA KALIJATI
3. Teman-teman satu tim.
Laporan ini memberikan penjelasan tentaang proses kamu dalam
merancang dan membangun WiFi Car Pemotong Rumput. Apa saja yang kami kerjakan dan
bagaimana proses kami dalam project KKSI ini, akan dijelaskan secara lengkap
dalam laporan ini.
Selama proses penyusunan dan hasil yang disajikan dalam
bentuk laporan ini, kami menyadari bahwa masih banyak kesalahan. Tidak ada
manusia yang sempurna, karena itu kami senantiasa memohon maaf kepada pembaca
apabila masih menemukan kesalahan dalam penulisan.
Kami juga mengharapkan adanya kritik dan saran membangun dari
pembaca, dengan begitu dapat meningkatkan dan membantu penulis untuk terus
berkembang di masa depan.
Akhir kata, semoga laporan yang kami susun ini dapat menambah
wawasan bagi pembaca secara umum dan penulis secara khusus. Semoga dari laporan
ini dapat memberikan manfaat bagi penulis lain.
Kalijati, 3 Agustus 2021
SMK
YADIKA KALIJATI
BAB I
PENDAHULUAN
A. Latar Belakang
Line
Follower robot
Line Follower robot merupakan
jenis robot yang
termasuk dalam kategori robot mobile
yang di desain untuk bekerja secara autonomous atau tanpa
dikendalikan dan memiliki kemampuan untuk mendeteksi dan bergerak mengikuti (follows)
garis yang ada di permukaan. Sistem kendali yang digunakan dalam robot ini
dirancang untuk bisa mendeteksi jalur (garis yang berwarna hitam) yang ada dan
melakukan gerakan agar tetap berada dalam jalur.
Pada umumnya robot
ini dibuat untuk kepentingan penelitian, kompetisi, dan industry. Akan tetapi
semakin berkembangnya zaman, robot ini banyak diminati bagi mereka yang baru
belajar dan terjun di bidang robotika. Bahkan sekarang banyak kompetisi
robot yang di adakan di universitas – universitas Indonesia, seperti kompetisi
line follower di Universitas Gajah Mada (UGM).
Dalam dunia
industri, robot ini berguna untuk mengangkat barang dari satu tempat ke tempat
lain secara autonomous dalam arti kata lain robot ini tidak perlu di kemudikan
atau di kendalikan oleh seseorang sehingga dapat mengurangi resiko kesalahan
manusia yang sering terjadi [2]. Salah satu alasan mengapa line
follower robot banyak diminati adalah karena dengan hanya menggunakan
teknik basic line following saja, peluangnya untuk
berkembang di masa depan yang masih sangat besar. Dalam pengambanganya di masa
depan, bis-bis perkotaan tidak lagi memerlukan pengemudi dan semua telah
di atur dalam sistematis line following robot, dimana perhitungan waktu yang
pasti, sensor-sensor yang secara terus menerus memberi data ke pusat, dan
tambahan teknologi collision avoidance dapat mengurangi
angka kecelakaan akibat kelalaian bila manusia yang mengemudikanya.
Arduino
Arduino adalah mikrokontroller
/ pengendali mikro papan tunggal(single board) yang
bersifat sumber terbuka dan menjadi salah satu
proyek Open Source Hardware yang
paling populer. Dirancang untuk memudahkan penggunaan elektronik dalam berbagai
bidang. Perangkat kerasnya memiliki prosesor Atmel AVR .
Softwarenya terdiri dari beberapa alat yakni Integrated Development
Environment(IDE), Text-Editor, Compiler,
Serial Monitor, dan Serial ISP Programmer.
Arduino juga merupakan senarai perangkat keras terbuka
yang ditujukan kepada siapa saja yang ingin membuat purwarupa peralatan
elektronik interaktif berdasarkan hardware dan software yang fleksibel dan
mudah digunakan. Pada aplikasi Arduino, Mikrokontroler diprogram menggunakan
bahasa pemrograman C atau C++, dengan pustaka khas arduino. Karena
sifatnya yang terbuka maka siapa saja dapat mengunduh skema hardware arduino
dan membangunnya.
Arduino menggunakan keluarga mikrokontroler ATMega yang dirilis
oleh Atmel sebagai basis, namun ada individu/perusahaan yang membuat clone arduino
dengan menggunakan mikrokontroler lain dan tetap kompatibel dengan arduino pada
level hardware. Untuk fleksibilitas, program dimasukkan melalui bootloader
meskipun ada opsi untuk mem-bypass bootloader dan menggunakan pengunduh untuk
memprogram mikrokontroler secara langsung melalui port ISP.
Sejarah Singkat
Arduino
Semuanya berawal dari sebuah thesis yang dibuat oleh Hernando Barragan,
di Institute Ivrea, Italia pada
tahun 2005, dikembangkan oleh Massimo Banzi dan David Cuartielles dan diberi nama Arduin
of Ivrea. Lalu diganti nama menjadi Arduino yang dalam bahasa Italia
berarti teman yang berani.
Tujuan awal dibuat
Arduino adalah untuk membuat perangkat mudah dan murah, dari perangkat yang ada
saat itu. Dan perangkat tersebut ditujukan untuk para siswa yang akan membuat
perangkat desain dan interaksi. Saat ini tim pengembangnya adalah Massimo
Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis, dan
Nicholas Zambetti. Mereka mengupayakan 4 hal dalam Arduino ini, yaitu:
1.
Harga terjangkau
2.
Dapat dijalankan
diberbagai sistem operasi, Windows, Linux, Mac, dan sebagainya.
3.
Sederhana, dengan bahasa
pemograman yang mudah bisa dipelajari orang awam, bukan untuk orang teknik
saja.
4.
Open Source, hardware
maupun software.
Sifat Arduino yang Open Source, membuat Arduino berkembang sangat cepat.
Sehingga banyak lahir perangkat-perangkat sejenis Arduino. Seperti DFRDuino
atau Freeduino, sedangkan untuk lokal ada SENTSOR Uno Plus yang
dibuat oleh SENTSOR Electronics Indonesia, CipaDuino yang dibuat oleh SKIR70,
MurmerDuino yang dibuat oleh Robot Unyil, ada lagi AViShaDuino yang salah satu
pembuatnya adalah Admin Kelas Robot.
Sampai saat ini pihak resmi, sudah membuat berbagai jenis-jenis Arduino.
Mulai dari yang paling mudah dicari dan paling banyak digunakan, yaitu Arduino
Uno. Hingga Arduino yang sudah menggunakan ARM Cortex, berbentuk Mini PC.
Hingga saat ini sudah ada ratusan ribu Arduino yang digunakan di dunia sejak
tahun 2011. Arduino juga sudah dipakai oleh perusahaan-perusahaan besar,
contohnya Google menggunakan Arduino untuk Accessory Development Kit, NASA
memakai Arduino untuk prototypin, ada lagi Large Hadron Colider memakai Arduino
dalam beberapa hal untuk pengumpulan data.
Salah satu komponen dari arduino (yakni text-editor)
dibangun menggunakan Java. Hal ini mengakibatkan
banyak yang mengira bahasa arduino adalah bahasa baru turunan dari Java.
Arduino sebenarnya menggunakan bahasa C / C++, dengan compiler avr-gcc yang sama dengan
yang dipakai pada avr-studio. Aturan proses kompilasi sudah disediakan
oleh aplikasi Arduino, dimana berkas kode
utama dengan ekstensi ino akan hubungkan dengan berkas-berkas
lain. Telah disediakan pula rutin utama C++ (fungsi main) yang
memanggil fungsi setup dan loop dari file
kode utama berekstensi ino.
B. Identifikasi Masalah
Dari beberapa uraian yang dikemukakan pada latar
belakang, maka dapat
diidentifikasi masalah-masalah sebagai berikut :
1. Arduino cukup rumit untuk pemula yang belum
mengenal sistem kelistrikan.
2. Ada beberapa galat yang cukup sulit di temukan
solusinya.
3. Internet yang terkadang tidak stabil.
4. Beberapa komponen yang belum pernah di pelajari di
sekolah.
C. Pembatasan Masalah
Line Follower memiliki sistem automatisasi. Dengan
kembangan ide kami, diputuskan untuk membuat WiFi Car yang di aplikasikan
sebagai pemotong rumput. Oleh karena itu, penulis membatasi penelitian hanya
pada:
1. Analisis sistem yang digunakan pada Arduino yang
telah diterapkan pada WiFi Car Pemotong Rumput.
2. Perancangan WiFi Car berdasarkan sistem Arduino.
D. Rumusan Masalah
Dari beberapa uraian yang
penulis kemukakan pada bagian latar belakang
tersebut, penulis dapat
merumuskan permasalahannya sebagai berikut :
1. Kenapa membuat WiFi Car Pemotong Rumput?
2. Bagaimana proses perancangan, pembuatan dan uji
coba WiFi Car?
E. Tujuan
Berdasarkan rumusan
masalah tersebut, maka dapat diketahui tujuan
WiFi Car kami adalah
sebagai berikut :
1. Untuk memudahkan pengguna untuk memotong rumput.
2. Untuk ikut serta dalam perkembangan industri 4.0.
F. Manfaat
Adapun manfaat yang dapat
diambil dari project ini adalah sebagai berikut:
1. Manfaat Teoritis
a. Project ini diharapkan dapat menambah dan
mengembangkan
wawasan, informasi,
pemikiran, dan ilmu pengetahuan kepada pihak lain
yang berkepentingan.
b. Sebagai acuan dan pertimbangan bagi kami untuk
project yang selanjutnya
khususnya yang berkaitan
dengan Arduno dan elektronika.
2. Manfaat Praktis
a. WiFi Car Pemotong Rumput, diharapkan menjadi bahan
pertimbangan dan
dapat diterapkan guna
meningkatkan efisiensi dalam penjualan.
b. Bagi tim, diharapkan dapat menerapkan ilmu yang
diperoleh dan berguna bagi kemajuan ilmu pengetahuan.
BAB II
LANDASAN TEORI
A. Kajian Teori
1. Komponen
I. ESP8266
ESP8266 merupakan
modul wifi yang berfungsi sebagai perangkat tambahan mikrokontroler
seperti Arduino agar dapat terhubung langsung dengan
wifi dan membuat koneksi TCP/IP.
Modul ini membutuhkan daya sekitar 3.3v dengan memiliki tiga mode wifi
yaitu Station, Access Point dan Both (Keduanya). Modul ini juga dilengkapi
dengan prosesor, memori dan GPIO dimana jumlah pin bergantung dengan
jenis ESP8266 yang kita gunakan. Sehingga modul ini
bisa berdiri sendiri tanpa menggunakan mikrokontroler apapun karena sudah
memiliki perlengkapan layaknya mikrokontroler.
Firmware default yang digunakan oleh perangkat ini menggunakan AT
Command, selain itu ada beberapa Firmware SDK yang digunakan oleh perangkat ini
berbasis opensource yang diantaranya adalah sebagai berikut :
·
NodeMCU dengan menggunakan basic programming lua
·
MicroPython dengan menggunakan basic programming python
·
AT Command dengan menggunakan perintah perintah AT
command
Untuk pemrogramannya sendiri kita bisa menggunakan ESPlorer untuk
Firmware berbasis NodeMCU dan menggunakan putty
sebagai terminal control untuk AT Command.
Selain itu kita bisa memprogram perangkat ini menggunakan Arduino
IDE. Dengan menambahkan library ESP8266 pada
board manager kita dapat dengan mudah memprogram dengan basic program arduino.
Ditambah lagi dengan harga yang cukup terjangkau, kamu dapat membuat
berbagai projek dengan modul ini. Maka dari itu banyak orang yang menggunakannya
modul ini untuk membuat projek Internet of Thinking (IoT).
II. ESP32
ESP32 adalah
mikrokontroller berharga rendah dan hemat energi dengan wifi dan dual-mode
bluetooth terintegrasi. Generasi ESP32 menggunakan mikroprosesor Tensilica
Xtensa LX6 sebagai inti. Baik dalam mode single-core maupun dual-core.
ESP32 dibuat oleh Espressif Systems, perusahaan berbasis di
Shanghai, Tiongkok. Menggunakan TSMC sebagai pemproduksi inti dengan besar
40nm.
III. Dinamo Motor
Dinamo atau istilah lainnya disebut sebagai
generator adalah sebuah mesin listrik yang
dapat mengubah energi kinetik menjadi energi
listrik. Konsep kerja dinamo sama dengan generator yaitu
memutar kumparan di dalam medan
magnet atau memutar magnet di dalam kumparan. Bagian dinamo yang
berputar disebut rotor, sedangkan bagian dinamo yang tidak bergerak disebut
stator. Pada posisi ini dinamo akan menerima energi dalam bentuk gerak dan
mengeluarkannya menjadi sebuah aliran listrik statis. Pada konsep yang
sederhana, dinamo terdiri dari sebuah lilitan kawat yang diletakan di dalam
kumaparan atau medan magnet, hal ini dapat ditemui pada pembangkit listrik
tenaga air, di mana aliran air akan diarahkan pada turbin untuk
menghasilkan gerak
rotasi yang berulang-ulang.
IV. Baterai
Baterai adalah perangkat yang terdiri dari satu atau
lebih sel elektrokimia dengan koneksi eksternal
yang disediakan untuk memberi daya pada perangkat listrik seperti senter, ponsel, dan mobil
listrik.[1] Ketika
baterai memasok daya listrik, terminal positifnya adalah katode dan
terminal negatifnya adalah anoda.[2] Terminal
bertanda negatif adalah sumber elektron yang akan mengalir melalui rangkaian
listrik eksternal ke terminal positif. Ketika baterai dihubungkan ke beban
listrik eksternal, reaksi redoks mengubah reaktan berenergi tinggi ke produk
berenergi lebih rendah, dan perbedaan energi-bebas dikirim ke sirkuit eksternal
sebagai energi listrik.[3] Secara
historis istilah "baterai" secara khusus mengacu pada perangkat yang
terdiri dari beberapa sel, namun penggunaannya telah berkembang untuk
memasukkan perangkat yang terdiri dari satu sel.[4]
Baterai primer (sekali
pakai) digunakan satu kali kemudian dibuang; bahan elektrode berubah
secara ireversibel selama pelepasan. Contoh umum adalah baterai alkaline yang
digunakan untuk senter dan banyak perangkat elektronik portabel. Baterai
sekunder (dapat diisi ulang) dapat habis dan diisi ulang beberapa kali
menggunakan arus listrik yang diterapkan; komposisi asli dari elektrode dapat
dikembalikan dengan arus balik. Contohnya termasuk baterai asam timbal yang digunakan dalam
kendaraan dan baterai ion-litium yang digunakan untuk elektronik
portabel seperti laptop dan ponsel.
Kutub yang bertanda
positif menandakan bahwa memiliki energi potensial yang lebih tinggi daripada
kutub bertanda negatif. Kutub bertanda negatif adalah sumber elektron yang
ketika disambungkan dengan rangkaian eksternal akan mengalir dan memberikan
energi ke peralatan eksternal. Ketika baterai dihubungkan dengan rangkaian eksternal, elektrolit dapat
berpindah sebagai ion di dalamnya, sehingga terjadi reaksi kimia pada kedua
kutubnya. Perpindahan ion dalam baterai akan mengalirkan arus listrik keluar dari
baterai sehingga menghasilkan kerja.[5] Meski
sebutan baterai secara teknis adalah alat dengan beberapa sel,
sel tunggal juga umumnya disebut baterai.
Baterai hadir dalam
berbagai bentuk dan ukuran, dari sel miniatur yang digunakan untuk alat
bantu dengar dan arloji hingga kecil, sel tipis yang digunakan
dalam ponsel cerdas, hingga baterai asam timbal besar atau baterai
litium-ion dalam kendaraan, dan pada ukuran paling besar, bank baterai besar
seukuran ruangan yang menyediakan daya siaga atau darurat untuk pertukaran telepon dan pusat data komputer.
Menurut perkiraan
pada tahun 2005, industri baterai di seluruh dunia menghasilkan US$48 miliar dalam
penjualan setiap tahun,[6] dengan
pertumbuhan tahunan 6%.
Baterai
memiliki energi spesifik yang
jauh lebih rendah (energi per satuan massa) daripada bahan
bakar umum seperti bensin. Pada mobil, ini sedikit diimbangi oleh
efisiensi yang lebih tinggi dari motor listrik dalam mengubah energi kimia
menjadi pekerjaan mekanik, dibandingkan dengan mesin pembakaran.
V. ESP32 CAM
Ini
adalah modul yang dapat Anda gunakan dengan banyak proyek, dan dengan Arduino.
Merupakan modul lengkap dengan mikrokontroler terintegrasi, yang dapat
membuatnya bekerja secara mandiri. Selain konektivitas WiFi + Bluetooth, modul
ini juga memiliki kamera video terintegrasi, dan slot microSD untuk
penyimpanan.
VI. DRIVER MOTOR
NE
Motor DC adalah
Sebuah Actuator (penggerak) yang yang berfungsi
menghasilkan Perputaran mekanis. Motor DC pada dasarnya adalah komponen
elektromekanik yang mengubah besaran listrik menjadi besaran fisik yaitu
gerakan mekanis.
2. ALAT
I. Obeng
II. Pisau
III. Gunting
IV. Lem tembak
V. Lem power glue
VI. Acrylic Epoxy spray paint
VII. Tang
VIII. Solder
IX. Tinol
X. Konektor batre kotak 9 volt sebanyak 7
XI. Saklar switch on of sebanyak 4 buah
XII. Kabel
XIII. Tako meter digital
BAB III
PERANCANGAN PROJECT
A.
Identifikasi masalah
1. Arduino cukup rumit untuk pemula yang belum
mengenal sistem kelistrikan.
2. Ada beberapa galat yang cukup sulit di temukan
solusinya.
3. Internet yang terkadang
tidak stabil.
4. Tegangan daya yang
kurang sehingga mobil tidak bisa berjalan dengan baik
5. Adanya masalah terkait
bobot yang berlebih
B.
Identifikasi metode pemecahan masalah
1.
Mempelajari arduino itu sendiri dan mengenal sistem kelistrikan
2.
Mencari berbagai pemecahan masalah di beberapa forum diskusi
dan mencoba berbagai solusi
3.
Mencari sumber internet yang lain
4.
Output daya diperbesar
5.
Mengurangi beberapa bagian
C.
Pelaksanaan pemecahan masalah
1.
Mempelajari arduino itu sendiri dan mengenal lebih jauh sistem kelistrikan
2.
Mengubah beberapa script dan setting yang menyebabkan galat
3.
Menggunakan data seluler pribadi
4.
Mengganti baterai powerbank menjadi baterai kotak yang memiliki teganga lebih tinggi
5.
Ada beberapa bagian yang tidak perlu digunakan dan dibuang
sehingga mobil lebih mudah untuk bergerak
KESIMPULAN
Berdasarkan
pengujian dan pembahasan yang telah dilakukan, maka didapatkan kesimpulan
sebagai berikut :
1. Pemrograman
Mikrokontroler menggunakan pengembang Arduino adalah membangun fungsi dan
prosedur yang akan dilakukan oleh mikrokontroler pada setiap kondisi yang telah
ditetapkan.
2. Aplikasi pengembang Arduino selain dapat
digunakan untuk membangun program pada mikrokontroler, juga dilengkapi dengan
serial monitor. Serial monitor digunakan untuk memonitoring aktivitas transfer
data yang terjadi pada mikrokontroler.
3. Jarak
transmisi wifi pada ruangan dengan banyak halangan (dinding, kotak, pintu, dan
hambatan lain) bisa mencapai sekitar 10 meter.
4. Pemrograman
sistem kendali menggunakan pengembang Blynk adalah membangun aplikasi sistem
kendali pada smartphone android yang digunakan untuk mengontrol mesin mobil
pada alat melalui komunikasi Wifi satu arah dengan modul ESP yang terpasang
pada Arduino
PUSTAKA
[1] Andrianto, H. & Darmawan, A. (2017).
Arduino Belajar Cepat dan Pemrograman. Bandung: Informatika.
[2] Arduino.
(2015). Arduino UNO. [online]. Tersedia di
http://www.arduino.cc/en/Main/ArduinoBoardUno. [Diakses 12 Mei 2015].
[3] Ahyadi, Zaiyan. (2018). Belajar
Antarmuka Arduino Secara Cepat Dari Contoh.
Yogyakarta:
Poliban Press.
[4] Ananda, Ricki. (2018). 40 Project
Robotic dan Aplikasi Android. Yogyakarta: Deepublish.
[5]
Romansyah, Moch. Alvianto. Prototype Alat IoT
(Internet Of Things) Untuk Pengendali Dan Pemantau Kendaraan Secara Realtime.
Surakarta: Electronics Theses and Dissertations (ETD-db) Universitas
Muhammadiyah Surakarta, 2016
LAMPIRAN
Pembimbing
:
1. Juansah
Stiadi S,Kom
Team :
1. Putra
Pribadi Sulaeman
2. Toufik
3. Muhammad
Mifzal Fayyadh
4. Junaedi
5. Chandra
Maretiandika Nurdin
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
//Motor PINs
#define ENA D0
#define IN1 D1
#define IN2 D2
#define IN3 D3
#define IN4 D4
#define ENB D5
bool forward = 0;
bool backward = 0;
bool left = 0;
bool right = 0;
int Speed;
char auth[] = "rP1jYZzcYLRB3nNoeGVQ7qLabRnTcAwH"; //Enter your Blynk application auth token
char ssid[] = "RKS_JS"; //Enter your WIFI name
char pass[] = "12345678"; //Enter your WIFI passowrd
void setup() {
Serial.begin(9600);
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(ENB, OUTPUT);
Blynk.begin(auth, ssid, pass);
}
BLYNK_WRITE(V0) {
forward = param.asInt();
}
BLYNK_WRITE(V1) {
backward = param.asInt();
}
BLYNK_WRITE(V2) {
left = param.asInt();
}
BLYNK_WRITE(V3) {
right = param.asInt();
}
BLYNK_WRITE(V4) {
Speed = param.asInt();
}
void smartcar() {
if (forward == 1) {
carforward();
Serial.println("carforward");
} else if (backward == 1) {
carbackward();
Serial.println("carbackward");
} else if (left == 1) {
carturnleft();
Serial.println("carfleft");
} else if (right == 1) {
carturnright();
Serial.println("carright");
} else if (forward == 0 && backward == 0 && left == 0 && right == 0) {
carStop();
Serial.println("carstop");
}
}
void loop() {
Blynk.run();
smartcar();
}
void carforward() {
analogWrite(ENA, Speed);
analogWrite(ENB, Speed);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void carbackward() {
analogWrite(ENA, Speed);
analogWrite(ENB, Speed);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void carturnleft() {
analogWrite(ENA, Speed);
analogWrite(ENB, Speed);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void carturnright() {
analogWrite(ENA, Speed);
analogWrite(ENB, Speed);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void carStop() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
CODE_PEMOTONG RUMPUT
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
//Motor PINs
#define ENA D0
#define IN1 D1
#define IN2 D2
#define IN3 D3
#define IN4 D4
#define ENB D5
bool mesinPemotong = 0;
int Speed;
char auth[] = "rP1jYZzcYLRB3nNoeGVQ7qLabRnTcAwH"; //Enter your Blynk application auth token
char ssid[] = "RKS_JS"; //Enter your WIFI name
char pass[] = "12345678"; //Enter your WIFI passowrd
void setup() {
Serial.begin(9600);
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(ENB, OUTPUT);
Blynk.begin(auth, ssid, pass);
}
BLYNK_WRITE(V6) {
mesinPemotong= param.asInt();
}
BLYNK_WRITE(V7) {
Speed = param.asInt();
}
void smartcar() {
if (mesinPemotong == 1) {
carmesinPemotong();
Serial.println("carmesinPemotong");
} else if (mesinPemotong == 0) {
carStop();
Serial.println("carstop");
}
}
void loop() {
Blynk.run();
smartcar();
}
void carmesinPemotong() {
analogWrite(ENA, Speed);
analogWrite(ENB, Speed);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void carStop() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
CODE CAMERA
#include "esp_camera.h"
#include <WiFi.h>
//
// WARNING!!! PSRAM IC required for UXGA resolution and high JPEG quality
// Ensure ESP32 Wrover Module or other board with PSRAM is selected
// Partial images will be transmitted if image exceeds buffer size
//
// Select camera model
//#define CAMERA_MODEL_WROVER_KIT // Has PSRAM
//#define CAMERA_MODEL_ESP_EYE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM
//#define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM
//#define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_ESP32CAM // No PSRAM
#define CAMERA_MODEL_AI_THINKER // Has PSRAM
//#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM
#include "camera_pins.h"
const char* ssid = "RKS_JS";
const char* password = "12345678";
void startCameraServer();
void setup() {
Serial.begin(115200);
Serial.setDebugOutput(true);
Serial.println();
camera_config_t config;
config.ledc_channel = LEDC_CHANNEL_0;
config.ledc_timer = LEDC_TIMER_0;
config.pin_d0 = Y2_GPIO_NUM;
config.pin_d1 = Y3_GPIO_NUM;
config.pin_d2 = Y4_GPIO_NUM;
config.pin_d3 = Y5_GPIO_NUM;
config.pin_d4 = Y6_GPIO_NUM;
config.pin_d5 = Y7_GPIO_NUM;
config.pin_d6 = Y8_GPIO_NUM;
config.pin_d7 = Y9_GPIO_NUM;
config.pin_xclk = XCLK_GPIO_NUM;
config.pin_pclk = PCLK_GPIO_NUM;
config.pin_vsync = VSYNC_GPIO_NUM;
config.pin_href = HREF_GPIO_NUM;
config.pin_sscb_sda = SIOD_GPIO_NUM;
config.pin_sscb_scl = SIOC_GPIO_NUM;
config.pin_pwdn = PWDN_GPIO_NUM;
config.pin_reset = RESET_GPIO_NUM;
config.xclk_freq_hz = 20000000;
config.pixel_format = PIXFORMAT_JPEG;
// if PSRAM IC present, init with UXGA resolution and higher JPEG quality
// for larger pre-allocated frame buffer.
if(psramFound()){
config.frame_size = FRAMESIZE_UXGA;
config.jpeg_quality = 10;
config.fb_count = 2;
} else {
config.frame_size = FRAMESIZE_SVGA;
config.jpeg_quality = 12;
config.fb_count = 1;
}
#if defined(CAMERA_MODEL_ESP_EYE)
pinMode(13, INPUT_PULLUP);
pinMode(14, INPUT_PULLUP);
#endif
// camera init
esp_err_t err = esp_camera_init(&config);
if (err != ESP_OK) {
Serial.printf("Camera init failed with error 0x%x", err);
return;
}
sensor_t * s = esp_camera_sensor_get();
// initial sensors are flipped vertically and colors are a bit saturated
if (s->id.PID == OV3660_PID) {
s->set_vflip(s, 1); // flip it back
s->set_brightness(s, 1); // up the brightness just a bit
s->set_saturation(s, -2); // lower the saturation
}
// drop down frame size for higher initial frame rate
s->set_framesize(s, FRAMESIZE_QVGA);
#if defined(CAMERA_MODEL_M5STACK_WIDE) || defined(CAMERA_MODEL_M5STACK_ESP32CAM)
s->set_vflip(s, 1);
s->set_hmirror(s, 1);
#endif
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
startCameraServer();
Serial.print("Camera Ready! Use 'http://");
Serial.print(WiFi.localIP());
Serial.println("' to connect");
}
void loop() {
// put your main code here, to run repeatedly:
delay(10000);
}

Comments
Post a Comment