Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Funksjoner
- Trinn 2: Kabling
- Trinn 3: 3D -utskrift og bygging av jakten
- Trinn 4: Konfigurere Raspberry PI
- Trinn 5: Programvare
- Trinn 6: IOT Dashboard
- Trinn 7: Innføring av grunnleggende funksjoner
Video: Båndbreddeovervåker: 7 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
Da jeg ofte spurte meg selv hvilken båndbredde som er tilgjengelig fra ISP -en min (jeg bruker et LTE -modem for Internett -tilkoblingen), tenkte jeg på et båndbreddeovervåkingssystem. Siden systemet skulle være kompakt og strømsparende, valgte jeg en Raspberry Pi Zero som den sentrale komponenten. Bringebæret er koblet til modemet via WLAN, derfor kan WLAN -problemer også oppdages.
Rekvisita
- Raspberry Pi Zero WH
- Waveshare e-blekkdisplay (2,9 tommers e-papirmodul)
- DC-DC-omformer (f.eks. DEBO DCDC 20W)
- RGB LED (tatt ut fra en gammel enhet)
- Trykknapp
- Bytte om
- Relais -modul (f.eks. 2 -veis relemodul 2 -veis relemodul)
- Hankontakt + Hunnkontakt (begge passer til størrelsen på modemstrømforsyningspluggen)
- 3D -trykt etui
Trinn 1: Funksjoner
- Raspberry Pi Zero er tilkoblet via WLAN, tester opp- og nedlastningshastighet og utfører en ping-måling hver halve time. En kommandolinjeversjon av speedtest.net brukes som grunnlag for målingene.
- Resultatet av båndbredde og ping-måling vises på et e-blekkdisplay. Tidspunktet for målingen er også vist.
- Hvis nedlastingshastigheten faller under en definert terskelverdi, slår et relé av og på modemet for en kort stund. Modemet tilbakestilles dermed uten noen endring av enheten (bare strømforsyningen er avbrutt).
- En knapp på forsiden av enheten er tilgjengelig for å utløse måling av båndbredde manuelt.
- Måleverdiene vises på et Ubidots Dashboard (IOT Portal). I oversikten kan du også se tidshistorikken til måleverdiene og årsakene til de siste tilbakestillingene.
- I IOT -portalen kan du også finne en knapp for å tilbakestille modemet eksternt.
- Båndbreddeovervåkeren bruker strømforsyningen til modemet. Ingen ekstra forsyning nødvendig. Reléene avbryter videresending av strømforsyningen til modemet - bringebæret forblir slått på.
Trinn 2: Kabling
På det første bildet kan du se den interne utformingen av båndbreddemonitoren:
De viktigste komponentene er:
- Trykknapp
- Display med e-blekk
- Raspberry Pi Zero
- Relémodul
- RGB LED + motstander (avhengig av RGB LED du bruker)
- Bytte om
- DC-DC-omformer
- Hunnkontakt
Det andre bildet viser en skjematisk oversikt over ledningene. Den positive polen i forsyningsspenningen mates via bryteren til DC-DC spenningsomformeren (som konverterer 12V forsyningsspenningen til ruteren til 5V for bringebæret) og via reléet (via den normalt tilkoblede pinnen) tilbake til utgangskontakt. Dermed får modemet også strøm når båndbreddemonitoren er slått av.
Båndbreddemåling kan startes manuelt via en knapp. En RGB -LED brukes til å visualisere de forskjellige driftstilstandene.
Tilkoblingen mellom Raspberry Pi og e-blekkdisplayet er ikke vist i kretsdiagrammet. Koble skjermen i henhold til tabellen og pin-out ovenfor.
Trinn 3: 3D -utskrift og bygging av jakten
Følgende deler er nødvendige for saken (se bildet ovenfor):
- Nedre del
- øvre del
- front
- tilbake
- 4x feste
Alle delene kan skrives ut uten støtte. Du kan også finne filene og noen av mine andre design på Thingiverse:
Skjermen kan festes til frontpanelet med festene og en dobbeltsidig tape. Knappbryter og hunnkontakt er skrudd fast på bak- og bakpanelet. Jeg brukte 3x20 mm skruer for å koble de to halvdelene av huset. Toleransene på sporene for front- og bakpanelene er relativt tette. Om nødvendig må front- og bakpanelene slipes på kanten (på innsiden for å unngå å ødelegge overflaten).
Trinn 4: Konfigurere Raspberry PI
Denne oppsettguiden er basert på å sette sammen flere installasjonsinstruksjoner fra forskjellige kilder (e-Ink display-produsenter, …). For meg har instruksjonene ført til ønsket resultat. Siden jeg ikke er en Linux -ekspert, ble det ikke gjort noen optimaliseringer eller lignende. Jeg er klar over at det sikkert finnes bedre og mer effektive løsninger.
La oss anta at du allerede har Raspbian installert på Pi (det er mange opplæringsprogrammer om hvordan du installerer det grunnleggende operativsystemet) og at du har en skjerm (via miniHDMI), mus og tastatur tilkoblet. En riktig konfigurert WLAN -tilkobling til ruteren eller Internett er også forutsatt. Med mindre annet er angitt, utføres alle installasjonsprosedyrer i terminalen.
Installer eksternt skrivebord (for å få tilgang til PI fra datamaskinen):
sudo apt-get oppdatering
sudo apt-get
installer xrdp
eller du kan også jobbe hodeløst via ssh (se f.eks.
Bytt passord:
www.raspberrypi.org/forums/viewtopic.php?t=193620
Installer hastighetstest:
sudo
apt-get install python-pip
sudo pip installer speedtest-cli
for å teste om installasjonen var vellykket, kjør Speedtest i terminalen:
speedtest-cli
hvis noe er riktig, bør du få noe som på det første bildet ovenfor.
Installer wiringPI
sudo apt-get install git-core
git klon git: //git.drogon.net/wiringPi
cd -ledningerPi
./bygge
(se også
Alternativt:
sudo apt-get install wiringpi
(se
Installer BCM2835
(se
Last ned bcm2835-1.60.tar.gz (eller en nyere versjon hvis tilgjengelig)
tjære zxvf bcm2835-1.60.tar.gz
cd bcm2835-1.60
./konfigurasjon
gjøre
sudo sjekk
sudo gjør install
Installer Python -bildebehandlingsbiblioteket
sudo apt-get install python-imaging
Alternativt:
sudo apt-get install python-pil
Aktiver I2C -funksjonen.
Kjør følgende kommando for å konfigurere Raspberry Pi -kortet:
sudo raspi-config
Velg Grensesnittalternativer-> I2C -> ja, for å starte I2C -kjernedriveren. Da må du også endre konfigurasjonsfilen. Kjør følgende kommando for å åpne konfigurasjonsfilen:
sudo nano /etc /modules
Legg til følgende to linjer i konfigurasjonsfilen
i2c-bcm2708
i2c-dev
Se også
Aktiver SPI -funksjonen
Kjør følgende kommando for å konfigurere Raspberry Pi -kortet:
sudo raspi-config
Velg Grensesnittalternativer-> SPI -> ja, for å starte SPI -kjernedriveren.
Installer flere fonter:
sudo apt-get install ttf-mscorefonts-installer
Last ned og installer fonter (Roboto + Droid)
gksudo
pcmanfm
For å starte filmanager med rotrettigheter og kopiere truetype -fonter til mappe/usr/share/fonts/truetype
Alternativt:
Kopier skriftene til nedlastingsmappen med WinSCP (ssh må være aktivert for å bruke WinSCP)
sudo cp -r/home/pi/Downloads/droid/usr/share/fonts/truetype
sudo cp -r/home/pi/Downloads/roboto/usr/share/fonts/truetype
Du trenger rotrettigheter for å få tilgang til skriftmappen. Kanskje det er bedre måter å gjøre dette på (som nevnt tidligere er jeg ikke en Linux -ekspert), men begge måtene fungerte for meg.
Python -filer:
Bruk filmanger for å lage en ny mappe "bandwidth_monitor"
Kopier alle filene til katalogen bandwidth_monitor
Lag python -filer og script kjørbare
chmod +x *.py
chmod +x speedtest-cron.sh
Konfigurer crontab
crontab -e
Crontab brukes til å planlegge programkjøring f.eks. hastighetstest hvert 30. minutt. Legg til følgende linjer i crontab (se også andre figur):
@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
Beskrivelse av de planlagte oppgavene:
- ved omstart blir omstartmeldingen skrevet til IOT -dashbordet
- ved omstart startes avstemningen test_now_button
- hvert 30. minutt utføres en måling av båndbredde
- hvert 3. minutt kontrolleres statusen til knappen for ekstern tilbakestilling (på IOT -dashbordet)
- en gang om dagen starter en skjermoppdateringssyklus.
Se programvaredelen for en kort beskrivelse av programmene.
Trinn 5: Programvare
Programvaren er delt inn i flere filer / programmer:
bandwidth_monitor_0_4.py er hovedprogrammet som påkalles av Crontab hver halve time. Den utfører en båndbredde -test (via kommandolinjeversjonen av speedtest.net). Under testen er RGB -lysdioden blå. Hvis båndbredden er over den valgte terskelen, vises verdien på e-blekkdisplayet (sammen med et tidsstempel) og eksporteres til Ubidots dashbord. Hvis båndbredden er under terskelen, blir LED -en rød og målingen gjentas etter en kort forsinkelse. Etter 3 negative forsøk blir reléet aktivert, og dermed blir strømforsyningen til modemet avbrutt. Tilbakestill kode (verdi = 2) skrives til loggseksjonen.
poll_killswitch.py leser statusen til en boolsk variabel på dashbordet. Hvis killswitch_state er sant, er relaene aktivert og strømforsyningen til modemet blir avbrutt. RGB -lysdioden blir grønn under avstemningen av drapsbryteren. Etter tilbakestillingen settes killswitch_state false og en oppføring i loggdelen på dashbordet genereres (verdi = 1).
poll_test_now_button.py venter på at trykknappen på frontpanelet på saken skal trykkes. Ved å aktivere knappen utløses en båndbreddemåling manuelt. Når programmet startes (ved omstart av Raspberry Pi) blinker RGB -LED -en rødt.
post_restart_message.py skriver tilbakestillingskoden (verdi = 3) til loggdelen på dashbordet. Dette indikerer at båndbreddemonitoren er startet på nytt. Under programstart blinker RGB -LED -en blå.
test_LED.py og test_relay.py er enkle skript som kan brukes til å teste maskinvarefunksjonen til RGB LED og reléet.
epdconfig.py og epd2in9.py er enhetsdriver for e-blekkvisningen som tilbys av Waveshare.
For å gi programmene tilgang til Ubidots dashbord, må du legge til dine individuelle tokens og enhets- eller variabelnavn (hvis du bruker forskjellige notasjoner). Søk etter delen som den som vises på bildet ovenfor (erstatt XXXXXXXX med tokenet ditt).
Omfattende opplæringsprogrammer om hvordan du bygger dashbordet og hvordan du integrerer dashbordet i et Python -program, finner du direkte på Ubidots -siden (https://help.ubidots.com/en/) eller via Google.
Trinn 6: IOT Dashboard
Dashbordet som Ubidots hoster (se https://ubidots.com) inneholder flere områder som er kort beskrevet nedenfor.
- Tidssekvens for opp- og nedlastningshastighet. Hver halve time settes en ny verdi inn i diagrammet.
- Tidsforløpet for den målte pingtiden. Hver halve time settes det inn en ny verdi i diagrammet.
- Tidssekvens for gjennomsnittlig nedlastningshastighet. Gjennomsnittsverdien over 24 timer beregnes og skrives til diagrammet.
- Regnearksrepresentasjon av gjeldende måleverdier inkludert tidsstempel.
- Fjernkontrollknapp for tilbakestilling av modemet via Internett. Forespørsel forekommer hvert 3. minutt, det vil si at det kan ta litt tid før handlingen er utført.
- Logging av de siste tilbakestillingene, inkludert årsaken til tilbakestillingen (fjernutløser, slå av eller spenningstap, faller under minimum båndbredde)
Omfattende opplæringsprogrammer om hvordan du bygger dashbordet og hvordan du integrerer dashbordet i et Python -program, finner du direkte på Ubidots -siden (https://help.ubidots.com/en/) eller via Google.
Anbefalt:
Ta flotte bilder med en iPhone: 9 trinn (med bilder)
Ta flotte bilder med en iPhone: De fleste av oss har med oss en smarttelefon overalt i disse dager, så det er viktig å vite hvordan du bruker smarttelefonkameraet ditt til å ta flotte bilder! Jeg har bare hatt en smarttelefon i et par år, og jeg har elsket å ha et greit kamera for å dokumentere ting jeg
Slik gjør du det: Installere Raspberry PI 4 Headless (VNC) med Rpi-imager og bilder: 7 trinn (med bilder)
Howto: Installere Raspberry PI 4 Headless (VNC) Med Rpi-imager og bilder: Jeg planlegger å bruke denne Rapsberry PI i en haug med morsomme prosjekter tilbake i bloggen min. Sjekk det gjerne ut. Jeg ønsket å begynne å bruke Raspberry PI igjen, men jeg hadde ikke tastatur eller mus på min nye plassering. Det var en stund siden jeg konfigurerte en bringebær
Slik demonterer du en datamaskin med enkle trinn og bilder: 13 trinn (med bilder)
Slik demonterer du en datamaskin med enkle trinn og bilder: Dette er en instruksjon om hvordan du demonterer en PC. De fleste grunnkomponentene er modulære og fjernes lett. Det er imidlertid viktig at du er organisert om det. Dette vil bidra til å hindre deg i å miste deler, og også i å gjøre monteringen igjen
PCB -design med enkle og enkle trinn: 30 trinn (med bilder)
PCB -design med enkle og enkle trinn: HELLO VENNER Den veldig nyttige og enkle opplæringen for de som ønsker å lære PCB -design, kan komme i gang
Hvordan lage en delt skjermvideo med fire trinn: 4 trinn (med bilder)
Hvordan lage en delt skjermvideo med fire trinn: Vi ser ofte en samme person vise i en scene to ganger i et TV -spill. Og så vidt vi vet har ikke skuespilleren en tvillingbror. Vi har også sett at to sangvideoer blir satt på en skjerm for å sammenligne sangferdighetene sine. Dette er kraften til spl