Kazalo:

Monitor pasovne širine: 7 korakov (s slikami)
Monitor pasovne širine: 7 korakov (s slikami)

Video: Monitor pasovne širine: 7 korakov (s slikami)

Video: Monitor pasovne širine: 7 korakov (s slikami)
Video: Сводные таблицы Excel с нуля до профи за полчаса + Дэшборды! | 1-ое Видео курса "Сводные Таблицы" 2024, November
Anonim
Monitor pasovne širine
Monitor pasovne širine
Monitor pasovne širine
Monitor pasovne širine
Monitor pasovne širine
Monitor pasovne širine

Ker sem se pogosto spraševal, kakšno pasovno širino trenutno zagotavlja moj ponudnik internetnih storitev (za internetno povezavo uporabljam modem LTE), sem pomislil na sistem za spremljanje pasovne širine. Ker bi moral biti sistem kompakten in varčevati z energijo, sem za osrednjo komponento izbral Raspberry Pi Zero. Raspberry je povezan z modemom prek WLAN, zato je mogoče zaznati tudi težave z WLAN.

Zaloge

  • Raspberry Pi Zero WH
  • Zaslon e-črnila Waveshare (2,9-palčni-e-papirni modul)
  • DC-DC pretvornik (npr. DEBO DCDC 20W)
  • RGB LED (vzeto iz stare naprave)
  • Pritisni gumb
  • Preklopite
  • Relais modul (npr. 2 -smerni relejni modul 2 -smerni relejni modul)
  • Moški konektor + ženski konektor (oba ustrezata velikosti vtiča za napajanje modema)
  • 3D natisnjena torbica

1. korak: Lastnosti

Lastnosti
Lastnosti
Lastnosti
Lastnosti
Lastnosti
Lastnosti
  • Raspberry Pi Zero je povezan prek WLAN-a, preizkuša hitrost prenosa in prenosa ter vsake pol ure opravi meritev pinga. Kot osnova za meritve je uporabljena različica speedtest.net ukazne vrstice.
  • Rezultat meritve pasovne širine in pinga je prikazan na zaslonu e-črnila. Prikazan je tudi čas merjenja.
  • Če hitrost prenosa pade pod določeno mejno vrednost, rele za kratek čas izklopi in vklopi modem. Modem se tako ponastavi brez kakršne koli spremembe naprave (prekinjeno je samo napajanje).
  • Na voljo je gumb na sprednji strani naprave, ki ročno sproži merjenje pasovne širine.
  • Izmerjene vrednosti so prikazane na nadzorni plošči Ubidots (portal IOT). V pregledu si lahko ogledate tudi časovno zgodovino izmerjenih vrednosti in razloge za zadnje ponastavitve.
  • Na portalu IOT lahko najdete tudi gumb za daljinsko ponastavitev modema.
  • Monitor pasovne širine uporablja napajanje modema. Dodatna dobava ni potrebna. Rele prekine posredovanje napajanja do modema - malina ostane vklopljena.

2. korak: 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 prvi sliki si lahko ogledate notranjo zasnovo monitorja pasovne širine:

Glavni sestavni deli so:

    1. Pritisni gumb
    2. Zaslon z e-črnilom
    3. Raspberry Pi Zero
    4. Relejni modul
    5. RGB LED + upori (odvisno od RGB LED, ki jih uporabljate)
    6. Preklopite
    7. DC-DC pretvornik
    8. Ženski priključek

Druga slika prikazuje shemo ožičenja. Pozitivni pol napajalne napetosti se preko stikala napaja v DC-DC pretvornik napetosti (ki 12V napajalno napetost usmerjevalnika pretvori v 5V za malino) in preko releja (prek normalno priključenega zatiča) nazaj v izhodni priključek. Tako se modem napaja tudi, ko je monitor pasovne širine izklopljen.

Meritev pasovne širine lahko zaženete ročno s pritiskom na gumb. RGB LED se uporablja za prikaz različnih delovnih stanj.

Povezava med Raspberry Pi in zaslonom e-črnila ni prikazana na diagramu vezja. Priključite zaslon v skladu s tabelo in zgornjim izhodom.

3. korak: 3D tiskanje in izgradnja lova

3D tiskanje in gradnja Chase
3D tiskanje in gradnja Chase
3D tiskanje in gradnja Chase
3D tiskanje in gradnja Chase
3D tiskanje in gradnja Chase
3D tiskanje in gradnja Chase
3D tiskanje in gradnja Chase
3D tiskanje in gradnja Chase

Za ohišje so potrebni naslednji deli (glej zgornjo sliko):

    1. spodnji del
    2. zgornji del
    3. spredaj
    4. nazaj
    5. 4x nosilec

