Proyek ini adalah Sistem Keamanan Berbasis Arduino yang terdiri dari Arduino Uno, motor servo, sensor ultrasonik, dan buzzer piezoelektrik.
Di sini, sensor ultrasonik merasakan objek yang berada dalam jangkauannya, yang mengaktifkan bel. Data sensor ini juga dimasukkan ke dalam perangkat lunak Processing IDE, yang membuat peta grafis.
Motor servo digunakan untuk memutar sensor ultrasonik sehingga mencakup area yang luas.
Ini adalah proyek yang cukup sederhana dan dapat diselesaikan dalam waktu satu jam.
Setelah menyelesaikan koneksi ini, tempatkan seluruh rangkaian di dalam kotak seperti yang ditunjukkan pada gambar.
Maka saatnya untuk membuat kode.
Kode
- Sistem Keamanan_IDE
- Memproses
Sistem Keamanan_IDEC9Search
#include . int tPin =2;int ePin =3;int buz =10;int d1,d2;int i =0;int sdistance;Servo myServo; void setup() { Serial.begin(9600); pinMode(tPin, OUTPUT); pinMode(ePin, INPUT); pinMode(buz,OUTPUT); myServo.attach (9); }void loop() { untuk(i=0;i<=180;i +=10) { myServo.write(i); penundaan (30); d2 =hitungJarak(); Serial.print(i); Serial.print(","); Serial.print(d2); Serial.print("."); } untuk(i=180;i>0; i-=10){ myServo.write(i); penundaan (30); d2 =hitungJarak(); Serial.print(i); Serial.print(","); Serial.print(d2); Serial.print("."); }}int hitungJarak(){ digitalWrite(tPin,HIGH); penundaan (1000); digitalWrite(tPin, RENDAH); d1 =pulseIn(ePin, TINGGI); d2 =d1 * 0,0171821306; if (d2 <10) { digitalWrite(buz,TINGGI); } else { digitalWrite(buz,RENDAH); } kembalikan d2; }
MemprosesJava
import processing.serial.*; // mengimpor library untuk komunikasi serialimport java.awt.event.KeyEvent; // mengimpor perpustakaan untuk membaca data dari port serialimport java.io.IOException;Serial myPort; // mendefinisikan Serial Obyek// men-defubes variableString angle="";String distance="";String data="";String noObject;float pixsDistance;int iAngle, iDistance;int index1=0;int index2=0;PFont orcFont; void setup() { ukuran (1366, 768); // ***UBAH INI KE RESOLUSI LAYAR ANDA*** smooth(); myPort =Serial baru(ini,"COM3", 9600); // memulai komunikasi serial myPort.bufferUntil('.'); // membaca data dari serial port hingga karakter '.'. Jadi sebenarnya ini berbunyi:angle,distance.}void draw() { fill(98,245,31); // mensimulasikan blur dan slow fade dari garis bergerak noStroke(); isi (0,4); rect(0, 0, lebar, tinggi-tinggi*0,065); isi(98,245,31); // warna hijau // memanggil fungsi untuk menggambar radar drawRadar(); drawLine(); drawObject(); drawText();}void serialEvent (Serial myPort) { // mulai membaca data dari Serial Port // membaca data dari Serial Port hingga karakter '.' dan memasukkannya ke dalam variabel String "data". data =myPort.readStringUntil('.'); data =data.substring(0,data.panjang()-1); indeks1 =data.indexOf(","); // cari karakter ',' dan masukkan ke dalam variabel "index1" angle=data.substring(0, index1); // membaca data dari posisi "0" ke posisi variabel index1 atau itulah nilai sudut yang dikirim Arduino Board ke Serial Port distance=data.substring(index1+1, data.length()); // membaca data dari posisi "index1" sampai akhir data pr itulah nilai jarak // mengubah variabel String menjadi Integer iAngle =int(angle); iDistance =int(jarak);}void drawRadar() { pushMatrix(); terjemahkan (lebar/2, tinggi-tinggi * 0,074); // memindahkan koordinat awal ke lokasi baru noFill(); strokeBerat (2); pukulan (98,245,31); // menggambar garis busur busur(0,0,(lebar-lebar*0,0625),(lebar-lebar*0,0625),PI,TWO_PI); arc(0,0,(lebar-lebar*0.27),(lebar-lebar*0.27),PI,TWO_PI); arc(0,0,(lebar-lebar*0,479),(lebar-lebar*0,479),PI,TWO_PI); arc(0,0,(lebar-lebar*0,687),(lebar-lebar*0,687),PI,TWO_PI); // menggambar garis garis sudut(-width/2,0,width/2,0); baris(0,0,(-lebar/2)*cos(radian(30)),(-lebar/2)*sin(radian(30))); baris(0,0,(-lebar/2)*cos(radian(60)),(-lebar/2)*sin(radian(60))); baris(0,0,(-lebar/2)*cos(radian(90)),(-lebar/2)*sin(radian(90))); baris(0,0,(-lebar/2)*cos(radian(120)),(-lebar/2)*sin(radian(120))); baris(0,0,(-lebar/2)*cos(radian(150)),(-lebar/2)*sin(radian(150))); baris((-lebar/2)*cos(radian(30)),0,lebar/2,0); popMatrix();}kosongkan drawObject() { pushMatrix(); terjemahkan (lebar/2, tinggi-tinggi * 0,074); // memindahkan koordinat awal ke lokasi baru strokeWeight(9); pukulan (255,10,10); // warna merah pixDistance =iDistance*((height-height*0.1666)*0.025); // menutupi jarak dari sensor dari cm ke piksel // membatasi jangkauan hingga 40 cm if(iDistance<10){ // menggambar objek menurut sudut dan garis jarak(pixsDistance*cos(radian(iAngle)) ,-pixsJarak*sin(radian(iAngle)),(lebar-lebar*0,505)*cos(radian(iAngle)),-(lebar-lebar*0,505)*sin(radian(iAngle))); } popMatrix();}kosongkan drawLine() { pushMatrix(); strokeBerat (9); pukulan (30.250,60); terjemahkan (lebar/2, tinggi-tinggi * 0,074); // memindahkan koordinat awal ke baris lokasi baru(0,0,(height-height*0.12)*cos(radian(iAngle)),-(height-height*0.12)*sin(radian(iAngle))); // menggambar garis sesuai dengan sudut popMatrix();}void drawText() { // menggambar teks di layar pushMatrix(); if(iDistance>10) { noObject ="Di Luar Jangkauan"; } else { noObject ="Dalam Jangkauan"; } isi(0,0,0); tidak ada Stroke(); rect(0, tinggi-tinggi*0,0648, lebar, tinggi); isi(98,245,31); ukuran teks(25); teks("2cm",lebar-lebar*0,3854,tinggi-tinggi*0,0833); teks("4cm",lebar-lebar*0.281, tinggi-tinggi*0.0833); teks("6cm",lebar-lebar*0,177,tinggi-tinggi*0,0833); teks("10cm",lebar-lebar*0,0729,tinggi-tinggi*0,0833); ukuran teks(40); text("Akshay6766 ", lebar-lebar*0.875, tinggi-tinggi*0.0277); text("Sudut:" + iAngle +" ", lebar-lebar*0,48, tinggi-tinggi*0,0277); text("Jarak:", lebar-lebar*0,26, tinggi-tinggi*0,0277); if(iDistance<40) { teks(" " + iDistance +" cm", lebar-lebar*0.225, tinggi-tinggi*0.0277); } ukuran teks(25); isi(98.245.60); translate((lebar-lebar*0,4994)+lebar/2*cos(radian(30)),(tinggi-tinggi*0,0907)-lebar/2*sin(radian(30))); memutar(-radian(-60)); teks("30",0,0); resetMatriks(); translate((lebar-lebar*0,503)+lebar/2*cos(radian(60)),(tinggi-tinggi*0,0888)-lebar/2*sin(radian(60))); memutar(-radian(-30)); teks("60",0,0); resetMatriks(); translate((lebar-lebar*0,507)+lebar/2*cos(radian(90)),(tinggi-tinggi*0,0833)-lebar/2*sin(radian(90))); putar(radian(0)); teks("90",0,0); resetMatriks(); translate(lebar-lebar*0,513+lebar/2*cos(radian(120)),(tinggi-tinggi*0,07129)-lebar/2*sin(radian(120))); putar(radian(-30)); teks("120",0,0); resetMatriks(); translate((lebar-lebar*0,5104)+lebar/2*cos(radian(150)),(tinggi-tinggi*0,0574)-lebar/2*sin(radian(150))); memutar (radian (-60)); teks("150",0,0); popMatriks(); }
Skema