آموزش Espآموزش ESP32آموزش اینترنت اشیاپروژه های Espپروژه های اینترنت اشیا

سیستم حضور غیاب اینترنتی با ESP32 و گوگل شیت

در مصارف خانگی و صنعتی، ثبت حضور، امری مهم به شمار می آید. بسیاری از صنایع به دلیل کمبود یک سیستم حضور و غیاب مناسب، با مشکلات زیادی روبه رو میشوند. برای حل این مشکل، ما به یک سیستم ثبت حضور غیرقابل دستکاری، سریع و بدون نیاز به مراقبت احتیاج داریم. بهترین روش برای برآورده کردن این نیاز، استفاده از یک سیستم تعیین هویت بیومتریک است. در میان انواع مختلف سیستم های تعیین هویت بیومتریک، تعیین هویت با اثرانگشت، یکی از شناخته شده ترین و پرکاربردترین روش هاست. این روش سریع و قابل اعتماد بوده و داده های آن، غیرقابل تغییر و دستکاری هستند. سال های زیادی است که از این روش، به دلیل منحصر به فرد بودن و ثبات اثرانگشت در طول زمان استفاده میشود. به دلیل پیشرفت های محاسباتی در سال های اخیر، این روش بیشتر به سمت اتوماسیون رفته است.

ما در این پروژه، از یک تکنیک مشابه با این روش برای ثبت و ذخیره داده حضور استفاده میکنیم.

حضور غیاب ESP32

اثرانگشت هر کارمند یا کاربر، با یک ID منحصربه فرد در ماژول اثر انگشت ذخیره میشود. پایگاه داده SQLLite تمام جزئیات و اطلاعات مربوط به هر ID را در خود نگهداری میکند. هنگامی که کاربر اثرانگشت خود را اسکن میکند، این اثرانگشت اعتبارسنجی شده و ID منحصربه فرد این کاربر، متقابلا به پایگاه داده ارجاع داده میشود.

به محض اینکه کاربر تعیین هویت شد، حضور او در پایگاه داده محلی ثبت شده و این اطلاعات در گوگل شیت همگام سازی میشود. به این شکل است که میتوان آمار حضور کارمندان را مستقیما از طریق گوگل شیت هم پیگیری کرد.

ثبت نام کارمندان و مدیریت پایگاه داده، از طریق یک وب پورتال که با یک رمزعبور از آن محافظت میشود، انجام میپذیرد. این رمزعبور قابل تغییر بوده و میتواند شخصی سازی شود. مدیر میتواند تنظیمات اساسی دستگاه، مانند نام دستگاه، اطلاعات و مشخصات شبکه، تنظیمات شبکه، زمان و مشخصات اسکریپت گوگل را تغییر دهد. وب پروتال از طریق یک آدرس IP یا آدرس MDNS قابل دسترسی است. زمان دقیق را به کمک ماژول RTC حتی هنگامی که تغذیه وجود ندارد و یا قطع شده است نیز حفظ میکنیم. پس میتوان مطمئن بود که داده حضور و غیاب صحیح است.

قطعات لازم برای ساخت سیستم حضور و غیاب بیومتریک

تعداد قطعات لازم برای ساخت این پروژه انگشت شمار است. لیستی از قطعات ضروری برای ساخت این پروژه را در زیر مشاهده میکنید:

  • بورد توسعه ESP32
  • ماژول اثرانگشت R307
  • ماژول DS1307 RTC
  • ماژول اولد SSD1306 با روزلوشن 64*128
  • پرف بورد
  • سیم
  • کانکتور
  • منبع تغذیه 5 ولت
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

مدار اتصال سیستم حضور و غیاب بیومتریک

در این قسمت، مدار اتصال سیستم حضور و غیاب را مشاهده میکنید. اتصالات این مدار بسیار آسان هستند. پایه های VCC و GND نمایشگر اولد، R307 و ماژول RTC را به ترتیب به پایه های 3.3 ولت و GND میکروکنترلر وصل کنید. سپس پایه های SDA و SCL ماژول RTC و نمایشگر اولد را به ترتیب به پایه های GPIO21 و GPIO22 میکروکنترلر متصل کنید. حال پایه TX ماژول R307 را به پایه GPIO16 و پایه RX آن را به پایه GPIO17 میکروکنترلر وصل کنید.

حضور غیاب ESP32

مدار کامل و نهایی را در تصویر زیر مشاهده میکنید.

حضور غیاب ESP32

محفظه سیستم حضور و غیاب بیومتریک

ما برای این پروژه یک محفظه ساده و درعین حال زیبا ساخته ایم. شما میتوانید فایل های 3D لازم را از مخزن GitHub دانلود کنید. قاب با متریال PLA چاپ شده است. در تصویر زیر، محفظه چاپ سه بعدی را مشاهده میکنید.

محفظه سیستم حضور و غیاب بیومتریک

در تصویر زیر هم فضای داخل محفظه را مشاهده میکنید. میتوانید صفحه نمایش را به کمک چسب حرارتی روی محفظه فیکس کنید.

محفظه سیستم حضور و غیاب بیومتریک

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

ایجاد گوگل شیت برای ثبت حضور

پس از انجام اتصالات لازم، وقت آن رسیده است که برای ثبت حضور کاربران چند شیت ایجاد کنیم. برای اینکار به گوگل شیت رفته و با اکانت گوگل خود به آن وارد شوید. سپس یک شیت، دقیقا مطابق شیت زیر ایجاد کنید. نام شیت خود را attendance گذاشته و ستون ها را هم، مطابق ترتیب زیر نام گذاری کنید.

Punch_In_Or_Punch_Out، Position، Employee_Email_ID، Employee_Name، Employee_ID، Time، Date

ایجاد گوگل شیت برای ثبت حضور

حال شیت خود را ذخیره کرده و از منو Extensions گزینه Apps script را انتخاب کنید و به کمک کد زیر یک اسکریپت جدید ایجاد کرده و آن را مستقر کنید.

var sheet_id = "1tLe_DtcYxT_M7vxxxxxxxxxxxxxxxxxxxxxxy7uZs6aQ8";
var sheet_name = "attendance";
function doGet(e){
var ss = SpreadsheetApp.openById(sheet_id);
var sheet = ss.getSheetByName(sheet_name);
var Date = e.parameter.date;
var Time = e.parameter.time;
var Employee_ID = e.parameter.empid;
var Employee_Name = e.parameter.empname;
var Employee_Email_ID = e.parameter.empemail;
var Position = e.parameter.emppos;
var Punch_In_or_Out = e.parameter.emppio;
sheet.appendRow([Date,Time,Employee_ID,Employee_Name,Employee_Email_ID,Position,Punch_In_or_Out]);
}

نام پیش فرض sheet_id را با ID شیت خود جایگزین کنید. سپس اسکریپت را ذخیره کرده، مستقر کنید. حتما ID اسکریپت را در جایی یادداشت کنید زیرا که این ID باید به هنگام آپلود داده در دستگاه وارد شود.

فایل های CSS و HTML

دستگاه از HTML، CSS و JavaScript  برای هاستینگ و کنترل وب پورتال استفاده میکند. تمامی فایل های ضروری در انتهای همین مطلب قرار داده شده اند. لطفا آن ها را دانلود کرده و در یک پوشه به نام data که خود در پوشه دیگری به نام sketch قرار دارد، نگهداری کنید. در این فایل ها، تعدادی صفحه HTML برای چندین تابع وجود دارد که همه آن ها نیز مهم هستند.

قالب پایگاه داده SQLLite

برای کار با پایگاه داده از کتابخانه SQLLite استفاده میکنیم. از طریق لینکی که در قسمت کد برایتان گذاشته شده، کتابخانه را دانلود و نصب کنید.

ما به یک قالب خالی پایگاه داده برای کار با ESP32 نیاز داریم. فایل این قالب، test1.db نام داشته و در پوشه data به همراه فایل های HTML و CSS در فایل دانلودی انتهای این مطلب موجود است.

آپلود فایل های HTML و پایگاه داد SQL روی ESP32

برای آپلود این فایل ها روی filesystem، به ابزار ESP32 filesystem uploader نیاز داریم. برای نصب این ابزار در IDE آردوینو، مراحل زیر را طی کنید:

به صفحه releases در سایت GitHub مراجعه کرده و ESP32FS-1.0.Zip را دانلود کنید.

فایل زیپ شده را در پوشه Tools در دایرکتوری IDE آردوینو اکسترکت کنید. پس از خارج کردن فایل از حالت فشرده، مسیر فایل به شکل زیر خواهد بود:

C:\Users\Username\Documents\Arduino\tools\ESP32FS\tool\ esp32fs.jar

IDE آردوینو را بسته و دوباره باز کنید. حال میتوانید با کلیک بر منو Tools این ابزار را بیابید.

آپلود فایل های HTML و پایگاه داد SQL روی ESP32

کد آردوینو برای سیستم حضور و غیاب بیومتریک

به همراه فایل اصلی با پسوند .ino، باید چهار فایل دیگر هم در پوشه sketch  وجود داشته باشند. آن ها را از لینک موجود در انتهای همین مطلب دانلود کرده و خودتان در پوشه sketch قرار دهید.

فایل icon.h حاوی تمام آیکون های استفاده شده در نمایشگر اولد و فایل های robotbold10.h  و seg.h فایل های فونت اولد هستند. فایل credit.h حاوی پارامترهای پیش فرض است. ممکن است بخواهید آن ها را مطابق با نیاز خود تغییر دهید. حتی اگر آن ها را در ابتدای امر نیز تغییر نداده باشید، میتوانید بعدا از طریق وب پورتال تغییرات مدنظر را ایجاد کنید.

اکثر کتابخانه ها از قبل در پکیج بورد ESP32 نصب شده اند و کتابخانه های دیگر هم در پوشه sketch موجودند. تمام فایل های ضروری این پروژه را از صفحه GitHub دانلود کرده و آن ها را در یک پوشه اکسترکت کنید. در این صورت نیازی به نصب کتابخانه دیگر نخواهید داشت. اطمینان حاصل کنید که مسیر فایل ها یا هدرها را تغییر نمیدهید.

درنظر داشته باشید که کد نهایی و کامل در انتهای این مطلب قرار گرفته است. همچنین حتما No OTA (2MB APP/2MB SPIFFS) را از گزینه Partition Scheme  انتخاب کنید.

کد آردوینو برای سیستم حضور و غیاب بیومتریک

پس از کامپایل کردن کد، آن را روی ESP32 آپلود کنید.

تنظیمات اولیه

پس از برنامه نویسی، دستگاه راه اندازی شده و ابتدا تصویر بوت و سپس علامت وایفای را روی صفحه نمایشگر اولد نمایش میدهد.

اگر برای اولین بار است که دستگاه را راه اندازی میکنید یا مشخصات وایفای خود را تغییر نداده اید، دستگاه ابتدا شبکه وایفای پیش فرض با SSID  circuitdigest و رمزعبور circuitdigest  را جست و جو میکند. یک WIFI hotspot با این مشخصات ایجاد کرده و یا مشخصات وایفای خود را موقتا به SSID و رمزعبور بالا تغییر دهید. پس از تشخیص شبکه، دستگاه به آن متصل شده و مراحل راه اندازی را تکمیل میکند.

پس از راه اندازی، در یک کامپیوتر یا لپ تاپ که به همان شبکه متصل است، مرورگر وب را باز کرده و به URL زیر بروید.

http://biometric.local/

میتوانید با دستگاه iOS یا اپل هم اینکار را انجام دهید. لطفا در نظر داشته باشید که دستگاه های اندروید از MDNS پشتیبانی نمیکنند. پس امکان ورود به این آدرس از طریق یک دستگاه اندروید وجود ندارد. میتوانید از آدرس IP دستگاه برای دسترسی به دستگاه های اندروید یا دیگر دستگاه ها استفاده کنید. پس از ورود به این URL صفحه ورود یا log in به شما نشان داده خواهد شد. با نام کاربری و رمزعبور پیش فرض (هر دو admin هستند) به سایت وارد شوید.

کد آردوینو برای سیستم حضور و غیاب بیومتریک

پس از ورود به سایت، به صفحه تنظیمات بروید. سپس اطلاعات خواسته شده را وارد کرده و آن ها را ذخیره کنید.

  • SSID: SSID وایفای خود را وارد کنید.
  • Password: SSID وایفای خود را وارد کنید.
  • Device Name: نام پیش فرض دستگاه، biometric است. در صورت تغییر این نام، آدرس محلی شما هم تغییر میکند. برای مثال http:/ /biometric.local/
  • Google Script ID: ID گوگل اسکریپت خود را وارد کنید.
  • Login username: نام کاربری پیش فرض شما برای ورود admin است.
  • Login Password: رمز عبور پیش فرض شما برای ورود admin است.
  • Organization name: این نام روی صفحه اولد نشان داده خواهد شد.
  • Manual IP/Auto ID: در این قسمت باید انتخاب کنید که میخواهید IP را به صورت دستی وارد کرده و یا از DHCP استفاده کنید.
  • Manual IP & Gateway: اگر میخواهید IP خود را به صورت دستی وارد کنید، باید در این قسمت IP و گیت وی خود را درج کنید.
  • Date and Time: تاریخ و زمان درست را انتخاب کنید.

کد آردوینو برای سیستم حضور و غیاب بیومتریک

پس از وارد کردن تمام اطلاعات، روی گزینه save کلیک کنید. دستگاه در این مرحله به شما هشدار ریبوت شدن را میدهد. روی ok کلیک کرده و اجازه دهید تا دستگاه خاموش شده و دوباره راه اندازی شود تا بتواند به شبکه پیکربندی شده متصل شود.

میتوانید این تنظیمات را هر زمان که خواستید، با ورود به وب پورتال و اضافه کردن مقادیر جدید در صفحه تنظیمات، تغییر دهید.

درنظر داشته باشید که اگر قسمتی را هنگام ذخیره سازی خالی گذاشته باشید، در مقدار پیش فرض خود تنظیم خواهد شد.

ثبت نام یا افزودن ID جدید

افزودن یک ID جدید به دستگاه کار راحتی است. به صفحه ثبت نام رفته و تمام جزئیات را وارد کنید. پس از وارد کردن تمام جزئیات خواسته شده، روی Enroll و سپس ok (زمانی که مرورگر از شما خواست)  کلیک کنید. دستورالعمل های موجود بر صفحه اولد را دنبال کنید. پس از پایان ثبت نام، شما مستقیما به صفحه پایگاه داده هدایت خواهید شد. اگر ثبت نام با موفقیت انجام گرفته باشد، اطلاعات کاربر جدید به پایگاه داده اضافه شده و در جدول نمایش داده خواهد شد.

ثبت نام یا افزودن ID جدید

حذف یک کاربر از پایگاه داده

برای حذف یک کارمند با کاربر، به صفحه پایگاه داده رفته و روی گزینه Delete که در نزدیکی اطلاعات کاربر قرار گرفته است، کلیک کنید. هنگامی که از شما خواسته شد، با کلیک بر ok حذف کاربر را تایید کنید. به این شکل، اطلاعات کاربر و اثرانگشت او از پایگاه داده حذف خواهد شد.

حذف یک کاربر از پایگاه داده

عملکرد نرمال و عادی

پس از انجام تنظیمات اولیه، دستگاه روشن میشود و شبکه پیکربندی شده را جست و جو میکند. اگر این شبکه در دسترس باشد، به آن متصل شده و عملیات بوت را کامل میکند. اما اگر شبکه در دسترس نباشد، یا دستگاه نتواند به ان متصل شود، جست و جوی خود را همچنان به صورت متناوب ادامه داده و هنگامی که دستگاه را یافت به آن متصل میشود.

در صورتی که اثرانگشت کارمند در پایگاه داده تعریف شده باشد، هنگامی که او انگشت خود را اسکن میکند، حضور او در پایگاه داده محلی ثبت شده و درصورت برقراری ارتباط، اطلاعات در گوگل شیت هم آپلود خواهند شد. وقتی که کاربر برای اولین بار درطول یک روز انگشت خود را اسکن میکند، حضور او به عنوان داده Punch In ثبت خواهد شد و وقتی برای دومین بار در طول یک روز انگشت خود را اسکن میکند، این داده به عنوان Punch Out ثبت خواهد شد.

حال اگر کاربر در طول یک روز بیش از 2 بار انگشت خود را اسکن کند، دستگاه یک پیام خطا مبنی بر اینکه “خروج شما ثبت شده است. فردا دوباره امتحان کنید” به کاربر نشان میدهد. این ویژگی باعث میشود که کاربران نتوانند داده خود را دستکاری کنند.

دستگاه، داده حضور را به مدت 7 روز در خود ذخیره میکند. اگر شبکه وایفای در طول این مدت دردسترس نباشد، خود دستگاه زمانی که اتصال برقرار شد، به صورت اتوماتیک داده همگام سازی نشده را همگام میکند.

دسترسی به داده حضور و غیاب

برای دسترسی به این داده، کافی است گوگل شیت ایجاد شده را باز کنید. تمام داده های همگام سازی شده در این شیت وجود دارند.

دسترسی به داده حضور و غیاب

حال بیایید نگاهی به قطعات اصلی و مشخصات آن ها بیندازیم.

ماژول سنسور اثرانگشت

همانطور که پیشتر اشاره کردیم، اثرانگشت یکی از راه های منحصر به فرد در تعیین هویت افراد است. در بازار انواع مختلفی از سنسورهای اثرانگشت وجود دارند. دسته بندی اصلی آن ها براساس نحوه دریافت داده اثر انگشت است. سنسورهای اثرانگشت نوری، در واقع همان سنسورهای اثرانگشت خازنی هستند.

سنسور اثرانگشت خازنی

سنسور اثرانگشت خازنی

سنسورهای خازنی از آرایه های  مدارهای خازنی کوچک برای جمع آوری داده استفاده میکنند. از آنجایی که خازن ها شارژ الکتریکی را در خود ذخیره میکنند، اتصال آن ها به صفحات رسانای موجود بر سطح اسکنر، به آن ها اجازه میدهد که در ردیابی جزئیات اثر انگشت به کار آیند. هنگامی که برآمدگی انگشت روی صفحات رسانا قرار میگیرد، شارژ ذخیره شده به آرامی تغییر میکند. متقابلا، یک شکاف هوا در محل فرورفتگی اثرانگشت باعث میشود شارژ خازن تقریبا بدون تغییر باقی بماند. برای پیگری این تغییرات، یک مدار تقویت کننده عملیاتی یا آپ امپ هم به کار رفته است. این تغییرات میتوانند توسط یک مبدل آنالوگ به دیجیتال ثبت شوند. پس از ثبت داده ها، داده دیجیتال را به منظور تشخیص اثرانگشت منحصربه فرد تجزیه و تحلیل میکنیم.

سنسورهای اثر انگشت نوری

سنسورهای اثر انگشت نوری

سنسورهای اثرانگشت نوری براساس اصل TRI یا بازتاب داخلی کلی ساخته میشوند. سنسورهای اثرانگشت نوری شامل یک منبع نور، منشور، لنز و یک سنسور تصویر هستند. نور از منبع نور ( که معمولا یک LED است) از یک وجه و با یک زاویه مشخص وارد منشور میشود. به طوریکه از وجه مجاور منعکس شده و از وجه سوم خارج میشود. سپس این نور از یک لنز عبور کرده و در ادامه به سنسور تصویر میرسد. هنگامیکه انگشتی روی سنسور وجود نداشته باشد، نور به طور کامل از سطح منعکس شده و این عمل روی سنسورتصویر، تصاویر ساده تولید میکند. اما هنگامی که انگشت روی سنسور قرار گرفته است، مقداری از نور منعکس شده و تصویر الگو اثرانگشت را میسازد. نور گذرنده از سطح منشور، موج فرورونده یا Evanescent  نام دارد.

مواد مختلف، دارای ضریب شکست های متفاوتی بوده و با امواج فرورونده به شکل های متفاوتی تعامل میکنند. هنگامی که نوک انگشت روی اسکنر قرار میگیرد، برآمدگی های اثرانگشت در تماس با سطح اسکنر بوده در حالیکه که فرورفتگی ها با هوا پر شده اند. پوست و هوا دارای ضریب شکست های متفاوتی هستند که همین تفاوت باعث ایجاد امواج فرورونده متفاوت میشود که به آن FTIR یا بازتاب داخلی خنثی میگویند.

پس امواج فرورونده متفاوت،  حاصل فرورفتگی ها و برآمدگی های موجود در اثرانگشت هستند. شدت نور بازتاب داخلی کلی براساس الگوی این فرورفتگی ها و برآمدگی ها تغییر میکند. سنسور تصویر، یک تصویر با کنتراست بالا از این الگو ثبت میکند. به عبارت دیگر سنسور تصویر با این کار، الگوی برآمدگی و فرورفتگی نوک انگشت را در قالب یک تصویر دیجیتال با کنتراست بالا به ما ارائه میدهد. سپس این تصویر با یک ID منحصر به فرد به عنوان یک قالب یا Template در حافظه فلش ذخیره میشود. از این قالب در شناسایی کاربر استفاده میکنیم.

ماژول سنسور اثرانگشت R307

ماژول سنسور اثرانگشت R307

در این پروژه، ما از سنسور اثرانگشت نوری یعنی ماژول R307 معروف استفاده خواهیم کرد. این سنسور توسط کمپانی Hangzhou Grow Technology ساخته میشود.

ولتاژ کاری این ماژول در محدوده 4.2 تا 6 ولت بوده و جریان کاری آن نیز 50 میلی آمپر است. ظرفیت ذخیره سازی این ماژول 1000 ایمپریشن یا دفعات نمایش است.

این ماژول از USB2.0 و UART برای ارتباط با یک سیستم کامپیوتری با نرخ باد 9600 بیت در ثانیه و ضرایب آن استفاده میکند.

ماژول سنسور اثرانگشت R307

این سنسور قادر به اعمال تطابق 1:1 و 1:N با نرخ پذیرش اشتباه یا FAR کمتر از 0.001% است

ماژول R307 میتواند یک انگشت را در کمتر از 0.5 ثانیه اسکن کند. این ماژول از پنج سطح امنیتی هم پشتیبانی میکند. ( از سطح 1 تا 5 که 5 بالاترین سطح است.) محدوده دمای کاری این سنسور از 10- تا 40 درجه سلسیوس است. این ویژگی به ما این امکان را میدهد که بتوانیم سنسور را در اکثر مکان ها و موقعیت ها قرار دهیم.

ماژول سنسور اثرانگشت R307

R307 دارای یک رویه شیشه ایست. برای اسکن کردن اثرانگشت، باید انگشت خود را روی این رویه قرار دهیم. در زیر این رویه شیشه ای، یک منشور قرار گرفته است. قسمت داخلی این سنسور توسط یک سد نوری به دو قسمت تقسیم شده است. در یک طرف این سد نوری یک PCB متشکل از چهار LED آبی و در طرف دیگر آن هم یک سنسور تصویر داریم که به پروسسور متصل است.

ماژول سنسور اثرانگشت R307

بر روی PCB خارجی، پروسسور، کانکتور و دیگر المان های مداری قرار گرفته اند. منشور به همراه LEDهای آبی و یک سنسور تصویر به گونه ای تنظیم شده اند که نور ساطع شده از LED آبی که اینجا منبع نور ما محسوب میشود، از درون منشور به سنسور تصویر منعکس بشود. R307 از DSP یا پردازشگر سیگنال دیجیتال AS606 از Synochip برای پردازش سیگنال و از سنسور لمسی TTP223 از Tontek برای تشخیص نزدیکی یا مجاورت اثرانگشت استفاده میکند.

ماژول سنسور اثرانگشت R307

ماژول R307 قادر است هم با ولتاژ 3.3 ولت و هم با ولتاژ 5 ولت کار کند. اگر این سنسور را با یک میکروکنترلر 3.3 ولت تغذیه میکنید، باید جامپر 3.3 ولت روی PCB را  اتصال کوتاه کنید و اگر آن را به میکروکنترلر 5 ولتی متصل کرده اید، جامپر را آزاد بگذارید. هنگامی که از طریق پورت USB آن را متصل میکنید، دستگاه یک پورت COM مجازی ایجاد کرده و از طریق آن با سایر اجزا ارتباط برقرار میکند. چهار پایه اول کانکتور، به تغذیه و ارتباط UART اختصاص داده شده اند. دو پایه آخر نیز مخصوص تشخیص لمس و وجود اثرانگشت هستند.

اگر پایه 6 به منبع تغذیه 3.3 ولت متصل باشد، هنگام قرار گرفتن انگشت روی سنسور پایه پنج HIGH میشود که این مورد در اسکن دستی مفید است.

توضیحات نام پایه شماره پایه
ترمینال مثبت تغذیه (VCC) VCC 1
ترمینال منفی تغذیه (GND) GND 2
UART TX TXD 3
UART RX RXD 4
سیگنال تشخیص انگشت Touch 5
تغذیه تشخیص انگشت 3.3V 6

جدول بالا، پایه های سنسور R307 را شرح میدهد.

ماژول DS1307 RTC

ماژول DS1307 RTC

برای ثبت و پیگیری زمان، از ماژول نسبتا معروف DS1307 RTC استفاده میکنیم. این ماژول یک تراشه کلاک DS1307 Real-Time با باتری پشتیبان دارد. استفاده از این ماژول یکی از آسان ترین روش های کار با RTC است. تنها کافی است از دستورات I2C استفاده کرده و ساعت و زمان را تنظیم و بازیابی کنیم.

ساعت/تقویم شامل اطلاعات ثانیه، دقیقه، ساعت، روز، ماه و سال است. تاریخ پایان هر ماه به صورت اتوماتیک برای ماه هایی که کمتر از 31 روز هستند، تنظیم میشود و این اصلاحات، تغییرات مربوط به سال کبیسه را هم دربرمیگیرد.

DS1307 یک مدار حسگر تغذیه داخلی دارد که قطعی برق را شناسایی کرده و به صورت اتوماتیک، به تغذیه پشتیبان سوئیچ میکند. عملیات حفظ زمان، هنگامی که ماژول با باتری پشتیبان کار میکند نیز ادامه پیدا میکند. این ماژول دارای یک باتری سکه ای CR2032 است که میتواند تا چند سال به خوبی کار کند.

این ماژول در کنار تراشه DS1307 Real Time (ساعت دقیق) یک تراشه Atmel 24C32 EEPROM نیز دارد که به لطف این تراشه میتوانیم داده خود را بدون نگرانی درمورد از دست رفتن تغذیه ذخیره کنیم.

همچنین بر روی این بورد یک فضا برای لحیم کاری سنسورهای DS181320 درنظر گرفته شده است.

موارد موجود در فایل : سورس کامل

3.4 (5 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

7 نظر

  1. سلام ممنون از آموزش خوبی که گذاشتید.
    این سنسور اثر انگشت r307 الان در بازار پیدا نمیشه. ولی r308 هست، این میشه استفاده کرد ظاهرا 4.2 ولت هست؟
    as608 هم توی بازار الان هست ارزون تره، آیا این هم مناسبه؟

  2. سلام خسته نباشید
    ببخشید من مشکلی در کامپایل کردن کد دارم و اضلا هم به کد دست نزدم
    C:\Users\EliteBook\Desktop\Bio-Metric-Attendance-System-with-Google-Sheet-Sync-and-SQL-DataBase-main\Biometric_Attendance_System\src\esp32_arduino_sqlite3_lib\esp32.cpp: In function ‘int ESP32Open(sqlite3_vfs*, const char*, sqlite3_file*, int, int*)’:
    C:\Users\EliteBook\Desktop\Bio-Metric-Attendance-System-with-Google-Sheet-Sync-and-SQL-DataBase-main\Biometric_Attendance_System\src\esp32_arduino_sqlite3_lib\esp32.cpp:450:12: error: ordered comparison of pointer with integer zero (‘FILE*’ and ‘int’)
    450 | if( p->fp<=0){
    | ~~~~~^~~
    C:\Users\EliteBook\Desktop\Bio-Metric-Attendance-System-with-Google-Sheet-Sync-and-SQL-DataBase-main\Biometric_Attendance_System\src\esp32_arduino_sqlite3_lib\esp32.cpp: In function 'int ESP32Delete(sqlite3_vfs*, const char*, int)':
    C:\Users\EliteBook\Desktop\Bio-Metric-Attendance-System-with-Google-Sheet-Sync-and-SQL-DataBase-main\Biometric_Attendance_System\src\esp32_arduino_sqlite3_lib\esp32.cpp:492:12: error: ordered comparison of pointer with integer zero ('FILE*' and 'int')
    492 | if( dfd<=0 ){
    | ~~~^~~

    exit status 1

    Compilation error: ordered comparison of pointer with integer zero ('FILE*' and 'int')
    هرچی گشتم نتونستم مشکلش رو پیدا کنم

  3. سلام روزتون بخیر
    فایل های html رو چطور قرار بدیم بعد از قراردادن فایل دانلودی از گیتهاب؟
    و اینکه فقط کامپایل کردن کد روی برد کافیه؟

  4. سلام یه سوال داشتم
    به جای fingerprint R307 از سنسورا دیگه مثل R302 یا به طور کلی سنسورا خازنی استفاده بشه، مشکلی نداره؟ یا در روند استفاده در پروژه نیاز به تغییرات خاصی نیست؟

  5. سلام مرسی از توضیحات خوب تون،
    فقط ممکنه آدرس گیت هابی که بیان کردید رو بگید؟ فکر میکنم قرار داده نشده

    1. سلام عزیز
      بفرمایید:
      https://github.com/me-no-dev/arduino-esp32fs-plugin/releases/
      https://github.com/Circuit-Digest/Bio-Metric-Attendance-System-with-Google-Sheet-Sync-and-SQL-DataBase

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *