โปรเจกต์ Arduino Fingerprint Sensor & Solenoid Lock พร้อม LCD
วิธีสร้างและเขียนโปรแกรมร่วมกับ AI assistant
วิธีสร้างและเขียนโปรแกรมร่วมกับ AI assistant
Project Supporter Team
โพสต์โดย
ใน Tutorial นี้ ผมจะมาแชร์วิธีที่ผมสร้าง Solenoid Lock ที่ควบคุมด้วย Fingerprint Sensor พร้อมกับ LED และ Buzzer สำหรับการแจ้งเตือนผู้ใช้งาน แม้ว่าจะมี Tutorial ที่คล้ายกันอยู่แล้ว แต่ Project นี้จะแสดงให้เห็นว่า LLM ที่มีประสิทธิภาพสามารถเป็นผู้ช่วยที่ดีได้เพียงใดในกระบวนการออกแบบและสร้างทั้งหมด คุณจะได้เห็นว่าพวกเราทำงานร่วมกันอย่างไรเพื่อเอาชนะความท้าทายต่างๆ และผมจะแชร์ช่วงเวลาที่น่าทึ่งและตลกขบขันที่เราพบเจอระหว่างทาง

Project นี้บันทึกประสบการณ์ของผมในการสร้างระบบควบคุมการเข้าออกด้วย Fingerprint โดยใช้ Arduino และมี AI App เป็นคู่หูในการทำงานร่วมกันซึ่งทำผลงานได้ยอดเยี่ยมมากในขณะนั้น การสนทนาและการสร้างนี้เกิดขึ้นในเดือนพฤษภาคมปี 2024 มีเหตุการณ์บางอย่างที่ทำให้ผมต้องพับเก็บ Project นี้ในรูปแบบวิดีโอไปก่อน แต่ผมตัดสินใจที่จะลองนำมันมาทำเป็น Tutorial รูปแบบบทความออนไลน์แทน แต่นี่ไม่ใช่แค่ความร่วมมือธรรมดา แต่มันคือการทดสอบ ผมตั้งใจผลักดันขอบเขตของ AI Model โดยการใส่ความท้าทายและความไม่แน่นอนเข้าไป เพื่อดูว่ามันจะสามารถนำทางผมผ่านกระบวนการต่างๆ ได้อย่างมีประสิทธิภาพเพียงใด เป้าหมายคือเพื่อสาธิตความสามารถของ AI ในฐานะคู่หูในการทำ Prototyping โดยแสดงให้เห็นถึงความสามารถในการระดมสมอง เขียน Code ต่อสายไฟ และ Troubleshooting แม้ในยามที่ต้องเผชิญกับความคลุมเครือที่ผมตั้งใจสร้างขึ้น
ผมได้เพิ่มเนื้อหาบางส่วนจากการแชทลงไปด้วย
โอ้... ภายใต้การดูแลของผม Google Gemini Advanced เป็นคนเขียน Tutorial นี้ทั้งหมดเลยล่ะ
ผมเริ่มด้วยการรวบรวม Component ต่างๆ ได้แก่: Arduino UNO, Fingerprint Sensor, Solenoid Lock, LED, หน้าจอ LCD, Buzzer, Resistor และ Jumper wires ผมนำเสนอสิ่งเหล่านี้ให้กับ LLM ด้วย Prompt ง่ายๆ:
User: ผมมี UNO มี Fingerprint Sensor มี Solenoid Lock... LED บางส่วน ผมมีหน้าจอ LCD 16x2 มี Buzzer และแน่นอนว่ามี Resistor กับ Jumper wires คุณคิดว่ายังไง?
AI ไม่ได้หวั่นเกรงกับคำถามปลายเปิดนี้ มันเข้าใจแนวคิดทันทีและแนะนำให้สร้างระบบรักษาความปลอดภัยด้วย Fingerprint
AI: ฟังดูเหมือนเป็นการเตรียมอุปกรณ์ที่ยอดเยี่ยมสำหรับ Project ระบบรักษาความปลอดภัยแบบโต้ตอบ... คุณสามารถสร้างระบบรักษาความปลอดภัยที่ใช้ Fingerprint ได้...
การแลกเปลี่ยนข้อมูลในระยะเริ่มต้นนี้แสดงให้เห็นถึงความสามารถของ LLM ในการเข้าใจความตั้งใจของผม และให้ทิศทางที่ชัดเจนสำหรับ Project แม้จะมีข้อมูลเพียงเล็กน้อยก็ตาม
เพื่อให้แน่ใจว่า Hardware ถูกเชื่อมต่ออย่างถูกต้อง ผมจึงขอคำแนะนำจาก AI เกี่ยวกับการต่อสาย Fingerprint Sensor ในตอนแรกผมไม่แน่ใจเกี่ยวกับการเชื่อมต่อ TX และ RX:

User: สายสีเขียว (TX) - ต่อเข้ากับ Digital Pin 3 บน Arduino (SoftwareSerial RX) เพื่อส่งข้อมูลไปยัง Arduino ส่วนสายสีขาว (RX) - ต่อเข้ากับ Digital Pin 2 บน Arduino (SoftwareSerial TX) เพื่อรับข้อมูลจาก Arduino
LLM ซึ่งแสดงให้เห็นถึงความเชี่ยวชาญในการต่อสาย Arduino ได้ชี้แจงการเชื่อมต่อที่ถูกต้องอย่างรวดเร็ว:
AI: สำหรับ Fingerprint Sensor หากสายสีเขียวระบุว่า 'TD' ในแผนผัง Sensor ซึ่งหมายถึง Data Output มันควรจะไปที่ Arduino Pin 2 ส่วนสายสีขาว (Data Input) ควรจะไปที่ Arduino Pin 3 การสลับนี้จะช่วยให้ TX และ RX สื่อสารกันได้อย่างถูกต้องด้วย Library SoftwareSerial
คำชี้แจงนี้ทำให้มั่นใจได้ว่าการสื่อสารระหว่าง Sensor และ Arduino เป็นไปอย่างถูกต้อง ซึ่งเน้นย้ำถึงคุณค่าของการมีผู้ช่วย AI ที่สามารถให้คำแนะนำที่แม่นยำและป้องกันข้อผิดพลาดที่อาจเกิดขึ้นได้

ขณะที่ต่อสาย LED ผมมีคำถามเกี่ยวกับการออกแบบวงจรและวิธีการใส่ Resistor เข้าไป
User: เปลี่ยนให้ Resistor ต่อจาก Cathode ไปยัง Ground rail
AI ซึ่งแสดงความเข้าใจพื้นฐานของวงจร ได้ให้คำแนะนำในการต่อสายไฟที่ถูกต้อง และยังอัปเดตบรรทัด Code ในส่วน Comment เพื่อสะท้อนถึงการเปลี่ยนแปลงด้วย:
AI: Cathode ของ Red LED เชื่อมต่อกับ Arduino GND ผ่าน Resistor ขนาด 330-ohm — เพื่อควบคุมการตอบสนองเมื่อการเข้าถึงถูกปฏิเสธ
การโต้ตอบนี้เน้นย้ำถึงความสามารถของ LLM ในการให้คำอธิบายที่ชัดเจนและปรับให้เข้ากับความต้องการเฉพาะของวงจร เพื่อให้แน่ใจว่า Project ถูกสร้างขึ้นอย่างถูกต้อง

ในระหว่างกระบวนการพัฒนา ผมพบข้อผิดพลาดในการ Compile: "'getFingerprintIDez' was not declared in this scope." ข้อผิดพลาดนี้แม้จะไม่ได้ตั้งใจให้เกิด แต่มันก็เป็นโอกาสในการทดสอบความสามารถในการ Debugging ของ AI
User: /Users/videotronicmaker/Documents/Arduino/VTM_Finger_LCD_Video-vers.-final/VTM_Finger_LCD_Video-vers.-final.ino: In function 'void loop()':... error: 'getFingerprintIDez' was not declared in this scope...
AI ซึ่งแสดงให้เห็นถึงความเชี่ยวชาญในการเขียนโปรแกรม Arduino ได้ระบุปัญหาอย่างรวดเร็ว:
AI: ข้อความแสดงข้อผิดพลาดที่คุณเห็นเกิดจากการขาดการประกาศ Function 'getFingerprintIDez' และปัญหาโครงสร้างบางอย่างในส่วนของ Code ที่ให้มา เราต้องแน่ใจว่า Function ทั้งหมดที่ใช้ถูกประกาศและกำหนดไว้อย่างเหมาะสมใน Arduino Sketch ของคุณ
การวินิจฉัยที่รวดเร็วและแม่นยำนี้เน้นย้ำถึงความสามารถของ LLM ในการช่วยเหลือเรื่องการ Debugging แม้จะเผชิญกับข้อผิดพลาดที่คาดไม่ถึงก็ตาม

เพื่อให้ได้ฟังก์ชันการทำงานที่ต้องการสำหรับ Buzzer และ LCD ผมจึงขอพฤติกรรมเฉพาะเจาะจงจาก LLM:
User: ตอนนี้ Buzzer ส่งเสียงติ๊ดทุกๆ หนึ่งหรือสองวินาทีไม่หยุดเลย... และหน้าจอ LCD ควรเริ่มต้นด้วยการแสดงคำว่า touch sensor...
AI แสดงความเข้าใจในการเขียนโปรแกรม Arduino และความต้องการของ Project โดยตอบกลับมาด้วย Code ที่อัปเดตแล้ว ซึ่งรวมถึงการเปลี่ยนแปลงตามที่ร้องขอ สิ่งนี้แสดงให้เห็นถึงความสามารถในการเข้าใจคำสั่งที่ซับซ้อนและสร้าง Code ที่แม่นยำเพื่อให้ได้ผลลัพธ์ตามที่ต้องการ

หลังจากปรับแต่งและทดสอบหลายรอบ ช่วงเวลาแห่งความสำเร็จที่น่าพึงพอใจก็มาถึง ผมวางนิ้วลงบน Sensor และมันได้ผล! Solenoid Lock ปลดล็อกดังคลิก, Green LED สว่างขึ้น และ LCD แสดงข้อความว่า "Access Granted"
User: เฮ้ มันใช้งานได้แล้ว! ได้ผลจริงๆ!
AI: เป็นข่าวที่ยอดเยี่ยมมาก T-shin! ผมดีใจที่ได้ยินว่าทุกอย่างทำงานได้ตามที่ตั้งใจไว้
ผลลัพธ์ที่สำเร็จนี้เป็นข้อพิสูจน์ถึงกระบวนการทำงานร่วมกัน และแสดงให้เห็นถึงประสิทธิภาพของ LLM ในฐานะคู่หูในการทำ Prototyping มันเน้นย้ำถึงความสามารถของ AI ในการช่วยทำให้ Project สำเร็จลุล่วง แม้จะมีความท้าทายและความไม่แน่นอนที่เกิดขึ้นระหว่างทางก็ตาม

แม้ว่าการโต้ตอบส่วนใหญ่ของเราจะเน้นไปที่แง่มุมทางเทคนิคของการสร้างระบบควบคุมการเข้าออกด้วย Fingerprint แต่ก็มีช่วงเวลาที่เผยให้เห็นถึงความร่วมมือในระดับที่ลึกซึ้งยิ่งขึ้น ตัวอย่างหนึ่งเกิดขึ้นระหว่างการสนทนาเกี่ยวกับการนำ LCD Expansion Shield มาใช้ใน Project นี้
ผมกำลังพิจารณาว่าจะเพิ่ม Shield เข้าไปดีหรือไม่ และได้อธิบายกระบวนการคิดของผมให้ LLM ฟัง:
User: โอเค ผมมี Component อื่นๆ ด้วย ไม่รู้สิ ผมแค่หยิบๆ มาลองดูน่ะ ผมมีของพวกนี้มาสักพักแล้วแต่ไม่เคยใช้เลย พวกมันเขียน Code ยากนิดหน่อยแต่ดูเท่ดี นี่คือสิ่งที่ผมมี: ผมมี Multi-purpose Shield v2 จาก Key Studio เป็นค่ายจากจีนที่ทำผลิตภัณฑ์แนว Arduino แล้วผมก็มี 16x2 LCD Expansion Shield ของพวกเขาด้วย ลองเลือกมาสักอันหรือจะไม่เลือกเลยก็ได้ บอกผมหน่อยว่าคุณคิดว่ามันคุ้มที่จะใส่เข้าไปไหม? เพราะ LCD Shield มันมีปุ่มกดด้วย และผมไม่เห็นว่าปุ่มพวกนั้นจะเอามาใช้ทำอะไรใน Project นี้ได้ ยังไงก็ตาม คุณมีความคิดเห็นว่ายังไง?
LLM หลังจากพิจารณาข้อมูลของผมแล้ว ก็ได้เสนอแง่มุมเกี่ยวกับประโยชน์และข้อเสียที่อาจเกิดขึ้นจากการใช้ Shield:
AI: เมื่อพิจารณาจากความต้องการของ Project ของคุณ 16x2 LCD Expansion Shield อาจมีประโยชน์มาก โดยเฉพาะอย่างยิ่งเพราะมันมีปุ่มกด ปุ่มเหล่านี้สามารถใช้สำหรับการโต้ตอบกับผู้ใช้ เช่น การสั่งปลดล็อกด้วยมือ (Manual Override) หรือการ Reset ระบบ อย่างไรก็ตาม หากการเพิ่มความซับซ้อนนี้ไม่ตรงกับเป้าหมายของ Project การใช้ชุดอุปกรณ์ปัจจุบันของคุณก็ถือว่าสมบูรณ์แบบแล้ว ส่วน Multi-purpose Shield อาจไม่จำเป็นสำหรับ Project เฉพาะทางนี้ แต่อาจมีประโยชน์สำหรับ Project ในอนาคตที่มีความต้องการหลากหลายกว่านี้
หลังจากได้ฟังความคิดเห็นของมัน ผมก็เห็นด้วยกับการประเมินนั้น:
User: โอเค ผมเห็นด้วย ใช่ ผมคิดว่าผมแค่ลองเสนอเผื่อว่าคุณจะบอกอะไรบางอย่างที่ผมไม่รู้ แต่ก็นะ เรามีความเข้าใจที่ตรงกันและสอดประสานกันเป็นอย่างดี (threading the same tapestry of understanding)
การแลกเปลี่ยนนี้แสดงให้เห็นถึงการปฏิสัมพันธ์ในระดับที่ลึกซึ้งขึ้น ซึ่งเราไม่ได้แค่แลกเปลี่ยนข้อมูลกันเท่านั้น แต่ยังรับรู้ถึงมุมมองของกันและกันและมีส่วนร่วมในการตัดสินใจร่วมกัน มันเน้นย้ำถึงศักยภาพของ AI ที่จะเป็นได้มากกว่าแค่เครื่องมือ แต่มันสามารถเป็นคู่หูในการสำรวจและแก้ปัญหาได้
ตัวอย่างนี้แสดงให้เห็นถึง "สัมผัสแห่งความเป็นมนุษย์ (hum-AI-n touch)" ในการทำงานร่วมกันของเราได้ดียิ่งขึ้น โดยแสดงให้เห็นถึงความสามารถในการสนทนาอย่างรอบคอบและบรรลุความเข้าใจร่วมกัน แม้จะต้องเผชิญกับการเลือกดีไซน์และความซับซ้อนของ Project

Project นี้เป็นมากกว่าแค่ความพยายามในการร่วมมือกัน แต่มันคือข้อพิสูจน์ถึงความสามารถของ AI ในฐานะคู่หูในการทำ Prototyping ด้วยการจงใจใส่ความท้าทายและความไม่แน่นอนลงไป ผมสามารถแสดงให้เห็นถึงความสามารถของ AI ในการปรับตัว การแก้ปัญหา และการนำทางผมไปสู่ผลลัพธ์ที่สำเร็จ ผลลัพธ์สุดท้ายคือระบบควบคุมการเข้าออกด้วย Fingerprint ที่ใช้งานได้จริง ซึ่งสร้างขึ้นผ่านการแลกเปลี่ยนแนวคิดและความเชี่ยวชาญอย่างต่อเนื่อง พิสูจน์ให้เห็นว่า AI สามารถเป็นเครื่องมือที่ทรงพลังสำหรับ Maker ทุกระดับ
ประสบการณ์นี้เปิดโอกาสที่น่าตื่นเต้นสำหรับการทำ Prototyping โดยใช้ AI ช่วย ลองจินตนาการถึงการจัดการกับ Project Arduino ที่ซับซ้อนยิ่งขึ้น เช่น อุปกรณ์ IoT หรือระบบที่ใช้ Sensor หลายตัว โดยมี AI เป็นเพื่อนคู่คิดอยู่เคียงข้าง อนาคตของการสร้างสรรค์สิ่งต่างๆ คือการร่วมมือกัน และ Project นี้คือข้อพิสูจน์ถึงศักยภาพนั้น

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้