Innehållsförteckning:
- Tillbehör
- Steg 1: Funktioner
- Steg 2: Kabeldragning
- Steg 3: 3D -utskrift och bygga jakten
- Steg 4: Konfigurera Raspberry PI
- Steg 5: Programvara
- Steg 6: IOT Dashboard
- Steg 7: Introduktion av grundläggande funktioner
Video: Bandbreddskärm: 7 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:39
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
- 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
På den första bilden kan du se den interna designen på bandbreddsmonitorn:
De viktigaste komponenterna är:
- Tryckknapp
- Display för e-bläck
- Hallon Pi Zero
- Relämodul
- RGB LED + motstånd (beroende på vilken RGB LED du använder)
- Växla
- DC-DC-omvandlare
- 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
Följande delar behövs för fodralet (se bilden ovan):
- nedre del
- övre del
- främre
- tillbaka
- 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
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
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
Instrumentpanelen som Ubidots har (se https://ubidots.com) innehåller flera områden som kort beskrivs nedan.
- Tidssekvens för upp- och nedladdningshastighet. Varje halvtimme infogas ett nytt värde i diagrammet.
- Tidsförloppet för den uppmätta pingtiden. Varje halvtimme infogas ett nytt värde i diagrammet.
- Tidssekvens för den genomsnittliga nedladdningshastigheten. Medelvärdet över 24 timmar beräknas och skrivs till diagrammet.
- Kalkylarkrepresentation av aktuella mätvärden inklusive tidsstämpel.
- 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.
- 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:
Ta fantastiska bilder med en iPhone: 9 steg (med bilder)
Ta fantastiska bilder med en iPhone: De flesta av oss har en smartphone med oss överallt nuförtiden, så det är viktigt att veta hur du använder din smartphone -kamera för att ta fantastiska bilder! Jag har bara haft en smartphone i ett par år, och jag har älskat att ha en bra kamera för att dokumentera saker jag
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: 7 steg (med bilder)
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: Jag planerar att använda denna Rapsberry PI i ett gäng roliga projekt tillbaka i min blogg. Kolla gärna in det. Jag ville börja använda mitt Raspberry PI men jag hade inte ett tangentbord eller en mus på min nya plats. Det var ett tag sedan jag installerade en hallon
Hur man digitaliserar bilder och filmnegativ med en DSLR: 12 steg (med bilder)
Hur man digitaliserar diabilder och filmnegativ med en DSLR: En mångsidig och stabil inställning för digitalisering av diabilder och negativ med en DSLR eller en kamera med ett makroalternativ. Denna instruerbara är en uppdatering av Hur man digitaliserar 35 mm negativ (uppladdad juli 2011) med flera förbättringar för att utöka dess
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter - Rc helikopter - RC -plan med Arduino: 5 steg (med bilder)
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter | Rc helikopter | Rc -plan med Arduino: Att driva en Rc -bil | Quadcopter | Drone | RC -plan | RC -båt, vi behöver alltid en mottagare och sändare, antag att för RC QUADCOPTER behöver vi en 6 -kanals sändare och mottagare och den typen av TX och RX är för dyr, så vi kommer att göra en på vår
Hur man tar isär en dator med enkla steg och bilder: 13 steg (med bilder)
Hur man tar isär en dator med enkla steg och bilder: Detta är en instruktion om hur man demonterar en dator. De flesta av de grundläggande komponenterna är modulära och lätt att ta bort. Det är dock viktigt att du är organiserad kring det. Detta hjälper dig att inte förlora delar, och även för att göra ommonteringen