Sisukord:
- Samm: materjalid
- Samm 2: Elektriahel
- Samm: andurite kodeerimine
- 4. samm: andurite ettevalmistamine ja paigaldamine
- Samm: maatriksmooduli ettevalmistamine ja paigutamine
- 6. toiming: muutke see Interneti -asjadeks
- Samm: ühendage Raspberry Pi
- 8. samm: andmebaasi seadistamine
- 9. samm: veebisaidi loomine
- Samm 10: Ühenduse loomine veebiga
- Samm 11: Viimistlus Väljas
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-23 14:40
Tere tulemast minu versioonile häkkinud jalgpallilauast, mis on osa uue meedia ja kommunikatsioonitehnoloogia tudengiprojektist. Kasvasin põhiliselt jalgpalli ja piljardilaudade ümber, nii et arvasin, et oleks tore proovida ühte neist seadmetest Internetiga ühendada.
Põhiseadistuses kasutatakse Raspberry Pi -ga ühendatud olemasolevat jalgpallilauda, mis suudab teha kõiki järgmisi ülesandeid:
- Kasutab GPIO tihvte IR LED/vastuvõtjate ja 8x8 punktmaatriksmoodulite juhtimiseks
- Käitab kolbi veebisaiti, kasutades nginxi
- Käitab andmete salvestamiseks MySQL/MariaDB andmebaasi
Selle projekti taasloomiseks vajate järgmisi oskusi:
Taustaprogramm:
- HTML/CSS/Javascripti mõistmine veebisaidi kliendi jaoks
- Pythoni mõistmine rakendusega Flask/Flask-SocketIO/Jinja2 veebisaidi serveripoole jaoks
- Põhiteadmised MySQL -ist
- Tea, kuidas veebiserverit käitada
Prototüüp
- Põhiteadmised elektriahela juhtmestiku kohta
- Jootmine
- Põhiteadmised skripti kirjutamiseks Pythonis
- Töö Linuxiga (Raspbian)
- Kannatlikkust on palju, sest sellega kaasneb palju silumist
Samm: materjalid
Siin on nimekiri kõigi vajalike tabeli osadega:
- Raspberry Pi mudel 3 (korpusega)
- T-Cobbler Pi ühendamiseks leivaplaadiga
- Jalgpallilaud (kasutasin väga vana lauda, mis sarnaneb sellele. Peab olema valmis sinna auke puurima)
- MAX7219 Arduino punktmaatriksi moodul (2)
- IR LED -kiirgurid (2+, kuna need purunevad, sarnane sellele)
- IR -vastuvõtjad (2+, kuna need ka purunevad, sarnane sellele)
- Põhiline jootmiseta leivaplaat
- Palju ja palju traati (sõltub jalgpalli laua suurusest)
- meessoost pistikud (30+)
- naissoost pistikud (10+)
- 100-220 oomi takistid (4+)
- jootmismaterjalid
- traatrihmad
- LED hoidikud
- mõni puit/kruvid juhuks, kui soovite palli vihmaveerennisse suunata
Selle projekti kogumaksumus sõltub täielikult teie jalgpalli laua maksumusest (kallis). Lisaks lauale maksavad materjalid maksimaalselt 150 eurot.
Samm 2: Elektriahel
Enne jootmist proovige kokku panna kõik komponendid, mida soovitan tungivalt testida leivaplaadil. Vigaseid komponente on lihtsam vahetada enne, kui olete nende jootmisele tunde kulutanud.
Alguses proovisin rakendada 8x8 LED -maatriksit 74HC595 nihkeregistriga (esimene pilt) ja transistorimassiiviga, kuid paljude juhtmete ja väga väikese väljundi tõttu lülitusin MAX7219 punktmaatriksmoodulile, kuna see võtab ainult 5 juhet ja seda juhib otse SPI buss.
Ahel, mida ma lõpuks kasutasin, on joonistatud Fritzingi abil. Pange tähele, et IR -valgusdioode ja vastuvõtjaid saab ühendada mis tahes teie tasuta GPIO -pistikuga.
Infrapuna vastuvõtjad ja valgusdiood peaksid asuma otse üksteise vastas ning LED -i ülaosa peaks olema suunatud vastuvõtja poole. Kuna me tahame simuleerida otsekiirt, mille võib kuuli liikumine katkestada, sel juhul toimub vastuvõtja DATA -rea oleku muutumine 0 -lt 1 -le.
Samm: andurite kodeerimine
Olen suurema osa sellest projektist kodeerinud Pycharmi abil, kuna see võimaldab SSH -d hõlpsalt juurutada teie Raspberry Pi -le kaugtõlgi abil. Ma ei räägi selle programmi toimimisest üksikasjalikult, kuid pycharmi veebisaidilt leiate palju teavet.
Praegu töötan veel projekti kallal, kuid kui kõik on tehtud, on kogu projekt minu githubi profiilil saadaval
Andurite kood koosneb kolmest klassist, mida käitatakse minu Flaski serveris taustalõimes (mida selgitatakse hiljem):
- Eesmärgiklass (link) -see fail käivitab kõik eraldi komponendid, mida saab kasutada, sisestades õige SPI -seadme/bussi ja PIN -koodi
- Maatriksiklass (link) -see on peamine klass MAX7219 mooduli sisselülitamiseks
- LED -ide ja vastuvõtjate klass (link) - see on põhiklass infrapunase katkestuse sisselülitamiseks, kasutades eraldi niite, et vähendada RPi protsessori koormust
Mõlemad valgusdioodid ja vastuvõtja töötavad 38 kHz sagedusel ning vastuvõtjad ootavad alati, et 50% üles ja 50% allapoole jääv impulss töötaksid korralikult.
4. samm: andurite ettevalmistamine ja paigaldamine
Nüüd valmistame ette IR -LED -i ja vastuvõtja. Tabeli pildilt leiate kohad, kuhu RPi ja andurid paigutada.
Kuid kõigepealt peame juhtmestiku ette valmistama:
- Veenduge, et mõõdate vajalikku traati RPi/leivaplaadi asukohast anduri asukohta
- Jootke IR -vastuvõtja tihvtid juhtme ühte otsa (COM/GND/V+)
- Jootke isase pistiku tükid juhtme teises otsas
Nüüd valmistame ette tabeli:
- Tehke põhijoonis (pildi põhjal), kuhu puurida. On väga oluline, et kaks auku oleksid üksteisega joondatud, sest see on tala asukoht.
- Puurige augud
- Kui teil on mõni LED -hoidik (link), võite need auku sisse panna, et see oleks vastupidavam
- Sisestage + teipige LED + vastuvõtja mõlemale küljele
- Kinnitage juhtmed rihma külge + teibige need puidule, nii et need ei läheks liiga risti
- Sisestage isased tihvtid leivaplaadile vastavalt eelnevalt esitatud skeemile
Samm: maatriksmooduli ettevalmistamine ja paigutamine
Järgmisena ühendame 2 LED -maatriksmoodulit
Märge:
Kuna kasutasin vana jalgpallilauda, olid sigaretihoidjate tõttu juba ülemise osa poole augud. Kui teil neid pole, peate need looma.
Juhtmete ettevalmistamiseks:
- Mõõtke traat leivaplaadilt laua ülemise osa poole
- Jootke mõned naissoost pistikud juhtme esimesse otsa
- Jootke mõned isased pistikud juhtme teise otsa
Maatriksi paigutamine:
- Tooge maatriks läbi ülaosas oleva augu
- Rihm + lindista juhtmed puidu sisse, et vältida nende ristumist
- Sisestage isased tihvtid leivaplaadile vastavalt eelnevalt esitatud ringile
Mingil hetkel lisan maatriksmooduli korpuse lisamiseks väikese DIY sammu, kuid praegu on nad alasti.
6. toiming: muutke see Interneti -asjadeks
Kui soovite lihtsalt hindeid registreerida ja kuvada, saate projekti lõpetada, kirjutades väikese jooksva pythoni skripti, mis kordub, kuni üks punktidest jõuab 9 -ni ja seejärel lähtestatakse.
Kui aga soovite oma laua Internetiga ühendada, peaksid paar järgmist sammu teie tänaval üles minema.
Järgmistes sammudes käsitleme järgmist.
- Vaarika Pi konfigureerimine
- Andmebaasi tegemine salvestamiseks
- Veebisaidi loomine
- Internetti panemine
Siinkohal, kui olete gitiga tuttav, soovitan teil oma failide jälgimiseks teha GitHubis/GitLabis hoidla. Kui te seda ei tee, saate luua kausta, millel on sama struktuur kui pildil.
Kogu projekt on peagi saadaval GitHubis. Siiski on saadaval ajutine rar -fail koos kõigi vajalike failidega.
Samm: ühendage Raspberry Pi
Järgmisena seadistame vaarika pi keskkonna, selleks peate täitma järgmised sammud:
- Ühendage SSH kaudu oma Rasberry Pi -ga (saate kasutada PuTTY -d)
- Looge kaust (näide mkdir projekt) ja liikuge sellesse kausta, kasutades käsku cd
- Looge sellesse kausta virtuaalne Pythoni keskkond, kasutades käsku python3 -m venv --system-site-package env
- Aktiveerige virtuaaltõlk käsuga source/env/bin/enable
- Installige paketid nõudmistest.txt käsuga python -m pip install package -name
- Edastage failid eelnevalt pakutud failist project_example.rar SSH kaudu oma projekti kausta
Nüüd peaksite saama oma Raspberry Pi -ga kogu projekti käivitada. Soovitan teil kasutada sellist Pythoni IDE -d nagu PyCharm, mis võimaldab teil kasutada kaugtõlgi silumist SSH kaudu ja vajadusel muudatusi otse üles laadida.
8. samm: andmebaasi seadistamine
Nüüd peate selle mudeli põhjal seadistama väga lihtsa andmebaasi.
Lihtsaim viis sellega tegelemiseks on luua oma andmebaas MySQL töölauale, kus saate ka testida.
Kui olete lõpetanud, saate eksportida oma andmebaasi prügila ja laadida selle oma RPi -le ning seejärel käivitada selle käsuga sudo mariadb <pathtofile/file.sql
9. samm: veebisaidi loomine
Järgmisena saate analüüsida (ja kasutada) failis project_example.rar esitatud koodi.
Peamine fail on Flask.py, mis on selle projekti leib ja või:
- Käivitab rakenduse Flask-SocketIO, mis haldab veebisaidi taustaprogrammi
- Loob ühenduse andmebaasi ja kolvi vahel
- Pakub sisselogimise valideerimist ja kasutajate registreerimist
- Annab vajaliku koodi mängu mängimiseks, kasutades socketio -d veebisaidi reaalajas ajakohastamiseks mängu ajal
- Paneb mängutulemused andmebaasi
Staatilistest ja mallikaustadest leiate u HTML/CSS/JS, mis pakuvad veebisaidi esiosa. Muutke neid julgelt vastavalt oma maitsele.
Samm 10: Ühenduse loomine veebiga
Meie veebisaidi veebiga ühendamiseks kasutame nginx ja uwsgi. Projekti näites leiate vajalikud failid kaustast conf.
Kõigepealt peate nendes failides värskendama järgmist:
- Uwsgi-flask.ini u-s peate muutma parameetri virtualenv tee oma tõlgiks
- Projekti1-flask.service u-s peate värskendama faili [Teenus] osa oma mandaadi ja teedega seotud failide juurde
- Failis nginx peate värskendama serverit ja asukohta / teed seotud pistikupessa
Järgmisena peate asendama vaikimisi nginxi veebiserveri faili oma nginxi konfiguratsioonifaili asukohaga, allpool on näide linuxi käskudest selle tegemiseks
- mina@minu-rpi: ~/project1 $ sudo cp conf/nginx/etc/nginx/sites-available/project1
- mina@minu-rpi: ~/project1 $ sudo rm/etc/nginx/sites-enabled/defaul t
- mina@minu-rpi: ~/project1 $ sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project1
- me@my-rpi: ~/project1 $ sudo systemctl taaskäivitage nginx.service
Lõpuks peate kohandatud teenused oma süsteemikausta lisama, see on näide selle kohta, kuidas seda teha:
- mina@minu-rpi: ~/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/
- mina@minu-rpi: ~/project1 $ sudo systemctl deemon-reload
- mina@minu-rpi: ~/project1 $ sudo systemctl käivita projekt1-*
- mina@minu-rpi: ~/project1 $ sudo systemctl staatuse projekt1-*
Kui soovite, et veebiserver käivituks teie vaarika pi alglaadimisel, peate kasutama teenuse käsku sudo systemctl enable project1-*.
Kui see on õigesti tehtud, peaks teie veebisait pärast süsteemi taaskäivitamist teie IP -aadressil töötama. Kui soovite mõnda neist konfiguratsioonifailidest muuta, peate teenuse alati peatama, laadige failid uuesti üles ja kasutage deemon-reload käsku, millele järgneb algus, vastasel juhul ei ole muudatused tõhusad.
Samm 11: Viimistlus Väljas
Selle juhendi viimase osa tippimisel on see väike kooliprojekt veel pooleli.
Olen 2,5 nädala jooksul selle tegemiseks kulutanud lugematuid tunde. Kuigi kõik oli natuke kiirustatud, olen siiski saavutatu üle uhke. Kokkupanekufaasis olen kohanud lugematuid vigu/vigu/vigaseid andureid, nii et ärge heituge, kui kõik ei tööta esimesel katsel.
Parim, mida saate teha, on küsida või otsida abi Internetist, seal on palju inimesi, kellel on palju paremaid teadmisi ja kes soovivad teid väga aidata.
Lõpetuseks tahan tänada oma õpetajaid uue meedia ja kommunikatsioonitehnoloogia alal, et nad andsid mulle palju nõu ja aitasid mul selle projekti lõpetada.
Soovitan:
Lihtne IOT - rakendusega juhitav RF -andurikeskus keskmise ulatusega IOT -seadmetele: 4 sammu
Lihtne IOT - rakendusega juhitav RF -andurikeskus keskmise ulatusega IOT -seadmetele: sellesse õpetuste sarja loome seadmete võrgu, mida saab juhtida raadioside kaudu keskseadmest. WIFI või Bluetoothi asemel 433MHz jadaraadioühenduse kasutamise eeliseks on palju suurem leviala (hea
IoT APIS V2 - autonoomne IoT -toega automatiseeritud taimede niisutussüsteem: 17 sammu (koos piltidega)
IoT APIS V2 - autonoomne IoT -toega automatiseeritud taimede niisutussüsteem: see projekt on minu eelneva juhendi edasiarendus: APIS - automaatne taimede niisutussüsteem Olen kasutanud APIS -i peaaegu aasta ja soovin parandada eelmist disaini: jälgida taime eemalt. Nii on
IoT toitemoodul: IoT võimsuse mõõtmise funktsiooni lisamine minu päikeseenergia laadimiskontrollerile: 19 sammu (piltidega)
IoT võimsusmoodul: IoT võimsuse mõõtmise funktsiooni lisamine minu päikeseenergia laadimiskontrollerile: Tere kõigile, ma loodan, et olete kõik suurepärased! Selles juhendis näitan teile, kuidas ma tegin IoT võimsuse mõõtmise mooduli, mis arvutab mu päikesepaneelide toodetud võimsuse, mida kasutab minu päikeseenergia laadimiskontroller
WebFoos - nutikas jalgpallitabel: 6 sammu
WebFoos - nutikas jalgpallilaud: esimesel kooliaastal Howesti kooliprojekti jaoks otsustasin teha nutika jalgpallilaua. Tabel registreerib väravad ja salvestab mängitud mängud, mängude statistika ja kasutaja/meeskonna statistika veebisaidile
Autonoomne jalgpallitabel: 5 sammu (piltidega)
Autonoomne jalgpallitabel: Projekti peamine eesmärk oli saada valmis prototüüp autonoomse jalgpallilaua (AFT) jaoks, kus inimmängija seisab silmitsi robotvastasega. Mängu inimlikust vaatenurgast on jalgpallilaud väga sarnane tavalise lauaga. Mängija