Vse dele je mogoče natisniti brez nosilcev. Datoteke in nekaj mojih drugih modelov najdete tudi na Thingiverse:

Zaslon lahko pritrdite na sprednjo ploščo z nosilci in dvostranskim trakom. Gumbno stikalo in ženski priključek sta privita na zadnjo in zadnjo ploščo. Za povezavo dveh polovic ohišja sem uporabil vijake 3x20 mm. Odstopanja na utorih za sprednjo in zadnjo ploščo so relativno majhna. Po potrebi je treba sprednjo in zadnjo ploščo brusiti na robu (na notranji strani, da se površina ne uniči).

4. korak: Nastavitev Raspberry PI

Nastavitev Raspberry PI
Nastavitev Raspberry PI
Nastavitev Raspberry PI
Nastavitev Raspberry PI

Ta priročnik za nastavitev temelji na zbiranju več navodil za namestitev iz različnih virov (proizvajalci zaslonov e-Ink, …). Zame so navodila pripeljala do želenega rezultata. Ker nisem strokovnjak za Linux, optimizacije ali podobnega niso naredili. Zavedam se, da zagotovo obstajajo boljše in učinkovitejše rešitve.

Predpostavimo, da imate Raspbian že nameščen na svojem Pi (obstaja veliko vadnic o namestitvi osnovnega operacijskega sistema) in imate priključen zaslon (prek miniHDMI), miško in tipkovnico. Predvideva se tudi pravilno nastavljena povezava WLAN z usmerjevalnikom ali internetom. Če ni drugače navedeno, se vsi postopki namestitve izvedejo v terminalu.

Namestite oddaljeno namizje (za dostop do PI iz računalnika):

sudo apt-get posodobitev

sudo apt-get

namestite xrdp

ali pa lahko brez glave delate tudi prek ssh (glej npr.

Spremeni geslo:

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

Namestite speedtest:

sudo

apt-get install python-pip

sudo pip namestite speedtest-cli

če želite preveriti, ali je bila namestitev uspešna, v terminalu zaženite Speedtest:

speedtest-cli

če je vse pravilno, bi morali dobiti nekaj takega kot na prvi sliki zgoraj.

Namestite ožičenjePI

sudo apt-get install git-core

git clone git: //git.drogon.net/wiringPi

ožičenje cdPi

./ zgraditi

(glej tudi

Alternativa:

sudo apt-get install wiringpi

(glej

Namestite BCM2835

(glej

Prenesite bcm2835-1.60.tar.gz (ali novejšo različico, če je na voljo)

tar zxvf bcm2835-1.60.tar.gz

cd bcm2835-1,60

./konfiguracija

narediti

sudo naredi preverjanje

sudo make install

Namestite knjižnico slik Python

sudo apt-get install python-imaging

Alternativa:

sudo apt-get install python-pil

Omogočite funkcijo I2C.

Za konfiguracijo plošče Raspberry Pi zaženite naslednji ukaz:

sudo raspi-config

Izberite Možnosti vmesnika-> I2C -> da, če želite zagnati gonilnik jedra I2C. Nato morate spremeniti tudi konfiguracijsko datoteko. Če želite odpreti konfiguracijsko datoteko, zaženite naslednji ukaz:

sudo nano /etc /moduli

Naslednji dve vrstici dodajte v konfiguracijsko datoteko

i2c-bcm2708

i2c-dev

Glej tudi

Omogočite funkcijo SPI

Za konfiguracijo plošče Raspberry Pi zaženite naslednji ukaz:

sudo raspi-config

Izberite Možnosti vmesnika-> SPI -> da, da zaženete osnovni gonilnik SPI.

Namestite dodatne pisave:

sudo apt-get install ttf-mscorefonts-installer

Prenesite in namestite pisave (Roboto + Droid)

gksudo

pcmanfm

Za zagon upravitelja datotek s korenskimi pravicami in kopiranje pisav truetype v mapo/usr/share/fonts/truetype

Alternativa:

Kopirajte pisave v mapo Prenosi z WinSCP (za uporabo WinSCP mora biti omogočen ssh)

sudo cp -r/home/pi/Downloads/droid/usr/share/fonts/truetype

sudo cp -r/home/pi/Downloads/roboto/usr/share/fonts/truetype

Za dostop do mape s pisavami potrebujete korenske pravice. Morda obstajajo boljši načini za to (kot sem že omenil, nisem strokovnjak za Linux), vendar sta mi oba načina delovala.

Python datoteke:

Z upraviteljem datotek ustvarite novo mapo "bandwidth_monitor"

Kopirajte vse datoteke v imenik bandwidth_monitor

Naj bodo datoteke in skript python izvedljivi

chmod +x *.py

chmod +x speedtest-cron.sh

Konfigurirajte crontab

crontab -e

Crontab se uporablja za načrtovanje izvajanja programa, npr. najhitrejši vsakih 30 min. V crontab dodajte naslednje vrstice (glejte tudi drugo sliko):

@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 načrtovanih opravil:

  • ob ponovnem zagonu se sporočilo o ponovnem zagonu zapiše na nadzorno ploščo IOT
  • pri ponovnem zagonu se zažene anketa test_now_button
  • vsakih 30 minut se izvede merjenje pasovne širine
  • vsake 3 minute se preveri stanje gumba za daljinsko ponastavitev (na nadzorni plošči IOT)
  • enkrat na dan se zažene cikel osveževanja zaslona.

Za kratek opis programov glejte razdelek o programski opremi.

5. korak: Programska oprema

Programska oprema
Programska oprema

Programska oprema je razdeljena na več datotek / programov:

bandwidth_monitor_0_4.py je glavni program, ki ga Crontab prikliče vsake pol ure. Izvede preskus pasovne širine (prek različice ukazne vrstice speedtest.net). Med preskusom je LED RGB modra. Če je pasovna širina nad izbranim pragom, se vrednost prikaže na zaslonu e-črnila (skupaj s časovnim žigom) in izvozi na nadzorno ploščo Ubidots. Če je pasovna širina pod pragom, LED sveti rdeče in meritev se po kratki zamudi ponovi. Po treh negativnih poskusih se rele aktivira in s tem se napajanje modema prekine. Koda za ponastavitev (vrednost = 2) je zapisana v odsek dnevnika.

poll_killswitch.py bere stanje logične spremenljivke na nadzorni plošči. Če je killswitch_state res, se rele aktivira in napajanje modema se prekine. LED dioda RGB med pozivanjem killswitch -a zasveti zeleno. Po ponastavitvi je killswitch_state nastavljeno na false in generiran je vnos v odsek dnevnika na nadzorni plošči (vrednost = 1).

poll_test_now_button.py čaka na pritisk gumba na sprednji plošči ohišja. Z aktiviranjem gumba se ročno sproži merjenje pasovne širine. Ko se program zažene (ob ponovnem zagonu Raspberry Pi), LED RGB utripa rdeče.

post_restart_message.py kodo za ponastavitev (vrednost = 3) zapiše v odsek dnevnika na nadzorni plošči. To pomeni, da se je monitor pasovne širine znova zagnal. Med zagonom programa LED RGB utripa modro.

test_LED.py in test_relay.py sta preprosta skripta, ki ju lahko uporabite za testiranje strojne funkcije LED RGB in releja.

epdconfig.py in epd2in9.py sta gonilnika naprav za prikaz e-črnila, ki jih ponuja Waveshare.

Če želite programom omogočiti dostop do nadzorne plošče Ubidots, morate dodati svoje posamezne žetone in imena naprav ali spremenljivk (če uporabljate različne zapise). Poiščite razdelek, kot je prikazan na zgornji sliki (zamenjajte XXXXXXXX s svojim žetonom).

Obsežne vaje o tem, kako zgraditi nadzorno ploščo in kako integrirati nadzorno ploščo v program Python, najdete neposredno na strani Ubidots (https://help.ubidots.com/en/) ali prek Googla.

6. korak: Nadzorna plošča IOT

Nadzorna plošča IOT
Nadzorna plošča IOT

Nadzorna plošča, ki jo gosti Ubidots (glej https://ubidots.com), vsebuje več področij, ki so na kratko opisana spodaj.

    1. Časovno zaporedje hitrosti up in download. Vsake pol ure se v diagram vstavi nova vrednost.
    2. Časovni potek izmerjenega časa pinga. Vsake pol ure se v diagram vstavi nova vrednost.
    3. Časovno zaporedje povprečne hitrosti prenosa. Povprečna vrednost v 24 urah se izračuna in zapiše v diagram.
    4. Preglednica trenutnih merilnih vrednosti, vključno s časovnim žigom.
    5. Gumb za daljinsko upravljanje za ponastavitev modema prek interneta. Poizvedba se pojavi vsake 3 minute, kar pomeni, da lahko traja nekaj časa, preden se dejanje izvede.
    6. Zapis zadnjih ponastavitev, vključno z razlogom za ponastavitev (daljinsko sproženje, izklop ali izguba napetosti, padec pod najmanjšo pasovno širino)

Obsežne vaje o tem, kako zgraditi nadzorno ploščo in kako integrirati nadzorno ploščo v program Python, najdete neposredno na strani Ubidots (https://help.ubidots.com/en/) ali prek Googla.

Priporočena: