Sisukord:
- Tarvikud
- Samm: funktsioonid
- 2. samm: juhtmestik
- 3. samm: 3D -printimine ja tagaajamise ehitamine
- 4. samm: Vaarika PI seadistamine
- Samm: tarkvara
- 6. samm: IOT armatuurlaud
- 7. samm: põhifunktsioonide tutvustus
Video: Ribalaiuse monitor: 7 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
Kuna küsisin endalt sageli, millist ribalaiust pakub praegu minu Interneti -teenuse pakkuja (Interneti -ühenduse jaoks kasutan LTE -modemit), mõtlesin ribalaiuse jälgimissüsteemi peale. Kuna süsteem peaks olema kompaktne ja energiasäästlik, valisin keskseks komponendiks Raspberry Pi Zero. Vaarikas on modemiga ühendatud WLAN -i kaudu, seega saab tuvastada ka WLAN -i probleeme.
Tarvikud
- Raspberry Pi Zero WH
- Waveshare'i e-tindi ekraan (2,9 tolli e-paberimoodul)
- DC-DC muundur (nt DEBO DCDC 20W)
- RGB LED (vanast seadmest välja võetud)
- Vajutage nuppu
- Lüliti
- Relais moodul (nt 2 Way Relay moodul 2 Way Relay moodul)
- Meespistik + naissoost pistik (mõlemad sobivad teie modemi toitepistiku suurusega)
- 3D trükitud ümbris
Samm: funktsioonid
- Raspberry Pi Zero on ühendatud WLAN-i kaudu, kontrollib üles- ja allalaadimiskiirust ning teeb pingimõõtmisi iga poole tunni tagant. Mõõtmiste aluseks on speedtest.net käsurea versioon.
- Ribalaiuse ja ping-mõõtmise tulemus kuvatakse e-tindi ekraanil. Samuti on näidatud mõõtmise aeg.
- Kui allalaadimiskiirus langeb alla määratud läviväärtuse, lülitab relee modemi lühikeseks ajaks välja ja sisse. Seega lähtestatakse modem ilma seadet muutmata (katkestatud on ainult toide).
- Ribalaiuse mõõtmise käsitsi käivitamiseks on saadaval seadme esiküljel olev nupp.
- Mõõdetud väärtused kuvatakse Ubidotsi armatuurlaual (IOT -portaal). Ülevaates näete ka mõõdetud väärtuste ajalugu ja viimaste lähtestamiste põhjuseid.
- IOT -portaalist leiate ka nupu modemi kaugjuhtimiseks.
- Ribalaiuse monitor kasutab modemi toiteallikat. Täiendavat varustust pole vaja. Relee katkestab toiteallika edastamise modemile - vaarikas jääb sisselülitatuks.
2. samm: juhtmestik
Esimesel pildil näete ribalaiuse monitori sisemist disaini:
Peamised komponendid on:
- Vajutage nuppu
- E-tindi ekraan
- Vaarika Pi Zero
- Relee moodul
- RGB LED + takistid (sõltuvalt kasutatavast RGB LED -st)
- Lüliti
- DC-DC muundur
- Naissoost pistik
Teisel pildil on näidatud juhtmestiku skeem. Toitepinge positiivne pool suunatakse lüliti kaudu alalis-alalisvoolu pingemuundurile (mis muudab ruuteri 12 V toitepinge Vaarika jaoks 5 V-ks) ja relee kaudu (normaalselt ühendatud tihvti kaudu) tagasi väljundühendus. Seega saab modem toite ka ribalaiuse monitori väljalülitamisel.
Ribalaiuse mõõtmist saab käivitada käsitsi nupu abil. RGB LED -i kasutatakse erinevate tööolekute visualiseerimiseks.
Ühendust Raspberry Pi ja e-tindi ekraani vahel pole skeemil näidatud. Ühendage ekraan vastavalt tabelile ja ülalolevale pistikule.
3. samm: 3D -printimine ja tagaajamise ehitamine
Korpuse jaoks on vaja järgmisi osi (vt ülaltoodud pilti):
- alumine osa
- ülemine osa
- ees
- tagasi
- 4x kinnitus
Kõiki osi saab printida ilma toeta. Failid ja mõned minu muud kujundused leiate ka saidilt Thingiverse:
Ekraani saab kinnitada esipaneeli külge kinnituste ja kahepoolse teibiga. Nuppude lüliti ja femalliides on kruvitud taga- ja tagapaneeli külge. Korpuse kahe poole ühendamiseks kasutasin 3x20 mm kruvisid. Esi- ja tagapaneelide soonte tolerantsid on suhteliselt tihedad. Vajadusel tuleb esi- ja tagapaneelid serval lihvida (seestpoolt, et vältida pinna hävitamist).
4. samm: Vaarika PI seadistamine
See seadistusjuhend põhineb mitmete installijuhiste koostamisel erinevatest allikatest (e-Ink-ekraanide tootjad jne). Minu jaoks on juhised viinud soovitud tulemuseni. Kuna ma ei ole Linuxi ekspert, ei tehtud optimeeringuid ega muud sarnast. Olen teadlik, et kindlasti on paremaid ja tõhusamaid lahendusi.
Oletame, et teie Pi -le on juba installitud Raspbian (põhioperatsioonisüsteemi installimise kohta on palju õpetusi) ja teil on ekraan (miniHDMI kaudu), hiir ja klaviatuur ühendatud. Eeldatakse ka õigesti seadistatud WLAN -ühendust ruuteri või Internetiga. Kui pole märgitud teisiti, tehakse kõik paigaldusprotseduurid terminalis.
Installige kaugtöölaud (arvutist PI -le juurdepääsuks):
sudo apt-get update
sudo apt-get
installi xrdp
või saate töötada ka peata ssh kaudu (vt nt
Muuda salasõna:
www.raspberrypi.org/forums/viewtopic.php?t=193620
Kiiruskatse installimine:
sudo
apt-get install python-pip
sudo pip install speedtest-cli
installimise õnnestumise kontrollimiseks käivitage terminalis Speedtest:
speedtest-cli
kui kõik on õige, peaksite saama midagi sellist, nagu ülaltoodud pildil.
Installige wiringPI
sudo apt-get install git-core
git kloon git: //git.drogon.net/wiringPi
cd juhtmestikPi
./ehitada
(vt ka
Alternatiiv:
sudo apt-get install wiringpi
(vt
Installige BCM2835
(vt
Laadige alla bcm2835-1.60.tar.gz (või uuem versioon, kui see on saadaval)
tõrv zxvf bcm2835-1.60.tar.gz
cd bcm2835-1.60
./configure
tegema
sudo kontrollige
sudo make install
Installige Pythoni pilditeek
sudo apt-get install python-imaging
Alternatiiv:
sudo apt-get install python-pil
Luba funktsioon I2C.
Raspberry Pi tahvli konfigureerimiseks käivitage järgmine käsk:
sudo raspi-config
I2C põhidraiveri käivitamiseks valige liidese valikud-> I2C -> jah. Seejärel peate ka konfiguratsioonifaili muutma. Käivitage konfiguratsioonifaili avamiseks järgmine käsk:
sudo nano /etc /modules
Lisage konfiguratsioonifaili järgmised kaks rida
i2c-bcm2708
i2c-dev
Vaata ka
Luba funktsioon SPI
Raspberry Pi tahvli konfigureerimiseks käivitage järgmine käsk:
sudo raspi-config
Valige SPI põhidraiveri käivitamiseks liidese valikud-> SPI -> jah.
Installige täiendavaid fonte:
sudo apt-get install ttf-mscorefonts-installer
Laadige alla ja installige fondid (Roboto + Droid)
gksudo
pcmanfm
Failihalduri käivitamine juurõigustega ja tõetüübi fontide kopeerimine kausta/usr/share/fonts/truetype
Alternatiiv:
Kopeerige fondid WinSCP -ga kausta Allalaadimised (WinSCP kasutamiseks peab ssh olema lubatud)
sudo cp -r/home/pi/Allalaadimine/droid/usr/share/fonts/truetype
sudo cp -r/home/pi/Allalaadimine/roboto/usr/share/fonts/truetype
Fontide kaustale pääsemiseks vajate juurõigusi. Võib -olla on selleks paremaid viise (nagu ma juba mainisin, et ma pole Linuxi ekspert), kuid mõlemad viisid töötasid minu jaoks.
Pythoni failid:
Kasutage failihaldurit uue kausta "bandwidth_monitor" loomiseks
Kopeerige kõik failid kataloogi bandwidth_monitor
Tehke pythoni failid ja skript käivitatavaks
chmod +x *.py
chmod +x speedtest-cron.sh
Seadistage crontab
crontab -e
Crontabi kasutatakse programmi täitmise ajastamiseks, nt. kiiruskatse iga 30 minuti järel. Lisage oma crontabile järgmised read (vt ka teist joonist):
@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
Plaanitud ülesannete kirjeldus:
- taaskäivitamisel kirjutatakse taaskäivitusteade IOT armatuurlauale
- taaskäivitamisel käivitatakse küsitlus test_now_button
- iga 30 minuti järel mõõdetakse ribalaiust
- iga 3 minuti järel kontrollitakse kaugseadistusnupu olekut (IOT armatuurlaual)
- üks kord päevas alustatakse ekraani värskendamise tsüklit.
Programmide lühikirjeldust leiate tarkvara jaotisest.
Samm: tarkvara
Tarkvara on jagatud mitmeks failiks / programmiks:
bandwidth_monitor_0_4.py on põhiprogramm, mida Crontab iga poole tunni järel käivitab. See teostab ribalaiuse testi (speedtest.net käsurea versiooni kaudu). Katse ajal on RGB LED sinine. Kui ribalaius ületab valitud läve, kuvatakse see väärtus e-tindi ekraanil (koos ajatempliga) ja eksporditakse Ubidotsi armatuurlauale. Kui ribalaius on alla läve, muutub LED punaseks ja mõõtmist korratakse pärast lühikest viivitust. Pärast kolme negatiivset katset käivitub relee ja seega katkeb modemi toide. Lähtestuskood (väärtus = 2) kirjutatakse logiosasse.
poll_killswitch.py loeb armatuurlaual loogilise muutuja olekut. Kui killswitch_state on tõene, aktiveeritakse relee ja katkestatakse modemi toide. RGB LED muutub tapmislüliti küsitluse ajal roheliseks. Pärast lähtestamist on killswitch_state väärtuseks määratud vale ja genereeritakse armatuurlaua logiosa kirje (väärtus = 1).
poll_test_now_button.py ootab korpuse esipaneelil oleva nupu vajutamist. Nupu aktiveerimisega käivitatakse ribalaiuse mõõtmine käsitsi. Programmi käivitamisel (Raspberry Pi taaskäivitamisel) vilgub RGB LED punaselt.
post_restart_message.py kirjutab armatuurlaua logiosasse lähtestuskoodi (väärtus = 3). See näitab, et ribalaiuse monitor on taaskäivitatud. Programmi käivitamise ajal vilgub RGB LED siniselt.
test_LED.py ja test_relay.py on lihtsad skriptid, mida saab kasutada RGB LED -i ja relee riistvarafunktsiooni testimiseks.
epdconfig.py ja epd2in9.py on Waveshare'i pakutava e-tindi ekraani seadme draiverid.
Et programmidel oleks juurdepääs Ubidotsi armatuurlauale, peate lisama oma individuaalsed märgid ja seadme või muutuja nimed (kui kasutate erinevaid tähiseid). Otsige ülaltoodud pildil näidatud jaotist (asendage XXXXXXXX oma märgiga).
Põhjalikud õpetused armatuurlaua ehitamise ja armatuurlaua Pythoni programmi integreerimise kohta leiate otse Ubidotsi lehelt (https://help.ubidots.com/en/) või Google'i kaudu.
6. samm: IOT armatuurlaud
Ubidotsi hostitud armatuurlaud (vt https://ubidots.com) sisaldab mitmeid alasid, mida on allpool lühidalt kirjeldatud.
- Üles- ja allalaadimiskiiruse ajaline järjestus. Iga poole tunni järel sisestatakse diagrammile uus väärtus.
- Mõõdetud pingiaja aja kulg. Iga poole tunni järel sisestatakse diagrammile uus väärtus.
- Keskmise allalaadimiskiiruse ajaline järjestus. Keskmine väärtus 24 tunni jooksul arvutatakse ja kirjutatakse diagrammile.
- Praeguste mõõtmisväärtuste arvutustabel, sealhulgas ajatempel.
- Kaugjuhtimispult modemi lähtestamiseks Interneti kaudu. Päring toimub iga 3 minuti järel, see tähendab, et toimingu teostamiseni võib kuluda veidi aega.
- Viimaste lähtestamiste logimine, sealhulgas lähtestamise põhjus (kaugjuhtimine, väljalülitamine või pingekaotus, alla minimaalse ribalaiuse)
Põhjalikud õpetused armatuurlaua ehitamise ja armatuurlaua Pythoni programmi integreerimise kohta leiate otse Ubidotsi lehelt (https://help.ubidots.com/en/) või Google'i kaudu.
Soovitan:
WiFi õlimahuti monitor: 6 sammu (piltidega)
WiFi õlimahuti monitor: kütteõli paagis on palju võimalusi kontrollida, kui palju kütust on jäänud. Lihtsaim viis on kasutada õlimõõtevarda, mis on väga täpne, kuid mitte eriti lõbus külmal talvepäeval. Mõned tankid on varustatud vaatetoruga, mis annab taas otsese märke
Linnusöötja monitor V2.0: 12 sammu (piltidega)
Bird Feeder Monitor V2.0: see on projekt, mille eesmärk on jälgida, pildistada ja registreerida lindude arv ja aeg, mis meie lindude toitjat külastavad. Selle projekti jaoks kasutati mitut Raspberry Pi (RPi). Ühte kasutati mahtuvusliku puutetundliku sensorina, Adafruit CAP1188, avastamiseks, salvestamiseks
Raksha - Vitali monitor rindetöötajatele: 6 sammu (koos piltidega)
Raksha - eesliinitöötajate pealinnamonitor: kantavad tervise jälgimise tehnoloogiad, sealhulgas nutikellad ja treeningujälgijad, on viimastel aastatel äratanud tarbijate seas märkimisväärset huvi. Seda huvi ei ole julgustanud mitte ainult kulumise kiire nõudluse kasv
Crawl Space Monitor (aka: No More Frozen Pipes !!): 12 sammu (koos piltidega)
Crawl Space Monitor (teise nimega: No More Frozen Pipes !!): vesi minu majja tuleb minu kaevust läbi soojendamata roomamisruumi. Sellest köögist läbib ka kogu köögi ja vannitoa torustik. (Siseveetorustik oli selle maja 70-ndate keskel järelemõtlemine!) Olen kasutanud soojuslampe
Arduino CO-monitor MQ-7 anduri abil: 8 sammu (piltidega)
Arduino süsinikdioksiidi monitor MQ -7 anduri abil: mõned sõnad, miks see õpetatav loodi: ühel päeval helistas meie tüdruksõbra ema meile keset ööd, sest ta tundis end tõeliselt haigena - tal oli pearinglus, tahhükardia, iiveldus, kõrge vererõhk, isegi minestas teadmata ajaks (tõenäoliselt