Բովանդակություն:
- Քայլ 1: Քայլ 1. Ի՞նչ է ինձ պետք:
- Քայլ 2: Քայլ 2: Տվյալների բազայի սխեմատիկ ձևավորում
- Քայլ 3: Քայլ 3: Կոդավորում
- Քայլ 4: Քայլ 4. Ալ Օրենսգիրքը դնել Իմ ազնվամորի Pi- ի վրա
- Քայլ 5: Քայլ 5: Բնակարան պատրաստելը:
- Քայլ 6: Քայլ 6: Ամեն ինչ դնել բնակարանի մեջ:
Video: Ստեղնաշար ՝ 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:50
Ես այժմ սովորում եմ NMCT Howest- ում: Մեր վերջին կիսամյակի համար մենք պետք է նախագիծ կազմեինք: Այսպիսով, ես պատրաստեցի Keysorter:
Ինչ է այն անում?
Մենք տանը ունենք մեքենայի բանալիներ, և դրանք բոլորը նման են իրար: Այսպիսով, ես ստեղծեցի Keysorter ՝ այս հարցը լուծելու համար:
Այն պետք է սկանավորի բանալին RFID- ի միջոցով և տեղ տա վանդակում: Եթե նորից սկանավորեմ նույն բանալին, այն ցույց կտա նրա նախկինում նշանակված տեղը: Կա նաև վերջին լվացված մեքենան ցուցադրելու կոճակ:
Սա կաշխատի Raspberry Pi- ի վրա, որը նաև հնարավորություն ունի ավելացնել կայքէջը Flask- ի միջոցով:
Էջում ես պետք է կարողանամ նայել բոլոր ստեղներին, ավելացնել բանալիի անուն և հեռացնել բանալին:
Քայլ 1: Քայլ 1. Ի՞նչ է ինձ պետք:
Ես սկսեցի կազմելով բաղադրիչների ցուցակ, որոնք ինձ պետք կգան այս բանը աշխատեցնելու համար:
Բաղադրիչներ:
- Ազնվամորի պի
- 2 x Shift գրանցամատյան (74hc595)
- 3 x կոճակ
- 9 x կանաչ լեդ
- RFID սկաներ (MFRC522)
- 12 x դիմադրություն 220 օմ
Հետո ես այս ամենը դրեցի իմ ցնցող սխեմատիկայում:
Երբ ես դա արեցի, ես դա հասցրեցի իրական կյանքում:
Քայլ 2: Քայլ 2: Տվյալների բազայի սխեմատիկ ձևավորում
Իմ բոլոր տվյալները պահելու համար ես պետք է ստեղծեի տվյալների բազա, որը կարող էր աշխատել իմ Pi- ով:
Ես այն պատրաստել եմ Mysql- ում:
Սեղանի մեքենա
- Մեքենայի ID
- օգտագործողի այ - Դի
- Ապրանքանիշ (ավտոմեքենայի ապրանքանիշ)
- Տիպ
- Վերջին անգամ լվացվել է
- Բանալի
- RFID_ID
Քայլ 3: Քայլ 3: Կոդավորում
Երբ այս ամենը պատրաստ լիներ, ես կարող էի սկսել կոդավորումը:
Ես սկսեցի Python 3.5 -ում իմ տվիչի կոդը կազմել:
Կոդը ներբեռնելու համար կտտացրեք այստեղ:
Օգտագործեք հղումը `նախագիծը կլոնավորելու համար:
Քայլ 4: Քայլ 4. Ալ Օրենսգիրքը դնել Իմ ազնվամորի Pi- ի վրա
Փաթեթների տեղադրում
Սկզբում ես տեղադրեցի այն փաթեթները, որոնք ինձ անհրաժեշտ էին այս աշխատանքը կատարելու համար:
me@my-rpi: ~ $ sudo տեղին թարմացում
me@my-rpi: ~ $ sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3
Վիրտուալ միջավայր
me@my-rpi: ~ $ python3 -m pip install-upgrade pip setuptools wheel virtualenvme@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi:/project1 $ python3 -m venv --system- site-packages env me@my-rpi:/project1 $ source env/bin/activ (env) me@my-rpi: ~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib
Վերբեռնեք նախագիծը ձեր Pi- ի վրա ՝ օգտագործելով pycharm
Բացեք Pycharm- ը և գնացեք VCS> Import from Version Control> Github և կլոնավորեք իմ github ֆայլը:
Տեղադրեք կազմաձևումը ձեր ստեղծած գրացուցակում: (/տուն/ինձ/նախագիծ 1): Կտտացրեք կիրառել:
Գնացեք թարգմանչի կարգավորումներ և ընտրեք ձեր ստեղծած վիրտուալ միջավայրը: (/home/me/project1/env/bin/pyhon)
Ստուգեք, արդյոք ուղու քարտեզագրումը ճիշտ է:
Այժմ կարող եք ծածկագիրը վերբեռնել ձեր գրացուցակում ՝ օգտագործելով Pycharm- ը:
Տվյալների շտեմարան
Ստուգեք, արդյոք տվյալների բազան աշխատում է: Դուք պետք է ստանաք այսպիսի բան.
me@my -rpi: ~ $ sudo systemctl կարգավիճակ mysql ● mariadb.service - MariaDB տվյալների բազայի սերվեր Բեռնված է. բեռնված (բեռնված 2018-06-03 09:41:18 CEST; 1 օր 4 ժամ առաջ Հիմնական PID: 781 (mysqld) Կարգավիճակ. «Ձեր SQL հարցումները հիմա ընդունելով …» Առաջադրանքներ ՝ 28 (սահմանափակում ՝ 4915) C Խումբ ՝ /system.slice/mariadb.service └─781/usr/sbin/mysqld
Հունիսի 03 09:41:13 my-rpi systemd [1]. MariaDB տվյալների բազայի սերվերի գործարկում… հունիսի 03 09:41:15 my-rpi mysqld [781]: 2018-06-03 9:41:15 4144859136 [Նշում] / usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) հունիսի 03 09:41:18 my-rpi systemd [1] ՝ գործարկված MariaDB տվյալների բազայի սերվեր:
me@my -rpi: ~ $ ss -lt | grep mysql ԼՍԵԼ 0 80 127.0.0.1:mysql *: *
Ստեղծեք օգտվողներ և ավելացրեք տվյալների բազան
me@my-rpi: ~ $ sudo mariadb
տվյալների բազայում լինելուց հետո դա արեք:
Ստեղծել օգտվող 'project1-admin'@'localhost' IDENTIFIED BY 'adminpassword'; CREATE USER 'project1-web'@'localhost' IDENTIFIED BY 'webpassword'; CREATE USER 'project1-sensor'@'localhost' IDENTIFIED BY by 'sensorpassword';
Ստեղծել տվյալների շտեմարան նախագիծ 1;
ՏՐԱՄԱԴՐԵԼ ԲՈԼՈՐ ԱՐՏԱՀԱՆՈՈԹՅՈ projectՆՆԵՐԸ project1.*-ին 'project1-admin'@'localhost'-ին `ՏՐԱՄԱԴՐՈԹՅԱՆ ԸՆՏՐՈԹՅՈՆՈՎ; ՏՐԱՄԱԴՐՈԹՅԱՆ ԸՆՏՐՈԹՅՈՆ, ՏԵSԱԴՐՈՄ, ԹԱՐՄԱՆԵԼ, LEՆTEԵԼ նախագիծը 1.* Դեպի 'project1-web'@'localhost'; ՏՐԱՄԱԴՐՈԹՅԱՆ ԸՆՏՐՈԹՅՈՆ, ՆԵՐԿԱՅԱՆԵԼ, ԹԱՐՄԱՆԵԼ, DEՆTEԵԼ նախագիծը 1.* Դեպի 'project1-sensor'@'localhost'; FLԱՌԱՅԻՆ ԱՌԱIՆՈԹՅՈՆՆԵՐ;
ՍՏԵԵԼ ՍԱՀՈԼԻ `օգտվողի (« idUser` int (11) NOT NULL, «Գաղտնաբառ» varchar (45) DEFAULT NULL, PRIMARY KEY («idUser»)) ՇԱՐGԱԿԱՐԳ = InnoDB ՀԵՏԱՈՏԱԿԱՆ ՀԱՐՍԱՐԱՆ = utf8
ՍՏԵԵԼ ՍԵABԱՆԻ «մեքենա» («idCar` int (11) NOT NULL AUTO_INCREMENT,« idUser` int (11) NOT NULL, «Ապրանքանիշ» varchar (45) DEFAULT NULL, «Type» varchar (45) DEFAULT NULL, «LastWashed» datetime DEFAULT NULL, `RFID_Number` varchar (15) DEFAULT NULL,` Key` varchar (5) DEFAULT NULL, PRIMARY KEY (`idCar`,` idUser`), KEY `fk_Car_User1_idx` (` idUser`), ԱՐՏԱՔԻՆ ԲԱՆԱՅԻՆ («idUser») ԱՇԽԱՏԱՆՔՆԵՐԸ «օգտվող» («idUser») ՝ UՆTEԵԼՈ NO ԹԵՄԱՆ ԱՌՈՈԹՅՈ ONՆՆԵՐՈՎ ՈՉ ԳՈՐՈՈԹՅՈՆ) ՇԱՐGԻՉ = InnoDB AUTO_INCREMENT = 4 ՊԱՇՏՊԱՆՈARԹՅՈARՆ ՔԱՐՍԵԹ = utf8
Միացրեք ձեր տվյալների բազան Pycharm- ին
Կտտացրեք տվյալների բազայի ներդիրին աջ կողմում: Եթե ներդիրը բաց չէ, արեք դա. Դիտել> Գործիք Windows> Տվյալների բազա:
Կտտացրեք ավելացնել կապը: Ընտրեք տվյալների աղբյուր> MySQL (եթե ներբեռնման կոճակ կա, սեղմեք այն):
Գնացեք SSH/SSL և ստուգեք SSH: Լրացրեք ձեր Raspberry pi հավատարմագրերը (հյուրընկալող/օգտվող/գաղտնաբառ): Պորտը պետք է լինի 22 և մի մոռացեք ստուգել հիշելու գաղտնաբառը:
Վերադառնալ գեներալ: Հաղորդավարը պետք է լինի localhost, իսկ տվյալների բազան պետք է լինի նախագիծ 1: Լրացրեք project1-admin- ի հավատարմագրերը և ստուգեք կապը:
Եթե կապը կարգին է, ապա անցեք ներդիրի սխեմաներ և համոզվեք, որ նախագիծը 1 ստուգված է:
Ստուգեք, արդյոք տվյալների բազան ճիշտ է
me@my-rpi: ~ $ echo 'ցուցադրել սեղաններ;' | mysql project1 -t -u project1-admin -p Մուտքագրեք գաղտնաբառը ՝ + --------------------------- + | Աղյուսակներ_նախագծում 1 | + ---------------------------+ | տվիչ | | օգտվողներ | +-------------------------------+
Կազմաձևման ֆայլեր
Գրացուցակի conf- ում դուք կգտնեք 4 ֆայլ: Դուք պետք է օգտագործողի անունները փոխեք ձեր օգտվողի անունով:
Համակարգված
Ամեն ինչ սկսելու համար դուք պետք է կատարեք այս հրամանները:
me@my-rpi: ~/project1 $ sudo cp conf/project1-*. ծառայություն/այլն/systemd/system/
me@my-rpi:/project1 $ sudo systemctl daemon-reload me@my-rpi:/project1 $ sudo systemctl start project1-* me@my-rpi: ~/project1 $ sudo systemctl կարգավիճակի նախագիծ1-* ● project1- flask.service-uWSGI օրինակը ՝ նախագծի 1 վեբ ինտերֆեյսը սպասարկելու համար, բեռնված է. բեռնված 14:56 CEST; 1 առաջ uwsgi-flask.ini ├─6620/usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini ├─6621/usr/bin/uwsgi --ini/home/me/project1/ conf/uwsgi-flask.ini ├─6622/usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini ├─6623/usr/bin/uwsgi --ini/home/me/ նախագիծ 1/conf/uwsgi-flask.ini └─6624/usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini
Հունիսի 04 13:14:56 my-rpi uwsgi [6618] ՝ քարտեզագրված 383928 բայթ (374 ԿԲ) 5 միջուկի համար հունիսի 04 13:14:56 my-rpi uwsgi [6618]: *** Գործառնական ռեժիմ ՝ նախապատրաստում ***
● project1-sensor.service-Project 1 սենսորային ծառայություն Բեռնված է. Բեռնված 16:49 CEST; 5s առաջ Հիմնական PID: 6826 (պիթոն) Առաջադրանքներ ՝ 1 (սահմանափակում ՝ 4915) C Խումբ ՝ /system.slice/project1-sensor.service └─6826/home/me/project1/env/bin/python/home/me/project1 /sensor/sensor.py
Հունիսի 04 13:16:49 my-rpi systemd [1]. Սկսվել է Project 1 սենսորային ծառայությունը: Հունիսի 04 13:16:49 my-rpi python [6826]: DEBUG: _ main _: Պահված սենսորային գործընթացի_հաշիվ = b'217 / n 'տվյալների բազայում հունիսի 04 13:16:55 my-rpi python [6826]: DEBUG: _ main_: Պահված սենսորի process_count = b'218 / n 'տվյալների բազայում
nginx
me@my-rpi: ~/project1 $ ls -l/etc/nginx/sites-*
/etc/nginx/sites-available: total 4 -rw-r-r-- 1 արմատային արմատ 2416 Հուլիս 12 2017 կանխադրված
/etc/nginx/sites-enabled: ընդամենը 0 lrwxrwxrwx 1 արմատային արմատ 34 հունվարի 18 13:25 լռելյայն->/etc/nginx/sites-available/default
Ամեն ինչ կանխադրված դարձնելու համար կատարեք այս հրամանները:
me@my-rpi: ~/project1 $ sudo cp conf/nginx/etc/nginx/sites-available/project1me@my-rpi:/project1 $ sudo rm/etc/nginx/sites-enabled/default me@my- rpi:/project1 $ sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project1 me@my-rpi: ~/project1 $ sudo systemctl վերագործարկում nginx.service
Ավտոմատ մեկնարկ
Եկեք համոզվենք, որ ամեն ինչ ինքնաբերաբար է սկսվում:
Գնացեք conf գրացուցակում և կատարեք այս վերջին հրամանները, և դուք ավարտված եք:
me@my-rpi:/project1 $ sudo systemctl միացնել նախագիծը 1-*
Եթե վերագործարկեք ձեր Pi- ն, այն պետք է ինքնաբերաբար սկսվի:
Քայլ 5: Քայլ 5: Բնակարան պատրաստելը:
Վերամշակում
Բնակարանս կառուցելու համար ես օգտագործում էի հին պահարան, որը մայրս դեն էր նետում:
հիմք
Ես սղոցեցի 4 տախտակ (34 սմ x 26 սմ): (ուրեմն դա 34 x 34 x 26 խորանարդ է):
Ներքեւի մասում ես բարակ փայտ եմ ավելացրել որպես ներքև:
Տախտակ `led- ով
Մեջտեղում ես երկու փոքր փայտ եմ դնում յուրաքանչյուր կողմից, երկուսն էլ վերևից 9 սմ հեռավորության վրա: Սա պահում է տախտակը, որտեղ առաջնորդները նստելու են:
Լեդերի տախտակը փոքր տախտակ է (32 սմ x 32 սմ):
Ես 9 անցք եմ փորել, որպեսզի լեդերը դուրս գան:
բաժանում
Ես բաժանումը կատարեցի նույն նյութով, ինչպես ներքևը, և տախտակը `լեդերով:
4 -ական հատ ՝ 10,3 սմ (9 սմ x 31 սմ) կտրվածքով: Այժմ ես կարողանում եմ դրանք համատեղել:
Կոճակներ և RFID ընթերցող
Ես հիմք բացեցի, որպեսզի տեղադրեմ իմ RFID ընթերցողը և կոճակները: RFID- ի համար ես դրա դիմաց դրեցի բարակ կտոր, որպեսզի այն ավելի մաքուր տեսք ունենա:
Քայլ 6: Քայլ 6: Ամեն ինչ դնել բնակարանի մեջ:
Սա կախված է նրանից, թե ինչպես եք ցանկանում դա անել: Ես անձամբ շատ մալուխներ եմ օգտագործել առանց զոդման, քանի որ ցանկանում եմ կարողանալ նորից օգտագործել իմ Raspberry Pi- ն:
Ես սոսնձեցի լուսարձակները տեղում և կպցրեցի պատյանին RFID ընթերցողն ու տախտակները:
Եվ այդպես եք պատրաստում Keysorter:
Խորհուրդ ենք տալիս:
Arduino (AutoCAD) ShortCut ստեղնաշար ՝ 3 քայլ
Arduino (AutoCAD) ShortCut ստեղնաշար. Բարև բոլորին: Երկար ժամեր զննելուց և շատ զովացուցիչ իրեր նախագծելուց հետո ես վերջապես հասա ինչ -որ բան կառուցելու: Հետևաբար, պատրաստվեք իմ առաջին Ուսուցողական ծրագրին: Ես իմ շատ ժամեր եմ անցկացնում, ինչպես մասնագիտորեն, այնպես էլ զվարճանքի համար, արհամարհանքով
HotKeys ստեղնաշար ՝ հատուկ պրոֆիլներով ՝ 14 քայլ (նկարներով)
HotKeys ստեղնաշար ՝ անհատականացված պրոֆիլներով. Հուսով եմ, որ դուք լավ եք անում այս համաճարակի պայմաններում: Ապահով եղիր. Ուժեղ եղիր. #COVID19 Լինելով արդյունաբերական դիզայներ ՝ ես պետք է մուտք գործեմ ավելի քան 7-8 ծրագրակազմ, որն ամեն օր ներառում է Solidworks, Photoshop, Illustrator, Keyshot, Indesign և այլն, և այո, մի քանի գ
EngineersBuddy անլար ստեղնաշար, մկնիկ և մակրո ձայնագրիչ. 4 քայլ
EngineersBuddy Wireless Keyboard, Mouse and Macro Recorder. Սա ուսանելի է բացատրում, թե ինչպես օգտագործել Engineers Buddy- ն, ստեղնաշարը, մկնիկը և մակրո ձայնագրիչը: Այս Android հավելվածն աշխատում է Enginners Buddy ստեղնաշարի և մկնիկի էմուլյատոր սարքավորման մոդուլի հետ համատեղ: Մոդուլը կաշխատի ցանկացած HID համակարգչի հետ
Օսու! Ստեղնաշար ՝ 8 քայլ (նկարներով)
Օսու! Ստեղնաշար. Վերջերս ես սկսեցի խաղալ ռիթմիկ խաղ, որը կոչվում է osu! և առևտրային մինի ստեղնաշարի տեսահոլովակը տեսնելուց հետո ես մտածեցի, որ դա զվարճալի նախագիծ կլինի ինքս նախագծել: Դրանից շատ չանցած ես որոշեցի, որ լավ գաղափար կլինի այն դնել հրահանգների վրա, քանի որ
Արագ և կեղտոտ Das ստեղնաշար (դատարկ ստեղնաշար) ՝ 3 քայլ
Արագ և կեղտոտ Das ստեղնաշար (դատարկ ստեղնաշար). A Das ստեղնաշարն ամենահայտնի ստեղնաշարի անունն է, որի վրա գրություններ չկան ստեղների վրա (դատարկ ստեղնաշար): Das ստեղնաշարը վաճառվում է 89,95 դոլարով: Այս հրահանգը ձեզ կառաջնորդի, չնայած որ ինքներդ պատրաստեք այն ցանկացած հին ստեղնաշարով, որի շուրջը պառկած եք