สารบัญ:
- ขั้นตอนที่ 1: แผน
- ขั้นตอนที่ 2: สิ่งที่คุณต้องการ
- ขั้นตอนที่ 3: การคำนวณกระแสการโก่งตัวเต็มสเกล
- ขั้นตอนที่ 4: การสร้างคำขอ SNMP GET
- ขั้นตอนที่ 5: ทำความเข้าใจ GET Response
- ขั้นตอนที่ 6: ตัวแปลงดิจิทัลเป็นแอนะล็อก (DAC)
- ขั้นตอนที่ 7: สภา
- ขั้นตอนที่ 8: เวลาสำหรับการเข้ารหัส
- ขั้นตอนที่ 9: สนุก
วีดีโอ: มาตรวัดความเร็วอินเทอร์เน็ต: 9 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
ด้วยการล็อกดาวน์อย่างสมบูรณ์ในอินเดีย ทุกอย่างรวมถึงบริการอีเมลถูกปิด ไม่มีโครงการ 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 สำหรับบิลด์จริง!
ข้ามขั้นตอนนี้หากคุณทราบกระแสการโก่งตัวเต็มสเกลสำหรับมิเตอร์ของคุณแล้ว มิเตอร์ของฉันไม่ได้พูดถึงมันเลยต้องคำนวณ แต่ก่อนอื่น เรามาดูกันว่าการเคลื่อนไหวดังกล่าวทำงานอย่างไร ประกอบด้วยขดลวดที่ห้อยอยู่ในสนามแม่เหล็ก เมื่อกระแสไหลผ่านขดลวด ตามกฎของฟาราเดย์ ก็จะเกิดแรง ขดลวดสามารถหมุนได้อย่างอิสระในสนามแม่เหล็กและตัวชี้ที่ติดอยู่กับขดลวดก็เช่นกัน ขนาดของกระแสซึ่งทำให้ตัวชี้เคลื่อนที่ที่ 'จุดสิ้นสุดของมาตราส่วน' เรียกว่า กระแสการโก่งตัวเต็มสเกล นี่เป็นกระแสสูงสุดที่ต้องปล่อยให้ไหลผ่านขดลวด
มีอะไรอีกมากมายเกิดขึ้น แต่นี่ก็เพียงพอแล้วสำหรับสิ่งที่เรากำลังทำอยู่ ตอนนี้เรามีการเคลื่อนไหว สามารถใช้เป็นโวลต์มิเตอร์โดยการเพิ่มความต้านทานสูงเป็นอนุกรมหรือเป็นแอมมิเตอร์โดยการเพิ่มความต้านทานขนานไปกับมันเล็กน้อย เราจะใช้เป็นโวลต์มิเตอร์เพื่อแสดงแรงดันไฟฟ้าตามสัดส่วนของความเร็วอินเทอร์เน็ต ดังนั้นเราต้องคำนวณความต้านทานที่จะเพิ่มเป็นอนุกรม สำหรับสิ่งนั้น เราต้องคำนวณกระแสการโก่งตัวเต็มสเกลก่อน
- เลือกค่าความต้านทานสูง (เช่น >100k)
- เชื่อมต่อแบบอนุกรมกับการเคลื่อนไหว และใช้แรงดันไฟฟ้าแบบแปรผันผ่านหม้อ
- ค่อยๆ เพิ่มแรงดันไฟฟ้าไปเรื่อยๆ จนกว่าตัวชี้จะถึงจุดสิ้นสุดของสเกล
- ใช้มัลติมิเตอร์วัดกระแสที่ไหลผ่าน นี่คือกระแสการโก่งตัวเต็มสเกล (I = 150uA ในกรณีของฉัน)
เราใช้ DAC ซึ่งมีช่วงแรงดันเอาต์พุตตั้งแต่ 0 ถึง VCC (3.3V เนื่องจาก NodeMCU) ซึ่งหมายความว่าเมื่อใช้ 3.3V กับมิเตอร์ ควรชี้ไปที่ส่วนท้ายของมาตราส่วน สิ่งนี้สามารถเกิดขึ้นได้เมื่อกระแสการโก่งตัวเต็มสเกลไหลผ่านวงจรเมื่อใช้ 3.3V การใช้กฎของโอห์ม 3.3/(กระแสการโก่งตัวเต็มสเกล) ให้ค่าความต้านทานที่จะแทรกเป็นอนุกรม
ขั้นตอนที่ 4: การสร้างคำขอ 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
คุณสามารถข้ามขั้นตอนนี้ได้ แต่คุณควรทราบว่าคุณจำเป็นต้องแก้ไขปัญหาหรือไม่
เมื่อคุณอัปโหลดโค้ดและเรียกใช้แล้ว คุณสามารถดูการตอบสนองผ่านการตรวจสอบซีเรียลได้ ควรมีลักษณะตามที่แสดงในภาพ มีบางไบต์ที่คุณต้องค้นหาซึ่งฉันได้เน้นไว้
เริ่มจาก 0
ไบต์ที่ 15 บอกประเภท PDU - 0xA2 หมายความว่าเป็น GetResponse
ไบต์ที่ 48 บอกชนิดข้อมูล - 0x41 หมายความว่าชนิดข้อมูลเป็นตัวนับ
ไบต์ที่ 49 บอกความยาวของข้อมูล - 0x04 หมายความว่าข้อมูลมีความยาว 4 ไบต์
ไบต์ 50, 51, 52, 53 มีข้อมูล
ขั้นตอนที่ 6: ตัวแปลงดิจิทัลเป็นแอนะล็อก (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
ก่อนที่คุณจะอัปโหลด:
- ป้อน WiFi SSID และรหัสผ่านของคุณ
- ป้อนความเร็วในการอัปโหลดและดาวน์โหลดสูงสุดที่กล่าวถึงในระดับ
- ทำการเปลี่ยนแปลงที่จำเป็นในอาร์เรย์คำขอสำหรับการดาวน์โหลดและอัปโหลดแพ็กเก็ต
- Uncomment บรรทัดที่ 165 เพื่อดูการตอบสนองบนจอภาพแบบอนุกรม
กดอัพโหลด!
ขั้นตอนที่ 9: สนุก
เพิ่มพลังและเพลิดเพลินกับการดูเข็มเต้นไปรอบๆ ในขณะที่คุณท่องอินเทอร์เน็ต!
ขอบคุณที่ติดตามจนจบ หวังว่าทุกคนจะรักโครงการนี้และได้เรียนรู้สิ่งใหม่ในวันนี้ แจ้งให้เราทราบหากคุณสร้างมันขึ้นมาเอง สมัครสมาชิกช่อง YouTube ของฉันสำหรับโครงการดังกล่าวเพิ่มเติม
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
มาตรวัดความเร็วอินเทอร์เน็ต: 4 ขั้นตอน (พร้อมรูปภาพ)
มาตรวัดความเร็วอินเทอร์เน็ต: ภาพรวม "มาตรวัดความเร็วอินเทอร์เน็ต" จะให้การดูแลการใช้งานเครือข่ายของคุณแบบเกือบเรียลไทม์ ข้อมูลนี้มีอยู่ในเว็บอินเตอร์เฟสของเราเตอร์ในบ้านส่วนใหญ่ อย่างไรก็ตาม ในการเข้าถึงคุณจะต้องหยุดงานปัจจุบันของคุณเพื่อไป l
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-