• 方案介紹
    • 一、項(xiàng)目介紹
    • 二、硬件設(shè)計(jì)
    • 三、軟件設(shè)計(jì)
    • 四、代碼實(shí)現(xiàn)
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

基于STM32設(shè)計(jì)的門禁照相機(jī)

04/13 08:23
743
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

更多詳細(xì)資料請(qǐng)聯(lián)系.docx

共1個(gè)文件

一、項(xiàng)目介紹

當(dāng)前文章介紹基于STM32設(shè)計(jì)的門禁照相機(jī),本項(xiàng)目提供了一種更加智能、安全、便捷的門禁解決方案。門禁照相機(jī)采用STM32F103ZET6 MCU作為主控芯片,配合2.8寸LCD顯示屏、OV7725數(shù)字攝像頭、SD卡和模擬門鈴按鍵等外設(shè)模塊,實(shí)現(xiàn)了攝像頭畫面實(shí)時(shí)顯示、門鈴觸發(fā)拍照、圖片存儲(chǔ)等功能。

在使用該門禁照相機(jī)時(shí),來訪客人只需按下門鈴按鍵,攝像頭即可自動(dòng)拍攝照片并保存到SD卡中。同時(shí),用戶也可以通過LCD屏幕進(jìn)行時(shí)間調(diào)整和本地圖片瀏覽等操作,提高了門禁系統(tǒng)的可操作性和用戶體驗(yàn)。

門禁照相機(jī)的設(shè)計(jì)為了提高門禁系統(tǒng)的安全性和智能化程度,解決傳統(tǒng)門禁系統(tǒng)存在的諸多問題。通過采用數(shù)字?jǐn)z像頭替代傳統(tǒng)貓眼,并實(shí)現(xiàn)照片自動(dòng)拍攝和存儲(chǔ)功能,有效提高了門禁系統(tǒng)的安全性。同時(shí),通過LCD屏幕進(jìn)行時(shí)間調(diào)整和本地圖片瀏覽等操作,實(shí)現(xiàn)了門禁系統(tǒng)的智能化,提高了用戶的使用體驗(yàn)。

image-20230615205237018

二、硬件設(shè)計(jì)

本照相機(jī)的主要硬件包括 STM32F103ZET6 MCU、3.5寸 LCD 顯示屏、OV7725 數(shù)字?jǐn)z像頭、SD 卡和一個(gè)模擬門鈴的按鍵。

(1)STM32F103ZET6 MCU

STM32F103ZET6 MCU 是本照相機(jī)的主控芯片,它可以通過 GPIO 口驅(qū)動(dòng)其他外設(shè)模塊。

(2)3.5寸 LCD 顯示屏

3.5寸 LCD 顯示屏可以實(shí)時(shí)顯示攝像頭捕捉的畫面,并且支持多個(gè)頁面的切換。

(3)OV7725 數(shù)字?jǐn)z像頭

OV7725 數(shù)字?jǐn)z像頭可以采集來訪客人的畫面,并將其實(shí)時(shí)顯示在 LCD 顯示屏上。

(4)SD 卡

SD 卡用于存儲(chǔ)照相機(jī)拍攝的照片,照片的名稱由當(dāng)前時(shí)間日期命名。

(5)模擬門鈴的按鍵

模擬門鈴的按鍵用于觸發(fā)照相機(jī)拍攝照片。

三、軟件設(shè)計(jì)

3.1 技術(shù)要求

(1)實(shí)時(shí)顯示畫面

本照相機(jī)通過 OV7725 數(shù)字?jǐn)z像頭捕捉來訪客人的畫面,并通過3.5寸 LCD 顯示屏實(shí)時(shí)顯示。

(2)拍照并保存到 SD 卡

當(dāng)有來訪者按下模擬門鈴按鍵時(shí),照相機(jī)會(huì)拍攝照片并保存到 SD 卡中,照片名稱以當(dāng)前時(shí)間日期命名。

3.2 軟件流程

(1) 初始化STM32F103ZET6 MCU及外部設(shè)備;
(2) 啟動(dòng)OV7725 數(shù)字?jǐn)z像頭;
(3) 開啟LCD;
(4) 進(jìn)入主循環(huán):
a. 讀取按鍵狀態(tài)是否是門鈴被按下;
b. 若發(fā)現(xiàn)門鈴按下,則照相機(jī)開始拍照并將照片保存到 SD 卡;
c. 更新屏幕上的內(nèi)容。

3.3 代碼實(shí)現(xiàn)

代碼實(shí)現(xiàn)過程:

(1) 初始化STM32F103ZET6 MCU及外部設(shè)備;

(2) 啟動(dòng)OV7725 數(shù)字?jǐn)z像頭,并設(shè)置其采集參數(shù);

(3) 初始化 SD 卡,并在 SD 卡上創(chuàng)建一個(gè)文件夾用于存儲(chǔ)照片;

(4) 開啟LCD,并設(shè)置其顯示參數(shù);

(5) 進(jìn)入主循環(huán),讀取按鍵狀態(tài)并更新屏幕上的內(nèi)容;

(6) 當(dāng)發(fā)現(xiàn)門鈴被按下時(shí),開始拍照并將照片保存到 SD 卡中。

四、代碼實(shí)現(xiàn)

4.1 整體代碼框架

#include "stm32f10x.h"
#include "sdio_sdcard.h"
#include "ff.h"

/* 定義一些宏和變量 */

int main(void) {
    /* 初始化系統(tǒng)時(shí)鐘(例如使用 HSE 8MHz 作為系統(tǒng)時(shí)鐘) */
    /* 初始化 GPIO 端口、SDIO、LCD、OV7725 等外設(shè)模塊 */
    /* 初始化 SD 卡,并在其上創(chuàng)建用于存儲(chǔ)照片的文件夾 */

    while(1) {
        /* 讀取門鈴按鍵狀態(tài) */
        if(/* 檢測(cè)到門鈴被按下 */) {
            /* 拍攝照片并保存到 SD 卡中,照片名以當(dāng)前時(shí)間日期命名 */
        }

        /* 更新屏幕顯示內(nèi)容,包括實(shí)時(shí)攝像頭畫面、時(shí)間日期、照片預(yù)覽等 */
    }
}

4.2 拍照存儲(chǔ)

下面是采用 STM32 的HAL 庫設(shè)計(jì)的代碼,控制OV7725 拍照保存為 BMP 圖片到 SD 卡中。

#include "stm32f1xx_hal.h"
#include "sdio_sdcard.h"
#include "ff.h"
#include "ov7725.h"

extern SD_HandleTypeDef hsd;
extern DCMI_HandleTypeDef hdcmi;
extern DMA_HandleTypeDef hdma_dcmi;

FATFS fs;
FIL file;
UINT bw;

/* 定義一些宏和變量 */

int main(void) {
    /* 初始化系統(tǒng)時(shí)鐘(例如使用 HSE 8MHz 作為系統(tǒng)時(shí)鐘) */
    /* 初始化 GPIO 端口、SDIO、LCD、OV7725 等外設(shè)模塊 */
    /* 初始化 SD 卡,并在其上創(chuàng)建用于存儲(chǔ)照片的文件夾 */

    while(1) {
        /* 讀取門鈴按鍵狀態(tài) */
        if(/* 檢測(cè)到門鈴被按下 */) {
            /* 拍攝照片并保存到 SD 卡中,照片名以當(dāng)前時(shí)間日期命名 */
            HAL_GPIO_WritePin(OV7725_RESET_GPIO_Port, OV7725_RESET_Pin, GPIO_PIN_SET); // 復(fù)位 OV7725
            HAL_Delay(50);
            HAL_GPIO_WritePin(OV7725_RESET_GPIO_Port, OV7725_RESET_Pin, GPIO_PIN_RESET);

            ov7725_init(); // 初始化 OV7725

            HAL_DCMI_Start_DMA(&hdcmi, DCMI_MODE_SNAPSHOT, (uint32_t)RGB565_buffer, (uint32_t)(CAMERA_RWIDTH * CAMERA_RHEIGH), 1); // 開始采集

            HAL_DMA_PollForTransfer(&hdma_dcmi, HAL_DMA_FULL_TRANSFER, 1000); // 等待采集完成

            /* 將 RGB565 數(shù)據(jù)轉(zhuǎn)換成 BMP 格式 */
            uint16_t bmp_header[54/2] = {0x4D42, 54+CAMERA_RWIDTH*CAMERA_RHEIGH*3, 0, 0, 54,
                                          40, CAMERA_RWIDTH, CAMERA_RHEIGH, 1, 24, 0, CAMERA_RWIDTH*CAMERA_RHEIGH*3, 0, 0, 0, 0};
            uint8_t bmp_data[CAMERA_RWIDTH*CAMERA_RHEIGH*3];
            uint16_t i = 0, j = 0;
            for(i = 0; i < 54/2; i++) {
                bmp_data[i*2] = bmp_header[i]; // 拷貝 BMP 文件頭
                bmp_data[i*2+1] = bmp_header[i]>>8;
            }
            for(i = 0; i < CAMERA_RWIDTH*CAMERA_RHEIGH; i++) {
                bmp_data[54+i*3+0] = RGB565_buffer[i]>>8; // RGB565 轉(zhuǎn)換為 BMP 格式的 RGB 24位色
                bmp_data[54+i*3+1] = RGB565_buffer[i]>>3;
                bmp_data[54+i*3+2] = RGB565_buffer[i]<<3;
            }

            /* 保存 BMP 圖片到 SD 卡中 */
            if(f_mount(&fs, SD_Path, 1) == FR_OK) { // 掛載 SD 卡
                char filename[20];
                /* 將文件名設(shè)置為當(dāng)前時(shí)間日期,例如"202206151243.bmp" */
                sprintf(filename, "%04d%02d%02d%02d%02d%02d.bmp", year, month, day, hour, minute, second);

                if(f_open(&file, filename, FA_CREATE_ALWAYS | FA_WRITE) == FR_OK) { // 創(chuàng)建文件并寫入數(shù)據(jù)
                    f_write(&file, bmp_data, sizeof(bmp_data), &bw);
                    f_close(&file);
                }
            }

            HAL_Delay(1000); // 防止連續(xù)拍照
        }

        /* 更新屏幕顯示內(nèi)容,包括實(shí)時(shí)攝像頭畫面、時(shí)間日期、照片預(yù)覽等 */
    }
}
  • 更多詳細(xì)資料請(qǐng)聯(lián)系.docx
    下載
意法半導(dǎo)體

意法半導(dǎo)體

意法半導(dǎo)體(ST)集團(tuán)于1987年6月成立,是由意大利的SGS微電子公司和法國(guó)Thomson半導(dǎo)體公司合并而成。1998年5月,SGS-THOMSON Microelectronics將公司名稱改為意法半導(dǎo)體有限公司。意法半導(dǎo)體是世界最大的半導(dǎo)體公司之一,公司銷售收入在半導(dǎo)體工業(yè)五大高速增長(zhǎng)市場(chǎng)之間分布均衡(五大市場(chǎng)占2007年銷售收入的百分比):通信(35%),消費(fèi)(17%),計(jì)算機(jī)(16%),汽車(16%),工業(yè)(16%)。 據(jù)最新的工業(yè)統(tǒng)計(jì)數(shù)據(jù),意法半導(dǎo)體是全球第五大半導(dǎo)體廠商,在很多市場(chǎng)居世界領(lǐng)先水平。例如,意法半導(dǎo)體是世界第一大專用模擬芯片和電源轉(zhuǎn)換芯片制造商,世界第一大工業(yè)半導(dǎo)體和機(jī)頂盒芯片供應(yīng)商,而且在分立器件、手機(jī)相機(jī)模塊和車用集成電路領(lǐng)域居世界前列.

意法半導(dǎo)體(ST)集團(tuán)于1987年6月成立,是由意大利的SGS微電子公司和法國(guó)Thomson半導(dǎo)體公司合并而成。1998年5月,SGS-THOMSON Microelectronics將公司名稱改為意法半導(dǎo)體有限公司。意法半導(dǎo)體是世界最大的半導(dǎo)體公司之一,公司銷售收入在半導(dǎo)體工業(yè)五大高速增長(zhǎng)市場(chǎng)之間分布均衡(五大市場(chǎng)占2007年銷售收入的百分比):通信(35%),消費(fèi)(17%),計(jì)算機(jī)(16%),汽車(16%),工業(yè)(16%)。 據(jù)最新的工業(yè)統(tǒng)計(jì)數(shù)據(jù),意法半導(dǎo)體是全球第五大半導(dǎo)體廠商,在很多市場(chǎng)居世界領(lǐng)先水平。例如,意法半導(dǎo)體是世界第一大專用模擬芯片和電源轉(zhuǎn)換芯片制造商,世界第一大工業(yè)半導(dǎo)體和機(jī)頂盒芯片供應(yīng)商,而且在分立器件、手機(jī)相機(jī)模塊和車用集成電路領(lǐng)域居世界前列.收起

查看更多

相關(guān)推薦

方案定制

去合作
方案開發(fā)定制化,2000+方案商即時(shí)響應(yīng)!