Mündəricat:
- Təchizat
- Addım 1: Xüsusiyyətlər
- Addım 2: Kabel çəkmə
- Addım 3: 3D çap və təqibin qurulması
- Addım 4: Raspberry PI qurmaq
- Addım 5: Proqram təminatı
- Addım 6: IOT Tablosu
- Addım 7: Əsas funksiyaların tətbiqi
Video: Bant genişliyi monitoru: 7 addım (şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
İnternet provayderim tərəfindən hazırda hansı bant genişliyi təmin edildiyini özümə tez -tez soruşduqda (İnternet bağlantısı üçün LTE modemdən istifadə edirəm), bir bant genişliyi izləmə sistemi düşündüm. Sistem yığcam və enerjiyə qənaət etməli olduğundan mərkəzi komponent olaraq Raspberry Pi Zero seçdim. Moruq WLAN vasitəsi ilə modeme qoşulur, buna görə də WLAN problemləri də aşkar edilə bilər.
Təchizat
- Moruq Pi Zero WH
- Waveshare e-mürəkkəb ekranı (2.9 düym e-kağız modulu)
- DC-DC çeviricisi (məsələn, DEBO DCDC 20W)
- RGB LED (köhnə bir cihazdan çıxarıldı)
- Düymə
- Keçid edin
- Relais modulu (məsələn, 2 Yollu Relay modulu2 Way Relay modulu)
- Kişi konnektoru + Dişi konnektoru (hər ikisi modeminizin enerji təchizatı fişinin ölçüsünə uyğundur)
- 3D çap qutusu
Addım 1: Xüsusiyyətlər
- Raspberry Pi Zero WLAN vasitəsi ilə qoşulur, yükləmə və yükləmə sürətini yoxlayır və hər yarım saatda bir ping ölçməsini həyata keçirir. Ölçmələr üçün əsas olaraq speedtest.net -in bir əmr satırı versiyası istifadə olunur.
- Bant genişliyi və ping ölçməsinin nəticəsi e-mürəkkəb ekranda göstərilir. Ölçmə vaxtı da göstərilir.
- Yükləmə sürəti müəyyən bir eşik dəyərinin altına düşərsə, bir röle modemi qısa müddətə söndürür və yandırır. Beləliklə modem cihazda heç bir dəyişiklik etmədən sıfırlanır (yalnız enerji təchizatı kəsilir).
- Cihazın ön tərəfində bir bant genişliyi ölçməsini əl ilə işə salmaq üçün bir düymə mövcuddur.
- Ölçülmüş dəyərlər Ubidots Tablosuna (IOT Portal) göstərilir. Baxışda, ölçülmüş dəyərlərin vaxt tarixini və son sıfırlamaların səbəblərini də görə bilərsiniz.
- IOT Portalında modemi uzaqdan sıfırlamaq üçün bir düymə də tapa bilərsiniz.
- Bant genişliyi monitoru modemin enerji təchizatından istifadə edir. Əlavə təchizata ehtiyac yoxdur. Releis enerji təchizatının modeme yönləndirilməsini kəsir - moruq açıq qalır.
Addım 2: Kabel çəkmə
Birinci şəkildə bant genişliyi monitorunun daxili dizaynını görə bilərsiniz:
Əsas komponentlər bunlardır:
- Düyməni basın
- E-mürəkkəb ekran
- Moruq Pi Sıfır
- Relay Modulu
- RGB LED + Rezistorlar (istifadə etdiyiniz RGB LED -dən asılı olaraq)
- Keçid edin
- DC-DC çeviricisi
- Qadın bağlayıcı
İkinci şəkil kabellərin sxemini göstərir. Təchizat gərginliyinin müsbət qütbü, DC-DC gərginlik çeviricisinə (marşrutlaşdırıcının 12V təchizatı gərginliyini 5V-ə çevirən) və rölin (normal bağlı pin vasitəsilə) geri çıxış konnektoru. Beləliklə, bant genişliyi monitoru söndürüldükdə modem də enerji ilə təmin olunur.
Bant genişliyinin ölçülməsi əl ilə bir düymə ilə başlaya bilər. Bir RGB LED, müxtəlif əməliyyat vəziyyətlərini görselleştirmek üçün istifadə olunur.
Raspberry Pi ilə e-ink display arasındakı əlaqə dövrə diaqramında göstərilməyib. Ekranı cədvələ və yuxarıdakı çıxışa uyğun olaraq bağlayın.
Addım 3: 3D çap və təqibin qurulması
Dava üçün aşağıdakı hissələr lazımdır (yuxarıdakı şəklə baxın):
- aşağı hissə
- yuxarı hissə
- ön
- geri
- 4x montaj
Bütün hissələr dəstək olmadan çap edilə bilər. Faylları və digər dizaynlarımı Thingiverse -də tapa bilərsiniz:
Ekran ön panelə montaj və iki tərəfli lent ilə bağlana bilər. Düymə açarı və qadın konnektoru arxa və arxa panelə vidalanmışdır. Korpusun iki yarısını birləşdirmək üçün 3x20 mm vintlərdən istifadə etdim. Ön və arxa panellər üçün yivlərdəki toleranslar nisbətən sıxdır. Gerekirse, ön və arxa panellər kənarında zımpara edilməlidir (səthi məhv etməmək üçün içəridən).
Addım 4: Raspberry PI qurmaq
Bu quraşdırma təlimatı, müxtəlif mənbələrdən (e-Ink ekran istehsalçıları,…) bir neçə quraşdırma təlimatının tərtib edilməsinə əsaslanır. Mənim üçün təlimatlar istənilən nəticəyə gətirib çıxardı. Linux mütəxəssisi olmadığım üçün heç bir optimallaşdırma və ya bənzəri edilməmişdir. Şübhəsiz ki, daha yaxşı və daha təsirli həllər olduğunu bilirəm.
Güman edək ki, artıq Pi -də Raspbian quraşdırılıb (əsas əməliyyat sisteminin necə qurulacağına dair bir çox dərslər var) və ekranınız (miniHDMI vasitəsilə), siçan və klaviatura bağlıdır. Routerə və ya İnternetə düzgün qurulmuş WLAN bağlantısı da qəbul edilir. Başqa cür göstərilməyibsə, bütün quraşdırma prosedurları terminalda aparılır.
Uzaq masaüstünü quraşdırın (kompüterdən PI -ə daxil olmaq üçün):
sudo apt-get yeniləməsi
sudo apt-get
xrdp quraşdırın
ya da ssh vasitəsi ilə başsız işləyə bilərsiniz (bax:
Şifrəni dəyişdirin:
www.raspberrypi.org/forums/viewtopic.php?t=193620
Sürət testini quraşdırın:
sudo
apt-get python-pip quraşdırın
sudo pip installt speedtest-cli
Quraşdırmanın müvəffəqiyyətli olub olmadığını yoxlamaq üçün terminalda Speedtest işləyin:
ən sürətli-cli
hər şey düzdürsə, yuxarıdakı ilk şəkildəki kimi bir şey almalısınız.
WiringPI quraşdırın
sudo apt-get git-core quraşdırın
git klon git: //git.drogon.net/wiringPi
cd wiringPi
./ tikmək
(həmçinin bax
Alternativ:
sudo apt-get wiringpi quraşdırın
(bax
BCM2835 quraşdırın
(bax
Bcm2835-1.60.tar.gz yükləyin (və ya varsa daha yeni bir versiya)
tar zxvf bcm2835-1.60.tar.gz
cd bcm2835-1.60
./ konfiqurasiya edin
etmək
sudo çek edin
sudo qurun
Python görüntü kitabxanasını quraşdırın
sudo apt-get python görüntüsünü quraşdırın
Alternativ:
sudo apt-get python-pil quraşdırın
I2C funksiyasını aktivləşdirin.
Raspberry Pi lövhənizi konfiqurasiya etmək üçün aşağıdakı əmri işlədin:
sudo raspi-config
I2C əsas sürücüsünü işə salmaq üçün Interface Options-> I2C -> yes seçin. Sonra konfiqurasiya faylını da dəyişdirməlisiniz. Konfiqurasiya faylını açmaq üçün aşağıdakı əmri işlədin:
sudo nano /etc /modulları
Konfiqurasiya faylına aşağıdakı iki sətri əlavə edin
i2c-bcm2708
i2c-dev
Həmçinin baxın
SPI funksiyasını aktiv edin
Raspberry Pi lövhənizi konfiqurasiya etmək üçün aşağıdakı əmri işlədin:
sudo raspi-config
SPI əsas sürücüsünü işə salmaq üçün Interface Options-> SPI -> yes seçin.
Əlavə şriftlər quraşdırın:
sudo apt-get ttf-mscorefonts-installer qurun
Şriftləri yükləyin və quraşdırın (Roboto + Droid)
gksudo
pcmanfm
Fayl menecerini kök imtiyazları ilə başlamaq və truetype şriftlərini qovluğa/usr/share/fonts/truetype -a kopyalamaq üçün
Alternativ:
Şriftləri WinSCP ilə Yükləmələr qovluğuna kopyalayın (WinSCP istifadə etmək üçün ssh aktiv olmalıdır)
sudo cp -r/home/pi/Yükləmələr/droid/usr/share/fontlar/truetype
sudo cp -r/home/pi/Yükləmələr/roboto/usr/share/fontlar/truetype
Şrift qovluğuna daxil olmaq üçün kök imtiyazlarına ehtiyacınız var. Bəlkə də bunu etmək üçün daha yaxşı yollar var (yuxarıda qeyd edildiyi kimi mən Linux mütəxəssisi deyiləm), amma hər iki yol mənim üçün işləmişdir.
Python faylları:
Yeni bir "bandwidth_monitor" qovluğu yaratmaq üçün filemangerdən istifadə edin.
Bütün faylları bandwidth_monitor qovluğuna kopyalayın
Python fayllarını və skriptini icra edilə bilən hala gətirin
chmod +x *.py
chmod +x speedtest-cron.sh
Crontab -ı konfiqurasiya edin
crontab -e
Crontab proqramın icrasını planlaşdırmaq üçün istifadə olunur. hər 30 dəqiqədə ən sürətli. Crontab -a aşağıdakı sətirləri əlavə edin (həmçinin ikinci rəqəmə baxın):
@reboot/usr/bin/python /home/pi/bandwidth_monitor/post_restart_message.py &
@reboot yuxu 30 &&/usr/bin/python /home/pi/bandwidth_monitor/poll_test_now_button.py */30 * * * * /home/pi/bandwidth_monitor/speedtest-cron.sh */3 * * * */usr/ bin/python /home/pi/bandwidth_monitor/poll_killswitch.py 13 03 * * */usr/bin/python /home/pi/bandwidth_monitor/refresh_display.py
Planlaşdırılan vəzifələrin təsviri:
- yenidən başladıqda yenidən başlatma mesajı IOT tablosuna yazılır
- yenidən başladıqda test_now_button başlayır
- hər 30 dəqiqədə bir bant genişliyi ölçümü aparılır
- hər 3 dəqiqədə uzaqdan sıfırlama düyməsinin vəziyyəti (IOT tablosunda) yoxlanılır
- gündə bir dəfə bir ekran yeniləmə dövrü başlayır.
Proqramların qısa təsviri üçün proqram bölməsinə baxın.
Addım 5: Proqram təminatı
Proqram bir neçə fayl / proqrama bölünür:
bandwidth_monitor_0_4.py, Crontab tərəfindən hər yarım saatda çağırılan əsas proqramdır. Bant genişliyi testini həyata keçirir (speedtest.net -in komanda xətti versiyası vasitəsilə). Test zamanı RGB LED mavi olur. Bant genişliyi seçilmiş həddən yuxarıdırsa, dəyər e-mürəkkəb ekranda (vaxt damgası ilə birlikdə) göstərilir və Ubidots tablosuna ixrac olunur. Bant genişliyi eşikin altındadırsa, LED qırmızıya çevrilir və qısa bir gecikmədən sonra ölçmə təkrarlanır. 3 mənfi cəhddən sonra röle işə düşür və beləliklə modemin enerji təchizatı kəsilir. Sıfırlama kodu (dəyər = 2) qeyd bölməsinə yazılır.
poll_killswitch.py, tablosundakı boolean dəyişənin vəziyyətini oxuyur. Killswitch_state doğru olarsa, relay aktivləşdirilir və modemin enerji təchizatı kəsilir. RGB LED, öldürücü açar seçkisi zamanı yaşıl rəngə çevrilir. Sıfırlamadan sonra killswitch_state yanlış olaraq təyin olunur və tablosunun qeyd bölməsində bir giriş yaradılır (dəyər = 1).
poll_test_now_button.py, işin ön panelindəki düymənin basılmasını gözləyir. Düyməni aktivləşdirməklə bir bant genişliyi ölçülməsi əl ilə tetiklenir. Proqram başladıqda (Raspberry Pi yenidən başladıqda) RGB LED qırmızı yanıb -sönür.
post_restart_message.py, sıfırlama kodunu (dəyər = 3) tablosunun qeyd bölməsinə yazır. Bu, bant genişliyi monitorunun yenidən başladığını göstərir. Proqram başladıqda RGB LED mavi yanıb -sönür.
test_LED.py və test_relay.py, RGB LED -in və rölenin aparat funksiyasını yoxlamaq üçün istifadə oluna bilən sadə skriptlərdir.
epdconfig.py və epd2in9.py, Waveshare tərəfindən təmin edilən e-mürəkkəb ekran üçün cihaz sürücüsüdür.
Proqramların Ubidots tablosuna daxil olmasına icazə vermək üçün fərdi ayələrinizi və cihazınızı və ya dəyişən adlarınızı (fərqli qeydlərdən istifadə edirsinizsə) əlavə etməlisiniz. Yuxarıdakı şəkildə göstərildiyi kimi bir bölmə axtarın (XXXXXXXX -ı işarənizlə əvəz edin).
Tablosunun necə qurulacağına və tablonun Python proqramına necə inteqrasiya olunacağına dair hərtərəfli dərsləri birbaşa Ubidots səhifəsində (https://help.ubidots.com/en/) və ya Google vasitəsilə tapa bilərsiniz.
Addım 6: IOT Tablosu
Ubidots tərəfindən idarə olunan tablosunda (bax https://ubidots.com) aşağıda qısaca təsvir olunan bir neçə sahə var.
- Yükləmə və yükləmə sürətinin ardıcıllığı. Hər yarım saatda diaqrama yeni bir dəyər daxil edilir.
- Ölçülən ping vaxtının müddəti. Hər yarım saatda diaqrama yeni bir dəyər daxil edilir.
- Orta yükləmə sürətinin vaxt ardıcıllığı. 24 saat ərzində ortalama dəyər hesablanır və diaqrama yazılır.
- Vaxt möhürü daxil olmaqla cari ölçmə dəyərlərinin elektron tablo təqdimatı.
- İnternet vasitəsilə modemi yenidən qurmaq üçün uzaqdan idarəetmə düyməsi. Sorğu hər 3 dəqiqədən bir baş verir, yəni əməliyyatın yerinə yetirilməsi bir müddət çəkə bilər.
- Sıfırlama səbəbi də daxil olmaqla son sıfırlamaların qeydiyyatı (uzaqdan tetikleme, söndürmə və ya gərginliyin itməsi, minimum bant genişliyinin altına düşmə)
Tablosunun necə qurulacağına və tablonun Python proqramına necə inteqrasiya olunacağına dair hərtərəfli dərsləri birbaşa Ubidots səhifəsində (https://help.ubidots.com/en/) və ya Google vasitəsilə tapa bilərsiniz.
Tövsiyə:
Visuino LED -in Parlaqlığını dəyişdirmək üçün Nəbz Genişliyi Modulyasiyasından (PWM) necə istifadə olunur: 7 addım
Bir LED -in Parlaqlığını dəyişdirmək üçün Puls Genişliyi Modulyasiyasını (PWM) necə istifadə etmək olar: Bu dərslikdə Pulse Width Modulation (PWM) istifadə edərək parlaqlığını dəyişdirmək üçün Arduino UNO və Visuino ilə əlaqəli bir LED istifadə edəcəyik
Kauçuk Bant Catapult: 8 Addım (Şəkillərlə birlikdə)
Rubber Band Catapult: Mənbə: https://www.instructables.com/id/Automatic-Rubber-Band-Catapult/ Dostunuza qarşı bir şey atmaq üçün əl istifadə etməkdən bezdinizmi? Alətlərinizi götürün və bütün binada ən güclü avtomatik mancınaq yaradın! Bu proqramla sinif yoldaşlarınızı məğlub edin
1.50m Sosial Məsafə Bant Ölçüsü: 3 Addım (Şəkillərlə birlikdə)
1.50m Sosial Distancing Bant Ölçüsü: Bu quruluşda, 1,5 m məsafə qət edildikdə ölçmək üçün adi bir lent ölçüsünü uyğunlaşdırıram. Sonra "bir yarım metr" deyəcəyəm. Bu məsafənin üstündə və ya altında olduğunuzu da yaşıl və ya qırmızı işıqla göstərəcək. Bu layihə
Parlaq Video Bant USB Hub: 11 Addım (Şəkillərlə birlikdə)
Parlaq Video Bant USB Hub: İndiki vaxtda, usb hubları getdikcə kiçilir (və sonra kabel masadan daha ağır olduğu üçün masanızın arxasına düşür, sonra onu bərpa etmək üçün kompüterinizin arxasında əyilməlisiniz) Buna görə daha yaxşı bir şeyə ehtiyacım var idi. (əlbəttə, ola bilərdim
VHS Bant saxlama sürücüsü: 8 addım (şəkillərlə birlikdə)
VHS Tape Storage Drive: Bu layihə köhnə VHS Bantını USB yaddaş sürücüsünə çevirir. Kabukdan çıxan USB kabeli istisna olmaqla, adi VHS kaset lentinə bənzəyir. Layihənin bütün bağırsaqları aydın pəncərələrin ətrafındakı ərazilərdə gizlənir, belə ki