สารบัญ:

มาตรวัดความเร็วอินเทอร์เน็ต: 4 ขั้นตอน (พร้อมรูปภาพ)
มาตรวัดความเร็วอินเทอร์เน็ต: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: มาตรวัดความเร็วอินเทอร์เน็ต: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: มาตรวัดความเร็วอินเทอร์เน็ต: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: [20วิ] ให้เน็ตเร็วขึ้น ทำไง? ภายใน10วิ 2024, กรกฎาคม
Anonim
Image
Image
มาตรวัดความเร็วอินเทอร์เน็ต
มาตรวัดความเร็วอินเทอร์เน็ต
มาตรวัดความเร็วอินเทอร์เน็ต
มาตรวัดความเร็วอินเทอร์เน็ต

ภาพรวม

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

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

มันทำสิ่งต่าง ๆ ได้อย่างไร

ฉันตัดสินใจใช้ SNMP (Simple Network Management Protocol) เป็นวิธีการรับข้อมูลจากเราเตอร์ SNMP ใช้กันอย่างแพร่หลายในอุปกรณ์เครือข่าย และหากอุปกรณ์ของคุณไม่รองรับโดยค่าเริ่มต้น DDWRT (เฟิร์มแวร์เราเตอร์โอเพนซอร์ส) ก็สามารถนำมาใช้เพื่อปรับใช้ SNMP ได้

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

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

ความท้าทาย

เกจที่ฉันเคยใช้แอคชูเอเตอร์ของ Air-Core ฉันไม่เคยได้ยินเรื่องนี้มาก่อนโครงการนี้

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

ฉันไม่พบไลบรารี่สำหรับ Arduino ที่รองรับ SNMP ในการกำหนดค่าตัวจัดการ SNMP มีสองรูปแบบหลัก คือ ตัวแทนและผู้จัดการ ตัวแทนตอบสนองต่อคำขอและผู้จัดการส่งคำขอไปยังตัวแทน ฉันสามารถใช้ฟังก์ชันผู้จัดการได้โดยการปรับเปลี่ยนไลบรารี Arduino_SNMP ที่สร้างโดย 0neblock ฉันไม่เคยตั้งโปรแกรมใน C ++ นอกจากทำให้ LED กะพริบบน Arduino ดังนั้นหากมีปัญหากับไลบรารี SNMP แจ้งให้เราทราบและฉันจะพยายามแก้ไขสำหรับตอนนี้ก็ใช้งานได้

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

ขั้นตอนที่ 1: เครื่องมือและวัสดุ

เครื่องมือและวัสดุ
เครื่องมือและวัสดุ
เครื่องมือและวัสดุ
เครื่องมือและวัสดุ
เครื่องมือและวัสดุ
เครื่องมือและวัสดุ
เครื่องมือและวัสดุ
เครื่องมือและวัสดุ
การออกแบบวงจร
การออกแบบวงจร

เราต้องการสะพาน H เต็มรูปแบบ 3 แห่ง รุ่นที่ฉันใช้คือ Dual TB6612FNG และ Dual L298N

แอ๊คทูเอเตอร์ Air-Core แต่ละตัวต้องการ H-bridge 2 ตัว เนื่องจากคอยล์ต้องควบคุมอย่างอิสระ

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

ฉันจะใช้ตัวควบคุม 12v ถึง 5v ซึ่งเป็นส่วนหนึ่งของบอร์ด L298N ที่ฉันเลือกเพื่อจ่ายไฟให้กับ ESP32

วงจร LED ทั้งหมดเป็นอุปกรณ์เสริม เช่นเดียวกับขั้วต่อ JST คุณสามารถบัดกรีสายไฟเข้ากับ ESP32 และไดรเวอร์มอเตอร์ได้โดยตรง

ขั้นตอนที่ 3: การออกแบบโค้ด

ตั้งค่ารหัส

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

คุณจะต้องมีไลบรารี Arduino_SNMP อยู่ที่นี่ด้วย

ในการกำหนดค่ารหัส คุณจะต้องรวบรวมข้อมูลบางอย่าง

  1. IP ของเราเตอร์
  2. ความเร็วในการอัพโหลดสูงสุด
  3. ความเร็วในการดาวน์โหลดสูงสุด
  4. ชื่อ WiFi และรหัสผ่านของคุณ
  5. OID ที่มีออคเต็ตนับสำหรับ "เข้า" และ "ออก" บนอินเทอร์เฟซ WAN ของเราเตอร์ของคุณ

มี OID มาตรฐาน (ตัวระบุวัตถุ) สำหรับข้อมูลที่เราต้องการ ตามมาตรฐาน MIB-2 ตัวเลขที่เราต้องการคือ:

ifInOctets.1.3.6.1.2.1.2.2.1.16. X

ifOutOctets.1.3.6.1.2.1.1.2.2.1.10. X

โดยที่ X คือหมายเลขที่กำหนดให้กับอินเทอร์เฟซที่คุณต้องการรับสถิติ สำหรับฉันหมายเลขนั้นคือ 3 วิธีหนึ่งในการยืนยันว่านี่คือ OID ที่ถูกต้องสำหรับคุณและระบุหมายเลขอินเทอร์เฟซที่คุณต้องการใช้ คือการใช้เครื่องมือเช่น MIB Browser

เพื่อให้ได้ความเร็วสูงสุด ฉันใช้ SpeedTest.net เมื่อคุณมีความเร็วเป็น Mbps แล้ว คุณจะต้องแปลงเป็น octets โดยใช้สูตรนี้

Octets ต่อวินาที = (ผลจากการทดสอบความเร็วเป็น Mbps * 1048576) / 8

ฟังก์ชั่นรหัส

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

เมื่อกระบวนการนี้เกิดขึ้นอย่างน้อยสองครั้ง เราสามารถคำนวณเปอร์เซ็นต์การใช้งานตามค่าสูงสุดของเราโดยใช้รหัสนี้

เปอร์เซ็นต์ลง = ((ลอย)(byteDown - byteDownLast)/(float)(maxDown*((มิลลิวินาที() - timeLast)/1000))) * 100;

คณิตศาสตร์แบ่งออกดังนี้:

octetsDiff = snmp_result - Previous_ snmp_result

timeFrame = ปัจจุบันเวลา - timeLast

MaxPosableOverTime = (กรอบเวลา * Octets_per_second)/1000

เปอร์เซ็นต์ = (octetsDiff / MaxPosableOverTime) * 100

ตอนนี้เรามีเปอร์เซ็นต์การใช้งานเครือข่ายแล้ว เราก็แค่ต้องเขียนลงในมาตรวัด เราทำใน 2 ขั้นตอน ขั้นแรกเราใช้ฟังก์ชัน updateDownloadGauge ในฟังก์ชันนี้ เราใช้ "แผนที่" เพื่อแปลงเปอร์เซ็นต์เป็นตัวเลขที่แสดงตำแหน่งเรเดียนบนมาตรวัด จากนั้นเราให้ตัวเลขนั้นกับฟังก์ชัน setMeterPosition เพื่อเลื่อนเข็มไปยังตำแหน่งใหม่

ขั้นตอนที่ 4: การออกแบบเคส

การออกแบบเคส
การออกแบบเคส
การออกแบบเคส
การออกแบบเคส
การออกแบบเคส
การออกแบบเคส

เพื่อบรรจุทุกอย่าง ฉันออกแบบกล่องหุ้มใน fusion360 และ 3Dprinted การออกแบบที่ฉันทำค่อนข้างง่าย ฉันใช้กาวร้อนติดส่วนประกอบเข้ากับด้านใน และยึดมาตรวัดให้เข้าที่โดยหนีบระหว่างฝาครอบด้านหน้าและด้านหลัง คุณไม่จำเป็นต้องใช้การพิมพ์ 3 มิติเพื่อสร้างเคส ตัวอย่างเช่น คุณสามารถทำเคสที่ทำจากไม้ หรือคุณอาจนำทุกอย่างกลับเข้าที่ในกล่องเดิมที่มีเกจเข้ามา

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

ไฟล์เคส:

ขอบคุณที่อ่าน. โปรดแจ้งให้เราทราบหากคุณมีคำถามใดๆ และเราจะพยายามตอบอย่างเต็มที่

แนะนำ: