Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Kadangi dažnai savęs klausdavau, kokį pralaidumą šiuo metu teikia mano IPT (interneto ryšiui naudoju LTE modemą), pagalvojau apie pralaidumo stebėjimo sistemą. Kadangi sistema turėtų būti kompaktiška ir taupanti energiją, pagrindiniu komponentu pasirinkau „Raspberry Pi Zero“. „Raspberry“yra prijungtas prie modemo per WLAN, todėl galima aptikti ir WLAN problemų.
Prekės
- Raspberry Pi Zero WH
- „Waveshare“rašalo ekranas (2,9 colio elektroninio popieriaus modulis)
- DC-DC keitiklis (pvz., DEBO DCDC 20W)
- RGB šviesos diodas (išimtas iš seno įrenginio)
- Mygtukas
- Perjungti
- „Relais“modulis (pvz., 2 krypčių relės modulis 2 krypčių relės modulis)
- Vyriška jungtis + moteriška jungtis (abi atitinka jūsų modemo maitinimo kištuko dydį)
- 3D spausdintas dėklas
1 žingsnis: funkcijos
- „Raspberry Pi Zero“yra prijungtas per WLAN, patikrina atsisiuntimo greitį ir kas pusvalandį atlieka ping matavimą. Matavimo pagrindu naudojama „speedtest.net“komandinės eilutės versija.
- Pralaidumo ir ping matavimo rezultatas rodomas elektroninio rašalo ekrane. Taip pat rodomas matavimo laikas.
- Jei atsisiuntimo greitis nukrenta žemiau nustatytos ribinės vertės, relė trumpam išjungia ir įjungia modemą. Taigi modemas iš naujo nustatomas be jokių prietaiso pakeitimų (nutrūksta tik maitinimas).
- Prietaiso priekyje yra mygtukas, leidžiantis rankiniu būdu suaktyvinti pralaidumo matavimą.
- Išmatuotos vertės rodomos „Ubidots“prietaisų skydelyje (IOT portalas). Apžvalgoje taip pat galite pamatyti išmatuotų verčių laiko istoriją ir paskutinių nustatymų priežastis.
- IOT portale taip pat galite rasti modemo nuotolinio nustatymo mygtuką.
- Pralaidumo monitorius naudoja modemo maitinimo šaltinį. Nereikia papildomo tiekimo. Relė nutraukia maitinimo šaltinio persiuntimą į modemą - avietė lieka įjungta.
2 žingsnis: laidų prijungimas
Pirmoje nuotraukoje galite pamatyti pralaidumo monitoriaus vidinį dizainą:
Pagrindiniai komponentai yra:
- Paspauskite mygtuką
- E-rašalo ekranas
- Raspberry Pi Zero
- Relės modulis
- RGB LED + rezistoriai (priklausomai nuo naudojamo RGB LED)
- Perjungti
- DC-DC keitiklis
- Moteriška jungtis
Antrame paveikslėlyje parodyta laidų schema. Teigiamas maitinimo įtampos polius per jungiklį tiekiamas į nuolatinės srovės įtampos keitiklį (kuris paverčia maršrutizatoriaus 12 V maitinimo įtampą į 5 V avietėms) ir per relę (per įprastai prijungtą kaištį) atgal į išvesties jungtis. Taigi modemas taip pat gauna maitinimą, kai pralaidumo monitorius yra išjungtas.
Pralaidumo matavimą galima paleisti rankiniu būdu mygtuku. RGB šviesos diodas naudojamas įvairioms veikimo būsenoms vizualizuoti.
Ryšys tarp „Raspberry Pi“ir „e-ink“ekrano nerodomas grandinės schemoje. Prijunkite ekraną pagal lentelę ir kištuką aukščiau.
3 žingsnis: 3D spausdinimas ir persekiojimo kūrimas
Korpusui reikalingos šios dalys (žr. Paveikslėlį aukščiau):
- apatinė dalis
- viršutinė dalis
- priekyje
- atgal
- 4x laikiklis
Visas dalis galima spausdinti be atramų. Failus ir kai kuriuos kitus mano dizainus taip pat galite rasti „Thingiverse“:
Ekranas gali būti pritvirtintas prie priekinio skydelio su laikikliais ir dvipuse juosta. Mygtuko jungiklis ir femalinė jungtis yra prisukami prie galinio ir galinio skydelio. Aš naudoju 3x20 mm varžtus, kad sujungčiau dvi korpuso puses. Priekinės ir galinės plokštės griovelių nuokrypiai yra gana įtempti. Jei reikia, priekinė ir galinė plokštės turi būti šlifuotos ant krašto (viduje, kad nesugadintumėte paviršiaus).
4 žingsnis: Raspberry PI nustatymas
Šis sąrankos vadovas yra sudarytas iš kelių diegimo instrukcijų iš skirtingų šaltinių („e-Ink“ekranų gamintojų,…). Man instrukcijos davė norimą rezultatą. Kadangi nesu „Linux“ekspertas, nebuvo atlikta jokių optimizavimų ar panašių veiksmų. Aš žinau, kad tikrai yra geresnių ir efektyvesnių sprendimų.
Tarkime, kad jūsų „Pi“jau yra įdiegta „Raspbian“(yra daug pamokų, kaip įdiegti pagrindinę operacinę sistemą) ir turite prijungtą ekraną (per „miniHDMI“), pelę ir klaviatūrą. Taip pat daroma prielaida, kad tinkamai nustatytas WLAN ryšys su maršrutizatoriumi arba internetu. Jei nenurodyta kitaip, visos diegimo procedūros atliekamos terminale.
Įdiekite nuotolinį darbalaukį (norėdami pasiekti PI iš savo kompiuterio):
sudo apt-get atnaujinimas
sudo apt-get
įdiegti xrdp
arba taip pat galite dirbti be galvos per ssh (žr., pvz., Pakeisti slaptažodį:
www.raspberrypi.org/forums/viewtopic.php?t=193620
Įdiekite greičio testą:
sudo
apt-get įdiegti python-pip
sudo pip įdiegti speedtest-cli
Norėdami patikrinti, ar diegimas buvo sėkmingas, paleiskite „Speedtest“terminale:
speedtest-cli
jei viskas teisinga, turėtumėte gauti kažką panašaus į pirmąjį paveikslėlį aukščiau.
Įdiekite „wiringPI“
sudo apt-get install git-core
git klonas git: //git.drogon.net/wiringPi
cd laidaiPi
./ statyti
(taip pat žr.
Alternatyva:
sudo apt-get install wiringpi
(žr.
Įdiekite BCM2835
(žr.
Atsisiųskite bcm2835-1.60.tar.gz (arba naujesnę versiją, jei yra)
tar zxvf bcm2835-1.60.tar.gz
cd bcm2835-1.60
./konfigūruoti
padaryti
sudo atlikti patikrinimą
sudo make install
Įdiekite „Python“vaizdų biblioteką
sudo apt-get įdiegti python-imaging
Alternatyva:
sudo apt-get įdiegti python-pil
Įjunkite I2C funkciją.
Norėdami sukonfigūruoti „Raspberry Pi“plokštę, paleiskite šią komandą:
sudo raspi-config
Pasirinkite sąsajos parinktys-> I2C -> taip, kad paleistumėte I2C pagrindinę tvarkyklę. Tada taip pat turite pakeisti konfigūracijos failą. Norėdami atidaryti konfigūracijos failą, paleiskite šią komandą:
sudo nano /etc /modules
Prie konfigūracijos failo pridėkite šias dvi eilutes
i2c-bcm2708
i2c-dev
Taip pat žiūrėkite
Įjunkite SPI funkciją
Norėdami sukonfigūruoti „Raspberry Pi“plokštę, paleiskite šią komandą:
sudo raspi-config
Pasirinkite sąsajos parinktys-> SPI -> taip, kad paleistumėte pagrindinę SPI tvarkyklę.
Įdiekite papildomus šriftus:
sudo apt-get install ttf-mscorefonts-installer
Atsisiųskite ir įdiekite šriftus („Roboto + Droid“)
gksudo
pcmanfm
Norėdami paleisti failų tvarkyklę su root teisėmis ir nukopijuoti truetype šriftus į aplanką/usr/share/fonts/truetype
Alternatyva:
Nukopijuokite šriftus į atsisiuntimų aplanką naudodami „WinSCP“(norint naudoti „WinSCP“, turi būti įjungta „ssh“)
sudo cp -r/home/pi/Atsisiuntimai/droid/usr/share/fonts/truetype
sudo cp -r/home/pi/Atsisiuntimai/roboto/usr/share/fonts/truetype
Norėdami pasiekti šriftų aplanką, jums reikia root teisių. Galbūt yra geresnių būdų tai padaryti (kaip jau minėjau, nesu „Linux“ekspertas), tačiau abu būdai man tiko.
„Python“failai:
Naudokite failų tvarkyklę, kad sukurtumėte naują aplanką „bandwidth_monitor“
Nukopijuokite visus failus į katalogą bandwidth_monitor
Padarykite „python“failus ir scenarijų vykdomuosius
chmod +x *.py
chmod +x speedtest-cron.sh
Konfigūruokite „crontab“
crontab -e
„Crontab“naudojamas planuojant programos vykdymą, pvz. greičio testas kas 30 min. Prie „crontab“pridėkite šias eilutes (taip pat žiūrėkite antrą paveikslėlį):
@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
Suplanuotų užduočių aprašymas:
- iš naujo paleidžiant iš naujo pranešimas rašomas IOT prietaisų skydelyje
- iš naujo paleidžiant apklausą test_now_button
- kas 30 minučių atliekamas juostos pločio matavimas
- kas 3 minutes tikrinama nuotolinio atstatymo mygtuko (IOT prietaisų skydelyje) būsena
- kartą per dieną pradedamas ekrano atnaujinimo ciklas.
Trumpą programų aprašymą rasite programinės įrangos skyriuje.
5 žingsnis: programinė įranga
Programinė įranga yra padalinta į kelis failus / programas:
„bandwidth_monitor_0_4.py“yra pagrindinė programa, kurią „Crontab“iškviečia kas pusvalandį. Jis atlieka pralaidumo testą (per komandinės eilutės versiją speedtest.net). Bandymo metu RGB šviesos diodas yra mėlynas. Jei pralaidumas viršija pasirinktą slenkstį, vertė rodoma el. Rašalo ekrane (kartu su laiko žyma) ir eksportuojama į „Ubidots“prietaisų skydelį. Jei pralaidumas yra mažesnis už slenkstį, šviesos diodas užsidega raudonai ir po trumpo delsimo matavimas kartojamas. Po 3 neigiamų bandymų relė įsijungia ir modemo maitinimas nutrūksta. Į žurnalo skyrių įrašomas iš naujo nustatytas kodas (vertė = 2).
poll_killswitch.py nuskaito loginio kintamojo būseną prietaisų skydelyje. Jei „killswitch_state“yra teisinga, suaktyvinama relė ir nutrūksta modemo maitinimas. RGB šviesos diodas užsidega žaliai žudymo jungiklio apklausos metu. Po atstatymo „killswitch_state“nustatoma klaidinga ir sugeneruojamas įrašas prietaisų skydelio žurnalo skiltyje (vertė = 1).
poll_test_now_button.py laukia, kol bus paspaustas mygtukas priekiniame dėklo skydelyje. Suaktyvinus mygtuką, pralaidumas matuojamas rankiniu būdu. Kai programa paleidžiama (iš naujo paleidžiant „Raspberry Pi“), RGB šviesos diodas mirksi raudonai.
post_restart_message.py įrašo atstatymo kodą (vertė = 3) į prietaisų skydelio žurnalo skyrių. Tai rodo, kad pralaidumo monitorius buvo paleistas iš naujo. Programos paleidimo metu RGB šviesos diodas mirksi mėlyna spalva.
test_LED.py ir test_relay.py yra paprasti scenarijai, kuriuos galima naudoti norint patikrinti RGB šviesos diodo ir relės aparatinės įrangos funkciją.
„epdconfig.py“ir „epd2in9.py“yra „Waveshare“teikiamo el. rašalo ekrano tvarkyklė.
Kad programos galėtų pasiekti „Ubidots“prietaisų skydelį, turite pridėti savo atskirus žetonus ir įrenginio ar kintamojo pavadinimus (jei naudojate skirtingas žymes). Ieškokite skyriaus, kaip parodyta aukščiau esančiame paveikslėlyje (pakeiskite XXXXXXXX savo prieigos raktu).
Išsamias pamokas, kaip sukurti prietaisų skydelį ir kaip integruoti prietaisų skydelį į „Python“programą, galite rasti tiesiogiai „Ubidots“puslapyje (https://help.ubidots.com/en/) arba per „Google“.
6 žingsnis: IOT prietaisų skydelis
„Ubidots“priglobtame prietaisų skydelyje (žr. Https://ubidots.com) yra keletas sričių, kurios trumpai aprašytos toliau.
- Įkėlimo ir atsisiuntimo greičio laiko seka. Kas pusvalandį į diagramą įtraukiama nauja vertė.
- Išmatuoto ping laiko laiko eiga. Kas pusvalandį į diagramą įterpiama nauja vertė.
- Vidutinio atsisiuntimo greičio laiko seka. Vidutinė 24 valandų vertė apskaičiuojama ir užrašoma diagramoje.
- Skaičiuoklėje pateikiamos dabartinės matavimo vertės, įskaitant laiko žymę.
- Nuotolinio valdymo mygtukas, skirtas modemui iš naujo nustatyti internetu. Užklausa vyksta kas 3 minutes, t. Y. Gali praeiti šiek tiek laiko, kol veiksmas bus atliktas.
- Paskutinių atstatymų registravimas, įskaitant atstatymo priežastį (nuotolinis paleidimas, išjungimas arba įtampos praradimas, mažesnis už minimalų pralaidumą)
Išsamias pamokas, kaip sukurti prietaisų skydelį ir kaip integruoti prietaisų skydelį į „Python“programą, galite rasti tiesiogiai „Ubidots“puslapyje (https://help.ubidots.com/en/) arba per „Google“.