Агуулгын хүснэгт:
- Хангамж
- Алхам 1: Raspberry Pi -ийг тохируулах
- Алхам 2: Электроникийг байрлуулах
- Алхам 3: Өгөгдлийн сангийн загвар гаргах
- Алхам 4: TTN дээр данс тохируулах
- Алхам 5: Arduino -г тохируулах
- Алхам 6: Арын хэсгийг тохируулах
- Алхам 7: Frontend -ийг тохируулах
- Алхам 8: Бүрхүүл нэмж оруулах
Видео: Хайрцгийг авах: 8 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:01
Capture The Box бол багийн барилдааны тоглоом бөгөөд та ойр хавийнхаа найз нөхөдтэйгөө тоглох боломжтой.
Зорилго нь хайрцгийг барьж, аль болох урт хугацаанд өөрийн мэдэлд байлгах явдал юм. Бусад тоглогчид таны үүдний танхим эсвэл урд цэцэрлэгээс зугтахыг оролдож байна.
Энэ тоглоом нь GPS ашиглан хайрцгийг хайж олох бөгөөд тоглогчдыг тодорхойлохын тулд RFID хаягийг ашигладаг. Дот матрицын дэлгэцийн эрч хүчийг тухайн хэсгийн гэрлийн хувьтай нийцүүлэхийн тулд нэмэлт LDR нэмж болно.
Хангамж
Микроконтроллер ба компьютер
- Raspberry Pi
- Arduino (Mega) Би илүү олон тээглүүртэй тул энгийн Юно -гоос Arduino Mega -ийг сонгосон. Бид НҮБ -ыг ашиглах үед бидэнд хэт бага дижитал тээглүүр үлдээх Dragino LoRa бамбай ашиглаж байгаа тул энэ нь зайлшгүй шаардлагатай юм. ЗӨВЛӨГӨӨ: Хятадын клонууд үргэлж санаснаар ажилладаггүй тул жинхэнэ хувилбарыг ашиглах нь дээр.
Мэдрэгч ба модуль
- 4 MAX7219 цэг матрицын модуль DOUT -ийг DIN, CS -ээс CS, CLK -аас CLK руу холбоно уу.
- Хөнгөн хамааралтай эсэргүүцэл (10K) + эсэргүүцэл (10K)
- NEO-7M (эсвэл үүнтэй төстэй) GPS модуль Би Velleman-аас VMA430 ашиглаж байна
- RC522 RFID модуль+ зарим RFID тэмдэг/карт
LoRa (утасгүй технологи) ашиглахад зориулагдсан
Драгино Лора Шилд
Нэмэлт мэдрэгч ба модуль
LCD дэлгэц Raspberry Pi -ийн IP хаягийг харуулна
Туршилтын тохиргоог хийхийн тулд
Талхны самбар ба Дюпонт кабель (Эрэгтэй-Эр
Нэмэлт (бүрхүүл)
- Гагнуурын төмөр
- Хуучин багажны хайрцаг
- 3D хэвлэх материал
- Зарим нимгэн модон банз
- Зарим боолт, самар (энэ нь Arduino нүхэнд багтах боломжтой). Миний эрэг 3 мм орчим диаметртэй
Тооцоолсон үнийг Монголбанкнаас олж болно.
Алхам 1: Raspberry Pi -ийг тохируулах
Raspberry Pi бол төслийн зүрх юм.
Энэ нь урд, арын хэсэг, мэдээллийн санг ажиллуулах болно. Энэ нь арын болон Arduino хоорондох харилцааг хариуцах болно.
Raspberry Pi -ийг ашиглахын тулд бид дараахь зүйлийг хийх шаардлагатай болно.
1 -р хэсэг: Raspbian -ийг Raspberry Pi дээр суулгаарай
Үүнийг хэрхэн хийх тухай зааврыг эндээс олж болно:
2 -р хэсэг: Raspbian -ийг Raspberry Pi дээр суулгаарай Гэрийнхээ WiFi -ийг тохируулна уу.
Үүнийг wpa_passphrase "YourNetwork" "YourSSID" ашиглан хийж болно >> /etc/wpa_supplicant/wpa_supplicant.conf
Pi -г дахин ачаалж, ifconfig -ийг бичихдээ IP хаягийг харах ёстой
3 -р хэсэг: Вэб сервер болон мэдээллийн санг суулгах
Pi -г ажиллуулсны дараа нууц үгээ солих нь зүйтэй бөгөөд үүнийг passwd командын тусламжтайгаар хийж болно.
Үүнийг хийсний дараа үргэлжлүүлэн Apache, PHP, MariaDB, 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 apache2.service-ийг дахин эхлүүлнэ.
PHPMyAdminsudo phpmyadmin -y -ийг суулгахад тохиромжтой
MySQL нууц үгээ тохируулахаа бүү мартаарай.
4 -р хэсэг: Шаардлагатай Python номын санг суулгах
Арын хэсэгт бидэнд зарим номын сан хэрэгтэй болно. Эдгээрийг pip3 командыг ашиглан суулгаж болно.
pip3 mysql-connector-python суулгана уу
pip3 колбо-сокетийг суулгана уу
pip3 колбо-корс суурилуулна
pip3 суулгах geventpip3 gevent-websocket суулгах
pip3 ttn суулгана уу
Алхам 2: Электроникийг байрлуулах
Энэхүү төслийг ажиллуулахын тулд бид бүх цахилгаан хэрэгслийг холбох хэрэгтэй.
LoRa бамбайг амархан байрлуулж болно. Зүүг Arduino дээрх тээглүүртэй зэрэгцүүлээрэй.
Бусад холболтыг миний Fritzing схемд тайлбарласан болно. Эндээс татаж авах боломжтой:
Алхам 3: Өгөгдлийн сангийн загвар гаргах
Тоглоом, мэдрэгчийн бүх өгөгдлийг хадгалахын тулд би хэдэн хүснэгт хийв.
Мэдрэгчээс авсан хэмжилтийг мэдрэгчийн хүснэгтэд оруулсан болно. Энэ нь мэдрэгчийн ишлэл, хэмжлийн утга (жишээ нь: coordinates: 51.123456; 3.123456), нэмэлт тоглоомын ID (хэрэв хэмжих явцад тоглоом идэвхтэй байсан бол).
Тоглогчийн нэр ба RFID тэмдгийн UID. Нэмэлт хээрийн зохицуулагчийг нэмж оруулсан бол энэ хүн тоглоомыг өөрчлөх боломжтой (жишээлбэл, хугацаанаас өмнө зогсоох).
Тоглоомын мэдээлэл (эхлэх ба дуусах цаг).
spel_has_speler spel ба speler хоорондын харилцаа. Энд тоглогчдыг тоглоомд хуваарилдаг.
Энэ хүснэгтэд оноо хадгалагдсан болно. Үүнд тоглоомын ID, тоглогчийн ID, хайрцгийг хулгайлсан хугацаа, алдсан хугацаа (өөр хүн хулгайлсан эсвэл тоглоом дуусах үед) багтсан болно. Төгсгөлийн цагаас эхлэн эхлэх хугацааг хасснаар та түүний авсан оноог тооцоолж чадна.
Өгөгдлийн сангийн экспортыг миний GitHub дээрээс олж болно (https://github.com/BoussonKarel/CaptureTheBox)
SQL -ийг PHPMyAdmin / MySQL Workbench дээр нээгээд ажиллуулна уу. Мэдээллийн санг одоо импортлох ёстой.
Алхам 4: TTN дээр данс тохируулах
Алхам 1: TTN дээр данс бүртгүүлж, аппликешн үүсгэнэ үү
TheThingsNetwork дээр данс бүртгүүлээд Console> Add application руу очно уу.
Аппликешныхээ нэрийг сонгоод Програм нэмэх дээр дарна уу.
Алхам 2: Төхөөрөмжийг бүртгүүлэх
Өргөдөл гаргасны дараа бүртгэлийн төхөөрөмж рүү очно уу.
Төхөөрөмжийн ID -г сонгоно уу, энэ нь таны хүссэн зүйл байж болно (могойн хайрцаг л бол), Бүртгүүлэх дээр дарна уу.
Төхөөрөмжийн EUI доорх Generate дүрс дээр дарна уу, ингэснээр TTN танд нэгийг үүсгэх болно.
Алхам 3: Итгэмжлэх жуух бичгээ бичих
Одоо төхөөрөмж рүүгээ ороод төхөөрөмжийн EUI, App EUI болон App түлхүүрийн хажууд байгаа кодын дүрс дээр дарна уу. Энэ нь одоо байтын массив хэлбэрээр гарч ирэх ёстой.
Хуулахаасаа өмнө Switch товчин дээр дарж Dev EUI болон App EUI LSB FIRST эсэхийг шалгаарай.
Таны Апп түлхүүр MSB FIRST хэвээр байх ёстой (үүнийг бүү өөрчил).
Дараагийн алхамд танд эдгээр түлхүүрүүд хэрэгтэй болно: Arduino -ийг тохируулах.
Алхам 4: Програмын Acces түлхүүрийг бичих
Raspberry Pi дээрээ MQTT -ийг тохируулахын тулд бидэнд дахиад нэг түлхүүр хэрэгтэй болно.
Програм руугаа ороод Acces Keys руу гүйлгэнэ үү.
Энэ нь танд Backend алхам дээр хэрэгтэй болно.
Алхам 5: Arduino -г тохируулах
Arduino кодыг мөн миний GitHub дээрээс Arduino дээрээс олж болно (https://github.com/BoussonKarel/CaptureTheBox)
Энэ кодыг эмх цэгцтэй байлгахын тулд олон таб болгон хуваасан.
main.ino Гол код: мэдэгдэл оруулах, тохиргоо () ба давталт ()
0_LoRa.inoЭнэ код нь LoRa ашиглан харилцаа холбоог зохицуулдаг.
Энэ нь LDR, GPS, RFID хаягуудын өгөгдлийг 13 байтын массивт оруулдаг бөгөөд үүнийг TheThingsNetwork руу илгээдэг.
1_LDR.ino analogRead () -ийг ашиглан гэрлээс хамааралтай резистор дээрх хүчдэлийн хэмжээг хэмждэг.
Үүнийг гэрлийн хувь болгон хөрвүүлнэ (0 нь юу ч биш, 100 нь гар утасны гар чийдэн).
2_GPS.inoTx1 ба RX1 (Serial1) ашиглан цуваа холбоог ашигладаг.
Энэ нь хайрцгийн өргөрөг, уртрагийг олохын тулд NMEA мессежийг (нарийвчлалтайгаар $ GPRMC мессеж) ашигладаг.
3_RFID.
4_DotMatrix.inoЭнэ кодыг цэг матрицын дэлгэцийг эхлүүлэх, тохируулахад ашигладаг бөгөөд ачаалах хөдөлгөөнт дүрс гэх мэт тодорхойлолтуудыг агуулдаг.
Үүнийг тохируулж байна
Та энэ кодыг Arduino -д байршуулахаасаа өмнө цөөн хэдэн номын сан суулгах хэрэгтэй болно.
Arduino-LMIC номын сан by matthijskooijman (https://github.com/matthijskooijman/arduino-lmic)
RFID уншигчдад зориулсан MFRC522 номын сан (https://github.com/miguelbalboa/rfid)
Одоо main.ino руу ороод DEVEUI, APPEUI, APPKEY -ийг сүүлчийн алхамыг хуулж авсан болгож өөрчилнө үү.
Алхам 6: Арын хэсгийг тохируулах
Энэхүү төслийн арын хэсгийг миний GitHub дээрээс RPI> Backend (https://github.com/BoussonKarel/CaptureTheBox) дээрээс олж болно.
Энэ яаж ажилдаг вэ?
- 10 секунд тутамд код идэвхтэй тоглоомыг хайж олох бөгөөд хэрэв нэг нь олдвол huidigSpel (currentGame) нэртэй хувьсагчид хадгалагдана.
- Хэрэв горимыг Цуваа гэж тохируулсан бол Arduino болон Pi -ийн хооронд кабель ашиглана. Arduino нь JSON форматаар хариу үйлдэл үзүүлдэг. RFID хаягууд нь танилцуулах бүрт илгээгддэг бөгөөд энэ горимыг зөвхөн хөгжүүлэлтийн зориулалтаар ашигладаг байсан бөгөөд цаашид шаардлагагүй болно.
- Хэрэв горимыг LoRa гэж тохируулсан бол MRTT клиент үүсч, LoRa өгөгдлийг TTN хүлээн авах бүрт дуудлага буцааж өгдөг. Энэ нь LDR, GPS, RFID өгөгдлийг агуулдаг.
- Урд хэсэг нь API төгсгөлийн цэгүүдийг ашиглан өгөгдлийг авах боломжтой. Ихэнх өгөгдлийг huidigSpel.id ашиглан авдаг бөгөөд өгөгдлийг jsonify () ашиглан JSON форматаар буцаана.
Тохиргоог өөрчилнө үү.
Config.py руу ороод өгөгдлийн сангийн итгэмжлэлээ бөглөнө үү (нууц үг, хэрэглэгч гэх мэт).
Үүнийг үйлчилгээ болгон тохируулах App.py -ийг ажиллуулж үзээрэй, хэрэв энэ нь ажиллаж байгааг баталгаажуулсны дараа бид үүнийг үйлчилгээ болгон ашиглаж болно, энэ нь таны pi -г асаахад кодыг автоматаар цаана нь эхлүүлэх болно.
Үүнийг хийхийн тулд ctb_service.service /etc/systemd/system/ctb_service.service руу хуулна уу. sudo cp ctb_service.service /etc/systemd/system/ctb_service.service
Одоо үүнийг systemctl enable ctb_service.service ашиглан идэвхжүүлнэ үү
Хэрэв та кодод зарим өөрчлөлт оруулах шаардлагатай бол systemctl stop ашиглан үүнийг зогсоох боломжтой (энэ нь дахин ачаалах үед дахин асах болно) эсвэл systemctl идэвхгүй болгох замаар идэвхгүй болгох (автоматаар асаахыг зогсоох) болно.
Хэрэв та бүртгэлээс лавлах шаардлагатай бол (алдааны улмаас) та journalctl -u ctb_service.service ашиглаж болно.
Үйлчилгээний талаарх дэлгэрэнгүй мэдээллийг эндээс авах боломжтой:
Алхам 7: Frontend -ийг тохируулах
Урд талынх шиг урд талын хэсгийг GitHub дээрээс RPI> Frontend дээрээс олж болно (https://github.com/BoussonKarel/CaptureTheBox)
Үүнийг Raspberry Pi -ийн /var /html хавтсанд оруулна уу.
Энэ нь тоглоомонд шаардлагатай бүх вэб хуудсыг агуулдаг.
Энэ нь арын арын хэсэгтэй харилцах скриптийг агуулдаг (бодит цаг хугацаанд болон API төгсгөлийн цэгүүдийг ашиглан).
Алхам 8: Бүрхүүл нэмж оруулах
Энэ тохиолдолд би хуучин багаж хэрэгслийг дараах материал/техниктэй хамт ашигласан.
- 3D хэвлэх
- Батерейг байранд нь байлгах хөөс
- Дахин боловсруулсан модон банз
- Халуун цавуу
- Боолт ба самар
Таны хэргийг юу хийх нь таны сонголт юм! Би танд уран сайхны эрх чөлөөг өгөх гэж байна.
Урам зориг авахын тулд би өөрийн (дууссан) хэргийнхээ зургийг нэмж орууллаа.
Зөвлөмж болгож буй:
Бидний дунд дагах аюулгүй байдлын хайрцгийг хэрхэн хийх вэ - Цахилгааны утас хийх даалгавар: 7 алхам
Цахилгааны утас хийх даалгавар: Аюулгүй байдлын хайрцгийг хэрхэн яаж хийх вэ
Компьютерийн хайрцгийг солих: 6 алхам (зурагтай)
PC -ийн хайрцгийг солих: Би саяхан компьютерынхаа цахилгаан унтраалгыг солих шаардлагатай болсон бөгөөд үүнийг хуваалцах нь тустай гэж бодсон. Үнэнийг хэлэхэд " бүтээх " Энэ нь маш энгийн бөгөөд 7 хуудас нь компьютерийн хайрцагт энгийн унтраалга суулгахад хангалттай юм. Бодит
Arduino: Төрсөн өдрийн хайрцгийг бэлэглэх: 14 алхам
Arduino: Төрсөн өдрийн хайрцгийг бэлэглэх: Энэхүү дуулж буй төрсөн өдрийн хайрцгийг төрсөн өдрийн бэлэг савлах зориулалттай бөгөөд Ардуиногийн тусламжтайгаар LED лаа дуулах, гэрэлтүүлэх гэх мэт тусгай функцээр хангадаг. Төрсөн өдрийн мэндчилгээний дууг дуулах, LED гэрэл асаах чадвартай
Бараг ямар ч (Хаха) вэбсайтаас хэрхэн хөгжим авах вэ (Сонссон л бол та үүнийг авах боломжтой Зүгээр дээ, хэрэв үүнийг флэш дээр суулгасан бол та үүнийг хийх боломжгүй байж магадгүй) ЗАСВАРЛАА !!!!! Мэдээлэл нэмсэн: 4 алхам
Бараг ямар ч хамаагүй вэбсайтаас хэрхэн хөгжим авах вэ (Хаха) (Та сонсож байгаа л бол үүнийг авах боломжтой … Зүгээр дээ, хэрэв үүнийг флэш дээр суулгасан бол та чадахгүй байх магадлалтай) ЗАСВАРЛАА !!!!! Мэдээлэл нэмсэн: хэрэв та хэзээ нэгэн цагт вэбсайт руу орж, дуртай, хүссэн дуугаа тоглуулдаг бол, хэрэв та ямар нэгэн зүйл үймүүлвэл миний буруу биш юм (хэрэв та ямар нэг шалтгаангүйгээр юм устгаж эхэлбэл ийм зүйл тохиолдох болно. ) Би хөгжим авах боломжтой байсан
Хэрхэн хурдан арга хэмжээ авах гайхалтай зураг авах вэ: 5 алхам
Хурдан арга хэмжээний гайхалтай зургуудыг хэрхэн яаж авах вэ: үндсэндээ би нүд ирмэхийн зуурт болж буй зүйлийн гайхалтай зургийг авахыг танд үзүүлэх гэж байна. Миний хэрэглэж буй жишээ бол усны бөмбөлөг хагарах явдал юм. Сонирхож байна уу? цааш нь уншина уу