Sadržaj:
- Pribor
- Korak 1: Značajke
- Korak 2: Ožičenje
- Korak 3: 3D ispis i izgradnja potjere
- Korak 4: Postavljanje PI -ja za maline
- Korak 5: Softver
- Korak 6: IOT nadzorna ploča
- Korak 7: Upoznavanje s osnovnim funkcijama
Video: Monitor propusnosti: 7 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Kako sam se često pitao koju propusnost trenutno pruža moj ISP (za internetsku vezu koristim LTE modem), pomislio sam na sustav za praćenje propusnosti. Budući da bi sustav trebao biti kompaktan i štedjeti energiju, odabrao sam Raspberry Pi Zero kao središnju komponentu. Raspberry je povezan s modemom putem WLAN -a, pa se mogu otkriti i problemi s WLAN -om.
Pribor
- Malina Pi Zero WH
- Waveshare zaslon e-tinte (2,9-inčni e-papir-modul)
- DC-DC pretvarač (npr. DEBO DCDC 20W)
- RGB LED (izvađeno iz starog uređaja)
- Tipkalo
- Sklopka
- Relais modul (npr. 2 Way Relay module 2 Way Relay module)
- Muški konektor + ženski konektor (oba odgovaraju veličini utikača napajanja modema)
- 3D tiskana futrola
Korak 1: Značajke
- Raspberry Pi Zero je spojen putem WLAN-a, testira brzinu preuzimanja i preuzimanja i vrši mjerenje pinga svakih pola sata. Verzija speedtest.net iz naredbenog retka koristi se kao osnova za mjerenja.
- Rezultat mjerenja propusnosti i pinga prikazan je na zaslonu e-tinte. Prikazano je i vrijeme mjerenja.
- Ako brzina preuzimanja padne ispod definirane vrijednosti praga, relej isključuje i uključuje modem na kratko. Modem se tako resetira bez ikakvih izmjena uređaja (samo je napajanje prekinuto).
- Gumb na prednjoj strani uređaja dostupan je za ručno pokretanje mjerenja propusnosti.
- Izmjerene vrijednosti prikazane su na Ubidots nadzornoj ploči (IOT portal). U pregledu možete vidjeti i povijest vremena izmjerenih vrijednosti te razloge posljednjih resetiranja.
- Na IOT portalu možete pronaći i gumb za daljinsko resetiranje modema.
- Monitor propusne širine koristi napajanje modema. Nije potrebna dodatna opskrba. Relej prekida prosljeđivanje napajanja prema modemu - malina ostaje uključena.
Korak 2: Ožičenje
Na prvoj slici možete vidjeti unutarnji dizajn monitora propusnosti:
Glavne komponente su:
- Pritisnite gumb
- Zaslon e-tinte
- Malina Pi Zero
- Relejni modul
- RGB LED + otpornici (ovisno o RGB LED diodi koju koristite)
- Sklopka
- DC-DC pretvarač
- Ženski konektor
Druga slika prikazuje shemu ožičenja. Pozitivni pol opskrbnog napona dovodi se preko sklopke na pretvarač istosmjernog istosmjernog napona (koji pretvara 12 V opskrbni napon usmjerivača u 5 V za malinu) i preko releja (preko normalno spojenog pina) natrag u izlazni konektor. Tako se modem napaja i kada je monitor propusnosti isključen.
Mjerenje propusnosti može se pokrenuti ručno pomoću gumba. RGB LED se koristi za vizualizaciju različitih radnih stanja.
Veza između Raspberry Pi i zaslona e-tinte nije prikazana na dijagramu kruga. Spojite zaslon prema tablici i gornjoj utičnici.
Korak 3: 3D ispis i izgradnja potjere
Za kućište su potrebni sljedeći dijelovi (vidi gornju sliku):
- Niži dio
- Gornji dio
- ispred
- leđa
- 4x nosač
Svi se dijelovi mogu ispisati bez nosača. Datoteke i neke druge dizajne možete pronaći i na Thingiverseu:
Zaslon se može pričvrstiti na prednju ploču pomoću nosača i dvostrane trake. Prekidač s gumbom i ženski priključak pričvršćeni su na stražnju i stražnju ploču. Za spajanje dviju polovica kućišta koristio sam vijke 3x20 mm. Odstupanja na utorima za prednju i stražnju ploču relativno su mala. Ako je potrebno, prednje i stražnje ploče moraju se brusiti po rubu (s unutarnje strane kako bi se izbjeglo uništavanje površine).
Korak 4: Postavljanje PI -ja za maline
Ovaj vodič za postavljanje temelji se na sastavljanju nekoliko uputa za instalaciju iz različitih izvora (proizvođači zaslona e-tinte, …). Za mene su upute dovele do željenog rezultata. Budući da nisam stručnjak za Linux, nisu napravljene nikakve optimizacije ili slično. Svjestan sam da zasigurno postoje bolja i učinkovitija rješenja.
Pretpostavimo da već imate instaliran Raspbian na svom Pi (postoje mnogi vodiči o tome kako instalirati osnovni operacijski sustav) i da imate povezan zaslon (putem miniHDMI -a), miš i tipkovnicu. Pretpostavlja se i ispravno postavljena WLAN veza s usmjerivačem ili internetom. Osim ako nije drugačije navedeno, svi se instalacijski postupci izvode na terminalu.
Instalirajte Udaljenu radnu površinu (za pristup PI -u s računala):
sudo apt-get ažuriranje
sudo apt-get
instalirajte xrdp
ili možete raditi i bez glave putem ssh-a (pogledajte npr.
Promijeni lozinku:
www.raspberrypi.org/forums/viewtopic.php?t=193620
Instalirajte speedtest:
sudo
apt-get install python-pip
sudo pip instalirajte speedtest-cli
da biste provjerili je li instalacija bila uspješna, pokrenite Speedtest u terminalu:
speedtest-cli
ako je sve točno, trebali biste dobiti nešto kao na prvoj slici gore.
Instalirajte ožičenjePI
sudo apt-get install git-core
git klon git: //git.drogon.net/wiringPi
cd ožičenjePi
./izgraditi
(vidi i
Alternativa:
sudo apt-get install wiringpi
(vidi
Instalirajte BCM2835
(vidi
Preuzmite bcm2835-1.60.tar.gz (ili noviju verziju ako je dostupna)
tar zxvf bcm2835-1.60.tar.gz
cd bcm2835-1.60
./konfigurirati
napraviti
sudo napravi provjeru
sudo make install
Instalirajte biblioteku slika Python
sudo apt-get install python-imaging
Alternativa:
sudo apt-get install python-pil
Omogućite funkciju I2C.
Pokrenite sljedeću naredbu za konfiguriranje vaše Raspberry Pi ploče:
sudo raspi-config
Odaberite Opcije sučelja-> I2C -> da, za pokretanje jezgrenog upravljačkog programa I2C. Zatim morate i izmijeniti konfiguracijsku datoteku. Pokrenite sljedeću naredbu za otvaranje konfiguracijske datoteke:
sudo nano /etc /moduli
U konfiguracijsku datoteku dodajte sljedeća dva retka
i2c-bcm2708
i2c-dev
Pogledajte i
Omogućite funkciju SPI
Pokrenite sljedeću naredbu za konfiguriranje vaše Raspberry Pi ploče:
sudo raspi-config
Odaberite Opcije sučelja-> SPI -> da, da biste pokrenuli osnovni upravljački program SPI.
Instalirajte dodatne fontove:
sudo apt-get install ttf-mscorefonts-installer
Preuzmite i instalirajte Fontove (Roboto + Droid)
gksudo
pcmanfm
Za pokretanje upravitelja datoteka s root ovlastima i kopiranje fontova truetype u mapu/usr/share/fonts/truetype
Alternativa:
Kopirajte fontove u mapu Preuzimanja s WinSCP -om (ssh mora biti omogućen za korištenje WinSCP -a)
sudo cp -r/home/pi/Preuzimanja/droid/usr/share/fontovi/istinski tip
sudo cp -r/home/pi/Preuzimanja/roboto/usr/share/fontovi/truetype
Za pristup mapi s fontovima trebate root ovlaštenja. Možda postoje bolji načini za to (kao što je već spomenuto nisam stručnjak za Linux), ali oba načina su mi uspjela.
Python datoteke:
Pomoću upravitelja datoteka stvorite novu mapu "bandwidth_monitor"
Kopirajte sve datoteke u direktorij bandwidth_monitor
Učinite python datoteke i skriptu izvršnim
chmod +x *.py
chmod +x speedtest-cron.sh
Konfigurirajte crontab
crontab -e
Crontab se koristi za zakazivanje izvođenja programa, npr. najbrži test svakih 30 min. Dodajte sljedeće retke u crontab (pogledajte i drugu sliku):
@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 planiranih zadataka:
- pri ponovnom pokretanju poruka o ponovnom pokretanju se zapisuje na IOT nadzornu ploču
- pri ponovnom pokretanju anketa se pokreće gumb test_now_button
- svakih 30 minuta vrši se mjerenje propusnosti
- svake 3 minute provjerava se status tipke za daljinsko resetiranje (na IOT nadzornoj ploči)
- jednom dnevno započinje ciklus osvježavanja zaslona.
Za kratki opis programa pogledajte odjeljak o softveru.
Korak 5: Softver
Softver je podijeljen u nekoliko datoteka / programa:
bandwidth_monitor_0_4.py je glavni program koji Crontab poziva svakih pola sata. Izvodi test propusnosti (putem verzije speedtest.net iz naredbenog retka). Tijekom testa, RGB LED dioda je plave boje. Ako je širina pojasa iznad odabranog praga, vrijednost se prikazuje na zaslonu e-tinte (zajedno s vremenskom oznakom) i izvozi na nadzornu ploču Ubidots. Ako je širina pojasa ispod praga, LED svijetli crveno i mjerenje se ponavlja nakon kratkog odgode. Nakon 3 negativna pokušaja relej se aktivira pa se napajanje modema prekida. Kôd za poništavanje (vrijednost = 2) zapisuje se u odjeljak dnevnika.
poll_killswitch.py čita status logičke varijable na nadzornoj ploči. Ako je killswitch_state istina, relej se aktivira i napajanje modema se prekida. RGB LED svijetli zeleno tijekom probijanja killswitch -a. Nakon resetiranja killswitch_state je postavljeno na false i generira se unos u odjeljak dnevnika nadzorne ploče (vrijednost = 1).
poll_test_now_button.py čeka da se pritisne gumb na prednjoj ploči kućišta. Aktiviranjem gumba ručno se pokreće mjerenje propusnosti. Kada se program pokrene (pri ponovnom pokretanju Raspberry Pi), RGB LED treperi crveno.
post_restart_message.py zapisuje kôd za poništavanje (vrijednost = 3) u odjeljak dnevnika nadzorne ploče. To znači da je monitor propusnosti ponovno pokrenut. Tijekom pokretanja programa RGB LED treperi plavo.
test_LED.py i test_relay.py jednostavne su skripte koje se mogu koristiti za testiranje hardverske funkcije RGB LED i releja.
epdconfig.py i epd2in9.py upravljački su programi za prikaz e-tinte koje pruža Waveshare.
Da biste omogućili programima pristup Ubidots nadzornoj ploči, morate dodati svoje pojedinačne tokene i nazive uređaja ili varijabli (ako koristite različite zapise). Potražite odjeljak poput onog prikazanog na gornjoj slici (zamijenite XXXXXXXX svojim tokenom).
Opsežni vodiči o tome kako izgraditi nadzornu ploču i kako integrirati nadzornu ploču u program Python mogu se pronaći izravno na stranici Ubidots (https://help.ubidots.com/en/) ili putem Googlea.
Korak 6: IOT nadzorna ploča
Nadzorna ploča koju ugošćuje Ubidots (vidi https://ubidots.com) sadrži nekoliko područja koja su ukratko opisana u nastavku.
- Vremenski slijed brzine preuzimanja i preuzimanja. Svakih pola sata nova vrijednost se unosi u dijagram.
- Vremenski tijek izmjerenog ping vremena. Svakih pola sata nova vrijednost se unosi u dijagram.
- Vremenski slijed prosječne brzine preuzimanja. Prosječna vrijednost tijekom 24 sata izračunava se i zapisuje na dijagram.
- Tablični prikaz trenutnih mjernih vrijednosti uključujući vremensku oznaku.
- Gumb za daljinsko upravljanje za resetiranje modema putem Interneta. Upit se javlja svake 3 minute, tj. Može proći neko vrijeme dok se radnja ne izvede.
- Zapisivanje posljednjih resetiranja, uključujući razlog resetiranja (daljinsko aktiviranje, isključivanje ili gubitak napona, pad ispod minimalne propusnosti)
Opsežni vodiči o tome kako izgraditi nadzornu ploču i kako integrirati nadzornu ploču u program Python mogu se pronaći izravno na stranici Ubidots (https://help.ubidots.com/en/) ili putem Googlea.
Preporučeni:
MQTT Monitor temperature bazena: 7 koraka (sa slikama)
MQTT Monitor temperature bazena: Ovaj je projekt pratitelj mojih drugih projekata kućne automatizacije Pametni kontroler gejzira za bilježenje podataka te Kontroler višenamjenske rasvjete i uređaja. To je monitor montiran na bazenu koji mjeri temperaturu vode u bazenu, vanjski zrak
WiFi Monitor spremnika za ulje: 6 koraka (sa slikama)
WiFi Monitor spremnika ulja: Postoji nekoliko načina za provjeru koliko je goriva ostalo u spremniku loživog ulja. Najjednostavniji način je korištenje šipke za mjerenje, vrlo točne, ali ne i zabavne za hladnog zimskog dana. Neki su spremnici opremljeni kontrolnom cijevi, što opet daje izravnu naznaku o
Monitor hranilica za ptice V2.0: 12 koraka (sa slikama)
Monitor za hranjenje ptica V2.0: Ovo je projekt za praćenje, fotografiranje i snimanje broja i vremena provedenog od strane ptica koje posjećuju našu hranilicu za ptice. Za ovaj projekt korišteno je više Raspberry Pi (RPi). Jedan je korišten kao kapacitivni senzor dodira, Adafruit CAP1188, za otkrivanje, snimanje
GranCare: Džepni zdravstveni monitor!: 8 koraka (sa slikama)
GranCare: Pocket Size Health Monitor !: Pa da počnem, imam baku. Ona je malo stara, ali super fit i zdrava. Pa nedavno smo bili kod liječnika na mjesečnom pregledu i liječnik joj je savjetovao da hoda svaki dan barem pola sata kako bi zglobovi bili zdravi. Trebamo
Monitor Raspberry Pi Impact Force Monitor !: 16 koraka (sa slikama)
Raspberry Pi Impact Force Monitor !: Koliki utjecaj može podnijeti ljudsko tijelo? Bilo da se radi o nogometu, penjanju po stijenama ili biciklističkoj nesreći, znati kada odmah zatražiti liječničku pomoć nakon sudara iznimno je važno, pogotovo ako nema očitih znakova traga