สารบัญ:

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

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

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

ด้วยการล็อกดาวน์อย่างสมบูรณ์ในอินเดีย ทุกอย่างรวมถึงบริการอีเมลถูกปิด ไม่มีโครงการ PCB ใหม่ ไม่มีส่วนประกอบใหม่ ไม่มีอะไรเลย! ดังนั้นเพื่อเอาชนะความเบื่อหน่ายและเพื่อให้ตัวเองมีงานยุ่ง ฉันจึงตัดสินใจทำบางอย่างจากส่วนที่ฉันมีอยู่แล้วที่บ้าน ฉันเริ่มค้นหาจากกองขยะอิเล็กทรอนิกส์และพบมัลติมิเตอร์แบบอนาล็อกเก่าที่ชำรุด ฉันกู้ 'การเคลื่อนที่ของมิเตอร์' จากมันและตัดสินใจแสดงข้อมูลบางอย่าง แต่ไม่รู้ว่าอะไรกันแน่ อย่างแรก ฉันคิดว่าจะแสดงสถิติ COVID-19 แต่มีโปรเจ็กต์ที่ดีกว่าบนอินเทอร์เน็ตอยู่แล้ว นอกจากนี้ ข้อมูลจะได้รับการอัปเดตหลังจากผ่านไปสองสามชั่วโมง และตัวชี้ที่นิ่งของมิเตอร์ก็จะดูน่าเบื่อ ฉันต้องการข้อมูลที่เปลี่ยนแปลงอย่างรวดเร็ว เปลี่ยนแปลงทุกวินาที ฉันขอคำแนะนำเกี่ยวกับ Instagram และหนึ่งในผู้ติดตามของฉันตอบกลับด้วย Internet Speedometer ฟังดูน่าสนใจและตัดสินใจสร้างมันขึ้นมา!

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

มาเริ่มกันเลย

ขั้นตอนที่ 1: แผน

เช่นเคยก่อนเริ่มโครงการ ฉันได้ค้นคว้าข้อมูลเล็กน้อยบนอินเทอร์เน็ต ฉันพบบางโครงการที่เกี่ยวข้องกับหัวข้อนี้ พวกเขาเป็นสองประเภท หนึ่งที่แสดงความเร็วอินเทอร์เน็ตโดยการวัด 'ความแรง' ของสัญญาณ WiFi ฉันไม่ใช่ผู้เชี่ยวชาญด้านเครือข่าย แต่ฟังดูไม่ถูกต้อง ส่วนอื่นๆ วัดเวลาแฝงและจัดหมวดหมู่ความเร็วเป็น ช้า ปานกลาง หรือเร็ว เวลาแฝงคือการหน่วงเวลาระหว่างการส่งคำขอและรับการตอบสนอง ดังนั้นจึงไม่สามารถแสดงความเร็วอินเทอร์เน็ตได้จริง เราสามารถเรียกมันว่าความเร็วในการตอบสนองของเครือข่ายได้! จากนั้นมีโครงการที่ถูกกฎหมายซึ่งวัดเวลาที่ต้องใช้ในการดาวน์โหลดข้อมูลบางส่วนและคำนวณความเร็วอินเทอร์เน็ตตามนั้น

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

ดังนั้นแผนคือการใช้ NodeMCU เพื่อเชื่อมต่อกับเราเตอร์ WiFi นี่คือขั้นตอนเพื่อให้ได้ผลลัพธ์สุดท้าย:

  • ส่งคำขอไปยังเราเตอร์ 'ขอ' ข้อมูลที่จำเป็น
  • รับการตอบสนองจากเราเตอร์
  • วิเคราะห์การตอบสนองและแยกวิเคราะห์ข้อมูลที่จำเป็นจากนั้น
  • แปลงข้อมูล 'ดิบ' เป็นข้อมูลที่เข้าใจได้
  • สร้างแรงดันไฟฟ้าตามสัดส่วนความเร็วอินเทอร์เน็ตสำหรับมิเตอร์
  • ทำซ้ำ

ฉันจะใช้ DAC หรือ Digital to Analog Converter เพื่อควบคุมมิเตอร์

ขั้นตอนที่ 2: สิ่งที่คุณต้องการ

สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ

1x NodeMCU

1x การเคลื่อนไหวของมิเตอร์แบบแอนะล็อก

1x MPU4725 DAC

สวิตช์ SPDT 1x

1x 10k โพเทนชิออมิเตอร์

1x ตัวต้านทาน

ขั้นตอนที่ 3: การคำนวณกระแสการโก่งตัวเต็มสเกล

การคำนวณกระแสการโก่งตัวเต็มสเกล
การคำนวณกระแสการโก่งตัวเต็มสเกล
การคำนวณกระแสการโก่งตัวเต็มสเกล
การคำนวณกระแสการโก่งตัวเต็มสเกล

หมายเหตุ: ข้ามไปที่ขั้นตอนที่ 7 สำหรับบิลด์จริง!

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

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

  1. เลือกค่าความต้านทานสูง (เช่น >100k)
  2. เชื่อมต่อแบบอนุกรมกับการเคลื่อนไหว และใช้แรงดันไฟฟ้าแบบแปรผันผ่านหม้อ
  3. ค่อยๆ เพิ่มแรงดันไฟฟ้าไปเรื่อยๆ จนกว่าตัวชี้จะถึงจุดสิ้นสุดของสเกล
  4. ใช้มัลติมิเตอร์วัดกระแสที่ไหลผ่าน นี่คือกระแสการโก่งตัวเต็มสเกล (I = 150uA ในกรณีของฉัน)

เราใช้ DAC ซึ่งมีช่วงแรงดันเอาต์พุตตั้งแต่ 0 ถึง VCC (3.3V เนื่องจาก NodeMCU) ซึ่งหมายความว่าเมื่อใช้ 3.3V กับมิเตอร์ ควรชี้ไปที่ส่วนท้ายของมาตราส่วน สิ่งนี้สามารถเกิดขึ้นได้เมื่อกระแสการโก่งตัวเต็มสเกลไหลผ่านวงจรเมื่อใช้ 3.3V การใช้กฎของโอห์ม 3.3/(กระแสการโก่งตัวเต็มสเกล) ให้ค่าความต้านทานที่จะแทรกเป็นอนุกรม

ขั้นตอนที่ 4: การสร้างคำขอ SNMP GET

การสร้างคำขอ SNMP GET
การสร้างคำขอ SNMP GET
การสร้างคำขอ SNMP GET
การสร้างคำขอ SNMP GET
การสร้างคำขอ SNMP GET
การสร้างคำขอ SNMP GET

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

แต่ก่อนอื่น เราต้องส่งคำขอที่เรียกว่า 'GET Request' ไปยังเราเตอร์โดยระบุรายละเอียดของข้อมูลที่เราต้องการ รูปแบบคำขอ GET แสดงอยู่ในรูปภาพ คำขอประกอบด้วยส่วนต่างๆ ฉันได้เน้นไบต์ที่คุณอาจต้องการเปลี่ยน

โปรดทราบว่าทุกอย่างอยู่ในเลขฐานสิบหก

ข้อความ SNMP -ในกรณีของฉัน ความยาวของข้อความทั้งหมดคือ 40 (สีเทา) ซึ่งเมื่อแปลงเป็นเลขฐานสิบหกคือ 0x28

SNMP Community String - ค่า 'PUBLIC' เขียนด้วยเลขฐานสิบหกเป็น '70 75 62 6C 69 63' ซึ่งมีความยาว 6 (สีเหลือง)

ประเภท SNMP PDU - ในกรณีของฉัน ความยาวของข้อความคือ 27 (สีน้ำเงิน) เช่น 0x1B

Varbind List Type - ในกรณีของฉัน ความยาวของข้อความคือ 16 (สีเขียว) เช่น 0x10

Varbind Type - ในกรณีของฉัน ความยาวของข้อความคือ 14 (สีชมพู) เช่น 0x0E

ตัวระบุวัตถุ -

ตามที่กล่าวไว้ก่อนหน้านี้ อุปกรณ์เครือข่ายที่เปิดใช้งาน SNMP (เช่น เราเตอร์ สวิตช์ ฯลฯ) จะรักษาฐานข้อมูลของสถานะระบบ ความพร้อมใช้งาน และข้อมูลประสิทธิภาพเป็นอ็อบเจ็กต์ ซึ่งระบุโดย OID คุณต้องระบุ OID ของเราเตอร์ของคุณสำหรับการอัปโหลดและดาวน์โหลดแพ็กเก็ต สามารถทำได้โดยใช้เบราว์เซอร์ MIB ฟรีเช่นนี้

ป้อนที่อยู่เป็น 192.168.1.1 และ OID เป็น.1.3.3.6.1.2.1.2.2.1.10.x (ifInOctets) หรือ.1.3.6.1.2.1.2.2.1.16.x (ifOutOctets). เลือก รับการดำเนินการ และคลิกที่ ไป คุณควรเห็น OID พร้อมกับค่าและประเภท

ในกรณีของฉัน ความยาวของข้อความคือ 10 (สีแดง) เช่น 0x0A แทนที่ค่าด้วย OID ในกรณีนี้ '2B 06 01 02 01 02 02 01 10 10'

แค่นั้นแหละ! ข้อความคำขอของคุณพร้อมแล้ว เก็บไบต์ที่เหลือไว้เหมือนเดิม

การเปิด SNMP บนเราเตอร์ของคุณ:

  • เข้าสู่ระบบหน้าเราเตอร์ WiFi ของคุณผ่านเกตเวย์เริ่มต้น พิมพ์ 192.168.1.1 ในเบราว์เซอร์ของคุณแล้วกด Enter โดยค่าเริ่มต้น ชื่อผู้ใช้และรหัสผ่านควรเป็น 'admin'
  • ฉันใช้เราเตอร์ TP-LINK (TD-W8961N) สำหรับเราเตอร์นี้ คุณต้องไปที่ Access Management > SNMP และเลือก 'Activated'
  • GET ชุมชน: สาธารณะ
  • โฮสต์กับดัก: 0.0.0.0

ขั้นตอนที่ 5: ทำความเข้าใจ GET Response

ทำความเข้าใจ GET Response
ทำความเข้าใจ GET Response

คุณสามารถข้ามขั้นตอนนี้ได้ แต่คุณควรทราบว่าคุณจำเป็นต้องแก้ไขปัญหาหรือไม่

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

เริ่มจาก 0

ไบต์ที่ 15 บอกประเภท PDU - 0xA2 หมายความว่าเป็น GetResponse

ไบต์ที่ 48 บอกชนิดข้อมูล - 0x41 หมายความว่าชนิดข้อมูลเป็นตัวนับ

ไบต์ที่ 49 บอกความยาวของข้อมูล - 0x04 หมายความว่าข้อมูลมีความยาว 4 ไบต์

ไบต์ 50, 51, 52, 53 มีข้อมูล

ขั้นตอนที่ 6: ตัวแปลงดิจิทัลเป็นแอนะล็อก (DAC)

ตัวแปลงดิจิตอลเป็นอนาล็อก (DAC)
ตัวแปลงดิจิตอลเป็นอนาล็อก (DAC)

ไมโครคอนโทรลเลอร์เป็นอุปกรณ์ดิจิตอลที่ไม่เข้าใจแรงดันอนาล็อกโดยตรง ฉันใช้มิเตอร์แอนะล็อกที่ต้องการแรงดันไฟฟ้าผันแปรเป็นอินพุต แต่ไมโครคอนโทรลเลอร์สามารถเอาท์พุต HIGH (3.3V ในกรณีของ NodeMCU) และ LOW (0V) ตอนนี้คุณอาจบอกว่าทำไมไม่ใช้แค่ PWM มันใช้งานไม่ได้เนื่องจากมิเตอร์จะแสดงเฉพาะค่าเฉลี่ยเท่านั้น

ฉันใช้ MCP4725 DAC เพื่อรับแรงดันไฟฟ้าผันแปร เป็น DAC 12 บิต กล่าวง่ายๆ คือ จะแบ่ง 0 ถึง 3.3V ออกเป็น 4096 (= 2^12) ส่วน ความละเอียดจะเป็น 3.3/4096 = 0.8056mV ซึ่งหมายความว่า 0 สอดคล้องกับ 0V, 1 สอดคล้องกับ 0.8056mV, 2 สอดคล้องกับ 1.6112mV, ….., 4095 สอดคล้องกับ 3.3V

ความเร็วอินเทอร์เน็ตจะ 'จับคู่' จาก '0 ถึง 7 mbps' ถึง '0 ถึง 4095' จากนั้นค่านี้จะถูกกำหนดให้กับ DAC เพื่อส่งออกแรงดันไฟฟ้าซึ่งจะเป็นสัดส่วนกับความเร็วอินเทอร์เน็ต

ขั้นตอนที่ 7: สภา

สมัชชา
สมัชชา
สมัชชา
สมัชชา
สมัชชา
สมัชชา
สมัชชา
สมัชชา

การเชื่อมต่อทำได้ง่ายมาก แผนผังได้รับการแนบไว้ที่นี่

ฉันออกแบบและพิมพ์สเกล อันบนใช้สำหรับความเร็วในการดาวน์โหลด และอันล่างสำหรับความเร็วในการอัพโหลด ฉันติดสเกลใหม่ทับอันเก่า

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

ขั้นตอนที่ 8: เวลาสำหรับการเข้ารหัส

เวลาสำหรับการเข้ารหัส
เวลาสำหรับการเข้ารหัส
เวลาสำหรับการเข้ารหัส
เวลาสำหรับการเข้ารหัส
เวลาสำหรับการเข้ารหัส
เวลาสำหรับการเข้ารหัส

ได้แนบรหัสไว้ที่นี่ ดาวน์โหลดและเปิดใน Arduino IDE ติดตั้งไลบรารี MCP4725 จาก Adafruit

ก่อนที่คุณจะอัปโหลด:

  1. ป้อน WiFi SSID และรหัสผ่านของคุณ
  2. ป้อนความเร็วในการอัปโหลดและดาวน์โหลดสูงสุดที่กล่าวถึงในระดับ
  3. ทำการเปลี่ยนแปลงที่จำเป็นในอาร์เรย์คำขอสำหรับการดาวน์โหลดและอัปโหลดแพ็กเก็ต
  4. Uncomment บรรทัดที่ 165 เพื่อดูการตอบสนองบนจอภาพแบบอนุกรม

กดอัพโหลด!

ขั้นตอนที่ 9: สนุก

เพิ่มพลังและเพลิดเพลินกับการดูเข็มเต้นไปรอบๆ ในขณะที่คุณท่องอินเทอร์เน็ต!

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

แนะนำ: