Mündəricat:
- Addım 1: Plan
- Addım 2: Ehtiyac duyacağınız şeylər
- Addım 3: Tam miqyaslı əyilmə cərəyanının hesablanması
- Addım 4: SNMP GET sorğusu yaratmaq
- Addım 5: GET Cavabını Anlamaq
- Addım 6: Rəqəmsaldan Analog Dönüştürücü (DAC)
- Addım 7: Məclis
- Addım 8: Kodlaşdırma zamanı
- Addım 9: Zövq alın
Video: İnternet sürətölçən: 9 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
Hindistanda tam kilidləmə ilə əlaqədar olaraq poçt xidmətləri də daxil olmaqla hər şey bağlandı. Yeni PCB layihələri yoxdur, yeni komponentlər yoxdur, heç nə! Sıxıntıları aradan qaldırmaq və özümü məşğul etmək üçün evdə olan hissələrdən bir şeylər etmək qərarına gəldim. Yığılmış elektron əşyalardan axtarmağa başladım və köhnə, qırıq bir analog multimetr tapdım. Ondan 'sayğac hərəkətini' xilas etdim və bir növ məlumat göstərmək qərarına gəldim, amma tam olaraq nə olduğunu bilmədim. Birincisi, COVID-19 statistikasını göstərməyi düşündüm, amma internetdə artıq daha yaxşı layihələr var. Həmçinin, məlumatlar bir neçə saatdan sonra yenilənir və sayğacın hərəkətsiz göstəricisi darıxdırıcı olardı. Tez dəyişən, hər saniyə dəyişən məlumatları istədim. İnstaqramda təkliflər istədim və izləyicilərimdən biri İnternet sürətölçənlə cavab verdi. Maraqlı səsləndi və bunu etməyə qərar verdi!
Bu Təlimat kitabında, SNMP istifadə edərək WiFi yönlendiricimdən məlumatları necə tutduğumu və sayğacda yükləmə və yükləmə sürətini necə göstərdiyimi göstərəcəyəm.
Gəlin başlayaq
Addım 1: Plan
Həmişə olduğu kimi, layihəyə başlamazdan əvvəl internetdə bir az araşdırma apardım. Bu mövzu ilə əlaqədar bir neçə layihə tapdım. İki cür idilər. WiFi siqnalının 'gücünü' ölçərək internet sürətini göstərən biri. Şəbəkə mütəxəssisi deyiləm, amma bu düzgün səslənmədi. Digərləri gecikməni ölçdü və sürəti yavaş, orta və ya sürətli olaraq təsnif etdi. Gecikmə, sorğu göndərməklə cavab almaq arasındakı vaxt gecikməsidir və buna görə də internet sürətinin əsl nümayəndəsi ola bilməz. Buna bir şəbəkə cavab sürəti də deyə bilərik! Sonra bəzi məlumatları yükləmək üçün lazım olan vaxtı ölçən və buna əsaslanaraq internet sürətini hesablayan qanuni layihələr var idi.
Ancaq bu layihədə (Alistair tərəfindən) Sadə Şəbəkə İdarəetmə Protokolu və ya SNMP haqqında məlumat əldə etdim. SNMP -dən istifadə edərək WiFi yönləndiricisi ilə əlaqə qura və lazım olan məlumatları birbaşa oradan əldə edə bilərik. Asan, hə? Əslində yox! Müxtəlif WiFi yönləndiricilərinin fərqli modelləri fərqli quruluşlara sahib olduğundan və nəticəni əldə etməzdən əvvəl çoxlu sınaq və səhvlərə ehtiyac var. Qorxma. SNMP haqqında öyrəndiklərimi və qarşıdakı addımlarda qarşılaşdığım çətinlikləri qısaca izah edəcəyəm.
Buna görə plan, WiFi Router -ə qoşulmaq üçün NodeMCU -dan istifadə etməkdir. Son nəticəyə çatmaq üçün addımlar bunlardır:
- Routerə tələb olunan məlumatları tələb edən bir sorğu göndərin
- Routerdən cavab alın
- Cavabı təhlil edin və ondan lazım olan məlumatları təhlil edin
- 'Xam' məlumatları başa düşülən məlumatlara çevirin
- Sayğac üçün internet sürətinə mütənasib olaraq gərginlik yaradın
- Təkrarlamaq
Sayğacı idarə etmək üçün bir DAC və ya rəqəmsaldan analoqa çeviricidən istifadə edəcəyəm.
Addım 2: Ehtiyac duyacağınız şeylər
1x NodeMCU
1x Analog Metr Hərəkəti
1 x MPU4725 DAC
1 x SPDT açarı
1x 10k potensiometr
1x rezistor
Addım 3: Tam miqyaslı əyilmə cərəyanının hesablanması
Qeyd: Həqiqi quruluş üçün 7 -ci addıma keçin!
Metriniz üçün tam miqyaslı əyilmə cərəyanını artıq bilirsinizsə bu addımı atlayın. Sayğacımda heç bir söz yox idi, buna görə hesablamalı oldum. Ancaq əvvəlcə belə bir hərəkətin necə işlədiyini tez bir zamanda görək. Maqnit sahəsində asılmış bir bobindən ibarətdir. Bobin içindən cərəyan keçəndə Faraday qanununa görə bir qüvvə yaşayır. Bobinin maqnit sahəsində sərbəst şəkildə fırlanmasına icazə verilir və bobinə bağlı olan göstərici də belədir. Göstəricini 'miqyasın sonunda' hərəkətə gətirən cərəyanın böyüklüyünə tam miqyaslı əyilmə cərəyanı deyilir. Bu da bobindən axmasına icazə verilməli olan maksimum cərəyandır.
Daha çox şey var, amma etdiyimiz iş üçün bu kifayətdir. İndi hərəkətimiz var. Onunla birlikdə yüksək bir müqavimət əlavə edərək bir voltmetr olaraq və ya paralel olaraq kiçik bir müqavimət əlavə edərək Ampermetr olaraq istifadə edilə bilər. Gərginliyi internet sürətinə mütənasib göstərmək üçün bir voltmetr olaraq istifadə edəcəyik. Beləliklə, ardıcıl olaraq əlavə ediləcək müqaviməti hesablamalıyıq. Bunun üçün əvvəlcə tam miqyaslı əyilmə cərəyanını hesablamalıyıq.
- Yüksək müqavimət dəyəri seçin (> 100k kimi)
- Hərəkətlə ardıcıl olaraq bağlayın və qazandan istifadə edərək üzərində dəyişən bir gərginlik tətbiq edin.
- Göstərici miqyasın sonuna çatana qədər gərginliyi yavaş -yavaş artırmağa davam edin.
- Bir multimetrdən istifadə edərək cərəyanı ölçün. Bu, tam miqyaslı əyilmə cərəyanıdır. (Mənim vəziyyətimdə = 150uA)
Çıxış gərginliyi 0 -dan VCC -ə qədər olan DAC istifadə edirik (NodeMCU səbəbiylə 3.3V). Bu o deməkdir ki, sayğaca 3.3V tətbiq olunduqda, şkalanın sonuna işarə etməlidir. Bu, 3.3V tətbiq edildikdə dövrədən tam miqyaslı sapma cərəyanı keçdiyi zaman baş verə bilər. Ohm Qanunu istifadə edərək, 3.3/(tam miqyaslı əyilmə cərəyanı) seriyaya daxil edilməli olan müqavimətin dəyərini verir.
Addım 4: SNMP GET sorğusu yaratmaq
Sadə Şəbəkə İdarəetmə Protokolu (SNMP), IP şəbəkələrində idarə olunan cihazlar haqqında məlumat toplamaq və təşkil etmək və cihaz davranışını dəyişdirmək üçün bu məlumatları dəyişdirmək üçün bir İnternet Standart protokoldur. Tipik olaraq SNMP -ni dəstəkləyən cihazlara kabel modemləri, yönləndiricilər, açarlar, serverlər, iş stansiyaları, printerlər və s. Bu quruluş üçün SNMP istifadə edərək WiFi Routerimizlə əlaqə saxlayacağıq və lazımi məlumatları əldə edəcəyik.
Ancaq əvvəlcə istədiyimiz məlumatların təfərrüatlarından bəhs edən marşrutlaşdırıcıya 'GET Request' olaraq bilinən bir sorğu göndərməliyik. Şəkildə GET İstək formatı göstərilmişdir. Müraciət müxtəlif hissələrdən ibarətdir. Dəyişdirmək istəyə biləcəyiniz baytları vurğuladım.
Unutmayın ki, hər şey onaltılıdır.
SNMP Mesajı -Mənim vəziyyətimdə, bütün mesajın uzunluğu 40 (boz rəng), onaltılıya çevrildikdə 0x28 -dir.
SNMP Community String - 'PUBLIC' dəyəri onaltılı olaraq '70 75 62 6C 69 63' olaraq yazılır, uzunluğu 6 (sarı).
SNMP PDU Növü - Mənim vəziyyətimdə mesajın uzunluğu 27 (mavi) yəni 0x1B -dir.
Varbind List Type - Mənim vəziyyətimdə mesajın uzunluğu 16 (yaşıl) yəni 0x10 -dur.
Varbind Tipi - Mənim vəziyyətimdə mesajın uzunluğu 14 (çəhrayı) yəni 0x0E -dir.
Obyekt Tanımlayıcısı -
Daha əvvəl də qeyd edildiyi kimi, SNMP ilə işləyən şəbəkə cihazları (məsələn, marşrutlaşdırıcılar, açarlar və s.) Sistem statusu, mövcudluğu və OID-lər tərəfindən təyin olunan obyektlər kimi performans məlumatları məlumat bazasını saxlayır. Yükləmə və Yükləmə paketləri üçün yönlendiricinizin OID'lerini təyin etməlisiniz. Bu kimi bir pulsuz MIB Tarayıcısı istifadə edərək edilə bilər.
Ünvanı 192.168.1.1 olaraq, OID -ni.1.3.6.1.2.1.2.2.2.1.10.x (ifInOctets) və ya.1.3.6.1.2.1.2.2.1.16.x olaraq daxil edin. (ifOutOctets). Əməliyyatı seçin və Git düyməsini basın. OID -ni dəyəri və növü ilə birlikdə görməlisiniz.
Mənim vəziyyətimdə mesajın uzunluğu 10 (qırmızı) yəni 0x0A -dır. Dəyəri OID ilə əvəz edin. Bu vəziyyətdə '2B 06 01 02 01 02 02 01 01 10 10'
Bu belədir! İstək mesajınız hazırdır. Qalan baytları olduğu kimi saxlayın.
Routerinizdə SNMP -ni aktiv edin:
- Varsayılan ağ geçidi vasitəsilə WiFi yönlendiricinizin səhifəsinə daxil olun. Brauzerinizə 192.168.1.1 yazın və enter düyməsini basın. Varsayılan olaraq, istifadəçi adı və şifrə 'admin' olmalıdır.
- TP-LINK (TD-W8961N) yönləndiricisi istifadə edirəm. Bu yönləndirici üçün Giriş İdarəçiliyi> SNMP -ə keçməlisiniz və 'Aktivləşdirilmiş' seçin.
- GET Community: ictimai
- Tələ sahibi: 0.0.0.0
Addım 5: GET Cavabını Anlamaq
Bu addımı atlaya bilərsiniz, ancaq bir problem həll etməyinizə ehtiyac olub olmadığını bilmək yaxşıdır.
Kodu yüklədikdən və işə saldıqdan sonra Serial monitor vasitəsilə cavaba baxa bilərsiniz. Şəkildə göstərildiyi kimi görünməlidir. Vurğuladığım bir neçə bayt axtarmalısınız.
0 -dan başlayaraq, 15 -ci bayt PDU Tipini bildirir - 0xA2 bunun bir GetResponse olduğu anlamına gəlir.
48 -ci bayt məlumat növünü bildirir - 0x41, məlumat növünün Sayıcı olduğunu bildirir.
49 -cu bayt məlumatların uzunluğunu bildirir - 0x04, məlumatların 4 bayt uzunluğunda olması deməkdir.
Bayt 50, 51, 52, 53 məlumatları ehtiva edir.
Addım 6: Rəqəmsaldan Analog Dönüştürücü (DAC)
Mikro nəzarətçilər, analog gərginliyi birbaşa anlamayan rəqəmsal qurğulardır. Giriş olaraq dəyişən bir gərginliyə ehtiyacı olan bir analog sayğacdan istifadə edirəm. Ancaq mikro nəzarətçi yalnız HIGH (NodeMCU vəziyyətində 3.3V) və LOW (0V) çıxara bilər. İndi deyə bilərsiniz ki, niyə yalnız PWM istifadə etmirsiniz. Metr yalnız orta dəyəri göstərdiyindən işləməyəcək.
Dəyişən gərginlik əldə etmək üçün MCP4725 DAC istifadə edirəm. 12 bitlik bir DAC-dır, yəni sadə dillə desək 0-dan 3.3V-ə qədər 4096 (= 2^12) hissəyə böləcək. Çözünürlük 3.3/4096 = 0.8056mV olacaq. Bu o deməkdir ki, 0 0V -ə, 1 0.8056mV -yə, 2 1.6112mV -ə,….., 4095 3.3V -ə uyğundur.
İnternet sürəti '0 ilə 7 mbps' arasında '0 ilə 4095' arasında 'xəritələnəcək' və sonra bu dəyər DAC -a veriləcək və internet sürətinə mütənasib bir gərginlik verəcəkdir.
Addım 7: Məclis
Bağlantılar çox sadədir. Sxematik buraya əlavə edilmişdir.
Tərəzi hazırladım və çap etdim. Yuxarı yükləmə sürəti üçün, aşağı isə yükləmə sürəti üçündür. Yeni tərəzi köhnəsinə yapışdırdım.
Köhnə əşyaları multimetrdən çıxartdım və içindəki hər şeyi sıxdım. Sıx bir uyğunluq idi. Yükləmə və yükləmə sürəti arasında seçim etmək üçün istifadə olunan keçid düyməsini bağlamaq üçün ön tərəfdə bir delik açmalı oldum.
Addım 8: Kodlaşdırma zamanı
Kod bura əlavə edilmişdir. Arduino IDE -də yükləyin və açın. Adafruit -dən MCP4725 kitabxanasını quraşdırın.
Yükləməzdən əvvəl:
- WiFi SSID və Şifrənizi daxil edin
- Ölçüdə göstərilən maksimum yükləmə və yükləmə sürətini daxil edin.
- Yükləmə və yükləmə paketləri üçün istəklər sistemində lazımi dəyişiklikləri edin.
- Serial monitorda cavabı görmək üçün 165 nömrəsini qeyd edin.
Yükləmə vurun!
Addım 9: Zövq alın
Gücləndirin və İnternetdə gəzərkən iynənin rəqs etməsini seyr etməkdən zövq alın!
Sona qədər qaldığınız üçün təşəkkürlər. Ümid edirik ki, hamınız bu layihəni sevirsiniz və bu gün yeni bir şey öyrəndiniz. Özünüz üçün birini düzəltsəniz mənə bildirin. Daha çox belə layihələr üçün YouTube kanalıma abunə olun.
Tövsiyə:
DIY INTERNET KONTROLLÜ SMART LED MATRIX (ADAFRUIT + ESP8266 + WS2812): 8 addım (şəkillərlə)
DIY İNTERNETLİ KONTROLLÜ SMART LED MATRIX (ADAFRUIT + ESP8266 + WS2812): Budur sizə göstərməkdən çox həyəcanlandığım bir layihəyə 2 -ci irəliləyişim. Burada göstərməyinizə imkan verən DIY Ağıllı LED Matrix haqqında, YouTube İstatistikleri, Ağıllı Ev Statistikalarınız kimi məlumatlar, temperatur, rütubət sadə bir saat ola bilər və ya sadəcə göstərə bilər
Raspberry Pi ilə işləyən İnternet Radio: 5 addım (şəkillərlə)
Raspberry Pi ilə işləyən İnternet Radiou: Köhnə radiolarda olduğu kimi, zəngləri çevirmək və düymələri basmaqdan məmnun bir şey var. Təəssüf ki, bu radioların bir çoxu qırılıb və ya stansiyalar sakitləşib. Xoşbəxtlikdən hər hansı bir radionu internet radiosuna yeniləmək o qədər də çətin deyil
GPS sürətölçən: 4 addım (şəkillərlə birlikdə)
GPS Sürət Göstəricisi: Normalda idarə etdiyim şirkət maşınımda "kiçik" olur. zaman zaman problemlər, sürətölçən maşın sürərkən 0 Km/saata düşür (bir müddət sonra yenidən davam edir) .Maşın idarə etməyi bilirsinizsə, ümumiyyətlə bu böyük bir problem deyil
Velosiped sürətölçən: 3 addım
Velosiped Sürət Göstəricisi: Salam dostlar … Bu təlimatda velosiped sürətölçəninin necə hazırlanacağını izah edəcəyəm, əslində mexaniki sürətölçəninin çoxdan sındırıldığı köhnə bir idman velosipedim var və onu dəyişdirmək qərarına gəldim. elektron, amma
DIY dövrü sürətölçən: 6 addım (şəkillərlə)
DIY Dövr Sürət Ölçer: Bu layihə, B.tech -də bir mövzu olan MEM (Mexanika Mühəndisliyi Ölçmə) layihəmi edərkən ağlıma gəldi. Fikir velosipedimin təkərinin açısal sürətini ölçməkdir. Beləliklə, diametri və hər zaman riyazi əfsanəni bilmək