Мазмұны:
- Жабдықтар
- 1 -қадам: Raspberry Pi орнату
- 2 -қадам: электрониканы орналастыру
- 3 -қадам: Мәліметтер қорын жобалау
- 4 -қадам: TTN бойынша есептік жазбаны орнату
- 5 -қадам: Arduino орнату
- 6 -қадам: Артқы жағын орнату
- 7 -қадам: Frontend орнату
- 8 -қадам: қаптаманы қосу
Бейне: Қорапты алу: 8 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Capture The Box - бұл команда құруға арналған ойын, сіз көршілеріңізбен достарыңызбен ойнай аласыз.
Мақсат - қорапты басып алу және оны мүмкіндігінше ұзақ уақыт сіздің иелігіңізде ұстау, ал басқа ойыншылар оны сіздің подъезден немесе алдыңғы бақшадан алып кетуге тырысады.
Бұл ойын қорапты табу үшін GPS және ойыншыларды анықтау үшін RFID тегтерін қолданады. Нүктелік матрицаның дисплейінің қарқындылығын аймақтағы жарық пайызына сәйкестендіру үшін қосымша LDR қосуға болады.
Жабдықтар
Микроконтроллерлер мен компьютерлер
- Raspberry Pi
- Arduino (Mega) Мен қарапайым Uno -дан 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 - бұл жобаның жүрегі.
Ол frontend, backend және мәліметтер базасын басқарады. Ол сонымен қатар артқы және 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 apt install phpmyadmin -y
MySQL қауіпсіз паролін орнатуды ұмытпаңыз.
4 -бөлім: Қажетті Python кітапханаларын орнату
Артқы жағы үшін бізге кейбір кітапханалар қажет болады. Оларды pip3 пәрмені арқылы орнатуға болады.
pip3 mysql-Connector-python орнатыңыз
pip3 колба-розеткасын орнатады
pip3 колбаны орнатады
pip3 geventpip3 орнату gevent-websocket
pip3 ttn орнатыңыз
2 -қадам: электрониканы орналастыру
Бұл жобаны іске асыру үшін бізге барлық электрониканы қосу керек.
LoRa қалқанын оңай орнына қоюға болады. Тек түйреуіштерді Arduino құрылғысындағы түйреуіштермен туралаңыз.
Басқа қосылулар менің Fritzing схемасында сипатталған. Қайсысын мына жерден жүктеуге болады:
3 -қадам: Мәліметтер қорын жобалау
Ойын мен сенсорлардың барлық деректерін сақтау үшін мен бірнеше кесте жасадым:
датчиктерден алынған өлшеу датчиктер кестесінен табылған, онда сенсорға сілтеме, өлшеу мәні (мысалы, көрсеткіштер: 51.123456; 3.123456) және қосымша ойын идентификаторы (егер ойын өлшеу кезінде белсенді болса).
ойыншы аттары және олардың RFID белгісінің UID. Қосымша далалық модератор қосылады, бұл адам ойынды өзгерте алады (мысалы, оны уақытынан бұрын тоқтату).
ойын туралы ақпарат (басталу және аяқталу уақыты).
spel_has_speler spel мен speler арасындағы байланыс. Бұл жерде ойыншылар ойынға тағайындалады.
Бұл кестеде балл сақталады. Онда ойын идентификаторы, ойыншының идентификаторы, қорапты ұрлаған уақыт және оны жоғалтқан уақыт (басқа біреу ұрлаған кезде немесе ойын аяқталғанда) бар. Аяқталу уақытынан басталу уақытын шегере отырып, сіз сол түсірілімнен алған ұпайыңызды есептей аласыз.
Дерекқордың экспортын менің GitHub сайтынан табуға болады (https://github.com/BoussonKarel/CaptureTheBox)
PHPMyAdmin / MySQL Workbench бағдарламасында sql ашыңыз және оны іске қосыңыз. Енді мәліметтер базасы импортталуы керек.
4 -қадам: TTN бойынша есептік жазбаны орнату
1 -қадам: TTN -де тіркелгіге тіркеліңіз және қосымша жасаңыз
TheThingsNetwork -те тіркелгіге жазылыңыз, содан кейін Консоль> Қолданба қосу тармағына өтіңіз.
Қолданбаның атын таңдап, Қолданба қосу түймесін басыңыз.
2 -қадам: құрылғыны тіркеу
Өтініш бергеннен кейін «Құрылғыны тіркеу» бөліміне өтіңіз.
Құрылғы идентификаторын таңдаңыз, бұл сіз қалаған нәрсе болуы мүмкін (егер ол жылан болса) және Тіркеу түймешігін басыңыз.
Құрылғы EUI астындағы Жасау белгішесін нұқыңыз, сонда TTN сізге біреуін жасайды.
3 -қадам: Сенім грамоталарын жазу
Енді Құрылғыға өтіп, Құрылғы EUI, Қолданба EUI және Қолданба кілтінің жанындағы Код белгісін нұқыңыз. Ол енді байт жиымы ретінде көрінуі керек.
Көшірмес бұрын Ауыстыру түймесін басып, Dev EUI мен App EUI LSB FIRST екеніне көз жеткізіңіз.
Қолданба кілті MSB FIRST күйінде қалуы керек (мұны өзгертпеңіз).
Келесі қадамда сізге осы кілттер қажет болады: Arduino орнату.
4 -қадам: Қолданбаның Acces кілтін жазу
Енді Raspberry Pi -де MQTT орнату үшін бізге тағы бір кілт қажет.
Қолданбаға өтіп, Acces кілттеріне төмен жылжыңыз.
Бұл сізге Backend қадамында қажет болады.
5 -қадам: Arduino орнату
Arduino кодын Arduino астындағы GitHub -тан табуға болады (https://github.com/BoussonKarel/CaptureTheBox)
Бұл код реттелуі үшін бірнеше қойындыға бөлінген.
main.ino Негізгі код: пин декларациялары, setup () және loop ()
0_LoRa.inoБұл код LoRa көмегімен байланысты басқарады.
Ол LDR, GPS және RFID тегтерінің деректерін 13 байтқа орналастырады және оны TheThingsNetwork -ке жібереді.
1_LDR.ino analogRead () көмегімен ол жарыққа тәуелді резистордағы кернеудің мөлшерін өлшейді.
Содан кейін бұл жарықтың пайызына айналады (0 ештеңе емес, 100 ұялы телефон шамы).
2_GPS.inoБұл TX1 және RX1 (Serial1) арқылы сериялық байланысты пайдаланады.
Ол қораптың ені мен ұзындығын табу үшін NMEA хабарламаларын (дәлірек айтқанда $ GPRMC хабарламалары) пайдаланады.
3_RFID.ino MFRC522 кітапханасын қолдана отырып, бұл код жаңа RFID тегтерін іздейді, ол болған кезде ол RFID_lastUID ретінде сақталады.
4_DotMatrix.
Оны реттеу
Бұл кодты Arduino -ға жүктемес бұрын бірнеше кітапхананы орнату қажет.
Matthijskooijman Arduino-LMIC кітапханасы (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) деп аталатын айнымалыға сақталады.
- Егер режим Serial күйіне орнатылса, Arduino мен Pi арасында кабель пайдаланылады. LDR мен GPS мәндері үшін Pi сауалнамалары. Arduino JSON форматында жауап береді. RFID тегтері ұсынылған сайын жіберіледі, бұл режим тек даму мақсатында қолданылған және енді қажет емес.
- Егер режим LoRa күйіне орнатылса, LoTa деректерін TTN қабылдаған сайын кері шақыруды шақыратын MQTT клиенті құрылады. Бұл LDR, GPS және RFID деректерін қамтиды.
- Frontend API соңғы нүктелерін пайдаланып деректерді ала алады. Деректердің көбі huidigSpel.id көмегімен алынады. Деректер JSON форматында jsonify () көмегімен қайтарылады.
Параметрлерді өзгертіңіз Secret.py сайтына өтіп, LoRa қосымшасының атын және Acces кілтін енгізіңіз (сіз бұрын жазғансыз).
Config.py сайтына өтіп, мәліметтер базасының тіркелгі деректерін толтырыңыз (мысалы, құпия сөз, пайдаланушы …)
Оны қызмет ретінде орнату App.py -ді іске қосып көріңіз, бұл жұмыс істеп тұрғанын растағаннан кейін, біз оны қызмет ретінде пайдалана аламыз, бұл сіздің пи -ні жүктеген кезде кодты фонда автоматты түрде бастайды.
Бұл әрекетті орындау үшін 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 басып шығару
- Батареяны орнында ұстауға арналған көбік
- Қайта өңделген ағаш тақтайшалар
- Ыстық желім
- Бұрандалар мен жаңғақтар
Сіздің ісіңізбен не істейтініңіз - сіздің таңдауыңыз! Мен саған көркемдік еркіндік беремін.
Шабыт алу үшін мен өзімнің (аяқталған) кейсімнің фотосуреттерін қостым.
Ұсынылған:
Компьютерлік қорапты ауыстыру: 6 қадам (суреттермен)
Компьютерлік қорапты ауыстыру: Мен жақында компьютердің қорабындағы қуат қосқышын ауыстыруға тура келді және оны бөлісу пайдалы болар деп ойладым. бұл өте қарапайым және компьютерлік корпуста қарапайым қосқышты орнату үшін 7 беттен артық болады. Нақты
«Қорапты бағалайды» - сіз өзіңіздің басыңызға сыйғызатын модель: 7 қадам
«Хидс қорапшасы» - сіз өзіңіздің басыңызға сыйғыза алатын модель: Мен жапон картон ойыншықтары туралы естідім, онда басы бүкіл модельге арналған қорапқа айналды. Мен интернеттен іздеуге тырыстым, бірақ сәтсіз болды. Немесе мен сәтті болдым, бірақ жапон жазуын оқи алмадым ба?
Ультракүлгін санитарлық қорапты қалай жасауға болады: 5 қадам
Ультракүлгін санитарлық қорапты қалай жасауға болады: Бұл жобада біз ультрафиолет тырнақтарын емдеуге арналған қорапты бұзып, оны ультракүлгін санитарлық қорапқа айналдырамыз. Ковид 19 - бүкіл әлемге таралған пандемия, денсаулық сақтау жүйесі бұзылған және ЖҚҚ қажет. ЖҚҚ жаңасын сатып алудың орнына қайта қолдану
MP3 дауыстық модулімен фазалық қорапты қалай жасауға болады: 4 қадам
MP3 дауыстық модулімен фазалық қорапты қалай жасауға болады: Менде соңғы DIY жобасынан еске түсіретін кристалды эпоксидті шайыр бар, мен оны ысырап еткім келмейді. Үнемдеу қағидаттары бойынша мен эпоксидті өз қолыммен қолданамын деп шештім. Кейде сіз депрессияға түскенде, сөйлегіңіз келмейді. Мен тек
Сирек жер магниттерін алу үшін жұмыс үстелінің қатты дискісін бөліп алу: 8 қадам
Сирек жер магниттерін алу үшін жұмыс үстеліндегі қатты дискіні бөліп алу: Бұл нұсқаулықта мен сізге компьютердің қатты дискісін ажырату және одан сирек кездесетін жер магниттерін алу қадамдарын көрсетемін