Satura rādītājs:
- 1. solis: materiāli
- 2. solis: elektriskā ķēde
- 3. darbība: sensoru kodēšana
- 4. solis: sensoru sagatavošana un ievietošana
- 5. solis: Matricas moduļa sagatavošana un ievietošana
- 6. solis: padariet to par IoT
- 7. solis: Raspberry Pi savienošana
- 8. darbība. Datu bāzes iestatīšana
- 9. solis: vietnes izveide
- 10. darbība. Savienojuma izveide ar globālo tīmekli
- 11. darbība. Izslēgšana
Video: Raspberry Pi IoT Foosball galds: 11 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Laipni lūdzam manā versijā par uzlauztu foosball galdu, kas ir daļa no jauno mediju un komunikācijas tehnoloģiju studentu projekta. Es pamatā uzaugu ap futbolu un biljarda galdiem, tāpēc domāju, ka būtu lieliski mēģināt savienot kādu no šīm ierīcēm ar internetu.
Galvenajā iestatījumā tiek izmantots esošs foosball galds, kas savienots ar Raspberry Pi, kas var veikt visus tālāk norādītos uzdevumus.
- Izmanto GPIO tapas, lai vadītu IR LED/uztvērējus un 8x8 punktu matricas moduļus
- Vada Flask vietni, izmantojot nginx
- Palaiž MySQL/MariaDB datu bāzi datu glabāšanai
Lai varētu atjaunot šo projektu, jums būs nepieciešamas šādas prasmes:
Aizmugure:
- HTML/CSS/Javascript izpratne vietnes klientam
- Izpratne par Python ar Flask/Flask-SocketIO/Jinja2 vietnes servera pusē
- Pamatzināšanas par MySQL
- Ziniet, kā palaist tīmekļa serveri
Prototips
- Pamatzināšanas par elektriskās ķēdes pieslēgšanu
- Lodēšana
- Pamata izpratne par skripta rakstīšanu Python
- Darbs ar Linux (Raspbian)
- Ir daudz pacietības, jo būs daudz atkļūdošanas
1. solis: materiāli
Šeit ir saraksts ar visām tabulai nepieciešamajām daļām:
- Raspberry Pi Model 3 (ar apvalku)
- T-kurpnieks Pi savienošanai ar maizes dēli
- Foosball galds (es izmantoju ļoti vecu galdu, kas līdzīgs šim. Jābūt gatavam tajā urbt caurumus)
- MAX7219 Arduino punktu matricas modulis (2)
- IR LED izstarotāji (2+, jo tie salūst, līdzīgi šim)
- IR uztvērēji (2+, jo tie arī salūst, līdzīgi šim)
- Pamata lodēšanas maizes dēlis
- Daudz un daudz vadu (atkarīgs no futbola galda izmēra)
- savienotāji vīriešiem (30+)
- sieviešu savienotāji (10+)
- 100-220 omu rezistori (4+)
- lodēšanas materiāli
- stiepļu siksnas
- LED turētāji
- daži koki/skrūves, ja vēlaties pārvietot bumbu notekcaurulē
Šī projekta kopējās izmaksas ir pilnībā atkarīgas no jūsu futbola galda izmaksām (dārgas). Papildus galdam materiāli maksās ne vairāk kā 150 eiro.
2. solis: elektriskā ķēde
Pirms mēģināt lodēt, salieciet visas sastāvdaļas, es ļoti iesaku to vispirms pārbaudīt uz maizes dēļa. Bojātos komponentus ir vieglāk nomainīt, pirms esat pavadījis stundas to lodēšanai.
Sākumā es mēģināju ieviest 8x8 LED matricu ar 74HC595 nobīdes reģistru (pirmais attēls) un tranzistoru masīvu, bet daudzo vadu un ļoti zemās izejas dēļ es pārgāju uz MAX7219 punktu matricas moduli, jo tas aizņem tikai 5 vadus un to tieši vada SPI autobuss.
Ķēde, kuru es beidzot izmantoju, tiek vilkta ar Fritzing. Lūdzu, ņemiet vērā, ka IR gaismas diodes un uztvērējus var savienot ar jebkuru no jūsu bezmaksas GPIO tapām.
IR uztvērējiem un gaismas diodēm jābūt tieši viens otram, un gaismas diodes augšdaļai jābūt vērstai uz uztvērēju. Tā kā mēs vēlamies simulēt tiešu staru, ko var salauzt bumbiņas kustība, tādā gadījumā uztvērēja DATA līnijas stāvoklis mainīsies no 0 uz 1.
3. darbība: sensoru kodēšana
Lielāko daļu šī projekta esmu kodējis, izmantojot Pycharm, jo tas ļauj viegli izvietot SSH jūsu Raspberry Pi, izmantojot attālo tulku. Es neiedziļināšos šīs programmas darbībā, bet daudz informācijas var atrast pycharm vietnē.
Pašlaik es vēl strādāju pie projekta, bet, kad viss būs izdarīts, viss projekts būs pieejams manā github profilā
Sensoru kods sastāv no 3 klasēm, kas tiek darbinātas fona pavedienā manā kolbas serverī (kas tiks paskaidrots vēlāk):
- Mērķa klase (saite) -Šis fails iniciē visus atsevišķos komponentus, kurus var izsaukt, ievietojot pareizo SPI ierīci/kopni un pin numuru
- Matricas klase (saite) -Šī ir galvenā klase MAX7219 moduļa ieslēgšanai
- LED un uztvērēju klase (saite) - šī ir galvenā klase, lai ieslēgtu infrasarkano staru kūli, izmantojot atsevišķus pavedienus, lai samazinātu RPi CPU slodzi
Gan gaismas diode, gan uztvērējs darbojas 38 kHz frekvencē, un uztvērēji vienmēr sagaida, ka 50% augšup un 50% lejupvērsts impulss darbosies pareizi.
4. solis: sensoru sagatavošana un ievietošana
Tagad mēs sagatavosim IR LED un uztvērēju. Tabulas attēlā var atrast vietas, kur jānovieto RPi un sensori.
Bet vispirms mums ir jāsagatavo elektroinstalācija:
- Pārliecinieties, ka esat izmērījis nepieciešamo vadu daudzumu no RPi/maizes dēļa vietas līdz sensora vietai
- Lodējiet IR uztvērēja tapas vienā stieples galā (COM/GND/V+)
- Lodējiet vīriešu savienotāja gabalus stieples otrā galā
Tagad mēs sagatavosim tabulu:
- Izveidojiet pamata zīmējumu (pamatojoties uz attēlu) par urbšanas vietu. Ir ļoti svarīgi, lai divi caurumi būtu izlīdzināti viens otram, jo tā būs staru kūļa atrašanās vieta.
- Izurbiet caurumus
- Ja jums ir daži LED turētāji (saite), varat tos ievietot caurumā, lai padarītu to izturīgāku
- Ievietojiet + lenti LED + uztvērēju abās pusēs
- Siksnas vadi + lentes uz koka, lai tie nav pārāk krustojas
- Ievietojiet tērauda tapas uz maizes dēļa saskaņā ar iepriekš sniegto shēmu
5. solis: Matricas moduļa sagatavošana un ievietošana
Tālāk mēs savienosim 2 LED matricas moduļus
Piezīme:
Tā kā es izmantoju veco foosball galdu, cigarešu turētāju dēļ augšējā daļā jau bija caurumi. Ja jums to nav, jums tas būs jāizveido.
Lai sagatavotu vadus:
- Izmēriet vadu no maizes dēļa uz galda augšējo daļu
- Lodējiet dažus sieviešu savienotājus pie stieples pirmā gala
- Lodējiet dažus savienotājus ar vadu otrā stieples galā
Matricas ievietošana:
- Izvelciet matricu caur caurumu augšpusē
- Siksna + līmējiet vadus koka iekšpusē, lai izvairītos no šķērsošanas
- Ievietojiet vīriešu tapas uz maizes dēļa saskaņā ar iepriekš sniegto aprakstu
Kādā brīdī es pievienošu nelielu DIY soli, lai pievienotu matricas moduļa korpusu, bet pagaidām tie ir kaili.
6. solis: padariet to par IoT
Ja vēlaties tikai reģistrēties un parādīt rādītājus, varat pabeigt projektu, uzrakstot nelielu skrienamo python skriptu, kas darbojas, līdz viens no rādītājiem sasniedz 9 un pēc tam tiek atiestatīts.
Tomēr, ja vēlaties savienot galdu ar internetu, nākamajām dažām darbībām vajadzētu būt tieši jūsu alejai.
Nākamajos soļos mēs pievērsīsimies šādiem jautājumiem:
- Raspberry Pi konfigurēšana
- Datu bāzes izveide uzglabāšanai
- Mājas lapas izveide
- Ievietojot to tiešsaistē
Šajā brīdī, ja esat iepazinies ar git, es iesaku izveidot GitHub/GitLab krātuvi, lai sekotu jūsu failiem. Ja neesat, varat izveidot mapi ar tādu pašu struktūru kā attēlā.
Pilns projekts drīz būs pieejams vietnē GitHub. Tomēr ir pieejams pagaidu rar fails ar visiem nepieciešamajiem failiem.
7. solis: Raspberry Pi savienošana
Tālāk mēs iestatīsim aveņu pi vidi, lai to izdarītu, jums jāveic šādas darbības:
- Pievienojiet SSH savam Rasberry Pi (varat izmantot PuTTY)
- Izveidojiet mapi (piemērs mkdir projekts) un pārvietojiet uz šo mapi, izmantojot komandu cd
- Izveidojiet virtuālu Python vidi šajā mapē, izmantojot komandu python3 -m venv --system-site-paketes env
- Aktivizējiet virtuālo tulku, izmantojot komandu avots/env/bin/aktivizēt
- Instalējiet paketes no prasībām.txt, izmantojot komandu python -m pip install package -name
- Pārsūtiet failus no iepriekš nodrošinātā faila project_example.rar, izmantojot projekta mapē esošo SSH
Tagad jums vajadzētu būt iespējai vadīt visu projektu savā Raspberry Pi. Es iesaku jums izmantot Python IDE, piemēram, PyCharm, kas ļauj jums izmantot atkļūdošanu no attālinātā tulka, izmantojot SSH, un, ja nepieciešams, tieši augšupielādēt izmaiņas.
8. darbība. Datu bāzes iestatīšana
Tagad jums ir jāizveido ļoti vienkārša datu bāze, pamatojoties uz šo modeli.
Vienkāršākais veids, kā to izdarīt, ir izveidot savu datu bāzi MySQL darbgaldā, kur varat arī veikt dažus testus.
Kad esat pabeidzis, varat eksportēt savas datu bāzes izgāztuvi un augšupielādēt to savā RPi un pēc tam izpildīt to ar sudo mariadb <pathtofile/file.sql
9. solis: vietnes izveide
Tālāk jūs varat analizēt (un izmantot) failā project_example.rar norādīto kodu.
Galvenais fails ir Flask.py, kas ir šī projekta maize un sviests:
- Palaiž lietotni Flask-SocketIO, kas apstrādā vietnes aizmuguri
- Izveido savienojumu starp datu bāzi un kolbu
- Nodrošina pieteikšanās apstiprināšanu un lietotāju reģistrāciju
- Sniedz nepieciešamo kodu, kā spēlēt spēli, izmanto socketio, lai spēles laikā atjauninātu vietnes reāllaiku
- Ievieto spēles rezultātus datu bāzē
Statisko un veidņu mapēs varat atrast HTML/CSS/JS, kas nodrošina vietnes priekšējo daļu. Jūtieties brīvi mainīt tos atbilstoši savām vēlmēm.
10. darbība. Savienojuma izveide ar globālo tīmekli
Lai savienotu mūsu vietni ar tīmekli, mēs izmantosim nginx un uwsgi. Projekta piemērā nepieciešamos failus var atrast mapē conf.
Pirmkārt, šajos failos ir jāatjaunina:
- Uwsgi-flask.ini u jāmaina parametra virtualenv ceļš uz savu tulku
- Programmā project1-flask.service u jāatjaunina faila daļa [Pakalpojums], norādot akreditācijas datus un ceļus uz saistītajiem failiem
- Failā nginx ir jāatjaunina serveris un atrašanās vieta / ceļš uz jūsu saistīto ligzdu
Tālāk jums ir jāaizstāj noklusējuma nginx tīmekļa servera fails ar jūsu nginx konfigurācijas faila atrašanās vietu, zemāk ir linux komandu piemērs, kā to izdarīt
- 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
- me@my-rpi: ~/project1 $ sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project1
- me@my-rpi: ~/project1 $ sudo systemctl restartējiet nginx.service
Visbeidzot, jums jāpievieno pielāgotie pakalpojumi mapei systemd, šis ir piemērs, kā to izdarīt:
- 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 sākt projektu1-*
- me@my-rpi: ~/project1 $ sudo systemctl statusa projekts1-*
Ja vēlaties, lai tīmekļa serveris sāktu darboties ar jūsu aveņu pi, jums jāizmanto pakalpojuma komanda sudo systemctl enable project1-*.
Ja tas tiek izdarīts pareizi, pēc sistēmas pārstartēšanas jūsu vietnei vajadzētu darboties jūsu IP adresē. Ja vēlaties rediģēt kādu no šiem konfigurācijas failiem, vienmēr ir jāpārtrauc pakalpojums, atkārtoti augšupielādējiet failus un izmantojiet komandu dēmona pārlādēšana, kam seko sākums, pretējā gadījumā izmaiņas nebūs efektīvas.
11. darbība. Izslēgšana
Rakstot šīs pamācības pēdējo daļu, šis mazais skolas projekts joprojām ir darbs.
Es esmu pavadījis neskaitāmas stundas, lai to paveiktu 2,5 nedēļu laikā. Lai gan viss bija nedaudz sasteigts, es joprojām lepojos ar sasniegto. Montāžas posmā esmu saskāries ar neskaitāmām kļūdām/kļūdām/bojātiem sensoriem, tāpēc neesiet pārāk drosmīgs, ja viss nedarbojas pirmajā mēģinājumā.
Labākais, ko varat darīt, ir lūgt vai meklēt palīdzību internetā, ir daudz cilvēku ar daudz labākām zināšanām, kuri ļoti vēlas jums palīdzēt.
Visbeidzot, bet ne mazāk svarīgi, es vēlos pateikties saviem skolotājiem no jauno plašsaziņas līdzekļu un komunikācijas tehnoloģijas, kas man deva daudz padomu un palīdzēja pabeigt šo projektu.
Ieteicams:
Automātiskais sēdēšanas/stāvēšanas galds: 14 soļi (ar attēliem)
Automātiskais sēdēšanas/stāvēšanas galds: ** LŪDZU, BALSOJIET PAR ŠO MĀCĪBU! ** .. Neskatoties uz manām pirmajām šaubām, esmu ļoti apmierināts ar galaproduktu! Tātad, lūk, mans viedoklis par automātisko sēdēšanas/stāvēšanas galdu
Mini robotu galds (prototips): 6 soļi
Mini robotu galds (prototips): Kas ir labāks par galdu ar riteņiem? Galds, pa kuru var braukt! Šī apmācība iemācīs jums izveidot savu mini robotu galdu - projektu, kuru bija iecerējis un izstrādājis viens no maniem studentiem (kad mums bija 10 gadi, kad mēs sākām). Mēs b
Gaismas disko galds: 27 soļi (ar attēliem)
Apgaismojuma disko galds: Katram dzīvoklim ir vajadzīgas lieliskas mēbeles, tad kāpēc ne izveidot savu? Šis kafijas galdiņš satur LED sloksnes, kas iedegas dažādos pielāgojamos rakstos un krāsās. Gaismas kontrolē Arduino un slēpta poga, un viss
MAME spēļu galds ar Raspberry Pi: 5 soļi
Spēļu galds MAME Ar Raspberry Pi: Iedvesmojoties no līdzīgiem projektiem tiešsaistē, esmu strādājis kopā ar kaimiņu, lai izveidotu pāris kafijas galdiņu MAME bāzes retro spēļu galdus. Kompaktakais ir mans; lielāks ar diviem vadības ierīču komplektiem ir viņa. Šajā instrukcijā tiek izmantotas abu fotogrāfijas
WebFoos - viedais foosball galds: 6 soļi
WebFoos - gudrs galda futbola galds: Pirmajā Howest kursa skolas projektā es nolēmu izveidot gudru Foosball galdu. Tabula reģistrē mērķus un saglabā tiešsaistes spēles, spēles statistiku un lietotāju/komandu statistiku