Sadržaj:
- Korak 1: Materijali
- Korak 2: Električno kolo
- Korak 3: Kodiranje senzora
- Korak 4: Priprema i postavljanje senzora
- Korak 5: Priprema i postavljanje matričnog modula
- Korak 6: Postavljanje IoT -a
- Korak 7: Povezivanje Raspberry Pi
- Korak 8: Postavljanje baze podataka
- Korak 9: Kreiranje web stranice
- Korak 10: Povezivanje na World Wide Web
- Korak 11: Dovršavanje
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-23 14:37
Dobrodošli u moju verziju hakiranog stola za mali fudbal, kao dio studentskog projekta za nove medije i komunikacionu tehnologiju. U osnovi sam odrastao uz stoni nogomet i bilijar pa sam pomislio da bi bilo sjajno pokušati spojiti jedan od ovih uređaja na internet.
Glavno postavljanje koristi postojeći stolni stol za fudbal povezan sa Raspberry Pi -om koji može obaviti sve sljedeće zadatke:
- Koristi GPIO pinove za pogon IC LED/prijemnika i matričnih modula 8x8
- Pokreće web stranicu Flask koristeći nginx
- Pokreće MySQL/MariaDB bazu podataka za skladištenje podataka
Da biste mogli ponovno stvoriti ovaj projekt, potrebne su vam sljedeće vještine:
Pozadinsko:
- Razumijevanje HTML/CSS/Javascripta za klijenta web stranice
- Razumijevanje Pythona sa Flask/Flask-SocketIO/Jinja2 za serversku stranu web stranice
- Osnovno poznavanje MySQL -a
- Znati kako pokrenuti web server
Prototip
- Osnovno znanje o tome kako spojiti električno kolo
- Lemljenje
- Osnovno razumevanje pisanja skripte u Pythonu
- Rad sa Linuxom (Raspbian)
- Imajte puno strpljenja jer će biti potrebno mnogo otklanjanja grešaka
Korak 1: Materijali
Evo popisa sa svim potrebnim dijelovima za tablicu:
- Raspberry Pi Model 3 (sa kućištem)
- T-Cobbler za povezivanje Pi na matičnu ploču
- Stol za fudbal (koristio sam veoma star sto sličan ovom. Mora biti voljan izbušiti rupe u njemu)
- MAX7219 Arduino matrični modul (2)
- IR LED odašiljači (2+ jer se lome, slično ovom)
- IC prijemnici (2+ jer se i oni lome, slično ovom)
- Osnovna ploča bez lemljenja
- Puno žice (zavisi od veličine stola za mali fudbal)
- muški konektori (30+)
- ženski konektori (10+)
- 100-220 Ohm otpornici (4+)
- lemilice
- žičane trake
- LED držači
- malo drva/vijaka u slučaju da želite prenijeti loptu u oluk
Ukupni troškovi ovog projekta u potpunosti ovise o cijeni vašeg stola za mali fudbal (skupo). Osim stola, materijali će biti maksimalno 150 eura.
Korak 2: Električno kolo
Prije nego pokušate lemiti, sastavite sve komponente, toplo preporučujem da ih prvo isprobate na ploči. Lakše je zamijeniti neispravne komponente prije nego što potrošite sate na njihovo lemljenje.
U početku sam pokušao implementirati LED matricu 8x8 sa registrom pomaka 74HC595 (prva slika) i nizom tranzistora, ali zbog brojnih žica i vrlo niskog izlaza prešao sam na matrični modul MAX7219 jer uzima samo 5 žica i izravno ga pokreće SPI autobus.
Krug koji sam na kraju koristio nacrtan je Fritzingom. Imajte na umu da se IR LED i prijemnici mogu spojiti na bilo koji od vaših besplatnih GPIO pinova.
IC prijemnici i LED diode trebaju biti direktno jedan preko drugog, a vrh LED diode treba biti usmjeren prema prijemniku. Budući da želimo simulirati direktnu zraku koja se može slomiti kretanjem lopte, u tom slučaju doći će do promjene stanja DATA linije prijemnika s 0 na 1.
Korak 3: Kodiranje senzora
Većinu ovog projekta kodirao sam pomoću Pycharma jer omogućava jednostavno postavljanje SSH -a na vaš Raspberry Pi pomoću udaljenog tumača. Neću detaljno govoriti o tome kako ovaj program radi, ali mnogo informacija se može pronaći na web stranici pycharm.
Trenutno još radim na projektu, ali kad sve bude gotovo cijeli projekt će biti dostupan na mom github profilu
Kôd za senzore sastoji se od 3 klase koje se izvode u pozadini na mojem Flask serveru (što će biti objašnjeno kasnije):
- Klasa cilja (veza) -Ova datoteka pokreće sve zasebne komponente, koje se mogu pozvati umetanjem ispravnog SPI uređaja/sabirnice i broja pina
- Matrična klasa (veza) -Ovo je glavna klasa za napajanje MAX7219 modula
- Klasa LED -a i prijemnika (veza) - Ovo je glavna klasa za uključivanje infracrvenog prekidnog snopa pomoću zasebnih niti za smanjenje CPU opterećenja RPi -a
I LED i prijemnik rade na frekvenciji od 38 kHz, a prijemnici uvijek očekuju da će puls od 50% gore i 50% pasti ispravno raditi.
Korak 4: Priprema i postavljanje senzora
Sada ćemo pripremiti IR LED i prijemnik. Na slici tablice možete pronaći lokacije na koje treba postaviti RPi i senzore.
Ali prvo moramo pripremiti ožičenje:
- Umjerite potrebnu količinu žice od lokacije RPi/matične ploče do lokacije senzora
- Lemite pinove IC prijemnika na jedan kraj žice (COM/GND/V+)
- Lemite muške dijelove konektora na drugom kraju žice
Sada ćemo pripremiti tablicu:
- Napravite osnovni crtež (na osnovu slike) gdje ćete bušiti. Vrlo je važno da se 2 rupe poravnaju jedna preko druge jer će to biti mjesto grede.
- Izbušite rupe
- Ako imate neke LED držače (veza), možete ih staviti u rupu kako bi bili jači
- Umetnite + traku LED + prijemnik sa obe strane
- Zavežite žice + zalijepite ih na drvo kako ne bi prešli previše
- Umetnite muške iglice na ploču prema prethodno navedenom kolu
Korak 5: Priprema i postavljanje matričnog modula
Sljedeće ćemo spojiti 2 LED matrična modula
Bilješka:
Budući da sam koristio stari stol za mali nogomet, već su se rupe dizale prema gornjem dijelu zbog držača cigareta. Ako ih nemate, morat ćete ih kreirati.
Za pripremu žica:
- Izmjerite žicu od ploče prema gornjem dijelu stola
- Lemite neke ženske konektore na prvi kraj žice
- Lemite neke muške konektore na drugi kraj žice
Postavljanje matrice:
- Izvucite matricu kroz otvor na vrhu
- Remen + zalijepite žice unutra na drvo kako biste izbjegli ukrštanje
- Umetnite muške iglice na ploču prema prethodno navedenoj shemi
U nekom trenutku ću dodati mali DIY korak kako bih dodao kućište za matrični modul, ali za sada su goli.
Korak 6: Postavljanje IoT -a
Ako samo želite registrirati i prikazati rezultate, možete dovršiti projekt pisanjem male pokrenute python skripte koja se ponavlja sve dok jedna od ocjena ne dosegne 9, a zatim se resetira.
Međutim, ako želite povezati svoj stol sa internetom, sljedećih nekoliko koraka trebalo bi da se podigne uz vašu uličicu.
U sljedećih nekoliko koraka pozabavit ćemo se sljedećim:
- Konfiguriranje Raspberry Pi
- Izrada baze podataka za skladištenje
- Kreiranje web stranice
- Postavljanje na internet
U ovom trenutku, ako ste upoznati s gitom, preporučujem da napravite spremište na GitHubu/GitLabu kako biste pratili svoje datoteke. Ako niste, možete stvoriti mapu iste strukture kao na slici.
Cijeli projekt bit će uskoro dostupan na GitHubu. Međutim, dostupna je privremena rar datoteka sa svim potrebnim datotekama.
Korak 7: Povezivanje Raspberry Pi
Zatim ćemo postaviti okruženje maline pi, da biste to učinili, morate izvršiti sljedeće korake:
- Povežite se putem SSH -a na svoj Rasberry Pi (možete koristiti PuTTY)
- Kreirajte mapu (primjer projekta mkdir) i prijeđite u ovu mapu pomoću naredbe cd
- Kreirajte virtualno Python okruženje u ovoj mapi koristeći python3 -m venv --system-site-packages env naredbu
- Aktivirajte virtualni tumač naredbom source/env/bin/enable
- Instalirajte pakete iz zahtjeva.txt naredbom python -m pip install package -name
- Prenesite datoteke iz prethodno navedene datoteke project_example.rar preko SSH -a u fasciklu projekta
Sada biste trebali moći pokrenuti cijeli projekt na svom Raspberry Pi. Savetujem vam da koristite Python IDE kao što je PyCharm koji vam omogućava da koristite za otklanjanje grešaka sa vašeg udaljenog tumača preko SSH -a i direktno učitavanje promena ako je potrebno.
Korak 8: Postavljanje baze podataka
Sada morate postaviti vrlo osnovnu bazu podataka, zasnovanu na ovom modelu.
Najlakši način da to učinite je stvaranje vaše baze podataka na radnom stolu MySQL gdje možete i izvršiti neka testiranja.
Kada završite, možete izvesti dump vaše baze podataka i učitati je u svoj RPi, a zatim je izvršiti pomoću sudo mariadb <pathtofile/file.sql
Korak 9: Kreiranje web stranice
Zatim možete analizirati (i koristiti) kôd koji se nalazi u datoteci project_example.rar.
Glavna datoteka je Flask.py koja je kruh i maslac ovog projekta:
- Pokreće aplikaciju Flask-SocketIO koja upravlja pozadinom web stranice
- Stvara vezu između baze podataka i Flaska
- Omogućava provjeru valjanosti prijave i registraciju korisnika
- Pruža neophodan kôd o tome kako igrati igru koristi socketio za ažuriranje web stranice u stvarnom vremenu tokom igre
- Upisuje rezultate igre u bazu podataka
U statičkim i predloškim fasciklama možete pronaći HTML/CSS/JS koji pružaju prednji dio web stranice. Slobodno ih izmijenite prema vlastitom ukusu.
Korak 10: Povezivanje na World Wide Web
Za povezivanje naše web stranice s webom koristit ćemo nginx i uwsgi. U primjeru projekta možete pronaći potrebne datoteke u folderu conf.
Prije svega, morate ažurirati sljedeće u ovim datotekama:
- U uwsgi-flask.ini morate promijeniti putanju parametra virtualenv do vašeg tumača
- U project1-flask.service trebate ažurirati [Service] dio datoteke sa svojim vjerodajnicama i putanjama do pridruženih datoteka
- U nginx datoteci morate ažurirati poslužitelj i lokaciju / putanju na pridruženi utičnicu
Zatim trebate zamijeniti zadanu datoteku nginx web poslužitelja s lokacijom vaše konfiguracijske datoteke nginx, dolje je primjer linux naredbi da to učinite
- me@my-rpi: ~/project1 $ sudo cp conf/nginx/etc/nginx/sites-available/project1
- me@my-rpi: ~/project1 $ sudo rm/etc/nginx/sites-enabled/defaul t
- ja@moj-rpi: ~/project1 $ sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project1
- me@my-rpi: ~/project1 $ sudo systemctl ponovo pokrenite nginx.service
Na kraju trebate dodati prilagođene usluge u sistemsku mapu, ovo je primjer kako to učiniti:
- me@my-rpi: ~/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/
- me@my-rpi: ~/project1 $ sudo systemctl daemon-reload
- me@my-rpi: ~/project1 $ sudo systemctl start project1-*
- me@my-rpi: ~/project1 $ sudo systemctl status project1-*
Ako želite da se web poslužitelj pokrene pri pokretanju vašeg malina, morate upotrijebiti naredbu sudo systemctl enable project1-*. Service.
Ako ste to učinili ispravno, nakon ponovnog pokretanja sistema vaša bi se web stranica trebala pokrenuti na vašoj IP adresi. Ako želite urediti jednu od ovih konfiguracijskih datoteka, uvijek morate zaustaviti uslugu, ponovno učitati datoteke i upotrijebiti naredbu daemon-reload nakon čega slijedi početak, u protivnom promjene neće biti učinkovite.
Korak 11: Dovršavanje
Dok kucate završni dio ovog uputstva, ovaj mali školski projekat je još uvijek u toku.
Potrošio sam nebrojeno mnogo sati da ovo završim za 2,5 sedmice. Iako se sve malo žurilo, i dalje sam ponosan na ono što sam postigao. Tokom faze montaže naišao sam na bezbroj grešaka/grešaka/neispravnih senzora pa nemojte biti previše obeshrabreni ako sve ne radi iz prvog pokušaja.
Najbolje što možete učiniti je zatražiti ili potražiti pomoć na internetu, postoji mnogo ljudi sa daleko boljim znanjem koji vam jako žele pomoći.
Na kraju, ali ne i najmanje važno, želim zahvaliti svojim učiteljima iz novih medija i komunikacijske tehnologije koji su mi dali puno savjeta i pomogli mi da završim ovaj projekt.
Preporučuje se:
LED stolno svjetlo za pametni stol - Pametna rasvjeta W/ Arduino - Radni prostor Neopiksela: 10 koraka (sa slikama)
LED stolno svjetlo za pametni stol | Pametna rasvjeta W/ Arduino | Neopixel radni prostor: Danas dane provodimo puno vremena kod kuće, učimo i virtuelno radimo, pa zašto ne bismo povećali svoj radni prostor prilagođenim i pametnim sistemom osvjetljenja zasnovanim na LED -ima na bazi Arduino i Ws2812b. Ovdje ću vam pokazati kako izgraditi svoj pametni telefon Stono LED svjetlo koje
LED zvučno reaktivna beskonačna kocka Krajnji stol: 6 koraka (sa slikama)
LED zvučno reaktivna beskonačna kocka Krajnji stol: Vau! Vau! Kakav kul efekat! - Ovo su neke stvari koje ćete čuti nakon popunjavanja vodiča. Potpuno zapanjujuća, lijepa, hipnotička, zvučno reaktivna kocka beskonačnosti. Ovo je skromno napredan projekat lemljenja, trebalo mi je oko 12 ljudi
Arduino prijenosni radni stol, dio 3: 11 koraka
Arduino prijenosni radni stol 3. dio: Ako ste gledali dijelove 1, 2 i 2B, do sada nije bilo mnogo Arduina u ovom projektu, ali samo nekoliko žica ploča itd. Nije ovo o čemu se radi i dio infrastrukture mora biti izgrađen prije nego što ostali radovi rade. Ovo je elektronika i A
Automatski stol za sjedenje/stajanje: 14 koraka (sa slikama)
Automatski sto za sjedenje/stajanje: ** MOLIMO VAS GLASAJTE ZA OVO UPUTSTVO! ** .. Uprkos mojim prvim sumnjama, vrlo sam zadovoljan konačnim proizvodom! Evo ga, moj stav o automatskom stolu za sjedenje/stajanje
Prijenosni Arduino radni stol, dio 1: 4 koraka
Prijenosni Arduino Workbench 1. dio: Imati više projekata u letu znači da se uskoro dezorganiziram, a slika mog stola pokazuje šta se može dogoditi. Ne samo ovaj stol, imam kabinu koja završava u sličnom stanju i drvnu radionicu za, iako urednije, električne alate