Turinys:
- 1 žingsnis: medžiagos
- 2 žingsnis: elektros grandinė
- 3 žingsnis: jutiklių kodavimas
- 4 žingsnis: jutiklių paruošimas ir įdėjimas
- 5 žingsnis: Matricos modulio paruošimas ir įdėjimas
- 6 žingsnis: padarykite tai daiktų internetu
- 7 žingsnis: Raspberry Pi prijungimas
- 8 veiksmas: duomenų bazės nustatymas
- 9 veiksmas: sukurkite svetainę
- 10 veiksmas: prisijunkite prie pasaulinio tinklo
- 11 veiksmas: baigimas
Video: „Raspberry Pi IoT Foosball“stalas: 11 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Sveiki atvykę į mano įsilaužto „foosball“stalo versiją kaip studentų projekto, skirto naujoms žiniasklaidos ir komunikacijos technologijoms, dalį. Aš iš esmės užaugau prie futbolo ir biliardo stalų, todėl maniau, kad būtų puiku pabandyti prijungti vieną iš šių įrenginių prie interneto.
Pagrindinė sąranka naudoja esamą „Foosball“stalą, prijungtą prie „Raspberry Pi“, kuris gali atlikti visas šias užduotis:
- Naudoja GPIO kaiščius, kad valdytų IR šviesos diodus/imtuvus ir 8x8 taškų matricos modulius
- Paleidžia „Flask“svetainę naudodami „nginx“
- Paleidžia MySQL/MariaDB duomenų bazę duomenų saugojimui
Norėdami atkurti šį projektą, jums reikės šių įgūdžių:
Užpakalinė dalis:
- HTML/CSS/„JavaScript“supratimas svetainės klientui
- „Python“supratimas su „Flask/Flask-SocketIO“/„Jinja2“svetainės serverio pusėje
- Pagrindinės MySQL žinios
- Žinokite, kaip paleisti žiniatinklio serverį
Prototipas
- Pagrindinės žinios, kaip prijungti elektros grandinę
- Litavimas
- Pagrindinis supratimas, kaip rašyti scenarijų „Python“
- Darbas su „Linux“(„Raspbian“)
- Turite daug kantrybės, nes bus daug derinimo
1 žingsnis: medžiagos
Čia yra sąrašas su visomis reikalingomis lentelės dalimis:
- Raspberry Pi Model 3 (su korpusu)
- „T-Cobbler“, skirtas Pi prijungti prie duonos lentos
- „Foosball“stalas (naudojau labai seną stalą, panašų į šį. Turi būti pasirengęs gręžti skyles)
- MAX7219 „Arduino Dot Matrix“modulis (2)
- IR šviesos diodų skleidėjai (2+, nes jie sugenda, panašūs į šį)
- IR imtuvai (2+, nes jie taip pat sugenda, panašūs į šį)
- Pagrindinė duonos lenta be litavimo
- Daug ir daug vielos (priklauso nuo futbolo stalo dydžio)
- jungtys vyrams (30+)
- moterų jungtys (10+)
- 100-220 omų rezistoriai (4+)
- litavimo medžiagos
- vielos dirželiai
- LED laikikliai
- šiek tiek medžio/varžtų, jei norite perduoti kamuolį į lataką
Bendra šio projekto kaina visiškai priklauso nuo jūsų futbolo stalo kainos (brangios). Be stalo, medžiagos kainuos ne daugiau kaip 150 eurų.
2 žingsnis: elektros grandinė
Prieš bandydami lituoti, surinkite visus komponentus, kuriuos labai rekomenduoju išbandyti ant duonos lentos. Lengviau pakeisti sugedusius komponentus, kol nepraleidote jų litavimo valandų.
Iš pradžių bandžiau įdiegti 8x8 LED matricą su 74HC595 poslinkių registru (pirmasis vaizdas) ir tranzistorių masyvą, tačiau dėl daugybės laidų ir labai mažos išvesties perėjau prie MAX7219 taškų matricos modulio, nes jis užima tik 5 laidus ir yra tiesiogiai varomas SPI autobusas.
Grandinė, kurią galiausiai panaudojau, yra nupiešta naudojant „Fritzing“. Atminkite, kad IR šviesos diodai ir imtuvai gali būti prijungti prie bet kurio nemokamo GPIO kaiščio.
IR imtuvai ir šviesos diodas turi būti tiesiai vienas prieš kitą, o šviesos diodo viršus nukreiptas į imtuvą. Kadangi norime imituoti tiesioginį spindulį, kurį gali sulaužyti rutulio judesys, tokiu atveju imtuvo DATA linijos būsena pasikeis nuo 0 iki 1.
3 žingsnis: jutiklių kodavimas
Daugumą šio projekto kodavau naudodamas „Pycharm“, nes tai leidžia lengvai įdiegti SSH į jūsų „Raspberry Pi“naudojant nuotolinį vertėją. Nesileisiu išsamiai, kaip veikia ši programa, tačiau daug informacijos galima rasti „pycharm“svetainėje.
Šiuo metu vis dar dirbu prie projekto, bet kai viskas bus padaryta, visas projektas bus pasiekiamas mano „github“profilyje
Jutiklių kodą sudaro 3 klasės, kurios paleidžiamos fono gijoje mano kolbos serveryje (apie tai bus paaiškinta vėliau):
- Tikslo klasė (nuoroda) -Šis failas inicijuoja visus atskirus komponentus, kuriuos galima iškviesti įterpiant teisingą SPI įrenginį/magistralę ir PIN kodą
- Matricos klasė (nuoroda) -tai pagrindinė klasė MAX7219 moduliui įjungti
- Šviesos diodų ir imtuvų klasė (nuoroda) - tai pagrindinė klasė, skirta įjungti infraraudonųjų spindulių pertrauką naudojant atskirus siūlus, siekiant sumažinti RPi procesoriaus apkrovą
Šviesos diodas ir imtuvas veikia 38 kHz dažniu, o imtuvai visada tikisi, kad 50% padidėjęs ir 50% žemesnis impulsas veiks tinkamai.
4 žingsnis: jutiklių paruošimas ir įdėjimas
Dabar mes ruošiame IR šviesos diodą ir imtuvą. Lentelės paveikslėlyje galite rasti vietas, kur reikia įdėti RPi ir jutiklius.
Bet pirmiausia turime paruošti laidus:
- Būtinai išmatuokite reikiamą laido kiekį nuo RPi/duonos lentos iki jutiklio vietos
- Lituokite IR imtuvo kaiščius prie vieno laido galo (COM/GND/V+)
- Kitame laido gale lituokite išorines jungties dalis
Dabar mes ruošiame lentelę:
- Padarykite pagrindinį brėžinį (pagal paveikslėlį), kur gręžti. Labai svarbu, kad 2 skylės būtų sulygiuotos viena su kita, nes tai bus sijos vieta.
- Gręžkite skyles
- Jei turite LED laikiklius (nuoroda), galite juos įdėti į skylę, kad ji būtų tvirtesnė
- Įdėkite + užklijuokite LED + imtuvą iš abiejų pusių
- Sujunkite laidus + užklijuokite juos ant medžio, kad jie per daug nesikryžiuotų
- Įkiškite kaiščius ant duonos lentos pagal anksčiau pateiktą grandinę
5 žingsnis: Matricos modulio paruošimas ir įdėjimas
Toliau prijungsime 2 LED matricos modulius
Pastaba:
Kadangi naudojau seną stalo futbolo stalą, dėl cigarečių laikiklių jau buvo skylių aukštyn link viršutinės dalies. Jei tokių neturite, turėsite juos sukurti.
Norėdami paruošti laidus:
- Išmatuokite laidą nuo duonos lentos link viršutinės stalo dalies
- Lituokite kai kurias moterų jungtis prie pirmojo laido galo
- Lituokite kai kurias vyriškas jungtis prie kito laido galo
Matricos išdėstymas:
- Išimkite matricą per skylę viršuje
- Dirželis + užklijuokite laidus ant medžio, kad išvengtumėte kirtimo
- Įkiškite kaiščius ant duonos lentos pagal anksčiau pateiktą schemą
Tam tikru momentu pridėsiu nedidelį „pasidaryk pats“žingsnį, kad pridėčiau matricos modulio korpusą, tačiau kol kas jie yra nuogi.
6 žingsnis: padarykite tai daiktų internetu
Jei norite tik užsiregistruoti ir rodyti balus, galite užbaigti projektą parašę nedidelį veikiantį „Python“scenarijų, kuris kartojasi, kol vienas iš balų pasieks 9, o tada atstatys.
Tačiau, jei norite prijungti stalą prie interneto, keli žingsniai turėtų būti jūsų gatvėje.
Kituose tolesniuose žingsniuose aptarsime šiuos dalykus:
- „Raspberry Pi“konfigūravimas
- Duomenų bazės kūrimas saugojimui
- Svetainės kūrimas
- Įdėjus jį į internetą
Šiuo metu, jei esate susipažinęs su „git“, rekomenduoju sukurti „GitHub“/„GitLab“saugyklą, kad galėtumėte stebėti savo failus. Jei nesate, galite sukurti aplanką, kurio struktūra tokia pati kaip paveikslėlyje.
Visas projektas netrukus bus pasiekiamas „GitHub“. Tačiau yra laikinas rar failas su visais reikalingais failais.
7 žingsnis: Raspberry Pi prijungimas
Toliau nustatysime aviečių pi aplinką, kad tai atliktumėte, turite atlikti šiuos veiksmus:
- Prijunkite SSH prie „Rasberry Pi“(galite naudoti „PuTTY“)
- Sukurkite aplanką (pavyzdinis „mkdir“projektas) ir pereikite prie šio aplanko naudodami komandą cd
- Sukurkite virtualią „Python“aplinką šiame aplanke naudodami komandą „python3 -m venv --system-site-paketai env“
- Suaktyvinkite virtualųjį vertėją naudodami komandą source/env/bin/active
- Įdiekite paketus iš reikalavimų.txt naudodami komandą python -m pip install package -name
- Perkelkite failus iš anksčiau pateikto failo project_example.rar per SSH savo projekto aplanke
Dabar turėtumėte galėti vykdyti visą projektą savo „Raspberry Pi“. Patariu naudoti „Python IDE“, pvz., „PyCharm“, kuris leidžia jums naudoti derinant nuotolinio vertėjo SSH ir tiesiogiai įkelti pakeitimus, jei reikia.
8 veiksmas: duomenų bazės nustatymas
Dabar, remiantis šiuo modeliu, turite sukurti labai paprastą duomenų bazę.
Lengviausias būdas tai padaryti yra sukurti savo duomenų bazę „MySQL“darbalaukyje, kur taip pat galite atlikti bandymus.
Baigę galite eksportuoti savo duomenų bazės sąvartyną ir įkelti jį į savo RPi, tada vykdyti naudodami sudo mariadb <pathtofile/file.sql
9 veiksmas: sukurkite svetainę
Toliau galite analizuoti (ir naudoti) failą project_example.rar pateiktą kodą.
Pagrindinis failas yra „Flask.py“, kuris yra šio projekto duona ir sviestas:
- Paleidžia „Flask-SocketIO“programą, kuri tvarko svetainės užpakalinę dalį
- Sukuria ryšį tarp duomenų bazės ir kolbos
- Teikia prisijungimo patvirtinimą ir vartotojo registraciją
- Pateikia reikiamą kodą, kaip žaisti žaidimą, naudoja „socketio“, kad atnaujintų svetainę realiuoju laiku žaidimo metu
- Įkelia žaidimo rezultatus į duomenų bazę
Statinių ir šablonų aplankuose galite rasti HTML/CSS/JS, kurie yra svetainės priekinė dalis. Nedvejodami pakeiskite juos pagal savo skonį.
10 veiksmas: prisijunkite prie pasaulinio tinklo
Norėdami prijungti savo svetainę prie žiniatinklio, naudosime „nginx“ir „uwsgi“. Projekto pavyzdyje u galite rasti reikiamus failus aplanke conf.
Pirmiausia turite atnaujinti šiuos failus šiuose failuose:
- Uwsgi-flask.ini u reikia pakeisti parametro virtualenv kelią į vertėją
- „Project1-flask.service“u turite atnaujinti failo [Paslaugos] dalį, nurodydami savo kredencialus ir kelius į susijusius failus
- „Nginx“faile reikia atnaujinti serverį ir vietą / kelią į susietą lizdą
Tada jums reikia pakeisti numatytąjį „nginx“žiniatinklio serverio failą savo „nginx“konfigūracijos failo vieta, žemiau yra „Linux“komandų pavyzdys, kaip tai padaryti
- aš@mano-rpi: ~/project1 $ sudo cp conf/nginx/etc/nginx/sites-available/project1
- me@my-rpi: ~/project1 $ sudo rm/etc/nginx/sites-enabled/defaul t
- me@my-rpi: ~/project1 $ sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project1
- me@my-rpi: ~/project1 $ sudo systemctl iš naujo paleiskite nginx.service
Galiausiai jums reikia pridėti pasirinktines paslaugas prie sisteminio aplanko, tai yra pavyzdys, kaip tai padaryti:
- me@my-rpi: ~/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/
- me@my-rpi: ~/project1 $ sudo systemctl daemon-reload
- aš@mano-rpi: ~/project1 $ sudo systemctl pradėti projektą1-*
- me@my-rpi: ~/project1 $ sudo systemctl status project1-*
Jei norite, kad žiniatinklio serveris būtų paleistas paleidžiant jūsų aviečių pi u, turite naudoti sudo systemctl enable project1-*.
Jei viskas bus padaryta teisingai, po sistemos perkrovimo jūsų svetainė turėtų veikti jūsų IP adresu. Jei norite redaguoti vieną iš šių konfigūracijos failų, visada turite sustabdyti paslaugą, iš naujo įkelti failus ir naudoti komandą daemon-reload, o po to pradėti, kitaip pakeitimai nebus veiksmingi.
11 veiksmas: baigimas
Rašant paskutinę šios instrukcijos dalį, šis mažas mokyklos projektas vis dar vyksta.
Aš praleidau daugybę valandų tai padaryti per 2,5 savaitės. Nors viskas buvo šiek tiek skubota, aš vis tiek didžiuojuosi tuo, ką pasiekiau. Surinkimo etape susidūriau su daugybe klaidų/klaidų/sugedusių jutiklių, todėl nenusiminkite, jei viskas neveikia pirmą kartą.
Geriausias dalykas, kurį galite padaryti, yra paprašyti arba ieškoti pagalbos internete, yra daug žmonių, turinčių daug geresnių žinių, kurie labai nori jums padėti.
Galiausiai noriu padėkoti savo mokytojams iš naujųjų medijų ir komunikacijos technologijų, kad jie man davė daug patarimų ir padėjo užbaigti šį projektą.
Rekomenduojamas:
Automatinis sėdėjimo/stovėjimo stalas: 14 žingsnių (su paveikslėliais)
Automatinis sėdėjimo/stovėjimo stalas: ** BALSUOKITE UŽ ŠIĄ INSTRUKCIJĄ! ** .. Nepaisant pirmųjų abejonių, esu labai patenkintas galutiniu produktu! Taigi štai čia, mano požiūris į automatinį sėdimą/stovintį stalą
Produkto sukamasis stalas - „NodeMCU“: 12 žingsnių
Produktų grotuvas - „NodeMCU“: Sveiki, kūrėjai! Produktų grotuvas yra tendencija, kuri tik pradeda kilti peizažų ir veiksmo kadrų atžvilgiu, tačiau gaminių fotografavimui 360 laipsnių fotografija yra šiek tiek dažnesnė. Fotografuodami gaminio kadrą
„Retropie Ikea Arcade“stalas: 13 žingsnių (su nuotraukomis)
„Retropie“„Ikea“arkadinis stalas: „Ikea Raspberry Pi“arkadinis stalas yra puikus būdas įsilaužti į „Ikea Lack“serijos gyvenamojo kambario baldus į visiškai veikiančią „plug and play retro arcade“sistemą. Tam reikia tik pagrindinių žinių apie skaičiavimą ir medžio darbus, o tai apsvaigina
Interaktyvus LED stalas: 14 žingsnių (su paveikslėliais)
Interaktyvusis LED stalas: čia yra instrukcija, kaip sukurti savo interaktyvų LED stalą naudojant vieną iš „Evil Mad Sciencitst“rinkinių. Čia yra mano galutinio stalo vaizdo įrašas, veikiantis tamsoje, ir nuotrauka, kaip ji atrodo :
Nešiojamojo kompiuterio stovas PVC stalas: 12 žingsnių
Nešiojamojo kompiuterio stovas PVC stalas: aš gavau šią idėją iš kitų instrukcijų ir pritaikiau ją prie nešiojamojo kompiuterio stalinio stovo, kurį pakeičiau, kad mes (mano šeima) dažniausiai naudotume nešiojamąjį kompiuterį horizontalioje padėtyje. Mes žinome, kad tai blogai jūsų kūnui, laikysena ir blogiau nešiojamajam kompiuteriui, nes