Innehållsförteckning:

Bandbreddskärm: 7 steg (med bilder)
Bandbreddskärm: 7 steg (med bilder)

Video: Bandbreddskärm: 7 steg (med bilder)

Video: Bandbreddskärm: 7 steg (med bilder)
Video: Störig granne 2024, November
Anonim
Bandbreddsövervakare
Bandbreddsövervakare
Bandbreddsövervakare
Bandbreddsövervakare
Bandbreddsövervakare
Bandbreddsövervakare

Eftersom jag ofta frågade mig själv vilken bandbredd som för närvarande tillhandahålls av min ISP (jag använder ett LTE -modem för internetanslutningen) tänkte jag på ett bandbreddskontrollsystem. Eftersom systemet ska vara kompakt och energibesparande valde jag en Raspberry Pi Zero som den centrala komponenten. Hallon är anslutet till modemet via WLAN, därför kan WLAN -problem också upptäckas.

Tillbehör

  • Raspberry Pi Zero WH
  • Waveshare e-ink display (2,9 tum-e-paper-modul)
  • DC-DC-omvandlare (t.ex. DEBO DCDC 20W)
  • RGB LED (hämtad från en gammal enhet)
  • Tryckknapp
  • Växla
  • Relämodul (t.ex. 2 -vägs relämodul 2 -vägs relämodul)
  • Hankontakt + Hankontakt (båda passar storleken på ditt modems nätaggregat)
  • 3D -tryckt fodral

Steg 1: Funktioner

Funktioner
Funktioner
Funktioner
Funktioner
Funktioner
Funktioner
  • Raspberry Pi Zero är ansluten via WLAN, testar upp- och nedladdningshastighet och utför en pingmätning varje halvtimme. En kommandoradsversion av speedtest.net används som grund för mätningarna.
  • Resultatet av bandbredd och ping-mätning visas på en e-bläckdisplay. Mättiden visas också.
  • Om nedladdningshastigheten faller under ett definierat tröskelvärde stänger ett relä av och på modemet under en kort tid. Modemet återställs således utan någon ändring av enheten (endast strömförsörjningen avbryts).
  • En knapp på enhetens framsida är tillgänglig för att utlösa bandbreddsmätningen manuellt.
  • De uppmätta värdena visas på en Ubidots Dashboard (IOT Portal). I översikten kan du också se tidshistoriken för de uppmätta värdena och orsakerna till de senaste återställningarna.
  • I IOT Portal kan du också hitta en knapp för fjärråterställning av modemet.
  • Bandbreddsmonitorn använder modemets strömförsörjning. Ingen extra leverans behövs. Reläerna avbryter vidarebefordran av strömförsörjningen till modemet - hallonen förblir påslagen.

Steg 2: Kabeldragning

Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning

På den första bilden kan du se den interna designen på bandbreddsmonitorn:

De viktigaste komponenterna är:

    1. Tryckknapp
    2. Display för e-bläck
    3. Hallon Pi Zero
    4. Relämodul
    5. RGB LED + motstånd (beroende på vilken RGB LED du använder)
    6. Växla
    7. DC-DC-omvandlare
    8. Kvinnlig kontakt

Den andra bilden visar en schematisk bild av ledningarna. Matningsspänningens positiva pol matas via omkopplaren till DC-DC spänningsomvandlaren (som omvandlar routerns 12V matningsspänning till 5V för hallon) och via reläet (via den normalt anslutna stiftet) tillbaka till utgångskontakt. Således försörjs modemet också med ström när bandbreddsmonitorn är avstängd.

Bandbreddsmätningen kan startas manuellt med en knapp. En RGB -LED används för att visualisera de olika driftstillstånden.

Anslutningen mellan Raspberry Pi och e-ink display visas inte i kretsschemat. Anslut displayen enligt tabellen och uttaget ovan.

Steg 3: 3D -utskrift och bygga jakten

3D -utskrift och bygga jakten
3D -utskrift och bygga jakten
3D -utskrift och bygga jakten
3D -utskrift och bygga jakten
3D -utskrift och bygga jakten
3D -utskrift och bygga jakten
3D -utskrift och bygga jakten
3D -utskrift och bygga jakten

Följande delar behövs för fodralet (se bilden ovan):

    1. nedre del
    2. övre del
    3. främre
    4. tillbaka
    5. 4x fäste

Alla delar kan skrivas ut utan stöd. Du kan också hitta filerna och några av mina andra mönster på Thingiverse:

Displayen kan fästas på frontpanelen med fästen och en dubbelsidig tejp. Knappbrytare och femalkontakt skruvas fast på bak- och bakpanelen. Jag använde 3x20 mm skruvar för att ansluta de två halvorna av huset. Toleranserna på spåren för de främre och bakre panelerna är relativt snäva. Vid behov måste de främre och bakre panelerna slipas på kanten (på insidan för att undvika att förstöra ytan).

Steg 4: Konfigurera Raspberry PI

Konfigurera Raspberry PI
Konfigurera Raspberry PI
Konfigurera Raspberry PI
Konfigurera Raspberry PI

Denna installationsguide är baserad på att sammanställa flera installationsanvisningar från olika källor (e-Ink display-tillverkare, …). För mig har instruktionerna lett till önskat resultat. Eftersom jag inte är en Linux -expert har inga optimeringar eller liknande gjorts. Jag är medveten om att det säkert finns bättre och effektivare lösningar.

Låt oss anta att du redan har Raspbian installerat på din Pi (det finns många självstudier om hur du installerar det grundläggande operativsystemet) och att du har en bildskärm (via miniHDMI), mus och tangentbord ansluten. En korrekt konfigurerad WLAN -anslutning till routern eller Internet antas också. Om inte annat anges utförs alla installationsprocedurer i terminalen.

Installera fjärrskrivbord (för att komma åt PI från din dator):

sudo apt-get uppdatering

sudo apt-get

installera xrdp

eller så kan du också arbeta utan huvud via ssh (se t.ex.

Ändra lösenord:

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

Installera hastighetstest:

sudo

apt-get install python-pip

sudo pip installera speedtest-cli

för att testa om installationen lyckades kör Speedtest i terminalen:

speedtest-cli

om någonting är korrekt ska du få något som på den första bilden ovan.

Installera wiringPI

sudo apt-get install git-core

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

cd -ledningarPi

./bygga

(se även

Alternativt:

sudo apt-get install wiringpi

(se

Installera BCM2835

(se

Ladda ner bcm2835-1.60.tar.gz (eller en nyare version om tillgänglig)

tjära zxvf bcm2835-1.60.tar.gz

cd bcm2835-1.60

./konfiguration

göra

sudo kontrollera

sudo gör installationen

Installera Python -bildbiblioteket

sudo apt-get install python-imaging

Alternativt:

sudo apt-get install python-pil

Aktivera I2C -funktionen.

Kör följande kommando för att konfigurera ditt Raspberry Pi -kort:

sudo raspi-config

Välj gränssnittsalternativ-> I2C -> ja, för att starta I2C -kärndrivrutinen. Då måste du också ändra konfigurationsfilen. Kör följande kommando för att öppna konfigurationsfilen:

sudo nano /etc /modules

Lägg till följande två rader i konfigurationsfilen

i2c-bcm2708

i2c-dev

Se även

Aktivera SPI -funktionen

Kör följande kommando för att konfigurera ditt Raspberry Pi -kort:

sudo raspi-config

Välj gränssnittsalternativ-> SPI -> ja, för att starta SPI -kärndrivrutinen.

Installera ytterligare teckensnitt:

sudo apt-get install ttf-mscorefonts-installer

Ladda ner och installera teckensnitt (Roboto + Droid)

gksudo

pcmanfm

För att starta filhanterare med root -privilegier och kopiera truetype -teckensnitt till mapp/usr/share/fonts/truetype

Alternativt:

Kopiera teckensnitt till mappen Nedladdningar med WinSCP (ssh måste vara aktiverat för att kunna använda WinSCP)

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

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

Du behöver roträttigheter för att komma åt teckensnittsmappen. Kanske finns det bättre sätt att göra detta (som redan nämnts är jag inte en Linux -expert) men båda sätten fungerade för mig.

Python -filer:

Använd filändaren för att skapa en ny mapp "bandwidth_monitor"

Kopiera alla filer till katalog bandwidth_monitor

Gör pythonfiler och skript körbart

chmod +x *.py

chmod +x speedtest-cron.sh

Konfigurera crontab

crontab -e

Crontab används för att schemalägga programkörning t.ex. hastighetstest var 30: e minut. Lägg till följande rader i din crontab (se även andra figuren):

@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

Beskrivning av de schemalagda uppgifterna:

  • vid omstart skrivs omstartmeddelandet till IOT -instrumentpanelen
  • vid omstart startas omröstningen test_now_button
  • var 30: e minut utförs en mätning av bandbredd
  • var tredje minut kontrolleras status för fjärråterställningsknappen (på IOT -instrumentpanelen)
  • en gång om dagen startas en uppfriskningscykel.

Se programvaruavsnittet för en kort beskrivning av programmen.

Steg 5: Programvara

programvara
programvara

Programvaran är uppdelad i flera filer / program:

bandwidth_monitor_0_4.py är huvudprogrammet som åberopas av Crontab var halvtimme. Den utför ett bandbreddstest (via kommandoradsversionen av speedtest.net). Under testet är RGB -lysdioden blå. Om bandbredden är över det valda tröskelvärdet visas värdet på e-ink-displayen (tillsammans med en tidsstämpel) och exporteras till Ubidots instrumentpanel. Om bandbredden är under tröskeln lyser lysdioden röd och mätningen upprepas efter en kort fördröjning. Efter 3 negativa försök aktiveras reläet och därmed bryts modemets strömförsörjning. Återställningskod (värde = 2) skrivs till loggsektionen.

poll_killswitch.py läser statusen för en boolsk variabel på instrumentpanelen. Om killswitch_state är sant aktiveras reläerna och modemets strömförsörjning avbryts. RGB -lysdioden lyser grönt under avstämningen av dödsbrytaren. Efter återställningen ställs killswitch_state in false och en post i loggdelen på instrumentpanelen genereras (värde = 1).

poll_test_now_button.py väntar på att tryckknappen på fodralets frontpanel ska tryckas in. Genom att aktivera knappen utlöses en bandbreddsmätning manuellt. När programmet startas (vid omstart av Raspberry Pi) blinkar RGB -lysdioden rött.

post_restart_message.py skriver återställningskoden (värde = 3) till loggsektionen på instrumentpanelen. Detta indikerar att bandbreddsmonitorn har startats om. Under programstart blinkar RGB -lysdioden blått.

test_LED.py och test_relay.py är enkla skript som kan användas för att testa maskinvarufunktionen för RGB -lysdioden och reläet.

epdconfig.py och epd2in9.py är enhetsdrivrutinen för e-bläckskärmen från Waveshare.

För att programmen ska få åtkomst till Ubidots instrumentpanel måste du lägga till dina individuella tokens och enhets- eller variabelnamn (om du använder olika notationer). Sök efter avsnitt som det som visas på bilden ovan (ersätt XXXXXXXX med din token).

Omfattande självstudier om hur man bygger instrumentpanelen och hur man integrerar instrumentpanelen i ett Python -program finns direkt på Ubidots -sidan (https://help.ubidots.com/en/) eller via Google.

Steg 6: IOT Dashboard

IOT -instrumentpanel
IOT -instrumentpanel

Instrumentpanelen som Ubidots har (se https://ubidots.com) innehåller flera områden som kort beskrivs nedan.

    1. Tidssekvens för upp- och nedladdningshastighet. Varje halvtimme infogas ett nytt värde i diagrammet.
    2. Tidsförloppet för den uppmätta pingtiden. Varje halvtimme infogas ett nytt värde i diagrammet.
    3. Tidssekvens för den genomsnittliga nedladdningshastigheten. Medelvärdet över 24 timmar beräknas och skrivs till diagrammet.
    4. Kalkylarkrepresentation av aktuella mätvärden inklusive tidsstämpel.
    5. Fjärrkontrollsknapp för återställning av modemet via Internet. Frågan sker var tredje minut, dvs det kan ta lite tid innan åtgärden utförs.
    6. Loggning av de senaste återställningarna inklusive orsaken till återställningen (fjärrtrigning, avstängning eller spänningsförlust, faller under minsta bandbredd)

Omfattande självstudier om hur man bygger instrumentpanelen och hur man integrerar instrumentpanelen i ett Python -program finns direkt på Ubidots -sidan (https://help.ubidots.com/en/) eller via Google.

Rekommenderad: