Përmbajtje:
- Furnizimet
- Hapi 1: Vendosja e Raspberry Pi
- Hapi 2: Vendosja e pajisjeve elektronike
- Hapi 3: Hartimi i bazës së të dhënave
- Hapi 4: Krijimi i një llogarie në TTN
- Hapi 5: Vendosja e Arduino
- Hapi 6: Vendosja e sfondit
- Hapi 7: Vendosja e Frontend
- Hapi 8: Shtimi i një zorrë
Video: Kapni kutinë: 8 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:13
Capture The Box është një lojë për ndërtimin e ekipit që mund të luani me miqtë në lagjen tuaj.
Qëllimi është të kapni kutinë dhe ta mbani atë në zotërimin tuaj për aq kohë sa të jetë e mundur, ndërsa lojtarët e tjerë përpiqen të shkojnë dhe ta fshehin atë larg verandës ose kopshtit tuaj të përparmë.
Kjo lojë përdor GPS për të gjetur kutinë dhe etiketat RFID për të identifikuar lojtarët. Një LDR opsionale mund të shtohet që të përputhet me intensitetin e ekranit të pikës së matricës me përqindjen e dritës në zonë.
Furnizimet
Mikrokontrolluesit dhe kompjuterët
- Mjedër Pi
- Arduino (Mega) Zgjodha një Arduino Mega mbi një Uno normale, sepse ka shumë më shumë kunja. Kjo është e nevojshme sepse ne po përdorim një mburojë Dragino LoRa, e cila do të na linte me shumë pak kunja dixhitale kur përdorim një UNO. K TSHILL: bestshtë më mirë të përdorni një origjinal, sepse klonet kineze jo gjithmonë funksionojnë siç pritej.
Sensorë dhe module
- 4 MAX7219 Module Dot MatrixLidhni DOUT me DIN, CS në CS, CLK në CLK…
- Rezistencë e varur nga drita (10K) + Rezistencë (10K)
- Moduli GPS NEO-7M (ose i ngjashëm) Unë jam duke përdorur VMA430 nga Velleman
- Moduli RC522 RFID+ disa shënja/karta RFID
Për përdorimin e LoRa (teknologji pa tel)
Mburoja e Dragino Lora
Sensorë dhe module opsionale
Një ekran LCD Për të shfaqur adresën IP të Raspberry Pi
Për të bërë një konfigurim testimi
Një tabelë buke dhe kabllo Dupont (Mashkull-Mashkull
Opsionale (zorrë)
- Makine per ngjitjen e metalit
- Një kuti e vjetër mjetesh
- Materiale për printim 3D
- Disa dërrasa të holla prej druri
- Disa bulona dhe arra (që mund të përshtaten në vrimat Arduino). Vidhat e mia kanë një diametër rreth 3mm.
Një çmim i vlerësuar mund të gjendet në BOM (Fatura e Materialeve), e përfshirë më poshtë.
Hapi 1: Vendosja e Raspberry Pi
Raspberry Pi është zemra e Projektit.
Do të ekzekutojë frontend, backend dhe bazën e të dhënave. Ai gjithashtu do të jetë përgjegjës për komunikimin midis pjesës së pasme dhe Arduino.
Në mënyrë që ne të përdorim Raspberry Pi, do të na duhet të bëjmë sa më poshtë:
Pjesa 1: Instaloni Raspbian në një Raspberry Pi
Një tutorial se si ta bëni këtë mund të gjendet këtu:
Pjesa 2: Instaloni Raspbian në një Raspberry Pi Vendosja e WiFi -së tuaj në shtëpi.
Kjo mund të bëhet duke përdorur wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Rinisni Pi dhe duhet të shihni një adresë IP kur shtypni ifconfig
Pjesa 3: Instaloni serverin e uebit dhe bazën e të dhënave
Pasi ta keni Pi -in tuaj në funksion, është më mirë të ndryshoni fjalëkalimin tuaj. Kjo mund të bëhet me komandën passwd.
Pasi të jetë bërë kjo, vazhdoni dhe instaloni Apache, PHP, MariaDB dhe PHPMyAdmin.
Apache, PHP sudo apt install apache2 -y sudo apt install php libapache2 -mod -php -y
MariaDB sudo apt install mariadb-server mariadb-client -y sudo apt install php-mysql -y sudo systemctl restart apache2.service
PHPMyAdminsudo apt install phpmyadmin -y
Mos harroni të vendosni një fjalëkalim të sigurt MySQL.
Pjesa 4: Instalimi i bibliotekave të nevojshme Python
Për pjesën e pasme, do të na duhen disa biblioteka. Këto mund të instalohen duke përdorur komandën pip3.
pip3 instaloni mysql-connector-python
pip3 instaloni flaks-socketio
pip3 instaloni balona-cors
pip3 instaloni geventpip3 instaloni gevent-websocket
pip3 instaloni ttn
Hapi 2: Vendosja e pajisjeve elektronike
Për ta bërë këtë Projekt të funksionojë, ne duhet të lidhim të gjithë pajisjet elektronike.
Mburoja LoRa mund të vendoset lehtësisht në vend. Thjesht rreshtoni kunjat me kunjat në Arduino tuaj.
Lidhjet e tjera përshkruhen në skemën time Fritzing. Të cilat mund të shkarkohen këtu:
Hapi 3: Hartimi i bazës së të dhënave
Për të qenë në gjendje të ruaj të gjitha të dhënat e lojës dhe sensorëve, bëra disa tabela:
matjet dhe sensori Matjet nga sensorët, që gjenden në tabelat e sensorëve. Ai përmban një referencë për sensorin, vlerën e matjes (p.sh. koordinatat: 51.123456; 3.123456) dhe një ID opsionale të lojës (nëse një lojë ishte aktive gjatë matjes) Me
emrat e lojtarëve dhe UID e simbolit të tyre RFID. Shtohet një moderator opsional i fushës, ky person mund të modifikojë lojën (p.sh. duke e ndaluar atë para kohe).
spel Informacioni i lojës (fillimi dhe mbarimi).
spel_has_spelerLidhja midis spel dhe speler. Kjo është ajo ku lojtarët caktohen në një lojë.
bezitNë këtë tabelë, rezultati ruhet. Ai përmban id -në e lojës, id -in e lojtarit, kohën kur ai vodhi kutinë dhe kohën kur e humbi atë (kur dikush tjetër e vjedh atë ose kur loja përfundon). Duke zbritur kohën e fillimit nga koha e përfundimit, mund të llogaritni rezultatin që ai mori nga ai kapje.
Një eksport i bazës së të dhënave mund të gjendet në GitHub tim (https://github.com/BoussonKarel/CaptureTheBox)
Hapni sql në PHPMyAdmin / MySQL Workbench dhe drejtojeni atë. Tani baza e të dhënave duhet të importohet.
Hapi 4: Krijimi i një llogarie në TTN
Hapi 1: Regjistrohuni për një llogari në TTN dhe krijoni një aplikacion
Regjistrohuni për një llogari në TheThingsNetwork, pastaj shkoni te Console> Shto aplikacion.
Zgjidhni një emër për aplikacionin tuaj dhe klikoni Shto aplikacion.
Hapi 2: Regjistroni një pajisje
Kur të keni bërë aplikimin tuaj, shkoni te Regjistro pajisjen.
Zgjidhni një ID të pajisjes, kjo mund të jetë çfarë të doni (për aq kohë sa është rasti i gjarprit) dhe klikoni Regjistrohu.
Klikoni në ikonën Gjeneroni nën Device EUI, kështu që TTN do të krijojë një për ju.
Hapi 3: Shkruani letrat kredenciale
Tani shkoni te Pajisja juaj dhe klikoni në ikonën e Kodit pranë Device EUI, App EUI dhe App key. Tani duhet të shfaqet si një grup bajtësh.
Para se të kopjoni, klikoni butonin Switch dhe sigurohuni që Dev EUI dhe App EUI juaj janë LSB FIRST.
Çelësi i aplikacionit tuaj duhet të qëndrojë MSB FIRST (mos e ndryshoni atë).
Ju do të keni nevojë për këto çelësa në hapin tjetër: Konfigurimi i Arduino.
Hapi 4: Shkruani çelësin tuaj të Aplikimit Acces
Tani do të na duhet një çelës tjetër për të vendosur MQTT në Raspberry Pi tonë.
Shkoni te Aplikacioni juaj dhe lëvizni poshtë te Çelësat e Aksesit.
Ju do të keni nevojë për këtë në hapin Backend.
Hapi 5: Vendosja e Arduino
Kodi Arduino gjithashtu mund të gjendet në GitHub tim, nën Arduino (https://github.com/BoussonKarel/CaptureTheBox)
Ky kod është i ndarë në skeda të shumta, për ta mbajtur atë të organizuar.
Kodi kryesor: deklaratat pin, konfigurimi () dhe lak ()
0_LoRa.inoKy kod trajton komunikimin duke përdorur LoRa.
Ai vendos të dhënat e etiketave LDR, GPS dhe RFID në një grup prej 13 bajtësh dhe i dërgon ato në TheThingsNetwork.
1_LDR.inoDuke përdorur analogRead (), mat sasinë e tensionit mbi Rezistencën e Varur nga Drita.
Kjo pastaj shndërrohet në një përqindje të dritës (0 nuk është asgjë, 100 është një elektrik dore për celularin).
2_GPS.inoKjo përdor komunikimin serik duke përdorur TX1 dhe RX1 (Serial1).
Përdor mesazhe NMEA (mesazhet $ GPRMC për të qenë të sakta) për të gjetur gjerësinë dhe gjatësinë e kutisë.
3_RFID.ino Duke përdorur bibliotekën MFRC522, ky kod skanon për etiketa të reja RFID. Sa herë që është i pranishëm, ai ruhet si RFID_lastUID.
4_DotMatrix.inoKy kod përdoret për të inicializuar dhe vendosur ekranin e matricës së pikës. Ai përmban përkufizime për ngarkimin e animacionit etj …
Duke e vendosur atë
Para se të ngarkoni këtë kod në Arduino tuaj, do t'ju duhet të instaloni disa biblioteka.
Biblioteka Arduino-LMIC nga matthijskooijman (https://github.com/matthijskooijman/arduino-lmic)
Biblioteka MFRC522 për lexuesin RFID (https://github.com/miguelbalboa/rfid)
Tani, shkoni te main.ino dhe ndryshoni DEVEUI, APPEUI dhe APPKEY në ato që keni kopjuar hapin e fundit.
Hapi 6: Vendosja e sfondit
Pjesa e pasme për këtë Projekt mund të gjendet në GitHub tim, nën RPI> Backend (https://github.com/BoussonKarel/CaptureTheBox).
Si punon?
- Çdo 10 sekonda, kodi kërkon një lojë aktive. Nëse gjendet, ruhet në një ndryshore të quajtur huidigSpel (currentGame)
- Nëse mënyra është vendosur në Serial, një kabllo përdoret midis Arduino dhe Pi. Sondazhet Pi për vlerat e LDR dhe GPS. Arduino përgjigjet me një format JSON. Etiketat RFID dërgohen sa herë që paraqiten. Kjo mënyrë u përdor vetëm për qëllime zhvillimi dhe nuk është më e nevojshme më.
- Nëse modaliteti është vendosur në LoRa, krijohet një klient MQTT që shkakton një thirrje sa herë që të dhënat LoRa merren nga TTN. Kjo përmban të dhëna LDR, GPS dhe RFID.
- Fronti mund të marrë të dhëna duke përdorur pikat përfundimtare të API. Shumica e të dhënave merren duke përdorur huidigSpel.id. Të dhënat kthehen në formatin JSON duke përdorur jsonify ()
Ndryshoni cilësimetShko te secrets.py dhe plotësoni emrin e aplikacionit tuaj LoRa dhe çelësin tuaj të aksesit (e keni shkruar më herët).
Shkoni te config.py dhe plotësoni kredencialet tuaja të bazës së të dhënave (të tilla si fjalëkalimi, përdoruesi …)
Provoni të ekzekutoni app.py, pasi të keni konfirmuar se kjo po funksionon, ne mund ta përdorim atë si një shërbim. Kjo automatikisht do të fillojë kodin në sfond kur të nisni pi -në tuaj.
Për ta bërë këtë kopjoni ctb_service.service tek /etc/systemd/system/ctb_service.service. sudo cp ctb_service.service /etc/systemd/system/ctb_service.service
Tani aktivizojeni duke përdorur systemctl enable ctb_service.service
Nëse keni nevojë të bëni disa ndryshime në kod, mund ta ndaloni me lehtësi duke përdorur systemctl stop (kjo do të fillojë përsëri me rindezje) ose do ta çaktivizoni atë (mos e filloni automatikisht) duke përdorur systemctl çaktivizoni.
Nëse keni nevojë të konsultoheni me regjistrat (për shkak të gabimeve), mund të përdorni journalctl -u ctb_service.service.
Më shumë informacion mbi shërbimet mund të gjenden këtu: https://www.raspberrypi.org/documentation/linux/us..
Hapi 7: Vendosja e Frontend
Si zakonisht, frontend mund të gjendet në GitHub tim, nën RPI> Frontend (https://github.com/BoussonKarel/CaptureTheBox)
Ngjiteni këtë në dosjen /var /html të Raspberry Pi tuaj.
Kjo përmban të gjitha faqet e nevojshme të internetit për lojën.
Ai gjithashtu përmban një skenar për të komunikuar me pjesën e pasme (si në kohë reale ashtu edhe duke përdorur pikat përfundimtare të API).
Hapi 8: Shtimi i një zorrë
Për rastin, kam përdorur një kuti të vjetër mjetesh, së bashku me materialet/teknikat e mëposhtme:
- Printim 3D
- Shkumë për mbajtjen e baterisë në vend
- Dërrasa druri të ricikluara
- Zam i nxehtë
- Vida dhe arra
Ajo që bëni me rastin tuaj është zgjedhja juaj! Unë do t'ju jap lirinë artistike.
Për frymëzim, kam shtuar disa fotografi të kasës sime (të përfunduar).
Recommended:
Njohja me "Kutinë profesionale të funksionit të ILC8038 DIY": 5 hapa
Njohja me "Çantën Profesionale të Funksionit ILC8038 DIY": Isha duke punuar për disa projekte të reja elektronike kur hasa në një çantë të lezetshme të gjeneratorit të funksioneve të vogla. Bilshtë faturuar si "Kit profesionale e funksionit ILC8038 Generator Sine Triangle Square Wave DIY Kit" dhe është në dispozicion nga një numër shitësish
Ndërtoni kutinë tuaj zanore MP3: 7 hapa
Ndërtoni kutinë tuaj zanore MP3: A keni imagjinuar ndonjëherë të ndërtoni altoparlantin tuaj MP3 për panairin shkencor të shkollës tuaj? Në këtë projekt, ne do t'ju mësojmë hap pas hapi që ju të ndërtoni altoparlantin tuaj dhe të përdorni pak burime dhe të argëtoheni me miqtë tuaj. Prandaj, në këtë projekt ju
Përmirësoni kutinë tuaj të padobishme: 5 hapa
Përmirësoni kutinë tuaj të padobishme: Ky udhëzues ju tregon se si mund të përmirësoni kutinë tuaj të padobishme, kur reagon shumë shpejt, kështu që keni pak kohë për të hequr gishtin pasi të keni ndërruar çelësin për të aktivizuar kutinë
Shtoni zërin e fillimit të nxitësit në Kutinë e Zërit të AI të Google: 6 hapa (me fotografi)
Shtoni Trigger Start Sound në Google AIY Voice Kit: Ky udhëzues është mjaft i thjeshtë. Unë jam duke shijuar vërtet Google AIY Voice Kit, por me të vërtetë më pëlqen zhurma që bëjnë në Google Home tim normal për të konfirmuar se ata janë duke dëgjuar në mënyrë aktive. Kjo nuk është konfiguruar si parazgjedhje në asnjë nga shembujt që
Përmirësoni Kutinë tuaj të Dhuratave të Vodkës: 7 Hapa (me Fotografi)
Përmirësoni Kutinë tuaj të Dhuratave të Vodkës: Në këtë udhëzues do të tregoj se si e përmirësova një kuti dhuratë me vodka duke shtuar disa LED rgb në të. Ka tre mënyra funksionimi: ngjyra statike, ngjyra rrotulluese dhe një mënyrë loje. Në modalitetin e lojës pajisja zgjedh rastësisht një shishe dhe ndez brykën