กลับไปหน้ารวมไฟล์
access-control-with-ruby-on-rails-esp32-rfid-d25b91.md

ชื่อโปรเจกต์: Access Control with Ruby on Rails + ESP32 + RFID

***นี่คือการพิสูจน์แนวคิดสำหรับธุรกิจของเรา***

ความต้องการของเรา

เราต้องการ Access Control System ที่อ่านข้อมูลจากเซิร์ฟเวอร์ (สมมติว่าเป็น "Contracts Server") เพื่อตรวจสอบว่าผู้เช่าได้รับอนุญาตให้เข้าถึงสำนักงานของตนเองหรือไม่ โดยพิจารณาจาก:

  • เป็นสำนักงานของเขา/เธอหรือไม่?
  • หัวหน้าของเขา/เธออนุญาตให้พนักงานเข้าสำนักงานก่อนที่หัวหน้าจะมาถึงหรือไม่
  • ชำระค่าเช่าแล้วหรือยัง?
  • ควรรองรับสองภาษา

ดังนั้น หากไม่ใช่สำนักงานของเขา/เธอ หรือผู้เช่าไม่ต้องการให้พนักงานของเขา/เธออยู่ในสำนักงานในขณะที่เขา/เธอไม่อยู่ หรือหากค่าเช่าค้างชำระ การเข้าถึงสำนักงานควรถูกปฏิเสธ ERP ที่เรากำลังพัฒนาถูกพัฒนาด้วย Ruby on Rails

การพัฒนา Proof Of Concept:

อันดับแรก เราสร้างแอปพลิเคชันที่เรียบง่ายอย่างยิ่งที่ใช้ตรวจสอบบัตร RFID แอปพลิเคชันที่เรียบง่ายนี้ขาดมาตรการความปลอดภัยและความสมบูรณ์ของข้อมูลทั้งหมด โดยถูกสร้างขึ้นเพื่อวัตถุประสงค์เดียวคือการทดสอบโค้ดที่จะใช้ใน ESP32

นี่คือวิดีโอสำหรับการสร้างแอปพลิเคชัน

สร้างแอปพลิเคชันบนเซิร์ฟเวอร์ด้วย Ruby on Rails

ทดสอบแอปพลิเคชันบนเซิร์ฟเวอร์

ปรับโค้ดให้ตอบสนองต่อ ESP32

ทดสอบการตอบสนองจากเซิร์ฟเวอร์

การทำงานร่วมกันระหว่าง ESP32 และ Ruby on Rails App

สิ่งที่ต้องพัฒนาสำหรับเวอร์ชันสุดท้าย (production):

  • แอปพลิเคชันจะควบคุมประตูมากกว่า 60 บาน ดังนั้นเราจะติดตั้งทรานซิสเตอร์ DS2401 บนแต่ละวงจรเพื่อให้มีหมายเลขซีเรียลเฉพาะที่จะใช้สำหรับเชื่อมโยงประตูแต่ละบานกับแต่ละวงจร ซึ่งอาจมีบัตร RFID หลายใบที่เชื่อมโยงอยู่
  • โค้ดบนเซิร์ฟเวอร์ต้องการการปรับปรุงอีกมาก เช่น ด้านความปลอดภัย, การตรวจสอบความถูกต้อง, การจัดกำหนดการ, การบันทึกกิจกรรมของบัตร RFID และอื่นๆ
  • เราจำเป็นต้องหาไลบรารีสำหรับการเข้ารหัสแบบสองทางของข้อมูลที่ส่งจาก ESP32/เซิร์ฟเวอร์ เพื่อป้องกันการโจมตี (hacking)
  • สร้างกล่องสำหรับวงจร (พิมพ์ด้วยเครื่องพิมพ์ 3D)
  • กำหนดกลไกหลายอย่างที่สามารถปรับให้เข้ากับมือจับประตูที่มีอยู่ได้ในปัจจุบัน

รายละเอียดทางเทคนิคเพิ่มเติม

การผสานรวม IoT แบบ Full-Stack

โครงการนี้เชื่อมโยงระหว่างฮาร์ดแวร์ระดับต่ำและเฟรมเวิร์กเว็บระดับมืออาชีพ สร้างระบบควบคุมการเข้าถึงที่แข็งแกร่งและพร้อมใช้งานในระดับองค์กร

  • Microcontroller Hub: ESP32 ทำหน้าที่เป็นตัวควบคุมหลัก โดยใช้ WiFi ในตัวเพื่อสื่อสารกับเซิร์ฟเวอร์ระยะไกล มันเชื่อมต่อกับ RC522 RFID reader เพื่อสแกนแท็กแต่ละตัว
  • Ruby on Rails Backend: เซิร์ฟเวอร์สร้างขึ้นด้วย Ruby on Rails ซึ่งจัดการฐานข้อมูล PostgreSQL ของผู้ใช้ที่ได้รับอนุญาตและบันทึกการเข้าถึง ESP32 ส่ง POST request พร้อมกับ UID ที่สแกน และ Rails API จะตอบกลับด้วยสถานะ 'authorized' หรือ 'denied'

คุณสมบัติความปลอดภัยขั้นสูง

  • Real-Time Web Dashboard: ผู้ดูแลระบบสามารถตรวจสอบความพยายามในการเข้าถึงได้แบบเรียลไทม์ผ่านเว็บอินเทอร์เฟซที่ปลอดภัย
  • Digital Logs: การเข้าและออกทุกครั้งจะถูกประทับเวลาและบันทึกไว้ เพื่อให้มีบันทึกการตรวจสอบที่สมบูรณ์สำหรับการปฏิบัติตามข้อกำหนดด้านความปลอดภัยในสภาพแวดล้อมสำนักงานหรือห้องปฏิบัติการที่ทันสมัย

ข้อมูล Frontmatter ดั้งเดิม

title: "Access Control with Ruby on Rails + ESP32 + RFID"
description: "Access control proof of concept using Ruby on Rails with ESP32 and RFID"
author: "addicttux"
category: ""
tags:
  - "esp32"
  - "ruby on rails"
  - "access control"
views: 8772
likes: 1
price: 2450
difficulty: "Intermediate"
components:
  - "1x I2C LCD"
  - "1x Pushbutton Switch, Pushbutton"
  - "1x Relay (generic)"
  - "1x Buzzer"
  - "1x ESP32"
  - "1x Arduino Nano R3"
  - "1x NeoPixel Ring: WS2812 5050 RGB LED"
  - "1x RFID Module (Generic)"
  - "1x RGB LCD Shield Kit, 16x2 Character Display"
tools: []
apps:
  - "1x Fritzing"
  - "1x Linux (Mint)"
  - "1x Arduino IDE"
  - "1x circuito.io"
  - "1x Tinkercad"
downloadableFiles: []
documentationLinks: []
passwordHash: "3b155c04fc77a6ddf447eb773de4d2545e7c78996dbfd46baa746c98bed95512"
encryptedPayload: "U2FsdGVkX1/cse+ERw+GUP+dhzFomChviudQ+WJB5PyjtFMbI10QBeUADrPEx9erTULi6a5ANCrCLdTbZ8FPgLfS/HeehQpxlivwJGWMSi8s/HOqm6/3iTuMXa8rFpflWOSV/d65bOIlka1L2eERPLTHzBqnBKln99TPycxUxc9MeUmgZaN7rQu/n4hwLr7h"
seoDescription: "Access control proof of concept using Ruby on Rails with ESP32 and RFID technology."
videoLinks:
  - "https://www.youtube.com/embed/eTyzdUI1WZo"
  - "https://www.youtube.com/embed/0M3jjU8zcDc"
  - "https://www.youtube.com/embed/Ud299vrrFuA"
  - "https://www.youtube.com/embed/koWwYBcHZcw"
  - "https://www.youtube.com/embed/s2OFASpiNh0"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/access-control-with-ruby-on-rails-esp32-rfid-d25b91_cover.jpg"
lang: "th"