Kazalo:
- Zaloge
- 1. korak: Lastnosti
- 2. korak: Ožičenje
- 3. korak: 3D tiskanje in izgradnja lova
- 4. korak: Nastavitev Raspberry PI
- 5. korak: Programska oprema
- 6. korak: Nadzorna plošča IOT
- 7. korak: Uvedba osnovnih funkcij
Video: Monitor pasovne širine: 7 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
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
- 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
Na prvi sliki si lahko ogledate notranjo zasnovo monitorja pasovne širine:
Glavni sestavni deli so:
- Pritisni gumb
- Zaslon z e-črnilom
- Raspberry Pi Zero
- Relejni modul
- RGB LED + upori (odvisno od RGB LED, ki jih uporabljate)
- Preklopite
- DC-DC pretvornik
- Ž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
Za ohišje so potrebni naslednji deli (glej zgornjo sliko):
- spodnji del
- zgornji del
- spredaj
- nazaj
- 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
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 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, ki jo gosti Ubidots (glej https://ubidots.com), vsebuje več področij, ki so na kratko opisana spodaj.
- Časovno zaporedje hitrosti up in download. Vsake pol ure se v diagram vstavi nova vrednost.
- Časovni potek izmerjenega časa pinga. Vsake pol ure se v diagram vstavi nova vrednost.
- Časovno zaporedje povprečne hitrosti prenosa. Povprečna vrednost v 24 urah se izračuna in zapiše v diagram.
- Preglednica trenutnih merilnih vrednosti, vključno s časovnim žigom.
- 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.
- 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:
Monitor za posodo za olje WiFi: 6 korakov (s slikami)
Nadzor rezervoarja za olje WiFi: Obstaja več načinov za preverjanje, koliko goriva ostane v rezervoarju za kurilno olje. Najenostavnejši način je, da uporabite merilno palico, zelo natančno, vendar ne preveč zabavno v hladnem zimskem dnevu. Nekateri rezervoarji so opremljeni z merilno cevjo, ki ponovno daje neposredne navedbe o
Monitor napajalnika ptic V2.0: 12 korakov (s slikami)
Bird Feeder Monitor V2.0: To je projekt za spremljanje, fotografiranje in beleženje števila in časa, ki ga ptice obiščejo v naši hranilnici ptic. Za ta projekt je bilo uporabljenih več Raspberry Pi (RPi). Eden je bil uporabljen kot kapacitivni senzor na dotik, Adafruit CAP1188, za zaznavanje, snemanje
Mikrokrmilnik AVR. Modulacija širine impulza. Krmilnik enosmernega motorja in jakosti LED luči: 6 korakov
Mikrokrmilnik AVR. Modulacija širine impulza. Krmilnik enosmernega motorja in intenzivnosti LED luči: Pozdravljeni! Pulzno širinska modulacija (PWM) je zelo pogosta tehnika v telekomunikacijah in nadzoru moči. običajno se uporablja za krmiljenje napajanja električne naprave, pa naj gre za motor, LED, zvočnike itd. V bistvu je modul
Monitor Raspberry Pi Impact Force Monitor!: 16 korakov (s slikami)
Raspberry Pi Impact Force Monitor !: Koliko vpliva lahko prenese človeško telo? Ne glede na to, ali gre za nogomet, plezanje ali kolesarsko nesrečo, je zelo pomembno, da po trčenju takoj poiščete zdravniško pomoč, še posebej, če ni očitnih znakov trama
Arduino CPU+RAM Monitor Monitor LCD: 5 korakov
Arduino CPU+RAM Monitor Monitor LCD: Pozdravljeni, vseeno sem naredil monitor za uporabo Arduino CPU+RAM z uporabo preproste skice Arduino in programa VB.net. V tem navodilu vam bom pokazal, kako to narediti. Program vb.net vsebuje preizkuševalnik povezav Arduino in lahko napišete besedilo po meri v