ภาษา Python อ่านบัตรประชาชน(Part1)

Preechaik
2 min readApr 23, 2020

--

บทความนี้มีวัตถุประสงค์ เพื่อเป็นแนวทางในการพัฒนา code python ให้ดึงข้อมูลจากเครื่องอ่านบัตรประชาชน และแก้ปัญหาในการติดตั้ง module บางตัว ใครขี้เกลียดอ่านสามารถข้ามไปทำด้านล่างได้เลย

บัตรประชาชนของไทย

เนื่องจากบัตรประชนมีขนาดที่เล็กทำในหน่วยความจำหรือ memory ของบัตรประชาชนมีขนาดเล็กตามไปด้วย โดยข้อมูลของบุคคลนั้นๆจะถูกแปลงเป็น byte คือหน่วยของข้อมูลที่เป็นเลขฐานสองจำนวน 8 หลัก หรือ 8 บิต ที่ใช้แทนข้อมูลที่เป็นตัวอักษร ตัวเลข หรือสัญลักษณ์ต่าง ๆ เพียง 1 ตัว ตามรหัสแอสกี (ASCII) เช่น A B C ก ข ค ง ฯลฯ เป็นต้น หรือจำนวนเต็ม 1 จำนวน และจะถูกเก็บไว้ในแถบเหล็ก (https://www.nstda.or.th/th/nstda-knowledge/3026-byte)

ผมจะไม่ลงลึกรายละเอียดของบัตรสามารถตามไปอ่านได้ที่ https://medium.com/horganice/smart-card-%E0%B8%9A%E0%B8%B1%E0%B8%95%E0%B8%A3%E0%B8%9B%E0%B8%A3%E0%B8%B0%E0%B8%8A%E0%B8%B2%E0%B8%8A%E0%B8%99%E0%B8%A2%E0%B8%B8%E0%B8%84%E0%B8%94%E0%B8%B4%E0%B8%88%E0%B8%B4%E0%B8%95%E0%B8%AD%E0%B8%A5-c6813a3ca9e8

อุปกรณ์ที่ใช้ในครั้งนี้คือเครื่องอ่านบัตร acs รุ่น ACR38Uรูปทรงเป็นแบบตั้งมีสาย USB ทั้งนี้เครื่องอ่านบัตรรุ่นอื่นสามารถใช้ได้เหมือนกัน

เริ่มต้นการติดตั้ง และเขียนโปรแกรมมีวิธีการดังนี้

1.โหลด code จาก github

https://github.com/preechai/python-smartcard-reader

2.ติดตั้งภาษา Python โปรเจคนี้รองรับ python version ดังนี้ แต่python 2 ไม่แนะนำครับ เพราะเลิกใช้แล้ว

อ้างอิงจาก https://pypi.org/project/pyscard/

3.เริ่มสร้าง environment (ทำไมต้องสร้าง สร้างเพื่ออะไร และมีประโยชน์อย่างไร อ่านได้ที่ ลิ้ง Environment Python)

เนื่อจากวิธีการสร้างผมจะขอข้ามนะครับ ให้ไปดูที่ลิ้งที่แปะไว้ได้เลย หรือใครจะไม่สร้าง environment ก็สามารถทำโปรเจคนี้ได้เหมือนกันครับ

4.ติดตั้ง Module แบ่งเป็น 2 อย่าง

4.1 การติดตั้ง Module ชื่อ pyscard ทำหน้าที่ติดต่อสื่อสารระหว่างเครื่องอ่านบัตรกับคอมพิวเตอร์ ถ้าเราใช้คำสั่ง pip install pyscard จะเจอปัญหานี้

หมายถึงคุณยังไม่ได้ติดตั้ง visual cpp buildtools
เนื่องจากไม่รู้จักไฟล์ชื่อว่า ‘swig.exe’

วิธีแก้ไข

-ติดตั้งโปรแกรม VS C++ ดาวน์โหลดจากเว็บ visual cpp buildtools

ดาวน์โหลดและติดตั้ง visual c++ (หรือใครที่มีแล้วก็ข้าม)

-นำไฟล์ swigwin ที่โหลดจาก github หรือลิ้งใต้ภาพไปวางใน part ติดตั้ง python หรือบางท่านมักติดตั้งไว้ใน C:\Users\Yourname\AppData\Local\Programs\Python\Python36

ดาวน์โหลSwigWin http://www.swig.org/download.html

เริ่มติดตั้ง Module pyscard พิมพ์คำสั่งดังนี้

pip install pyscard

4.2 การติดตั้ง Module ชื่อ pillow

pip install Pillow

5.รัน code ใช้คำสั่ง

python read.py

ก่อนรันโค้ดควรเสียบเครื่องอ่านบัตรประชาชนก่อนเสมอ

โค้ดนี้มีปัญหาคือไม่สามารถดึงรูปได้แต่ บทต่อไปจะเป็นการนำเสนอเกี่ยวกับการนำเอาข้อมูลที่อ่านจากบัตรประชาชนรวมถึงรูปภาพและจัดเก็บในฐานข้อมูล บันทึกในบันทึกใน Excel

--

--