สารบัญ:

การสร้าง Arduino Library สำหรับ YouTube Sight: 7 ขั้นตอน
การสร้าง Arduino Library สำหรับ YouTube Sight: 7 ขั้นตอน

วีดีโอ: การสร้าง Arduino Library สำหรับ YouTube Sight: 7 ขั้นตอน

วีดีโอ: การสร้าง Arduino Library สำหรับ YouTube Sight: 7 ขั้นตอน
วีดีโอ: EP 27. Arduino ฉบับไวจนไฟลุก !! - สาระเดฟ ใน 3 นาที 2024, พฤศจิกายน
Anonim
Image
Image
ห้องสมุดคืออะไร?
ห้องสมุดคืออะไร?

สวัสดีทุกคน, ฉันเพิ่งสร้างบริการที่เรียกว่า YouTube Sight ซึ่งสามารถดึงข้อมูลผู้ติดตามจาก API ของ YouTube Analytics และให้จำนวนผู้ติดตามที่แม่นยำยิ่งขึ้นตั้งแต่ YouTube เริ่มรวบรวมผลลัพธ์ ด้วยสิ่งนี้ ฉันได้สร้างภาพร่างตัวอย่าง แต่ฉันต้องการสร้างห้องสมุด Arduino เพื่อให้ผู้คนสามารถใช้งานได้ง่ายขึ้น

ขั้นตอนที่ 1: ห้องสมุดคืออะไร?

ห้องสมุดคืออะไร?
ห้องสมุดคืออะไร?

ไลบรารีคือโค้ดส่วนหนึ่งที่สามารถจัดการกับการดำเนินการเฉพาะ ประมวลผลข้อมูลประเภทใดประเภทหนึ่ง หรือสามารถรู้วิธีโต้ตอบกับองค์ประกอบฮาร์ดแวร์เฉพาะ ช่วยให้เราขยายสภาพแวดล้อม Arduino ได้อย่างง่ายดาย และมีจำนวนมากที่ติดตั้ง Arduino IDE ไว้ล่วงหน้า

ในกรณีอย่างของฉัน ที่เราต้องการเพิ่มความเป็นไปได้ใหม่ๆ ให้กับ Arduino เราสามารถสร้างไลบรารีของเราเองเพื่อให้ผู้อื่นใช้งานได้ ไลบรารีที่ติดตั้งทั้งหมดจะอยู่ในโฟลเดอร์เฉพาะบนคอมพิวเตอร์ของเรา ในกรณีของฉันสำหรับพีซีที่ใช้ Windows ไลบรารีจะอยู่ภายใต้โฟลเดอร์ Documents/Arduino เส้นทางแบบเต็มจะเป็นข้อมูลเฉพาะสำหรับคุณ โดยอิงจากชื่อผู้ใช้ของคุณ

ขั้นตอนที่ 2: โครงสร้างไลบรารีและไฟล์

โครงสร้างห้องสมุดและไฟล์
โครงสร้างห้องสมุดและไฟล์

ในการเริ่มสร้างห้องสมุด เราต้องสร้างโฟลเดอร์ที่นี่ก่อนด้วยชื่อของมัน ดังนั้นฉันจึงสร้างโฟลเดอร์ชื่อ YouTube Sight ในไลบรารีเวอร์ชันขั้นต่ำสุดเปลือย เราต้องมีไฟล์อย่างน้อยสองไฟล์

ไฟล์แรกคือไฟล์ที่เรียกว่า "ส่วนหัว" ซึ่งมีคำจำกัดความทั้งหมดของวิธีการและคุณสมบัติที่ไลบรารีของเรามีให้ และไฟล์ที่สองคือไฟล์ต้นฉบับที่จะมีซอร์สโค้ดทั้งหมด

ไฟล์ส่วนหัวมีนามสกุล ".h" ในขณะที่ไฟล์ต้นฉบับมีนามสกุล ".cpp" และมักจะมีชื่อไลบรารีเป็นชื่อไฟล์ ในกรณีของฉัน ทั้งสองไฟล์เรียกว่า “YouTubeSight.h” และ “YouTubeSight.cpp”

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

รหัสเต็มและไลบรารีสามารถดาวน์โหลดได้จาก GitHub ที่ลิงค์ต่อไปนี้:https://github.com/bkolicoski/arduino-youtube-sight

ขั้นตอนที่ 3: ไฟล์ส่วนหัว

ไฟล์ส่วนหัว
ไฟล์ส่วนหัว
ไฟล์ส่วนหัว
ไฟล์ส่วนหัว
ไฟล์ส่วนหัว
ไฟล์ส่วนหัว

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

ต่อไป เราต้องรวมไลบรารี Arduino พื้นฐาน และเนื่องจากเราจะทำงานกับไคลเอนต์ HTTP บางอย่างเพื่อส่งคำขอไปยัง YouTube Sight เราจะรวมไลบรารีไคลเอนต์พื้นฐานด้วย

ก่อนที่เราจะเริ่มเขียนเนื้อหาของคลาสหลัก เราต้องกำหนดตัวแปรสแตติกและการตั้งค่าที่เราไม่ต้องการแก้ไข ในกรณีของฉัน มีสองตัวแปรดังกล่าว URL หลักของบริการ YouTube Sight และตัวแปรไทม์เอาต์ที่เราจะใช้ตรวจสอบระยะเวลาที่เราอ่านค่า

นอกจากนี้ ในส่วนนี้ เราสามารถกำหนดประเภทที่กำหนดเองใดๆ ที่เราต้องการใช้ เช่น โครงสร้าง channelStatistics ที่เราจะบันทึกผลลัพธ์ไว้

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

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

สำหรับคุณสมบัติส่วนตัว เราจะกำหนดหนึ่งรายการสำหรับจัดเก็บ GUID ของช่อง ตัวชี้ไปยังไคลเอนต์ HTTP ที่เราจะใช้ และฟังก์ชันที่จะแยกสตริงที่ส่งคืนจาก YouTube Sight

ขั้นตอนที่ 4: ไฟล์ต้นฉบับ

ไฟล์ต้นฉบับ
ไฟล์ต้นฉบับ
ไฟล์ต้นฉบับ
ไฟล์ต้นฉบับ

ทีนี้มาดูการใช้งานจริงของทั้งหมดนี้ในไฟล์ต้นฉบับกัน

ขั้นตอนแรกสำหรับเราคือการรวมไฟล์ส่วนหัวของเราเองที่เราเพิ่งสร้างขึ้น จากนั้นเราต้องกำหนดตัวสร้างไลบรารี ในนั้นเราส่งผ่านสองตัวแปร GUID ถูกบันทึกลงในตัวแปรส่วนตัวที่เรากำหนดไว้ก่อนหน้านี้ และไคลเอนต์ถูกส่งโดยการอ้างอิง เพื่อให้เราสามารถเรียกอินสแตนซ์เดียวกันกับที่เราได้รับ

ถัดไป ฟังก์ชัน getData หลักของไลบรารีถูกกำหนดโดยการระบุประเภทการส่งคืนก่อน ตามด้วยชื่อไลบรารีและชื่อฟังก์ชัน ฉันจะไม่ลงรายละเอียดว่าทุกบรรทัดทำอะไรในฟังก์ชันนี้ แต่โดยทั่วไปแล้ว ฟังก์ชันนี้จะเปิดการเชื่อมต่อกับเซิร์ฟเวอร์ YouTube Sight ส่งคำขอเพื่อรับสถิติ จากนั้นจึงแยกวิเคราะห์ข้อมูลที่ส่งคืนโดยใช้ความช่วยเหลือ ฟังก์ชัน getValue ส่วนตัว

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

ขั้นตอนที่ 5: จัดเตรียมตัวอย่างภาพร่าง

ให้ตัวอย่างภาพร่าง
ให้ตัวอย่างภาพร่าง

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

ภาพสเก็ตช์ Arduino ใดๆ ที่คุณวางไว้ในโฟลเดอร์นี้จะให้บริการจาก Arduino IDE เป็นตัวอย่างสำหรับไลบรารีของคุณ และผู้คนสามารถสำรวจได้อย่างรวดเร็วและเรียนรู้วิธีการทำงานของไลบรารี

ขั้นตอนที่ 6: เผยแพร่ไปยัง Library Manager

เผยแพร่ไปยัง Library Manager
เผยแพร่ไปยัง Library Manager

ในการใช้ไลบรารี ผู้คนจะต้องรวมไฟล์ส่วนหัวของไลบรารีของคุณไว้ในแบบร่างและ Arduino IDE จะสร้างมันขึ้นมาด้วยกัน แต่เพื่อที่จะทำเช่นนั้น พวกเขาจะต้องติดตั้งบนเครื่องก่อน

วิธีทั่วไปคือดาวน์โหลดไลบรารีจาก GitHub และติดตั้งผ่านโปรแกรมติดตั้ง ZIP ใน IDE หรือเพียงแค่วางไว้ในโฟลเดอร์ไลบรารีเหมือนที่เราทำเมื่อเราสร้างมันขึ้นมา อย่างไรก็ตาม Arduino IDE ยังมีเครื่องมือที่เรียกว่า Library Manager ที่ช่วยให้คุณสามารถค้นหาไลบรารีได้โดยตรงจาก IDE

ในการรวมไลบรารีของคุณเข้าไป เราต้องสร้างไฟล์เพิ่มเติมในโฟลเดอร์รูทที่เรียกว่า "library.properties" ก่อน และในนั้น เราจำเป็นต้องระบุชื่อไลบรารี เวอร์ชันปัจจุบัน และข้อมูลเพิ่มเติมบางอย่างที่จะช่วยผู้จัดการไลบรารี เพื่อแสดงข้อมูลที่ดีขึ้นเกี่ยวกับเรื่องนี้

เมื่อติดตั้งไฟล์แล้ว ปัญหาจะต้องถูกสร้างขึ้นบนหน้า Arduino GitHub ที่เพียงแค่ขอให้ห้องสมุดของคุณถูกรวมไว้ในดัชนีพร้อมลิงก์ไปยังมัน และเมื่อได้รับการอนุมัติและเพิ่มโดยเจ้าหน้าที่ Arduino แล้ว ผู้จัดการห้องสมุดจะ เริ่มเสนอห้องสมุดของคุณในผลลัพธ์ นอกจากนี้ ผู้จัดการจะมองหาแท็กเวอร์ชันใดๆ ใน GitHub repo ในอนาคต และเสนอการอัปเดตให้กับผู้ใช้เมื่อมีการเปลี่ยนแปลง

ขั้นตอนที่ 7: ขั้นตอนถัดไป

ฉันหวังว่าหลังจากคำแนะนำนี้ คุณจะมีความเข้าใจที่ดีขึ้นเกี่ยวกับวิธีการทำงานของห้องสมุด Arduino คุณสามารถสร้างได้อย่างไร และที่สำคัญที่สุด ฉันหวังว่าคุณจะได้รับแรงบันดาลใจในการเริ่มทำงานกับแนวคิดที่ยิ่งใหญ่ครั้งต่อไปของคุณ

สำหรับคำถามหรือข้อเสนอแนะเพิ่มเติม โปรดเขียนลงในความคิดเห็น สมัครรับข้อมูลจากช่อง YouTube ของฉัน และติดตามฉันที่นี่ใน Instructables

แนะนำ: