Sadržaj:

Monitor propusnosti: 7 koraka (sa slikama)
Monitor propusnosti: 7 koraka (sa slikama)

Video: Monitor propusnosti: 7 koraka (sa slikama)

Video: Monitor propusnosti: 7 koraka (sa slikama)
Video: СВИСТОК СМЕРТИ ночью НА КЛАДБИЩЕ / Призрак ребёнка в видео / Aztec Death Whistle 2024, Studeni
Anonim
Monitor propusnosti
Monitor propusnosti
Monitor propusnosti
Monitor propusnosti
Monitor propusnosti
Monitor propusnosti

Kako sam se često pitao koju propusnost trenutno pruža moj ISP (za internetsku vezu koristim LTE modem), pomislio sam na sustav za praćenje propusnosti. Budući da bi sustav trebao biti kompaktan i štedjeti energiju, odabrao sam Raspberry Pi Zero kao središnju komponentu. Raspberry je povezan s modemom putem WLAN -a, pa se mogu otkriti i problemi s WLAN -om.

Pribor

  • Malina Pi Zero WH
  • Waveshare zaslon e-tinte (2,9-inčni e-papir-modul)
  • DC-DC pretvarač (npr. DEBO DCDC 20W)
  • RGB LED (izvađeno iz starog uređaja)
  • Tipkalo
  • Sklopka
  • Relais modul (npr. 2 Way Relay module 2 Way Relay module)
  • Muški konektor + ženski konektor (oba odgovaraju veličini utikača napajanja modema)
  • 3D tiskana futrola

Korak 1: Značajke

Značajke
Značajke
Značajke
Značajke
Značajke
Značajke
  • Raspberry Pi Zero je spojen putem WLAN-a, testira brzinu preuzimanja i preuzimanja i vrši mjerenje pinga svakih pola sata. Verzija speedtest.net iz naredbenog retka koristi se kao osnova za mjerenja.
  • Rezultat mjerenja propusnosti i pinga prikazan je na zaslonu e-tinte. Prikazano je i vrijeme mjerenja.
  • Ako brzina preuzimanja padne ispod definirane vrijednosti praga, relej isključuje i uključuje modem na kratko. Modem se tako resetira bez ikakvih izmjena uređaja (samo je napajanje prekinuto).
  • Gumb na prednjoj strani uređaja dostupan je za ručno pokretanje mjerenja propusnosti.
  • Izmjerene vrijednosti prikazane su na Ubidots nadzornoj ploči (IOT portal). U pregledu možete vidjeti i povijest vremena izmjerenih vrijednosti te razloge posljednjih resetiranja.
  • Na IOT portalu možete pronaći i gumb za daljinsko resetiranje modema.
  • Monitor propusne širine koristi napajanje modema. Nije potrebna dodatna opskrba. Relej prekida prosljeđivanje napajanja prema modemu - malina ostaje uključena.

Korak 2: Ožičenje

Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje

Na prvoj slici možete vidjeti unutarnji dizajn monitora propusnosti:

Glavne komponente su:

    1. Pritisnite gumb
    2. Zaslon e-tinte
    3. Malina Pi Zero
    4. Relejni modul
    5. RGB LED + otpornici (ovisno o RGB LED diodi koju koristite)
    6. Sklopka
    7. DC-DC pretvarač
    8. Ženski konektor

Druga slika prikazuje shemu ožičenja. Pozitivni pol opskrbnog napona dovodi se preko sklopke na pretvarač istosmjernog istosmjernog napona (koji pretvara 12 V opskrbni napon usmjerivača u 5 V za malinu) i preko releja (preko normalno spojenog pina) natrag u izlazni konektor. Tako se modem napaja i kada je monitor propusnosti isključen.

Mjerenje propusnosti može se pokrenuti ručno pomoću gumba. RGB LED se koristi za vizualizaciju različitih radnih stanja.

Veza između Raspberry Pi i zaslona e-tinte nije prikazana na dijagramu kruga. Spojite zaslon prema tablici i gornjoj utičnici.

Korak 3: 3D ispis i izgradnja potjere

3D ispis i izgradnja potjere
3D ispis i izgradnja potjere
3D ispis i izgradnja potjere
3D ispis i izgradnja potjere
3D ispis i izgradnja potjere
3D ispis i izgradnja potjere
3D ispis i izgradnja potjere
3D ispis i izgradnja potjere

Za kućište su potrebni sljedeći dijelovi (vidi gornju sliku):

    1. Niži dio
    2. Gornji dio
    3. ispred
    4. leđa
    5. 4x nosač

Svi se dijelovi mogu ispisati bez nosača. Datoteke i neke druge dizajne možete pronaći i na Thingiverseu:

Zaslon se može pričvrstiti na prednju ploču pomoću nosača i dvostrane trake. Prekidač s gumbom i ženski priključak pričvršćeni su na stražnju i stražnju ploču. Za spajanje dviju polovica kućišta koristio sam vijke 3x20 mm. Odstupanja na utorima za prednju i stražnju ploču relativno su mala. Ako je potrebno, prednje i stražnje ploče moraju se brusiti po rubu (s unutarnje strane kako bi se izbjeglo uništavanje površine).

Korak 4: Postavljanje PI -ja za maline

Postavljanje Raspberry PI
Postavljanje Raspberry PI
Postavljanje Raspberry PI
Postavljanje Raspberry PI

Ovaj vodič za postavljanje temelji se na sastavljanju nekoliko uputa za instalaciju iz različitih izvora (proizvođači zaslona e-tinte, …). Za mene su upute dovele do željenog rezultata. Budući da nisam stručnjak za Linux, nisu napravljene nikakve optimizacije ili slično. Svjestan sam da zasigurno postoje bolja i učinkovitija rješenja.

Pretpostavimo da već imate instaliran Raspbian na svom Pi (postoje mnogi vodiči o tome kako instalirati osnovni operacijski sustav) i da imate povezan zaslon (putem miniHDMI -a), miš i tipkovnicu. Pretpostavlja se i ispravno postavljena WLAN veza s usmjerivačem ili internetom. Osim ako nije drugačije navedeno, svi se instalacijski postupci izvode na terminalu.

Instalirajte Udaljenu radnu površinu (za pristup PI -u s računala):

sudo apt-get ažuriranje

sudo apt-get

instalirajte xrdp

ili možete raditi i bez glave putem ssh-a (pogledajte npr.

Promijeni lozinku:

www.raspberrypi.org/forums/viewtopic.php?t=193620

Instalirajte speedtest:

sudo

apt-get install python-pip

sudo pip instalirajte speedtest-cli

da biste provjerili je li instalacija bila uspješna, pokrenite Speedtest u terminalu:

speedtest-cli

ako je sve točno, trebali biste dobiti nešto kao na prvoj slici gore.

Instalirajte ožičenjePI

sudo apt-get install git-core

git klon git: //git.drogon.net/wiringPi

cd ožičenjePi

./izgraditi

(vidi i

Alternativa:

sudo apt-get install wiringpi

(vidi

Instalirajte BCM2835

(vidi

Preuzmite bcm2835-1.60.tar.gz (ili noviju verziju ako je dostupna)

tar zxvf bcm2835-1.60.tar.gz

cd bcm2835-1.60

./konfigurirati

napraviti

sudo napravi provjeru

sudo make install

Instalirajte biblioteku slika Python

sudo apt-get install python-imaging

Alternativa:

sudo apt-get install python-pil

Omogućite funkciju I2C.

Pokrenite sljedeću naredbu za konfiguriranje vaše Raspberry Pi ploče:

sudo raspi-config

Odaberite Opcije sučelja-> I2C -> da, za pokretanje jezgrenog upravljačkog programa I2C. Zatim morate i izmijeniti konfiguracijsku datoteku. Pokrenite sljedeću naredbu za otvaranje konfiguracijske datoteke:

sudo nano /etc /moduli

U konfiguracijsku datoteku dodajte sljedeća dva retka

i2c-bcm2708

i2c-dev

Pogledajte i

Omogućite funkciju SPI

Pokrenite sljedeću naredbu za konfiguriranje vaše Raspberry Pi ploče:

sudo raspi-config

Odaberite Opcije sučelja-> SPI -> da, da biste pokrenuli osnovni upravljački program SPI.

Instalirajte dodatne fontove:

sudo apt-get install ttf-mscorefonts-installer

Preuzmite i instalirajte Fontove (Roboto + Droid)

gksudo

pcmanfm

Za pokretanje upravitelja datoteka s root ovlastima i kopiranje fontova truetype u mapu/usr/share/fonts/truetype

Alternativa:

Kopirajte fontove u mapu Preuzimanja s WinSCP -om (ssh mora biti omogućen za korištenje WinSCP -a)

sudo cp -r/home/pi/Preuzimanja/droid/usr/share/fontovi/istinski tip

sudo cp -r/home/pi/Preuzimanja/roboto/usr/share/fontovi/truetype

Za pristup mapi s fontovima trebate root ovlaštenja. Možda postoje bolji načini za to (kao što je već spomenuto nisam stručnjak za Linux), ali oba načina su mi uspjela.

Python datoteke:

Pomoću upravitelja datoteka stvorite novu mapu "bandwidth_monitor"

Kopirajte sve datoteke u direktorij bandwidth_monitor

Učinite python datoteke i skriptu izvršnim

chmod +x *.py

chmod +x speedtest-cron.sh

Konfigurirajte crontab

crontab -e

Crontab se koristi za zakazivanje izvođenja programa, npr. najbrži test svakih 30 min. Dodajte sljedeće retke u crontab (pogledajte i drugu sliku):

@reboot/usr/bin/python /home/pi/bandwidth_monitor/post_restart_message.py &

@reboot sleep 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

Opis planiranih zadataka:

  • pri ponovnom pokretanju poruka o ponovnom pokretanju se zapisuje na IOT nadzornu ploču
  • pri ponovnom pokretanju anketa se pokreće gumb test_now_button
  • svakih 30 minuta vrši se mjerenje propusnosti
  • svake 3 minute provjerava se status tipke za daljinsko resetiranje (na IOT nadzornoj ploči)
  • jednom dnevno započinje ciklus osvježavanja zaslona.

Za kratki opis programa pogledajte odjeljak o softveru.

Korak 5: Softver

Softver
Softver

Softver je podijeljen u nekoliko datoteka / programa:

bandwidth_monitor_0_4.py je glavni program koji Crontab poziva svakih pola sata. Izvodi test propusnosti (putem verzije speedtest.net iz naredbenog retka). Tijekom testa, RGB LED dioda je plave boje. Ako je širina pojasa iznad odabranog praga, vrijednost se prikazuje na zaslonu e-tinte (zajedno s vremenskom oznakom) i izvozi na nadzornu ploču Ubidots. Ako je širina pojasa ispod praga, LED svijetli crveno i mjerenje se ponavlja nakon kratkog odgode. Nakon 3 negativna pokušaja relej se aktivira pa se napajanje modema prekida. Kôd za poništavanje (vrijednost = 2) zapisuje se u odjeljak dnevnika.

poll_killswitch.py čita status logičke varijable na nadzornoj ploči. Ako je killswitch_state istina, relej se aktivira i napajanje modema se prekida. RGB LED svijetli zeleno tijekom probijanja killswitch -a. Nakon resetiranja killswitch_state je postavljeno na false i generira se unos u odjeljak dnevnika nadzorne ploče (vrijednost = 1).

poll_test_now_button.py čeka da se pritisne gumb na prednjoj ploči kućišta. Aktiviranjem gumba ručno se pokreće mjerenje propusnosti. Kada se program pokrene (pri ponovnom pokretanju Raspberry Pi), RGB LED treperi crveno.

post_restart_message.py zapisuje kôd za poništavanje (vrijednost = 3) u odjeljak dnevnika nadzorne ploče. To znači da je monitor propusnosti ponovno pokrenut. Tijekom pokretanja programa RGB LED treperi plavo.

test_LED.py i test_relay.py jednostavne su skripte koje se mogu koristiti za testiranje hardverske funkcije RGB LED i releja.

epdconfig.py i epd2in9.py upravljački su programi za prikaz e-tinte koje pruža Waveshare.

Da biste omogućili programima pristup Ubidots nadzornoj ploči, morate dodati svoje pojedinačne tokene i nazive uređaja ili varijabli (ako koristite različite zapise). Potražite odjeljak poput onog prikazanog na gornjoj slici (zamijenite XXXXXXXX svojim tokenom).

Opsežni vodiči o tome kako izgraditi nadzornu ploču i kako integrirati nadzornu ploču u program Python mogu se pronaći izravno na stranici Ubidots (https://help.ubidots.com/en/) ili putem Googlea.

Korak 6: IOT nadzorna ploča

IOT nadzorna ploča
IOT nadzorna ploča

Nadzorna ploča koju ugošćuje Ubidots (vidi https://ubidots.com) sadrži nekoliko područja koja su ukratko opisana u nastavku.

    1. Vremenski slijed brzine preuzimanja i preuzimanja. Svakih pola sata nova vrijednost se unosi u dijagram.
    2. Vremenski tijek izmjerenog ping vremena. Svakih pola sata nova vrijednost se unosi u dijagram.
    3. Vremenski slijed prosječne brzine preuzimanja. Prosječna vrijednost tijekom 24 sata izračunava se i zapisuje na dijagram.
    4. Tablični prikaz trenutnih mjernih vrijednosti uključujući vremensku oznaku.
    5. Gumb za daljinsko upravljanje za resetiranje modema putem Interneta. Upit se javlja svake 3 minute, tj. Može proći neko vrijeme dok se radnja ne izvede.
    6. Zapisivanje posljednjih resetiranja, uključujući razlog resetiranja (daljinsko aktiviranje, isključivanje ili gubitak napona, pad ispod minimalne propusnosti)

Opsežni vodiči o tome kako izgraditi nadzornu ploču i kako integrirati nadzornu ploču u program Python mogu se pronaći izravno na stranici Ubidots (https://help.ubidots.com/en/) ili putem Googlea.

Preporučeni: