O PROJETO LÓGICO DE COMPUTADORES
Por: Samuel Santos • 22/11/2019 • Relatório de pesquisa • 1.220 Palavras (5 Páginas) • 222 Visualizações
UNIVERSIDADE PAULISTA
INSTITUTO DE CIÊNCIAS EXATAS E TECNOLOGIA
CAMPUS BRASÍLIA
SAMUEL SOUZA SANTOS
YASMIN STEFANE OLIVEIRA BARBOSA
PABLO GEOVANE SANTANA QUEIROZ DOS SANTOS
MONITORAMENTO REMOTO COM CÂMERA
PROJETO LÓGICO DE COMPUTADORES
BRASÍLIA
2019
Hardware utilizado:
1x Módulo ESP32-S CAM
1x Placa FTDI FT232RL Conversor USB Serial
Jumper (fêmea x fêmea, macho x fêmea)
1x Cabo USB mini
[pic 1]
A montagem utilizada foi a da imagem acima, com uma modificação, o pino 5v e o GND de alimentação do ESP-32 foram espetados no conversor USB SERIAL, dessa forma a alimentação está sendo via USB. O pino GND ligado ao IO0 como na imagem só deverá ser conectado somente ao carregar o código, após o upload deve-se retirar essa ligação e fazer apertar o botão RST.
Código fonte comentado:
// Bibliotecas necessárias
#include "esp_camera.h"
#include
// Define-se o modelo da câmera, no nosso caso será usado o modelo AI_THINKER
//#define CAMERA_MODEL_WROVER_KIT
//#define CAMERA_MODEL_M5STACK_PSRAM
#define CAMERA_MODEL_AI_THINKER
// Define-se as credencias da rede wireless a qual o módulo irá se conectar.
const char* ssid = "trojan";
const char* password = "036268cn";
// Definido antes o modelo do chip agora define-se a pinagem.
#if defined(CAMERA_MODEL_WROVER_KIT)
#define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM -1
#define XCLK_GPIO_NUM 21
#define SIOD_GPIO_NUM 26
#define SIOC_GPIO_NUM 27
#define Y9_GPIO_NUM 35
#define Y8_GPIO_NUM 34
#define Y7_GPIO_NUM 39
#define Y6_GPIO_NUM 36
#define Y5_GPIO_NUM 19
#define Y4_GPIO_NUM 18
#define Y3_GPIO_NUM 5
#define Y2_GPIO_NUM 4
#define VSYNC_GPIO_NUM 25
#define HREF_GPIO_NUM 23
#define PCLK_GPIO_NUM 22
#elif defined(CAMERA_MODEL_M5STACK_PSRAM)
#define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM 15
#define XCLK_GPIO_NUM 27
#define SIOD_GPIO_NUM 25
#define SIOC_GPIO_NUM 23
#define Y9_GPIO_NUM 19
#define Y8_GPIO_NUM 36
#define Y7_GPIO_NUM 18
#define Y6_GPIO_NUM 39
#define Y5_GPIO_NUM 5
#define Y4_GPIO_NUM 34
#define Y3_GPIO_NUM 35
#define Y2_GPIO_NUM 32
#define VSYNC_GPIO_NUM 22
#define HREF_GPIO_NUM 26
#define PCLK_GPIO_NUM 21
#elif defined(CAMERA_MODEL_AI_THINKER)
#define PWDN_GPIO_NUM 32
#define RESET_GPIO_NUM -1
#define XCLK_GPIO_NUM 0
#define SIOD_GPIO_NUM 26
#define SIOC_GPIO_NUM 27
#define Y9_GPIO_NUM 35
#define Y8_GPIO_NUM 34
#define Y7_GPIO_NUM 39
#define Y6_GPIO_NUM 36
#define Y5_GPIO_NUM 21
#define Y4_GPIO_NUM 19
#define Y3_GPIO_NUM 18
#define Y2_GPIO_NUM 5
#define VSYNC_GPIO_NUM 25
#define HREF_GPIO_NUM 23
#define PCLK_GPIO_NUM 22
// Caso nenhum modelo for escolhido nesse passo será lançado um error, “modelo de câmera não selecionado”.
#else
#error "Camera model not selected"
#endif
// Aqui é iniciado o servidor da câmera.
void startCameraServer();
// Configurações específicas da ligação da câmera ao módulo (define-se os pinos ligados e na câmera são configurados por exemplo resolução, qualidade da imagem.)
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;
//init with high specs to pre-allocate larger buffers
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;
}
// Inicializando a câmera, caso falhe será lançado um erro.
esp_err_t err = esp_camera_init(&config);
if (err != ESP_OK) {
Serial.printf("Camera init failed with error 0x%x", err);
return;
}
//A câmera será inicializada na resolução definida 640 x 480
...