วันพุธที่ 21 กุมภาพันธ์ พ.ศ. 2561

C# การเขียนโปรแกรมถอดรหัสคิวอาร์โค้ดด้วย MessagingToolkit.QRCode


C# การเขียนโปรแกรมถอดรหัสคิวอาร์โค้ดด้วย MessagingToolkit.QRCode



          สวัสดีครับ วันนี้ผมขอนำเสนอการเขียนโปรแกรมถอดรหัสคิวอาร์โค้ด หรือการแปลงภาพ QR code เป็นตัวอักษร (Text) นั่นเองครับ สืบเนื่องจากโปรเจ็คที่แล้วที่ได้เสนอเกี่ยวกับระบบปลดล็อคกลอนแม่เหล็กไฟฟ้าด้วย QR code ซึ่งต้องใช้การถอดรหัสคิวอาร์โค้ด โดยวัตถุประสงค์ของบทความนี้ คือต้องการให้ผู้สนใจนำไปศึกษาต่อยอดกับโปรเจ็คของท่านที่วางไว้ให้ตรงตามเป้าหมาย 
        
         ความรู้เบื้องต้นที่ต้องมี 

       - การเขียนโปรแกรม C# Windows Form Application 


      มาเริ่มกันเลยครับ ผมจะเริ่มต้นตั้งแต่การสร้างโปรเจคเลยครับ 

1. สร้างโปรเจ็คตั้งชื่อให้เรียบร้อย



2.  เลือก Tool ครับ



3. ออกแบบ UI (User Interface) โปรแกรม


4. ทำการ Download ไบลารี่ MessagingToolkit.QRCode



5.  เรียกใช้ สร้าง MessagingToolkit.QRCode และ  Even Method สำหรับปุ่มโดยการดับเบิ้ลคลิกที่ปุ่มทั้งสอง


6. Ready to coding 




7. Coding 



8.  ทดสอบ Run โปรแกรม 


ทดสอบการทำงานโปรแกรม

Download Source Code Click

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

ขอบคุณทุกท่าน

วันอังคารที่ 20 กุมภาพันธ์ พ.ศ. 2561

ระบบปลดล็อคประตูด้วย QR code scanner ผ่านกล้อง Webcam

ระบบปลดล็อคประตูด้วย QR code scanner
ผ่านกล้อง Webcam




มาเป็นเพื่อนในไลน์กับเราซิ เรารับทำหรือปรึกษาฟรี Add line

บอร์ด Arduino สั่งซื้อ ที่นี่ หรือ ที่นี่
สั่งซื้อ Relay module ได้ที่ คลิกสั่งเลย
สั่งซื้อกล้อง Webcam คลิกสั่งเลย

          สวัสดีครับเพื่อนๆ พี่ๆน้องๆที่กำลังอ่านบทความนี้ทุกท่านครับ ก่อนอื่นผมต้องขอขอบคุณทุกท่านที่ติดตามอ่านบทความของผม วันนี้ผมมีบทความที่น่าสนใจมาฝากทุกท่าน โดยหวังว่าผู้ที่ได้อ่านบทความนี้ จะได้ประโยชน์หรือนำไปประยุกต์ใช้งานให้ตรงกับเป้าหมายที่ท่านได้วางไว้ไม่มากก็น้อยครับ
         บทความนี้จะนำเสนอเกี่ยวกับระบบรักษาความปลอดภัยรูปแบบหนึ่ง เป็นระบบปลดล็อคกลอนแม่เหล็กไฟฟ้าด้วย QR Code ผ่านกล้องเว็บแคม  Qr code ถือเป็นเทคโนโลยีที่ใช้กันอย่างแพร่หลาย สามารถบันทึกลงบนโทรศัพท์ Smart phone ได้หรือ พิมพ์ลงบนแผ่นกระดาษก็ได้ ระบบปลดล็อคยุกแรกๆที่เราพอจะเห็นกันทั่วๆไปคือจะเป็นแบบ Key ให้ใส่รหัส หรือแบบชิพ RFID และ QR code ก็มีผู้พัฒนาและใช้กันอย่าแพร่หลายเช่น บทความนี้จึงเหมาะสำหรับผู้ที่ต้องการพัฒนาหรือนำไปต่อยอดเพิ่มเติมได้ ผมขออธิบายระบบการทำงานด้วยบล็อคไดอะแกรมดังนี้

1. ด้าน Software Application interface
 
     พัฒนาด้วยโปรแกรม Visual Studio C# หรือ ท่านจะให้ภาษาอื่นแล้วแต่ถนัด ใช้ในการออกแบบ User Interface เพื่อง่ายต่อการใช้งาน
บล็อคไดอะแกรมของระบบการทำงานในส่วนของ Windows Form Application 

           เมื่อ User เมื่อทำการถ่ายภาพ แล้วโปรแกรมตรวจสอบว่าภาพถ่ายเป็น QR code หรือไม่ หากว่าตรวจสอบแล้วเป็น Qr code ทึี่ถูกต้องโปรแกรมจะทำการ Decode (ถอดรหัส) เป็น text data เก็บไว้ แต่หากถ่ายภาพแล้วพบกว่าภาพนั้นไม่ใช้ QR code หรือเป็นโปรแกรมจะแสดงข้อความบอกความผิดพลาด

 ภาพการถ่ายภาพ  QR code และโปรแกรมทำการตรวจแล้ว QR code ถูกต้อง


ภาพการถ่ายภาพทั่วไป และโปรแกรมทำการตรวจแล้ว QR code ไม่ถูกต้อง


ทดสอบระบบการทำงาน

          เมื่อถอดรหัสจาก QR code เรียบร้อยแล้วนำ text data ที่ถอดรหัสได้เก็บใน text box ในรูปแบบสายอักขระ (String) จากนั้นโปรแกรมตรวจสอบเงื่อนไข ถ้าสายอักขระที่รับเข้ามาจากการแปลงด้วย QR code ตรงกับสายอักขระที่ตั้งไว้ภายในเงื่อนไข โปรแกรมเขียนอักขระ "1" ส่งไปยัง Serial port หากกดปุ่มล็อค โปรแกรมเขียนอักขระ "2" ส่งไปยัง Serial port


2. ด้าน Hardware programming 

         ในขั้นตอนนี้จะเป็นการเขียนโปรแกรมฝั่งของ Microcontroller ในที่นี้จะใช้บอร์ด Arduino โดยพัฒนาโปรแกรมให้อ่านค่าจาก Serial port แล้วนำค่าที่อ่านได้ไปเปรียบเทียบเพื่อ เพื่อกำหนดสัญญาณเอาต์พุทว่าจะให้ Active สัญญาณออกเป็น High หรือ Low


บล็อคไดอะแกรมของระบบการทำงานในส่วนของ Arduino Controller 


          ขั้นตอนนี้เขียนโปรแกรมฝั่งของ Arduino โดยเราเรียก Library Serial.read(); เพื่ออ่านDataจากฝั่งของโปรแกรมที่ Windows App  ส่งมาแล้วนำค่าไปเข้าเงื่อนไข

การทำงานระหว่างโปรแกรมฝั่ง Software และ ฝั่ง Hardware
          - ประกาศตัวแปร int Serial_in เพื่อเก็บค่าที่ได้จากการอ่านค่า Data จาก Serial port
          - กำหนด pinMode สำหรับ Output เพื่อนำไปขับวงจร Relay
          - เก็บค่า Data ที่อ่านได้ด้วย Library Serial.read() ไปเก็บไว้ที่ Serial_in
          - ทำการตรวจสอบเงื่อนไขว่าถ้า Serial_in  มีค่าเป็น 1 ให้Output Active 1(มีแรงดันไฟฟ้าเป็นบวก)
          - แต่ถ้า Serial_in  มีค่าเป็น 2  ให้Output Active 0(มีแรงดันไฟฟ้าเป็นลบ)

แสดงการทำงานสวนของ Hardware 


        สำหรับการต่อวงจรนั้นผมขอยกภาพวงจรการต่อ แบบไม่ซับซ้อนได้ดังนี้
การต่อวงจรในส่วนของ Hardware 


          การต่อวงจรจะใช้ Relay Module แบบ Normal Open (NO) Active 1 หมายความว่าวงจร Relay จะทำงานเมื่อมีแรงดันไฟบวกจาก Controllerเข้าที่ Input ทำการจ่ายแรงดัน +12V จากแหล่งจ่ายไฟกระแสตรงให้กลอนแม่เหล็กไฟฟ้า แล้วต่อกราวด์เข้ากับจุด Common (COM) เมื่อ Input ของวงจร Relay module เป็นบวกส่งผลให้วงจร Relay module ทำงานและจุด COM กับ NO ต่อกันเหมือนกับสวิตช์ ทำให้มีกระแสไฟฟ้าไหลผ่านขดลวดแม่เหล็กไฟฟ้า เมื่อครบวงจรกลอนไฟฟ้าจึงทำงานดูดสลักกลอนเข้าไป และเมื่อ Input ของวงจร Relay module เป็นล (0) กลอนแม่เหล็กไฟฟ้าก็จะกลับสู่สถานะเดิม คือคลายสลักออกมา

ทดสอบการทำงานของระบบ


          สำหรับบทความนี้ต้องขออภัยหากมีข้อผิดพลาดประการใดหรือการเขียนบทความอาจจะไม่มืออาชีพเพราะผมอาศัยการทดลองและเขียนไว้กันลืิมด้วยเพราะมีระบบอื่นที่ต้องการศึกษาอีกมากมาย การทดสอบระบบจริงๆ จะต้องปรับการถ่ายภาพ ให้สามารถถ่ายภาพได้โดยอัตโนมัติ ถ้าไม่ติดขัดอะไรผมจะทำการทดลองในขั้นต่อไป และมาอัพเดตให้เพื่อนๆ พี่ๆ น้องๆ ได้ติดตามกัน

Download source code ที่นี่
มาเป็นเพื่อนในไลน์กับเราซิ เรารับทำหรือปรึกษาฟรี Add line
เป็นโปรเจ็คสำหรับทดลองด้วยคนเอง ขอสงวนสิทธิในการตอบคำถามบางกรณี