Përmbajtje:

Kapni kutinë: 8 hapa
Kapni kutinë: 8 hapa

Video: Kapni kutinë: 8 hapa

Video: Kapni kutinë: 8 hapa
Video: 8 инструментов в Excel, которыми каждый должен уметь пользоваться 2024, Nëntor
Anonim
Kapni Kutinë
Kapni Kutinë
Kapni Kutinë
Kapni Kutinë

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

Shtrimi i pajisjeve elektronike
Shtrimi i pajisjeve elektronike
Shtrimi i pajisjeve elektronike
Shtrimi i 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

Hartimi i bazës së të dhënave
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?

  1. Çdo 10 sekonda, kodi kërkon një lojë aktive. Nëse gjendet, ruhet në një ndryshore të quajtur huidigSpel (currentGame)
  2. 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ë.
  3. 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.
  4. 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ë

Shtimi i një zorrë
Shtimi i një zorrë
Shtimi i një zorrë
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: