Last active
February 12, 2021 07:59
-
-
Save RobolinkTeknoloji/4157650135d8d3e5e20290ef1d0105ea to your computer and use it in GitHub Desktop.
ESP32 Cam ve Blynk ile Akıllı Kapı Sistemi
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//While Uploading Code on ESP32 Board 1, comment the lines number: 17,36 and Uncomment lines: 16,35 | |
#include "esp_camera.h" | |
#include <WiFi.h> | |
#include <WiFiClient.h> | |
#include <BlynkSimpleEsp32.h > | |
// Select camera model | |
#define CAMERA_MODEL_AI_THINKER // Has PSRAM | |
#include "camera_pins.h" | |
#define PHOTO 14 //ESP32 CAM 1 | |
#define LED 4 | |
#define buzzer 2 | |
const char* ssid = "........"; //wifi name | |
const char* password = "......"; //password | |
char auth[] = "OeEX1CmnGKDP-ddspBqy_3u-IbWZ5a2L"; //Auth Code sent by Blynk | |
String local_IP; | |
int count = 0; | |
void startCameraServer(); | |
void takePhoto() | |
{ | |
digitalWrite(LED, HIGH); | |
delay(200); | |
uint32_t randomNum = random(50000); | |
Serial.println("http://"+local_IP+"/capture?_cb="+ (String)randomNum); | |
Blynk.setProperty(V1, "urls", "http://"+local_IP+"/capture?_cb="+(String)randomNum); //ESP32 CAM 1 | |
digitalWrite(LED, LOW); | |
delay(1000); | |
} | |
void buzzerFunction(int toneCode) | |
{ | |
if(toneCode==1) | |
{ | |
digitalWrite(buzzer,HIGH); | |
delay(50); | |
digitalWrite(buzzer,LOW); | |
delay(100); | |
digitalWrite(buzzer,HIGH); | |
delay(50); | |
digitalWrite(buzzer,LOW); | |
} | |
else if(toneCode==2) | |
{ | |
digitalWrite(buzzer,HIGH); | |
delay(200); | |
digitalWrite(buzzer,LOW); | |
delay(100); | |
digitalWrite(buzzer,HIGH); | |
delay(200); | |
digitalWrite(buzzer,LOW); | |
delay(100); | |
digitalWrite(buzzer,HIGH); | |
delay(200); | |
digitalWrite(buzzer,LOW); | |
} | |
} | |
void setup() { | |
Serial.begin(115200); | |
pinMode(LED,OUTPUT); | |
pinMode(buzzer,OUTPUT); | |
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; | |
} | |
// 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); | |
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()); | |
local_IP = WiFi.localIP().toString(); | |
Serial.println("' to connect"); | |
Blynk.begin(auth, ssid, password); | |
buzzerFunction(1); | |
} | |
void loop() { | |
// put your main code here, to run repeatedly: | |
Blynk.run(); | |
if(digitalRead(PHOTO) == HIGH){ | |
takePhoto(); | |
buzzerFunction(2); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment