กลับไปหน้ารวมไฟล์
a-simple-youtube-statistics-display-for-small-channels-81b9b3.md

หน้าจอแสดงสถิติ 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 และไม่จำเป็นต้องติดตั้งซ็อกเก็ต

PCB เวอร์ชัน 1 ใช้จอแสดงผล MAN74A สีแดงที่ติดตั้งในเคสกรอบรูป

สิ่งสำคัญที่ควรอ่าน - แนะนำให้ทำสิ่งนี้ก่อน!

เพื่อให้โปรเจกต์นี้ใช้งานได้ คุณจะต้องได้รับ 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 หากใช้โทรศัพท์ หน้าเบราว์เซอร์จะเปิดขึ้นโดยอัตโนมัติ; บนแล็ปท็อปคุณจะต้องเปิดเอง การจัดรูปแบบถูกออกแบบมาสำหรับหน้าจอโทรศัพท์ ดังนั้นผมแนะนำให้ใช้สมาร์ทโฟนแทน

เว็บเซิร์ฟเวอร์ในตัวแสดงหน้าการกำหนดค่า Wi-Fi

เมื่อคุณเปิดหน้าเว็บได้แล้ว (หรือไปที่ 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 ที่เหมาะสม

ตัวอย่าง YouTube ID

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

เมื่อป้อนข้อมูลนี้แล้ว ให้รีบูตเครื่องนับของคุณ และหวังว่าสถิติจะปรากฏขึ้น หากไม่เป็นเช่นนั้น ให้ตรวจสอบ serial monitor เพื่อหาข้อความแสดงข้อผิดพลาด เนื่องจากมันจะแสดงรหัส HTTP มาตรฐานเป็นข้อผิดพลาด ตัวอย่างเช่น 403 น่าจะเป็นเพราะ API key ของคุณไม่ถูกต้องหรือไม่ถูกเปิดใช้งาน

เอาต์พุตจาก serial port ซึ่งแสดงข้อมูลวินิจฉัย

วิดีโอ 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

ข้อมูล Frontmatter ดั้งเดิม

title: "A simple YouTube statistics display for small channels"
description: "A desktop mounted unit that connects to YouTube and displays your subscriber and total view counts on retro style 7 segment displays."
author: "adrian-smith31"
category: "Screens & Displays"
tags:
  - "Data Collection"
  - "Internet Of Things"
  - "Monitoring"
views: 285
likes: 0
price: 2450
difficulty: "Intermediate"
components:
  - "4x Capacitor 0.1uF"
  - "12x MAN4640A"
  - "1x NodeMCU ESP8266"
  - "1x Soldering kit"
  - "1x capacitor 100uF"
  - "1x 74AHCT125 Quad Level-Shifter"
  - "2x MAX7219CNG"
  - "2x 12K ohm resistor"
tools: []
apps:
  - "1x Arduino IDE"
  - "1x KiCad"
downloadableFiles: []
documentationLinks: []
passwordHash: "caa0b1f4377d55698c0ec388dcb9f9f2480fef2db2c667d5b8b324d5190c1faf"
encryptedPayload: "U2FsdGVkX19ztW6kOdj+kNHRq+iTTghQefGFzwG+kOFbYyN4JyrScObt7TpaU6Y5dWX2nN1mrta56u8ldqZ3uRR18wwpnPmP5xMtGNPRvzc="
seoDescription: "Simple YouTube statistics display for small channels using retro 7 segment displays to track subscribers and views."
videoLinks:
  - "https://youtu.be/fsjcxCXoPIg"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/a-simple-youtube-statistics-display-for-small-channels-81b9b3_cover.jpg"
lang: "th"