Mündəricat:
- Təchizat
- Addım 1: Raspberry Pi qurmaq
- Addım 2: Elektronikanın qoyulması
- Addım 3: Verilənlər bazasının hazırlanması
- Addım 4: TTN -də bir hesab qurun
- Addım 5: Arduino qurmaq
- Addım 6: Arxa planın qurulması
- Addım 7: Ön ucun qurulması
- Addım 8: Qutunun əlavə edilməsi
Video: Qutunu ələ keçirin: 8 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
Capture The Box, qonşuluğunuzdakı dostlarınızla oynaya biləcəyiniz bir komanda qurma oyunudur.
Məqsəd, digər oyunçular gedib eyvanınızdan və ya ön bağçanızdan qaçmağa çalışarkən qutunu ələ keçirmək və mümkün qədər uzun müddət əlinizdə saxlamaqdır.
Bu oyun qutuları tapmaq üçün GPS və oyunçuları müəyyən etmək üçün RFID etiketlərindən istifadə edir. Dot matrix ekranının intensivliyini sahədəki işıq faizi ilə uyğunlaşdırmaq üçün əlavə LDR əlavə edilə bilər.
Təchizat
Mikrokontrollerlər və kompüterlər
- Moruq Pi
- Arduino (Mega) Daha çox sancaqlar olduğu üçün normal bir Uno üzərində bir Arduino Mega seçdim. Bir UNO istifadə edərkən bizə çox az rəqəmsal pin qoyacaq bir Dragino LoRa qalxanı istifadə etdiyimiz üçün bu lazımdır. İPUCU: Ən əslini istifadə etmək yaxşıdır, çünki Çin klonları həmişə gözlənildiyi kimi işləmir.
Sensorlar və modullar
- 4 MAX7219 Dot Matrix Modulu DOUT -u DIN -ə, CS -ni CS -ə, CLK -ə CLK -a bağlayın …
- İşıqdan Rezistor (10K) + Rezistor (10K)
- NEO-7M (və ya bənzəri) GPS Modulu Velleman-dan VMA430 istifadə edirəm
- RC522 RFID Modulu+ bəzi RFID nişanları/kartları
LoRa (simsiz texnologiya) istifadə üçün
Dragino Lora Shield
İsteğe bağlı sensorlar və modullar
LCD displey Raspberry Pi -nin IP ünvanını göstərmək üçün
Test qurmaq üçün
Çörək taxtası və Dupont Kabelləri (Kişi-Kişi
İsteğe bağlı (korpus)
- Lehimleme dəmir
- Köhnə alət qutusu
- 3D çap üçün materiallar
- Bəzi nazik taxta lövhələr
- Bəzi cıvatalar və qoz -fındıqlar (Arduino deliklərinə sığa bilər). Vintlərimin diametri təxminən 3 mm -dir.
Təxmini bir qiymət, aşağıda daxil olan BOM -da (Material Bill) tapıla bilər.
Addım 1: Raspberry Pi qurmaq
Raspberry Pi, layihənin mərkəzidir.
Ön, arxa və verilənlər bazasını idarə edəcək. Arxa arxa ilə Arduino arasındakı ünsiyyətdən də məsul olacaq.
Raspberry Pi -dən istifadə etmək üçün aşağıdakıları etməliyik:
1 -ci hissə: Raspbian -ı Raspberry Pi -yə quraşdırın
Bunun necə ediləcəyinə dair bir təlimatı burada tapa bilərsiniz:
2 -ci hissə: Raspbian -ı Raspberry Pi -yə quraşdırın Ev WiFi -ni qurun.
Bu wpa_passphrase "Şəbəkəniz" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf istifadə edərək edilə bilər.
Pi'yi yenidən başladın və ifconfig yazarkən bir IP ünvanı görməlisiniz
3 -cü hissə: Veb serveri və verilənlər bazasını quraşdırın
Pi -ni işə saldıqdan sonra parolunuzu dəyişdirmək ən yaxşısıdır passwd əmri ilə edilə bilər.
Bunu etdikdən sonra davam edin və Apache, PHP, MariaDB və PHPMyAdmin qurun.
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 yenidən başladın
PHPMyAdminsudo apt install phpmyadmin -y
Təhlükəsiz bir MySQL şifrəsi qurmağı unutmayın.
4 -cü hissə: Lazım olan Python kitabxanalarının quraşdırılması
Arxa plan üçün bəzi kitabxanalara ehtiyacımız olacaq. Bunlar pip3 əmri ilə quraşdırıla bilər.
pip3 mysql-connector-python qurun
pip3 flask-socketio qurun
pip3 flask-cors quraşdırın
pip3 geventpip3 gevent-websocket quraşdırın
pip3 ttn quraşdırın
Addım 2: Elektronikanın qoyulması
Bu layihənin işləməsi üçün bütün elektronikaları birləşdirməliyik.
LoRa qalxanı asanlıqla yerinə yerləşdirilə bilər. Sadəcə sancaqları Arduino üzərindəki sancaqlar ilə hizalayın.
Digər əlaqələr Fritzing sxemimdə təsvir edilmişdir. Hansını buradan yükləyə bilərsiniz:
Addım 3: Verilənlər bazasının hazırlanması
Bütün oyun və sensorlar məlumatlarını saxlaya bilmək üçün bir neçə cədvəl hazırladım:
Sensor cədvəllərində tapılan sensorlardakı ölçmələr, sensorun istinadını, ölçmənin dəyərini (məsələn, koordinatlar: 51.123456; 3.123456) və isteğe bağlı bir oyun idini (ölçü zamanı oyun aktiv olsaydı) ehtiva edir..
Oyunçu adları və RFID nişanının UID -si. İsteğe bağlı bir sahə moderatoru əlavə olunur, bu adam oyunu dəyişdirə bilər (məsələn, vaxtından əvvəl dayandırmaq).
Oyun məlumatı (başlanğıc və son vaxt).
spel_has_spelerSpel və speler arasındakı əlaqə. Oyunçuların bir oyuna təyin olunduğu yer budur.
Bu cədvəldə hesab saxlanılır. Oyun id, oyunçu id, qutunu oğurladığı vaxt və itirdiyi vaxt (başqası oğurladıqda və ya oyun bitəndə) ehtiva edir. Bitmə vaxtından başlanğıc vaxtını çıxarmaqla, bu tutmadan əldə etdiyi balı hesablaya bilərsiniz.
Verilənlər bazasının ixracını GitHub -da tapa bilərsiniz (https://github.com/BoussonKarel/CaptureTheBox)
SQL -i PHPMyAdmin / MySQL Workbench -də açın və işə salın. İndi verilənlər bazası idxal edilməlidir.
Addım 4: TTN -də bir hesab qurun
Addım 1: TTN -də bir hesab üçün qeydiyyatdan keçin və bir tətbiq yaradın
TheThingsNetwork -də bir hesab üçün qeydiyyatdan keçin, sonra Konsol> Tətbiq əlavə et -ə gedin.
Tətbiqiniz üçün bir ad seçin və Tətbiq əlavə et düyməsini basın.
Addım 2: Bir cihazı qeyd edin
Müraciətinizi etdikdən sonra cihazın Qeydiyyatına keçin.
Bir cihaz id seçin, bu istədiyiniz hər şey ola bilər (ilan halında olduğu müddətdə) və Qeydiyyatdan keçin.
Cihaz EUI altındakı Yarat simgesini vurun, buna görə TTN sizin üçün birini yaradacaq.
Addım 3: Etimadnamənizi yazın
İndi Cihazınıza gedin və Cihaz EUI, App EUI və App düyməsinin yanındakı Kod simgesini vurun. İndi bir bayt dizisi kimi görünməlidir.
Kopyalamadan əvvəl, keçid düyməsini vurun və Dev EUI və App EUI -nin LSB İLK olduğundan əmin olun.
Tətbiq Açarınız MSB İLK olaraq qalmalıdır (bunu dəyişməyin).
Növbəti addımda bu düymələrə ehtiyacınız olacaq: Arduino qurmaq.
Addım 4: Ərizə Giriş düyməsini yazın
İndi Raspberry Pi -də MQTT qurmaq üçün daha bir açara ehtiyacımız olacaq.
Tətbiqinizə gedin və Giriş düymələrinə gedin.
Buna Backend addımında ehtiyacınız olacaq.
Addım 5: Arduino qurmaq
Arduino kodunu Arduino altındakı GitHub -da da tapa bilərsiniz (https://github.com/BoussonKarel/CaptureTheBox)
Bu kod, mütəşəkkil olması üçün bir çox nişana bölünür.
main.ino Əsas kod: pin bəyannamələri, setup () və loop ()
0_LoRa.inoBu kod LoRa istifadə edərək ünsiyyəti idarə edir.
LDR, GPS və RFID etiketlərinin məlumatlarını 13 baytlıq bir sıra qoyur və bunu TheThingsNetwork -ə göndərir.
1_LDR.ino analogRead () istifadə edərək, İşıqdan Rezistor üzərindəki gərginliyin miqdarını ölçür.
Daha sonra bu işığın faizinə çevrilir (0 heç bir şey deyil, 100 cib telefonu fənəri).
2_GPS.inoTX1 və RX1 (Serial1) istifadə edərək Serial ünsiyyətdən istifadə edir.
Qutunun enini və uzunluğunu tapmaq üçün NMEA mesajlarından (dəqiq olaraq $ GPRMC mesajları) istifadə edir.
3_RFID.ino MFRC522 kitabxanasından istifadə edərək, bu kod yeni RFID etiketlərini axtarır. Hər biri mövcud olduqda RFID_lastUID olaraq saxlanılır.
4_DotMatrix.
Quraşdırma
Bu kodu Arduino -ya yükləməzdən əvvəl bir neçə kitabxana qurmalısınız.
Matthijskooijman tərəfindən Arduino-LMIC kitabxanası (https://github.com/matthijskooijman/arduino-lmic)
RFID oxucu üçün MFRC522 kitabxanası (https://github.com/miguelbalboa/rfid)
İndi main.ino saytına gedin və DEVEUI, APPEUI və APPKEY -i son addımı kopyaladığınıza dəyişin.
Addım 6: Arxa planın qurulması
Bu Layihənin arxa tərəfini GitHub -da, RPI> Backend altında tapa bilərsiniz (https://github.com/BoussonKarel/CaptureTheBox).
Bu necə işləyir?
- Hər 10 saniyədə bir kod aktiv bir oyun axtarır.
- Rejim Serial olaraq təyin edilərsə, Arduino ilə Pi arasında bir kabel istifadə olunur. LDR və GPS dəyərləri üçün Pi sorğuları. Arduino, JSON formatı ilə cavab verir. RFID etiketləri təqdim edildikdə göndərilir. Bu rejim yalnız inkişaf məqsədləri üçün istifadə edildi və artıq lazım deyil.
- Rejim LoRa olaraq təyin olunarsa, LoRa məlumatları TTN tərəfindən alındıqda geri çağırışı tetikleyen bir MQTT müştəri yaradılır. Bura LDR, GPS və RFID məlumatları daxildir.
- Ön uç, API son nöqtələrindən istifadə edərək məlumat əldə edə bilər. Məlumatların çoxu huidigSpel.id istifadə edərək alınır. Məlumatlar jsonify () istifadə edərək JSON formatında qaytarılır.
Parametrləri dəyişdirin Secrets.py saytına gedin və LoRa tətbiqinizin və Acces Açarınızın adını doldurun (əvvəllər yazmısınız).
Config.py saytına gedin və verilənlər bazası məlumatlarınızı (məsələn, parol, istifadəçi kimi) doldurun.
Bunu bir xidmət olaraq qurma App.py -ni işə salmağa çalışın, bunun işlədiyini təsdiqlədikdən sonra onu bir xidmət olaraq istifadə edə bilərik.
Bunu etmək üçün ctb_service.service /etc/systemd/system/ctb_service.service ünvanına kopyalayın. sudo cp ctb_service.service /etc/systemd/system/ctb_service.service
İndi systemctl ctb_service.service imkanını istifadə edərək onu aktiv edin
Kodda bəzi dəyişikliklər etməlisinizsə, systemctl stop (bu yenidən başladıqda yenidən başlayacaq) istifadə edərək onu asanlıqla dayandıra bilərsiniz və ya systemctl deaktiv etməklə onu avtomatik olaraq işə salmağı dayandıra bilərsiniz.
Günlüklərə müraciət etmək lazımdırsa (səhvlər üzündən), journalctl -u ctb_service.service istifadə edə bilərsiniz.
Xidmətlər haqqında daha çox məlumatı burada tapa bilərsiniz:
Addım 7: Ön ucun qurulması
Həmişə olduğu kimi, ön ucu GitHub -da RPI> Frontend altında tapa bilərsiniz (https://github.com/BoussonKarel/CaptureTheBox)
Bunu Raspberry Pi -nin /var /html qovluğuna yapışdırın.
Bu oyun üçün lazım olan bütün veb səhifələri ehtiva edir.
Həm də arxa tərəflə əlaqə qurmaq üçün bir skript ehtiva edir (həm real vaxtda, həm də API son nöqtələrindən istifadə etməklə).
Addım 8: Qutunun əlavə edilməsi
Dava üçün, aşağıdakı materiallar/texnikalarla birlikdə köhnə bir alət qutusu istifadə etdim:
- 3D çap
- Batareyanı yerində saxlamaq üçün köpük
- Təkrar emal edilmiş taxta lövhələr
- İsti yapışqan
- Vintlər və qoz -fındıq
Davanızla nə edəcəyiniz öz seçiminizdir! Sənə sənət azadlığı verəcəyəm.
İlham almaq üçün (bitmiş) davamın bəzi fotoşəkillərini əlavə etdim.
Tövsiyə:
M5StickC ESP32 Fanı ilə Sərin Yayınızı Keçirin - Ayarlanabilir Sürət: 8 addım
M5StickC ESP32 Fan - Ayarlanabilir Sürətlə Sərin Yayınızı Keçirin: Bu layihədə M5StickC ESP32 lövhəsi və L9110 fan modulu istifadə edərək FAN sürətini necə idarə edəcəyimizi öyrənəcəyik
Arduino Avtomobil Ters Park Diqqət Sistemi - Addım -addım: 4 addım
Arduino Avtomobil Ters Park Diqqət Sistemi | Addım-addım: Bu layihədə, Arduino UNO və HC-SR04 Ultrasonik Sensoru istifadə edərək sadə bir Arduino Car Reverse Park Sensor Dövrü dizayn edəcəyəm. Bu Arduino əsaslı Avtomobil Ters siqnal sistemi Avtonom Naviqasiya, Robot Aralığı və digər diapazonlarda istifadə edilə bilər
Addım -addım PC qurulması: 9 addım
Addım -addım PC Bina: Təchizat: Təchizat: MotherboardCPU & CPU soyuducu PSU (Enerji təchizatı vahidi) Yaddaş (HDD/SSD) RAMGPU (tələb olunmur) Kassa Alətləri: Tornavida ESD bilərzik/mattermal pasta/aplikator
Arduino Uno ilə Akustik Levitasiya Addım-addım (8 addım): 8 addım
Arduino Uno ilə Akustik Levitasiya Adım Adım (8 addım): ultrasəs səs ötürücüləri L298N Dc dişi qadın adapteri kişi dc pinli Arduino UNOBreadboard Bu necə işləyir: Əvvəlcə Arduino Uno-ya kod yükləyirsiniz (rəqəmsal ilə təchiz edilmiş bir mikro nəzarətçidir) və kodu çevirmək üçün analog portlar (C ++)
3 'AA' Batareya istifadə edərək IPod Şarj Cihazını Altoid rejiminə keçirin: 7 addım
3 'AA' Batareyalarından istifadə edərək Altoid IPOD Şarj Cihazını dəyişdirin: Bu layihənin məqsədi 3 (şarj edilə bilən) 'AA' batareyası ilə işləyən səmərəli Altoids qalay iPod (firewire) şarj cihazı qurmaq idi. Bu layihə Sky ilə PCB dizaynı və inşası, mən isə dövrə və küknar üzərində birgə bir səy olaraq başladı