
Isi kandungan:
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:00


Capture The Box adalah permainan teambuilding yang boleh anda mainkan dengan rakan-rakan di kawasan kejiranan anda.
Tujuannya adalah untuk menangkap kotak itu dan menyimpannya selama mungkin sementara pemain lain cuba pergi dan menyelinapnya dari beranda atau taman depan anda.
Permainan ini menggunakan GPS untuk mencari kotak dan tag RFID untuk mengenal pasti pemain. LDR pilihan boleh ditambahkan untuk memadankan intensiti paparan dot matrix dengan peratusan cahaya di kawasan itu.
Bekalan
Pengawal mikro dan komputer
- Pai raspberi
- Arduino (Mega) Saya memilih Arduino Mega daripada Uno biasa, kerana ia mempunyai lebih banyak pin. Ini perlu kerana kita menggunakan pelindung Dragino LoRa, yang akan menyebabkan kita menggunakan pin digital yang terlalu sedikit ketika menggunakan UNO. PETUA: Lebih baik menggunakan yang asli, kerana klon Cina tidak selalu berfungsi seperti yang diharapkan.
Sensor dan modul
- 4 MAX7219 Modul Dot MatrixSambungkan DOUT ke DIN, CS ke CS, CLK ke CLK…
- Perintang Bergantung Cahaya (10K) + Perintang (10K)
- NEO-7M (atau serupa) Modul GPSSaya menggunakan VMA430 dari Velleman
- Modul RFID RC522 + beberapa lencana / kad RFID
Untuk menggunakan LoRa (teknologi tanpa wayar)
Perisai Dragino Lora
Sensor dan modul pilihan
Paparan LCD Untuk memaparkan alamat IP Raspberry Pi
Untuk membuat persediaan ujian
Papan roti dan Kabel Dupont (Lelaki-Lelaki
Pilihan (selongsong)
- Besi pematerian
- Sarung alat lama
- Bahan untuk percetakan 3D
- Beberapa papan kayu nipis
- Beberapa selak dan mur (yang boleh dipasang di lubang Arduino). Skru saya mempunyai diameter sekitar 3mm.
Harga anggaran boleh didapati di BOM (Bil Bahan), termasuk di bawah.
Langkah 1: Menyiapkan Raspberry Pi
Raspberry Pi adalah nadi Projek.
Ia akan menjalankan frontend, backend dan database. Ini juga akan bertanggungjawab untuk komunikasi antara backend dan Arduino.
Untuk menggunakan Raspberry Pi, kita perlu melakukan perkara berikut:
Bahagian 1: Pasang Raspbian pada Raspberry Pi
Tutorial mengenai cara melakukannya boleh didapati di sini:
Bahagian 2: Pasang Raspbian pada Raspberry PiMenyiapkan WiFi rumah anda.
Ini dapat dilakukan dengan menggunakan wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Nyalakan semula Pi dan anda akan melihat alamat IP semasa menaip ifconfig
Bahagian 3: Pasang pelayan web dan pangkalan data
Setelah Pi dan komputer anda berjalan, lebih baik menukar kata laluan anda. Ini boleh dilakukan dengan arahan passwd.
Setelah selesai, teruskan dan pasang Apache, PHP, MariaDB dan 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 pasang phpmyadmin -y
Jangan lupa untuk menetapkan kata laluan MySQL yang selamat.
Bahagian 4: Memasang perpustakaan Python yang diperlukan
Untuk backend, kami memerlukan beberapa perpustakaan. Ini boleh dipasang menggunakan arahan pip3.
pip3 pasang mysql-connector-python
pip3 memasang flask-socketio
pip3 memasang termos-cors
pip3 pasang geventpip3 pasang gevent-websocket
pip3 memasang ttn
Langkah 2: Menetapkan Elektronik


Untuk menjayakan Projek ini, kita perlu menyambungkan semua elektronik.
Perisai LoRa dapat dipasang dengan mudah. Sejajarkan pin dengan pin di Arduino anda.
Sambungan lain dijelaskan dalam skema Fritzing saya. Yang boleh dimuat turun di sini:
Langkah 3: Merancang Pangkalan Data

Untuk dapat menyimpan semua data permainan dan sensor, saya membuat beberapa jadual:
Pengukuran dari sensor, yang terdapat di dalam jadual sensor. Ia mengandungi rujukan ke sensor, nilai pengukuran (mis. koordinat: 51.123456; 3.123456) dan id permainan pilihan (jika permainan aktif semasa pengukuran).
spelerNama pemain dan UID lencana RFID mereka. Moderator medan pilihan ditambahkan, orang ini dapat mengubah suai permainan (mis. Menghentikannya sebelum waktunya).
spelInformasi permainan (permulaan dan waktu akhir).
spel_has_spelerHubungan antara spel dan speler. Di sinilah pemain ditugaskan untuk permainan.
bezitDalam jadual ini, skor disimpan. Ini mengandungi id permainan, id pemain, masa dia mencuri kotak dan masa dia kehilangannya (ketika orang lain mencurinya atau ketika permainan berakhir). Dengan mengurangkan masa mula dari waktu akhir, anda dapat mengira skor yang dia dapat dari tangkapan tersebut.
Eksport pangkalan data boleh didapati di GitHub saya (https://github.com/BoussonKarel/CaptureTheBox)
Buka sql di PHPMyAdmin / MySQL Workbench dan jalankan. Pangkalan data kini harus diimport.
Langkah 4: Menyiapkan Akaun di TTN
Langkah 1: Daftar untuk akaun di TTN dan buat aplikasi
Daftar untuk akaun di TheThingsNetwork, kemudian pergi ke Konsol> Tambahkan aplikasi.
Pilih nama untuk aplikasi anda dan klik Tambah aplikasi.
Langkah 2: Daftarkan peranti
Setelah membuat permohonan, pergi ke Daftar peranti.
Pilih id peranti, ini boleh menjadi apa sahaja yang anda mahukan (selagi itu sarung ular) dan klik Daftar.
Klik pada ikon Jana di bawah Peranti EUI, jadi TTN akan menghasilkan satu untuk anda.
Langkah 3: Tuliskan kelayakan anda
Sekarang pergi ke Peranti anda dan klik pada ikon Kod di sebelah Peranti EUI, Aplikasi EUI dan kunci Aplikasi. Ia kini boleh muncul sebagai sebilangan bait.
Sebelum menyalin, klik butang Tukar dan pastikan Dev EUI dan App EUI anda LSB PERTAMA.
Kunci Aplikasi anda harus kekal MSB PERTAMA (jangan ubah itu).
Anda memerlukan kunci ini pada langkah seterusnya: Menyiapkan Arduino.
Langkah 4: Tuliskan kunci Akses Aplikasi anda
Sekarang kita memerlukan satu lagi kunci untuk menyediakan MQTT pada Raspberry Pi kami.
Pergi ke Aplikasi anda dan tatal ke bawah ke Acces Keys.
Anda memerlukannya dalam langkah Backend.
Langkah 5: Menyiapkan Arduino
Kod Arduino juga boleh didapati di GitHub saya, di bawah Arduino (https://github.com/BoussonKarel/CaptureTheBox)
Kod ini dibahagikan kepada beberapa tab, agar tetap teratur.
main.inoKod utama: deklarasi pin, persediaan () dan gelung ()
0_LoRa.inoKod ini mengendalikan komunikasi menggunakan LoRa.
Ini meletakkan data tag LDR, GPS dan RFID dalam array 13 bait dan mengirimkannya ke TheThingsNetwork.
1_LDR.inoMenggunakan analogRead (), ia mengukur jumlah voltan berbanding Perintang Bergantung Cahaya.
Ini kemudian ditukar kepada peratusan cahaya (0 tidak ada apa-apa, 100 menjadi lampu suluh telefon bimbit).
2_GPS.inoIni menggunakan komunikasi Bersiri menggunakan TX1 dan RX1 (Serial1).
Ia menggunakan mesej NMEA (mesej $ GPRMC tepat) untuk mencari garis lintang dan garis bujur kotak.
3_RFID.inoMenggunakan perpustakaan MFRC522, kod ini mengimbas tag RFID baru. Setiap kali ada, ia disimpan sebagai RFID_lastUID.
4_DotMatrix.inoKod ini digunakan menginisialisasi dan menetapkan paparan dot matrix. Ia mengandungi definisi untuk memuatkan animasi dan lain-lain …
Menyiapkannya
Sebelum anda dapat memuat naik kod ini ke Arduino anda, anda perlu memasang beberapa perpustakaan.
Perpustakaan Arduino-LMIC oleh matthijskooijman (https://github.com/matthijskooijman/arduino-lmic)
Perpustakaan MFRC522 untuk pembaca RFID (https://github.com/miguelbalboa/rfid)
Sekarang, pergi ke main.ino dan ubah DEVEUI, APPEUI dan APPKEY ke yang anda salin langkah terakhir.
Langkah 6: Menyiapkan Backend
Backend untuk Projek ini boleh didapati di GitHub saya, di bawah RPI> Backend (https://github.com/BoussonKarel/CaptureTheBox).
Bagaimanakah ia berfungsi?
- Setiap 10 saat, kod mencari permainan aktif. Sekiranya terdapat, ia disimpan dalam pemboleh ubah yang disebut huidigSpel (currentGame)
- Sekiranya mod ditetapkan ke Serial, kabel digunakan antara Arduino dan Pi. Pi memilih nilai LDR dan GPS. Arduino bertindak balas dengan format JSON. Tag RFID dihantar setiap kali ditunjukkan. Mod ini digunakan hanya untuk tujuan pembangunan dan tidak lagi diperlukan.
- Sekiranya mod ditetapkan ke LoRa, klien MQTT dibuat yang memicu panggilan balik setiap kali data LoRa diterima oleh TTN. Ini mengandungi data LDR, GPS dan RFID.
- Frontend dapat mengambil data menggunakan titik akhir API. Sebilangan besar data diambil menggunakan huidigSpel.id. Data dikembalikan dalam format JSON menggunakan jsonify ()
Ubah suai tetapan Pergi ke secret.py dan isikan nama aplikasi LoRa dan Kunci Acces anda (anda tulis sebelumnya).
Pergi ke config.py dan isikan kelayakan Pangkalan Data anda (seperti kata laluan, pengguna…)
Menyiapkannya sebagai perkhidmatanCuba jalankan app.py, setelah anda mengesahkan ini berfungsi, kami dapat menggunakannya sebagai perkhidmatan. Ini secara automatik akan memulakan kod di latar belakang semasa anda boot pi anda.
Untuk melakukan salinan ini, ctb_service.service ke /etc/systemd/system/ctb_service.service. sudo cp ctb_service.service /etc/systemd/system/ctb_service.service
Sekarang aktifkan menggunakan systemctl aktifkan ctb_service.service
Sekiranya anda perlu membuat beberapa perubahan pada kod, anda dapat menghentikannya dengan mudah menggunakan systemctl stop (ini akan dimulakan lagi ketika reboot) atau melumpuhkan adalah (hentikan dari memulakan secara automatik) menggunakan systemctl disable.
Sekiranya anda perlu melihat log (kerana kesilapan), anda boleh menggunakan journalctl -u ctb_service.service.
Maklumat lanjut mengenai perkhidmatan boleh didapati di sini:
Langkah 7: Menyiapkan Frontend
Seperti biasa, frontend boleh didapati di GitHub saya, di bawah RPI> Frontend (https://github.com/BoussonKarel/CaptureTheBox)
Tampalkan ini di folder / var / html Raspberry Pi anda.
Ini mengandungi semua halaman web yang diperlukan untuk permainan.
Ini juga berisi skrip untuk berkomunikasi dengan backend (baik waktu nyata maupun menggunakan titik akhir API).
Langkah 8: Menambah Selongsong


Untuk kes itu, saya menggunakan sarung alat lama, bersama dengan bahan / teknik berikut:
- Percetakan 3D
- Buih untuk mengekalkan bateri di tempatnya
- Papan kayu yang dikitar semula
- Gam panas
- Skru dan kacang
Apa yang anda buat dengan kes anda adalah pilihan anda! Saya akan memberi anda kebebasan seni.
Untuk inspirasi, saya telah menambahkan beberapa gambar kes (selesai) saya.
Disyorkan:
ESP32-CAM Tangkap Foto dan Hantar Melalui E-mel Menggunakan Memori SPIFF. -- TIDAK Diperlukan Kad SD: 4 Langkah

ESP32-CAM Tangkap Foto dan Hantar Melalui E-mel Menggunakan Memori SPIFF. || TIDAK DIPERLUKAN Kad SD: Hello Folks, Papan ESP32-CAM adalah papan pengembangan kos rendah yang menggabungkan cip ESP32-S, kamera OV2640, beberapa GPIO untuk menyambungkan periferal dan slot kad microSD. Ini memiliki sejumlah aplikasi mulai dari pelayan web streaming video, bu
Tangkap & Hantar Gambar Dengan ESP32-Cam Menggunakan Pemproses Wifi ESP8266 WeMos D1 R1 Dengan Uno: 7 Langkah

Tangkap & Hantar Imej Dengan ESP32-Cam Menggunakan ESP8266 WeMos D1 R1 Wifi Processor With Uno: Tangkap gambar menggunakan ESP32-Cam (OV2640) menggunakan ESP8266 WeMos D1 R1 WiFI Processor dengan Uno dan hantarkan ke e-mel, simpan ke Google Drive dan hantarkan ke Whatsapp menggunakan Twilio.Keperluan: Pemproses WiFI ESP8266 WeMos D1 R1 dengan Uno (https: // protosupplies
Automasi Rumah Menggunakan Portal Tangkap: 9 Langkah

Automasi Rumah Menggunakan Captive Portal: Di sini, kita akan membuat projek automasi rumah berasaskan Captive Portal yang sangat menarik menggunakan nodeMCU dari awal..Jadi, mari kita mulakan
[Arduino Robot] Cara Membuat Robot Tangkap Gerak - Robot Jempol - Motor Servo - Kod Sumber: 26 Langkah (dengan Gambar)
![[Arduino Robot] Cara Membuat Robot Tangkap Gerak - Robot Jempol - Motor Servo - Kod Sumber: 26 Langkah (dengan Gambar) [Arduino Robot] Cara Membuat Robot Tangkap Gerak - Robot Jempol - Motor Servo - Kod Sumber: 26 Langkah (dengan Gambar)](https://i.howwhatproduce.com/images/001/image-1599-93-j.webp)
[Arduino Robot] Cara Membuat Robot Tangkap Gerak | Robot Jempol | Motor Servo | Kod Sumber: Robot Thumbs. Digunakan potensiometer motor servo MG90S. Ia sangat menyeronokkan dan mudah! Kodnya sangat mudah. Ia hanya sekitar 30 baris. Ia kelihatan seperti tangkapan gerakan. Sila tinggalkan sebarang pertanyaan atau maklum balas! [Arahan] Kod Sumber https: //github.c
Kotak Barbie: Kotak Penyamaran / Kotak Boom untuk Pemain Mp3 Anda: 4 Langkah (dengan Gambar)

Kotak Barbie: Kotak Penyamaran / Kotak Boom untuk Pemain Mp3 Anda: Ini adalah sarung pelindung berlapis untuk pemain mp3 anda yang juga menukar bicu fon kepala menjadi inci seperempat, boleh bertindak sebagai kotak boom pada flip suis, dan menyamar pemain mp3 anda sebagai pemain pita awal tahun sembilan puluhan atau pencurian rendah yang serupa