Skip to content

Commit 8a1a36f

Browse files
authored
QR code reader added.
Deneyap Kart ile QR kod okuma örneği eklendi.
1 parent 3107911 commit 8a1a36f

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
#include <DeneyapKartQRCodeReader.h> //kütüphanenin içinde kamere ile ilgili fonksiyonlar da ekli bu nedenle harici kamera kütüphanesi eklememize gerek yoktur.
2+
// kamera pin dahil
3+
#include <Deneyap_Servo.h>
4+
DKQRCodeReader reader(CAMERA_MODEL_DENEYAP_KART);
5+
String QRcode;
6+
int i=0;
7+
int b=0;
8+
Servo servo1; // 1. servo motor için class tanımlanması
9+
Servo servo2; // 2. servo motor için class tanımlanması
10+
11+
void QRCodeCalistir(void *data) {
12+
struct QRCodeData qrCodeData; //Qr codu okuyabilmemiz için class tanımlaması yapıyoruz.
13+
while (true) {
14+
if (reader.receiveQrCode(&qrCodeData, 100)) // bool değişkeni saydırıyor, milisaniye saydırıyor
15+
{
16+
Serial.println("QRCode Valid");
17+
if (qrCodeData.valid) //Qr code okuması yapabiliyorsa if döngüsü içerisine girecek
18+
{
19+
Serial.print("Payload: ");
20+
QRcode = (const char *)qrCodeData.payload;//QR code içerisinden okuma yapar
21+
} else {
22+
Serial.print("Invalid: ");
23+
//Serial.println((const char *)qrCodeData.payload);
24+
digitalWrite(D13, LOW); //Dijital pinlerimizi kapalı olarak başlatıyoruz
25+
digitalWrite(D12, LOW);
26+
}
27+
}
28+
vTaskDelay(100 / portTICK_PERIOD_MS);
29+
}
30+
}
31+
void setup() {
32+
Serial.begin(115200);
33+
Serial.println();
34+
servo1.attach(D12); //Servoların pin atamasını yapıyoruz
35+
servo2.attach(D13, 1); //Servoların pin atamasını yapıyoruz
36+
servo1.write(90); //Servoları 90 dereceden başlatıyoruz
37+
servo2.write(90);
38+
reader.setup(); //reader fonksiyonu başlatıldı
39+
Serial.println("Setup QRCode Reader");
40+
reader.beginOnCore(1);
41+
Serial.println("Begin on Core 1");
42+
xTaskCreate(QRCodeCalistir, "onQrCode", 4 * 1024, NULL, 4, NULL);
43+
//pinMode(2,OUTPUT);
44+
}
45+
void loop() {
46+
if (QRcode == "987654321010") // Eğer qr code içerisinde okunan değer buradaki belirtilene eşitse döngü içersine giriyor
47+
{
48+
i=1;
49+
b=0;// for döngüsü sayesinde iki kere aynı qr codu okumasını engelliyoruz
50+
51+
if (i==1&b==0){
52+
neopixelWrite(RGBLED, 0, 255, 0); // Yeşil renk yanacak
53+
Serial.println(QRcode); //Ekrana içerisinde bulunan metni yazdıracak
54+
servo1.write(180); // Servo 90 dereceden 180 deerece konumuna gelecek ve kapı açılacak
55+
Serial.println("Door opened");
56+
delay(10);
57+
b=b+1;
58+
}
59+
else {
60+
Serial.println("Unvalid QR Code");
61+
}
62+
if (i==1&b==1){
63+
neopixelWrite(RGBLED, 0, 0, 255);
64+
Serial.println(QRcode);
65+
servo1.write(90);
66+
Serial.println("Door closed");
67+
delay(10);
68+
69+
}
70+
else {
71+
Serial.println("Unvalid QR Code");
72+
}
73+
}
74+
75+
if (QRcode == "23146216612") {
76+
for (int i = 1; i < 2; i++) {
77+
neopixelWrite(RGBLED, 250, 0, 0);
78+
Serial.println(QRcode);
79+
servo2.write(150);
80+
Serial.println("Door locked");
81+
delay(10);
82+
}
83+
Serial.println("You have already read this QR COde");
84+
} else {
85+
Serial.println("Unvalid QR Code");
86+
}
87+
}

0 commit comments

Comments
 (0)