Სარჩევი:

ინტერნეტის სიჩქარე: 9 ნაბიჯი (სურათებით)
ინტერნეტის სიჩქარე: 9 ნაბიჯი (სურათებით)

ვიდეო: ინტერნეტის სიჩქარე: 9 ნაბიჯი (სურათებით)

ვიდეო: ინტერნეტის სიჩქარე: 9 ნაბიჯი (სურათებით)
ვიდეო: ყველაზე საზარელი აღმოჩენები, რომლებიც რენტგენზე დააფიქსირეს 2024, მაისი
Anonim
Image
Image
Გეგმა
Გეგმა

ინდოეთში სრული ჩაკეტვით, ყველაფერი ფოსტის სერვისების ჩათვლით დაიხურა. ახალი PCB პროექტები, ახალი კომპონენტები, არაფერი! ასე რომ, მოწყენილობის დასაძლევად და საკუთარი თავის დაკავების მიზნით, გადავწყვიტე რაღაცეები გამეკეთებინა იმ ნაწილებიდან, რომელიც უკვე სახლში მაქვს. დავიწყე ელექტრონული ნაგვის წყობიდან ძებნა და ვიპოვე ძველი, გატეხილი ანალოგური მულტიმეტრი. მე გადავარჩინე "მეტრის მოძრაობა" მისგან და გადავწყვიტე რაიმე სახის ინფორმაციის ჩვენება, მაგრამ ზუსტად არ ვიცოდი რა. პირველ რიგში, მე ვიფიქრე COVID-19 სტატისტიკის ჩვენებაზე, მაგრამ უკვე ბევრი უკეთესი პროექტია ინტერნეტში. ასევე, მონაცემები განახლდება რამდენიმე საათის შემდეგ და მრიცხველის მაჩვენებელი მოსაწყენი იქნებოდა. მე მინდოდა მონაცემები, რომლებიც სწრაფად იცვლება, იცვლება ყოველ წამს. მე ვთხოვე წინადადებები ინსტაგრამზე და ჩემმა ერთმა მიმდევარმა მიპასუხა ინტერნეტ სპიდომეტრით. საინტერესოდ ჟღერდა და მისი გაკეთება გადაწყვიტა!

ამ ინსტრუქციაში, მე გაჩვენებთ თუ როგორ ავიღე მონაცემები ჩემი WiFi როუტერიდან SNMP გამოყენებით და გამოვაჩინე ატვირთვისა და გადმოტვირთვის სიჩქარე მეტრზე.

Დავიწყოთ

ნაბიჯი 1: გეგმა

როგორც ყოველთვის, სანამ დავიწყებდი პროექტს, მე ცოტა კვლევა ჩავატარე ინტერნეტში. მე აღმოვაჩინე ამ პროექტთან დაკავშირებული რამდენიმე პროექტი. ისინი ორი სახის იყვნენ. ერთი, რომელმაც აჩვენა ინტერნეტის სიჩქარე WiFi სიგნალის "სიძლიერის" გაზომვით. მე არ ვარ ქსელის ექსპერტი, მაგრამ ეს არ ჟღერს სწორად. დანარჩენებმა შეაფასეს შეფერხება და დაადგინეს სიჩქარე ნელი, საშუალო ან სწრაფი. ლატენტურობა არის დროის შეფერხება მოთხოვნის გაგზავნასა და პასუხის მიღებას შორის და, შესაბამისად, ეს არ შეიძლება იყოს ინტერნეტის სიჩქარის ფაქტობრივი წარმოდგენა. ჩვენ შეგვიძლია ვუწოდოთ მას ქსელის რეაგირების სიჩქარე! შემდეგ იყო ლეგიტიმური პროექტები, რომლებმაც გაზომეს გარკვეული დრო მონაცემების გადმოსაწერად და გამოთვალეს ინტერნეტის სიჩქარე ამის საფუძველზე.

მაგრამ სწორედ ამ პროექტში (Alistair– ის მიერ) გავიგე ქსელის მართვის მარტივი პროტოკოლის ან SNMP– ის შესახებ. SNMP– ის გამოყენებით, ჩვენ შეგვიძლია ვუკავშირდეთ WiFi როუტერს და მივიღოთ საჭირო მონაცემები პირდაპირ მისგან. ადვილია, არა? Ფაქტობრივად არა! ვინაიდან WiFi მარშრუტიზატორის სხვადასხვა მოდელს აქვს განსხვავებული პარამეტრები და სჭირდება ბევრი ცდა და შეცდომა სანამ საბოლოოდ მიიღებთ გამომავალს. ნუ გეშინია. მე მოკლედ აგიხსნით ყველაფერს, რაც შევიტყვე SNMP– ს შესახებ და იმ სირთულეების შესახებ, რომელთა წინაშეც აღმოვჩნდი მომდევნო ნაბიჯებში.

ასე რომ, გეგმაა გამოიყენოთ NodeMCU WiFi როუტერთან დასაკავშირებლად. ეს არის ნაბიჯები საბოლოო შედეგამდე მისასვლელად:

  • გაგზავნეთ მოთხოვნა როუტერზე 'მოთხოვნით' საჭირო მონაცემებს
  • მიიღეთ პასუხი როუტერიდან
  • გააანალიზეთ პასუხი და გაანალიზეთ მისგან საჭირო მონაცემები
  • გადააქციეთ "ნედლი" მონაცემები გასაგებ ინფორმაციად
  • გამოიმუშავეთ ძაბვა ინტერნეტის სიჩქარის პროპორციული მრიცხველისთვის
  • გაიმეორეთ

მე ვიყენებ DAC- ს ან ციფრულ ანალოგურ კონვერტორს მრიცხველის გასაკონტროლებლად.

ნაბიჯი 2: ის, რაც დაგჭირდებათ

რამ დაგჭირდებათ
რამ დაგჭირდებათ
რამ დაგჭირდებათ
რამ დაგჭირდებათ
რამ დაგჭირდებათ
რამ დაგჭირდებათ

1x NodeMCU

1x ანალოგური მრიცხველის მოძრაობა

1x MPU4725 DAC

1x SPDT გადამრთველი

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 მოთხოვნის შექმნა

მარტივი ქსელის მართვის პროტოკოლი (SNMP) არის ინტერნეტ სტანდარტული პროტოკოლი IP ქსელებში მართული მოწყობილობების შესახებ ინფორმაციის შეგროვებისა და ორგანიზებისათვის და ამ ინფორმაციის შესაცვლელად მოწყობილობის ქცევის შესაცვლელად. მოწყობილობები, რომლებიც ჩვეულებრივ მხარს უჭერენ SNMP– ს, მოიცავს საკაბელო მოდემებს, მარშრუტიზატორებს, კონცენტრატორებს, სერვერებს, სამუშაო სადგურებს, პრინტერებს და სხვა. ამ აღნაგობისთვის, ჩვენ ვუკავშირდებით ჩვენს WiFi როუტერს SNMP გამოყენებით და მივიღებთ საჭირო მონაცემებს.

მაგრამ პირველ რიგში, ჩვენ უნდა გავაგზავნოთ მოთხოვნა, რომელიც ცნობილია როგორც "GET მოთხოვნა" როუტერზე, სადაც მითითებულია ჩვენთვის სასურველი მონაცემების დეტალები. GET მოთხოვნის ფორმატი ნაჩვენებია სურათზე. მოთხოვნა შედგება სხვადასხვა ნაწილისგან. მე გამოვყოფდი ბაიტებს, რომელთა შეცვლაც გსურთ.

გთხოვთ გაითვალისწინოთ, რომ ყველაფერი თექვსმეტობითაა.

SNMP შეტყობინება -ჩემს შემთხვევაში, მთელი შეტყობინების სიგრძეა 40 (ნაცრისფერი ფერი), რომელიც თექვსმეტობითად გადაქცევისას არის 0x28.

SNMP Community String - მნიშვნელობა 'PUBLIC' არის დაწერილი თექვსმეტობით, როგორც '70 75 62 6C 69 63 ', რომლის სიგრძეა 6 (ყვითელი).

SNMP PDU ტიპი - ჩემს შემთხვევაში, შეტყობინების სიგრძეა 27 (ლურჯი) ანუ 0x1B.

Varbind სიის ტიპი - ჩემს შემთხვევაში, შეტყობინების სიგრძეა 16 (მწვანე) ანუ 0x10.

ვარბინდის ტიპი - ჩემს შემთხვევაში, შეტყობინების სიგრძეა 14 (ვარდისფერი) ანუ 0x0E.

ობიექტის იდენტიფიკატორი -

როგორც უკვე აღვნიშნეთ, SNMP– ით ჩართული ქსელური მოწყობილობები (მაგ. მარშრუტიზატორები, გადამრთველები და სხვა) ინარჩუნებს მონაცემთა სტატუსის, ხელმისაწვდომობისა და შესრულების შესახებ მონაცემთა მონაცემთა ბაზას, როგორც ობიექტებს, რომლებიც გამოვლენილია OID– ებით. თქვენ უნდა დაადგინოთ თქვენი როუტერის OIDs პაკეტების ატვირთვა და ჩამოტვირთვა. ეს შეიძლება გაკეთდეს ამგვარი უფასო MIB ბრაუზერის გამოყენებით.

შეიყვანეთ მისამართი 192.168.1.1 და OID როგორც.1.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 01 10 10'

Ის არის! თქვენი მოთხოვნის შეტყობინება მზად არის. შეინახეთ დანარჩენი ბაიტები ისე, როგორც არის.

ჩართეთ SNMP თქვენს როუტერზე:

  • შედით თქვენი WiFi როუტერის გვერდზე ნაგულისხმევი კარიბჭის მეშვეობით. ჩაწერეთ 192.168.1.1 თქვენს ბრაუზერში და დააჭირეთ Enter. სტანდარტულად, მომხმარებლის სახელი და პაროლი უნდა იყოს 'admin'.
  • მე ვიყენებ TP-LINK (TD-W8961N) როუტერს. ამ როუტერისთვის, თქვენ უნდა შეხვიდეთ წვდომის მენეჯმენტში> SNMP და შეარჩიოთ "გააქტიურებული".
  • GET Community: საჯარო
  • ხაფანგის მასპინძელი: 0.0.0.0

ნაბიჯი 5: GET რეაგირების გაგება

GET რეაგირების გაგება
GET რეაგირების გაგება

თქვენ შეგიძლიათ გამოტოვოთ ეს ნაბიჯი, მაგრამ კარგია იცოდეთ გჭირდებათ რაიმე პრობლემის მოგვარება.

მას შემდეგ რაც ატვირთავთ კოდს და გაუშვებთ მას, შეგიძლიათ შეხედოთ პასუხს სერიული მონიტორის საშუალებით. ის უნდა გამოიყურებოდეს ისე როგორც სურათზეა ნაჩვენები. არსებობს რამდენიმე ბაიტი, რომელიც თქვენ უნდა მოძებნოთ, რომელიც მე გამოვყავი.

0 -დან იწყება, მე -15 ბაიტი ეუბნება PDU– ს ტიპს - 0xA2 ნიშნავს, რომ ეს არის GetResponse.

48 -ე ბაიტი გვეუბნება მონაცემთა ტიპს - 0x41 ნიშნავს, რომ მონაცემთა ტიპი არის Counter.

49 -ე ბაიტი გვეუბნება მონაცემების სიგრძეს - 0x04 ნიშნავს, რომ მონაცემები 4 ბაიტი სიგრძისაა.

ბაიტი 50, 51, 52, 53 შეიცავს მონაცემებს.

ნაბიჯი 6: ციფრული ანალოგური გადამყვანი (DAC)

ციფრული ანალოგური გადამყვანი (DAC)
ციფრული ანალოგური გადამყვანი (DAC)

მიკროკონტროლები არის ციფრული მოწყობილობები, რომლებსაც არ ესმით ანალოგური ძაბვები. მე ვიყენებ ანალოგურ მრიცხველს, რომელსაც შესასვლელად სჭირდება ცვლადი ძაბვა. მაგრამ მიკროკონტროლერს შეუძლია გამოუშვას მხოლოდ მაღალი (3.3V NodeMCU- ს შემთხვევაში) და LOW (0V). ახლა თქვენ შეგიძლიათ თქვათ, რატომ არ გამოიყენოთ მხოლოდ PWM. ის არ იმუშავებს, რადგან მეტრი აჩვენებს მხოლოდ საშუალო მნიშვნელობას.

მე ვიყენებ MCP4725 DAC ცვლადი ძაბვის მისაღებად. ეს არის 12 ბიტიანი DAC ანუ მარტივი სიტყვებით, ის 0-დან 3.3 ვ-მდე გაყოფს 4096 (= 2^12) ნაწილად. გარჩევადობა იქნება 3.3/4096 = 0.8056 მვ. ეს ნიშნავს, რომ 0 შეესაბამება 0V, 1 შეესაბამება 0.8056mV, 2 შეესაბამება 1.6112mV,….., 4095 შეესაბამება 3.3V.

ინტერნეტის სიჩქარე იქნება "ასახული" 0 -დან 7 მბ / წმ -მდე "0 -დან 4095" -მდე და შემდეგ ეს მნიშვნელობა გადაეცემა DAC- ს, რათა გამოუშვას ძაბვა, რომელიც პროპორციული იქნება ინტერნეტის სიჩქარეზე.

ნაბიჯი 7: ასამბლეა

ასამბლეა
ასამბლეა
ასამბლეა
ასამბლეა
ასამბლეა
ასამბლეა
ასამბლეა
ასამბლეა

კავშირები ძალიან მარტივია. სქემა დაერთო აქ.

მე შევქმენი და დავბეჭდე მასშტაბი. ზედა არის გადმოტვირთვის სიჩქარისთვის და ქვედა არის ატვირთვის სიჩქარისთვის. ახალი სასწორი ძველზე დავაწებე.

მულტიმეტრიდან ამოვიღე ძველი ნივთები და ყველაფერი ჩავწექი მასში. ეს იყო მჭიდრო მორგება. მომიწია წინა ხვრელის გაბურღვა გადასატანი გადამრთველის შესაერთებლად, რომელიც გამოიყენება ატვირთვისა და გადმოტვირთვის სიჩქარეს შორის ასარჩევად.

ნაბიჯი 8: კოდირების დრო

დრო კოდირებისთვის
დრო კოდირებისთვის
დრო კოდირებისთვის
დრო კოდირებისთვის
დრო კოდირებისთვის
დრო კოდირებისთვის

კოდი დაერთო აქ. ჩამოტვირთეთ და გახსენით Arduino IDE– ში. დააინსტალირეთ MCP4725 ბიბლიოთეკა ადაფრუტიდან.

სანამ ატვირთავ:

  1. შეიყვანეთ თქვენი WiFi SSID და პაროლი
  2. შეიყვანეთ მასშტაბზე ნახსენები ატვირთვისა და გადმოტვირთვის მაქსიმალური სიჩქარე.
  3. განახორციელეთ საჭირო ცვლილებები მოთხოვნის მასივში გადმოტვირთვისთვის, ასევე პაკეტების ასატვირთად.
  4. სერიულ მონიტორზე პასუხის სანახავად დატოვეთ კომენტარი 165 -ე ხაზზე.

დააჭირეთ ატვირთვას!

ნაბიჯი 9: ისიამოვნეთ

გაააქტიურეთ და ისიამოვნეთ ნემსის ყურებით, როცა ინტერნეტში დაათვალიერებთ!

გმადლობთ, რომ ბოლომდე იყავით. იმედია ყველას მოგეწონებათ ეს პროექტი და დღეს ისწავლეთ რაიმე ახალი. ნება მომეცით ვიცი, თუ თქვენ ერთი თქვენთვის. გამოიწერეთ ჩემი YouTube არხი სხვა მსგავსი პროექტებისთვის.

გირჩევთ: