หน้าจอแสดงสถิติ YouTube อย่างง่ายสำหรับช่องขนาดเล็ก
บทนำ
บทความนี้ถือว่าคุณรู้วิธีติดตั้งการรองรับ NodeMCU / ESP8266 สำหรับ Arduino IDE ใน boards manager และบทความนี้จะครอบคลุมตัวโปรเจกต์เอง รวมถึงวิธีการกำหนดค่า YouTube API key ของคุณ
นี่เป็นหนึ่งในโปรเจกต์ IOT แรกๆ ของผม; เครื่องนับสถิติ YouTube ที่ผมสร้างขึ้นจากอะไหล่ที่ผมมีอยู่ และเนื่องจากผมมี 7 segment LED displays เหลืออยู่มากมาย ผมจึงคิดว่าจะนำบางส่วนมาใช้ประโยชน์และออกแบบเครื่องนับสถิติ YouTube ที่แสดงจำนวนผู้ติดตามและยอดวิวปัจจุบันของช่อง YouTube ของคุณ
ตอนนี้ YouTube ได้ทำการเปลี่ยนแปลงวิธีการแสดงจำนวนผู้ติดตามเมื่อปีที่แล้ว และแทนที่จะแสดงตัวเลขผู้ติดตามที่แน่นอน ตอนนี้จะแสดงเป็นค่าประมาณและปัดลงตามมาตราส่วนแบบเลื่อนไหล ตัวอย่างเช่น จำนวนผู้ติดตามที่ต่ำกว่า 999 จะแสดงตัวเลขที่แน่นอน และตั้งแต่ 1000 ขึ้นไป จะถูกปัดเศษเป็น 10 ที่ต่ำที่สุด เช่น ผู้ติดตาม 1234 คนจะแสดง 1230 หรือ 1.23K ขึ้นอยู่กับว่าจะแสดงที่ไหน
เครื่องนับนี้ได้รับสถิติผ่าน YouTube API ซึ่งจะคืนค่ามาเป็นตัวเลขเท่านั้น ดังนั้นในกรณีนี้ มันจะคืนค่า 1230 ผมจึงตัดสินใจที่จะใช้หน้าจอ 4 หลักสำหรับผู้ติดตาม และ 8 หลักสำหรับยอดวิว เหมาะสำหรับช่องขนาดเล็กที่มีผู้ติดตามน้อยกว่า 10,000 คนที่ต้องการติดตามการเติบโตของช่อง เมื่อคุณเพิ่งเริ่มต้น ผู้ติดตามใหม่ทุกคนมีความสำคัญ และนี่จะแสดงผลแบบเรียลไทม์; สถิติจะอัปเดตทุก 5 นาที
อย่างที่คุณเห็น ผมตัดสินใจสร้าง PCB ของตัวเอง เพราะผมไม่ต้องการประกอบบน prototype board และเชื่อมต่อสายจำนวนมาก เพราะมันจะใช้เวลานานเกินไปและเป็นกระบวนการที่น่าเบื่อ ผมยังมี PCB เหลืออยู่สองสามแผ่นซึ่งผมอาจจะลงขายใน eBay แต่จริงๆ แล้วผมคิดว่าผมทำ PCB ใหญ่ไปหน่อย และถ้าเป็นผม ผมจะพยายามทำให้มันเล็กลงและวางชุดจอแสดงผลทั้งสองชุดให้ใกล้กันมากขึ้น
วงจรประกอบด้วยโมดูล NodeMCU ESP8266-12E, ชิป MAX7219 สองตัว และบัฟเฟอร์ 74ACHT125 ซึ่งทำหน้าที่แปลงสัญญาณลอจิก 3.3V ของ 8266 ให้เป็น 5V ที่ MAX7219 ต้องการ และ 7 segment LED displays รุ่นวินเทจ Fairchild MAN74A ก็ช่วยเติมเต็มการออกแบบให้ดูย้อนยุค กำลังไฟจ่ายผ่าน USB แม้ว่าผมจะเตรียมแพดบน PCB สำหรับแหล่งจ่ายไฟ 5 โวลต์แบบสแตนด์อะโลนไว้แล้วก็ตาม
โปรดทราบว่าหากใช้ชิป MAX7219 ของแท้ จำเป็นต้องมี 74AHCT125 แต่หากใช้ชิปโคลนจากจีนที่มักจะขายใน eBay มันจะทำงานได้ดีกับอินพุต 3.3V และไม่จำเป็นต้องใช้ 74AHCT125 รวมถึงอินพุตและเอาต์พุตของชิปจะต้องถูกเชื่อมถึงกัน เนื่องจากอยู่ติดกันบนซ็อกเก็ต IC จึงสามารถทำได้ที่ด้านหลังของ PCB และไม่จำเป็นต้องติดตั้งซ็อกเก็ต

สิ่งสำคัญที่ควรอ่าน - แนะนำให้ทำสิ่งนี้ก่อน!
เพื่อให้โปรเจกต์นี้ใช้งานได้ คุณจะต้องได้รับ API key จาก Google สามารถดูคู่มือที่ครอบคลุมมากได้ที่นี่ https://www.slickremix.com/docs/get-api-key-for-youtube/ และบัญชีนักพัฒนาที่คุณจะต้องสร้างนั้นฟรี เมื่อคุณดำเนินการนี้และสร้างโปรเจกต์, แฟลชเฟิร์มแวร์ ฯลฯ เสร็จแล้ว เครื่องนับจะต้องได้รับการตั้งค่า
คำแนะนำในการตั้งค่า
สิ่งแรกคือต้องเชื่อมต่อกับ WiFi ผมใช้ไลบรารี wifimanager ซึ่งจะทำให้เครื่องนับเข้าสู่โหมด access point โดยอัตโนมัติหากไม่ได้กำหนดค่า WiFi หรือไม่สามารถเชื่อมต่อกับเครือข่ายที่กำหนดค่าไว้ได้ ซึ่งจะสร้าง access point ที่มี SSID “YTcounterAP” และที่อยู่ IP เริ่มต้นคือ 192.168.4.1 ในการเชื่อมต่อ ให้หยิบสมาร์ทโฟนขึ้นมาและตัดการเชื่อมต่อจากเครือข่าย WiFi ใดๆ ที่เชื่อมต่ออยู่ จากนั้นสแกนหาเครือข่าย
เลือก YTcounterAP และเมื่อมันถามว่าคุณต้องลงชื่อเข้าใช้เครือข่าย ให้ป้อนรหัสผ่าน “password” ลงในช่อง; สิ่งนี้จะแตกต่างกันไปขึ้นอยู่กับระบบปฏิบัติการโทรศัพท์ที่คุณใช้ หากคุณใช้แล็ปท็อป เพียงแค่ใช้ “password” สำหรับเครือข่าย wifi หากใช้โทรศัพท์ หน้าเบราว์เซอร์จะเปิดขึ้นโดยอัตโนมัติ; บนแล็ปท็อปคุณจะต้องเปิดเอง การจัดรูปแบบถูกออกแบบมาสำหรับหน้าจอโทรศัพท์ ดังนั้นผมแนะนำให้ใช้สมาร์ทโฟนแทน

เมื่อคุณเปิดหน้าเว็บได้แล้ว (หรือไปที่ 192.168.4.1 ด้วยตนเอง) คุณจะเห็นปุ่มสองปุ่มคือ “configure WiFi” และ “configure WiFi (no scan)” ซึ่งจะช่วยให้คุณเชื่อมต่อเครื่องนับเข้ากับเครือข่ายของคุณได้ การคลิกตัวเลือกแรกจะทำให้เครื่องนับสแกนหาเครือข่าย ส่วนตัวเลือกที่สองจะกำหนดให้คุณต้องป้อน SSID และ key / password ของเราเตอร์ด้วยตนเอง
สมมติว่าคุณเลือกตัวเลือกแรก ให้คลิกชื่อเครือข่ายเราเตอร์ของคุณและกรอก key / passphrase / password ของมัน เครื่องนับจะรีบูตและพยายามเชื่อมต่อกับเครือข่ายใหม่ และเครือข่าย YTcounterAP ที่เพิ่งสร้างขึ้นจะตัดการเชื่อมต่อ คุณจะทราบได้เพราะโทรศัพท์ของคุณจะตัดการเชื่อมต่อและเชื่อมต่อใหม่กับเครือข่าย WiFi ก่อนหน้า เว็บเพจ wifimanager github อยู่ที่ https://github.com/tzapu/WiFiManager พร้อมภาพหน้าจอตัวอย่างและคำแนะนำ
ขั้นตอนต่อไปคือการป้อน API key และ channel ID ของคุณ เพื่อให้เครื่องนับสามารถดึงสถิติสำหรับช่องของคุณได้ ก่อนอื่นคุณจะต้องระบุที่อยู่ IP ที่เครื่องนับใช้งานอยู่ คุณสามารถทำได้ผ่านหน้าต่าง Arduino serial และสังเกตข้อความวินิจฉัยการบูตที่ส่งผ่าน serial port คุณยังสามารถใช้โปรแกรม terminal emulator เช่น RealTerm ที่ตั้งค่าเป็น 115000 baud, 8 data bits และหนึ่ง stop bit ไปยัง serial port ที่เหมาะสม

เปิดเว็บเบราว์เซอร์และชี้ไปที่ที่อยู่ IP ที่คุณพบในขั้นตอนข้างต้น ป้อนรายละเอียด YouTube ของคุณลงในช่องที่ให้ไว้แล้วคลิก submit YouTube channel ID ของคุณคือตัวเลขและตัวอักษรหลัง https://www.youtube.com/channel/ ซึ่งมักจะเริ่มต้นด้วย UC
เมื่อป้อนข้อมูลนี้แล้ว ให้รีบูตเครื่องนับของคุณ และหวังว่าสถิติจะปรากฏขึ้น หากไม่เป็นเช่นนั้น ให้ตรวจสอบ serial monitor เพื่อหาข้อความแสดงข้อผิดพลาด เนื่องจากมันจะแสดงรหัส HTTP มาตรฐานเป็นข้อผิดพลาด ตัวอย่างเช่น 403 น่าจะเป็นเพราะ API key ของคุณไม่ถูกต้องหรือไม่ถูกเปิดใช้งาน

วิดีโอ YouTube
รายละเอียดทางเทคนิคเพิ่มเติม
Telemetry ข้อมูลสดผ่าน API
โปรเจกต์ IoT นี้ช่วยให้ผู้สร้างสามารถติดตามการเติบโตของช่องของตนได้แบบเรียลไทม์โดยใช้อุปกรณ์ตั้งโต๊ะ
- Cloud-Cloud Connection: ใช้ ESP8266 (NodeMCU) หรือ ESP32 เพื่อเชื่อมต่อกับ Google YouTube Data API v3 Arduino จะส่งคำขอที่มี ID ช่องและ API key ที่ไม่ซ้ำกัน
- JSON Payload Parsing: ระบบจะได้รับแพ็กเก็ตข้อมูลที่มี "subscriberCount," "viewCount," และ "videoCount" โดยใช้ไลบรารี
ArduinoJsonเพื่อแยกตัวเลขเฉพาะเหล่านี้ออกจากข้อมูลตอบกลับที่ซับซ้อน
การแสดงผล
- Persistent Display: สถิติย้อนหลังและเรียลไทม์จะแสดงผลบน I2C OLED ที่มีความคมชัดสูง หรือ **MAX7