Satura rādītājs:
- 1. darbība: 1. darbība: kas man būs vajadzīgs?
- 2. darbība: 2. darbība: izveidojiet datu bāzes shēmu
- 3. darbība: 3. darbība: kodēšana
- 4. darbība: 4. darbība: koda ievietošana manā Raspberry Pi
- 5. darbība: 5. darbība: mājokļa izgatavošana
- 6. darbība: 6. darbība: visu ievietojiet korpusā
Video: Taustiņu šķirotājs: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Pašlaik es studēju NMCT Howest. Pēdējā semestrī mums bija jāizstrādā projekts. Tāpēc es uztaisīju atslēgu šķirotāju.
Ko tas dara?
Mums mājās ir daudz automašīnu atslēgu, un tās visas izskatās līdzīgas. Tāpēc es izveidoju atslēgu šķirotāju, lai atrisinātu šo problēmu.
Tam ir jānoskenē atslēga, izmantojot RFID, un jādod tai vieta kastē. Ja vēlreiz skenēšu to pašu atslēgu, tiks parādīta viņa iepriekš piešķirtā vieta. Ir arī poga, lai parādītu pēdējo mazgāto automašīnu.
Tas viss darbosies ar Raspberry Pi, kam ir arī iespēja pievienot tīmekļa lapu, izmantojot kolbu.
Lapā man vajadzētu būt iespējai apskatīt visus taustiņus, pievienot atslēgai nosaukumu un noņemt atslēgu.
1. darbība: 1. darbība: kas man būs vajadzīgs?
Es sāku, sastādot sarakstu ar komponentiem, kas man būs nepieciešami, lai šī lieta darbotos.
Sastāvdaļas:
- Aveņu pi
- 2 x maiņu reģistrs (74hc595)
- 3 x poga
- 9 x zaļas gaismas diodes
- RFID skeneris (MFRC522)
- 12 x rezistors 220 omi
Tad es to visu ievietoju savā fritzing shēmā.
Kad es to izdarīju, es to paveicu reālajā dzīvē.
2. darbība: 2. darbība: izveidojiet datu bāzes shēmu
Lai saglabātu visus savus datus, man bija jāizveido datu bāze, kas varētu darboties ar manu Pi.
Es to izveidoju Mysql.
Galda automašīna:
- Automašīnas ID
- Lietotāja ID
- Zīmols (automašīnas marka)
- Tips
- Pēdējo reizi mazgāta
- Atslēga
- RFID_ID
3. darbība: 3. darbība: kodēšana
Kad tas viss bija gatavs, es varēju sākt kodēt.
Es sāku, izveidojot sava sensora kodu Python 3.5.
Lai lejupielādētu kodu, noklikšķiniet šeit.
Izmantojiet saiti, lai klonētu projektu.
4. darbība: 4. darbība: koda ievietošana manā Raspberry Pi
Pakotņu instalēšana
Vispirms es instalēju visas paketes, kas vajadzīgas, lai tas darbotos.
me@my-rpi: ~ $ sudo apt atjauninājums
me@my-rpi: ~ $ sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3
Virtuālā vide
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 --sistēma- vietņu paketes env me@my-rpi: ~/project1 $ source env/bin/aktivizēt (env) me@my-rpi: ~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Kolbas-MySQL mysql-savienotāja-python piekļuves kods
Augšupielādējiet projektu savā Pi, izmantojot pycharm
Atveriet Pycharm un dodieties uz VCS> Importēt no versiju kontroles> Github un klonējiet manu github failu.
Ievietojiet izvietošanas konfigurāciju tikko izveidotajā direktorijā. (/home/me/project1). Spied pieteikties!
Dodieties uz tulka iestatījumiem un izvēlieties tikko izveidoto virtuālo vidi. (/home/me/project1/env/bin/pyhon)
Pārbaudiet, vai ceļa kartēšana ir pareiza.
Tagad jūs varat augšupielādēt kodu savā direktorijā, izmantojot Pycharm.
Datu bāze
Pārbaudiet, vai datu bāze darbojas. Jums vajadzētu iegūt kaut ko līdzīgu šim:
me@my -rpi: ~ $ sudo systemctl statuss mysql ● mariadb.service - MariaDB datu bāzes serveris Ielādēts: ielādēts (/lib/systemd/system/mariadb.service; iespējots; pārdevēja iepriekš iestatīts: iespējots) Aktīvs: aktīvs (darbojas) kopš Sun 2018-06-03 09:41:18 CEST; Pirms 1 dienas 4 stundām Galvenais PID: 781 (mysqld) Statuss: "Tagad tiek pieņemti jūsu SQL pieprasījumi …" Uzdevumi: 28 (ierobežojums: 4915) CGroup: /system.slice/mariadb.service └─781/usr/sbin/mysqld
3. jūnijs 09:41:13 my-rpi systemd [1]: tiek palaists MariaDB datu bāzes serveris… usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) 3. jūnijs 09:41:18 my-rpi systemd [1]: startēja MariaDB datu bāzes serveris.
es@mans -rpi: ~ $ ss -lt | grep mysql KLAUSIES 0 80 127.0.0.1:mysql *: *
Izveidojiet lietotājus un pievienojiet datu bāzi
es@my-rpi: ~ $ sudo mariadb
kad esat datu bāzē, dariet to.
IZVEIDOT LIETOTĀJU 'project1-admin'@'localhost' IDENTIFICED by 'adminpassword'; CREATE USER 'project1-web'@'localhost' IDENTIFIED by 'webpassword'; IZVEIDOT LIETOTĀJU 'project1-sensor'@'localhost' IDENTIFICĒTA ar 'sensorpassword';
CREATE DATABASE projekts1;
Piešķiriet visas privilēģijas projektam1.* "Project1-admin"@'localhost' AR GRANT OPTION; GRANT SELECT, INSERT, UPDATE, DELETE ON project1.* TO 'project1-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON project1.* TO 'project1-sensor'@'localhost'; FLUSH PRIVILĒGAS;
CREATE TABLE "user" ("idUser" int (11) NOT NULL, "Password" varchar (45) DEFAULT NULL, PRIMARY KEY ("idUser")) DZINĒJS = InnoDB DEFAULT CHARSET = utf8
CREATE TABLE "car" ("idCar" int (11) NOT NULL AUTO_INCREMENT, "idUser" int (11) NOT NULL, "Brand" varchar (45) DEFAULT NULL, "Type" varchar (45) DEFAULT NULL, "LastWashed" datuma laiks DEFAULT NULL, "RFID_Number" varchar (15) DEFAULT NULL, "Key" varchar (5) DEFAULT NULL, PRIMARY KEY ("idCar", "idUser"), KEY "fk_Car_User1_idx" ("idUser"), CONSTRAINT ĀRĒJĀ ATSLĒGA ("idUser") ATSAUCES "lietotājs" ("idUser") IZSLĒGT NAV DARBĪBAS ATJAUNINĀT NAV DARBĪBAS) DZINĒJS = InnoDB AUTO_INCREMENT = 4 DEFAULT CHARSET = utf8
Savienojiet savu datu bāzi ar Pycharm
Noklikšķiniet uz datu bāzes cilnes labajā pusē. Ja cilne nav atvērta, rīkojieties šādi: Skatīt> Rīks Windows> Datu bāze.
Noklikšķiniet uz Pievienot savienojumu. Izvēlieties Datu avots> MySQL (ja ir pogas lejupielādes draiveris, nospiediet to.)
Dodieties uz SSH/SSL un pārbaudiet SSH. Aizpildiet savus Raspberry pi akreditācijas datus (resursdators/lietotājs/parole). Portam jābūt 22 un neaizmirstiet pārbaudīt paroles atcerēšanos.
Atgriezieties pie ģenerāļa. Saimniekdatoram jābūt lokālajam saimniekdatoram, bet datu bāzei - projektam1. Lai pārbaudītu savienojumu, aizpildiet akreditācijas datus no projekta1-admin.
Ja savienojums ir kārtībā, dodieties uz cilni Shēmas un pārliecinieties, vai ir atzīmēts projekts1.
Pārbaudiet, vai datu bāze ir pareiza
me@my-rpi: ~ $ echo 'rādīt tabulas;' | mysql project1 -t -u project1-admin -p Ievadiet paroli: + --------------------------- + | Tabulas_projektā1 | + ---------------------------+ | sensors | | lietotāji | +---------------------------+
Konfigurācijas faili
Katalogā conf jūs atradīsit 4 failus. Jums vajadzētu mainīt lietotājvārdus uz savu lietotājvārdu.
Sist
Lai sāktu visu, jums jāizpilda šīs komandas.
me@my-rpi: ~/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/
me@my-rpi: ~/project1 $ sudo systemctl dēmons-atkārtoti ielādējiet mani@my-rpi: ~/project1 $ sudo systemctl start project1-* me@my-rpi: ~/project1 $ sudo systemctl status project1-* ● project1- flask.service-uWSGI instance, lai apkalpotu projekta1 tīmekļa saskarni. Ielādēts: ielādēts (/etc/systemd/system/project1-flask.service; atspējots; iepriekš iestatīts piegādātājs: iespējots) Aktīvs: aktīvs (darbojas) kopš pirmdienas 2018-06-04 13: 14:56 CEST; Pirms 1 s Galvenais PID: 6618 (uwsgi) Uzdevumi: 6 (limits: 4915) CGroup: /system.slice/project1-flask.service ├─6618/usr/bin/uwsgi --ini/home/me/project1/conf/ 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/ project1/conf/uwsgi-flask.ini └─6624/usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini
4. jūnijs 13:14:56 my-rpi uwsgi [6618]: kartēti 383928 baiti (374 KB) 5 kodoliem.
● project1-sensor.service-1. projekta sensoru pakalpojums Ielādēts: ielādēts (/etc/systemd/system/project1-sensor.service; atspējots; iepriekš iestatīts piegādātājs: iespējots) Aktīvs: aktīvs (darbojas) kopš pirmdienas 2018-06-04 13: 16:49 CEST; Pirms 5 sekundēm Galvenais PID: 6826 (python) Uzdevumi: 1 (limits: 4915) CGroup: /system.slice/project1-sensor.service └─6826/home/me/project1/env/bin/python/home/me/project1 /sensor/sensor.py
4. jūnijs 13:16:49 my-rpi systemd [1]: sākts projekta 1 sensoru pakalpojums. 4. jūnijs 13:16:49 my-rpi python [6826]: DEBUG: _ main _: Sensora process_count = b'217 / n 'datu bāzē Datu bāzē saglabāts sensora process_count = b'218 / n '
nginx
es@mans-rpi: ~/project1 $ ls -l/etc/nginx/sites-*
/etc/nginx/sites-available: kopā 4 -rw-r-r-- 1 saknes sakne 2416 2017. gada 12. jūlijs noklusējums
/etc/nginx/sites-enabled: kopā 0 lrwxrwxrwx 1 saknes sakne 34 18. janvāris 13:25 noklusējums->/etc/nginx/sites-available/default
Lai viss būtu noklusēts, izpildiet šīs komandas.
me@my-rpi: ~/project1 $ sudo cp conf/nginx/etc/nginx/sites-available/project1me@my-rpi: ~/project1 $ sudo rm/etc/nginx/sites-enabled/noklusējuma es@my- rpi: ~/project1 $ sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project1 me@my-rpi: ~/project1 $ sudo systemctl restart nginx.service
Automātiskā palaišana
Pārliecināsimies, ka viss sākas automātiski.
Dodieties uz conf direktoriju un izpildiet šīs pēdējās komandas, un esat pabeidzis!
me@my-rpi: ~/project1 $ sudo systemctl iespējot projektu1-*
Ja jūs pārstartējat savu Pi, tam vajadzētu sākt automātiski.
5. darbība: 5. darbība: mājokļa izgatavošana
Pārstrāde
Lai izveidotu savu mājokli, es izmantoju veco skapi, kuru mamma izmetīs.
bāze
Es zāģēju 4 dēļus (34 cm x 26 cm). (tātad tas ir kubs no 34 x 34 x 26).
Apakšā es pievienoju plānu koka gabalu kā apakšējo.
Dēlis ar lediem
Pa vidu katrā pusē esmu ievietojis 2 mazus koka gabalus, abi 9 cm attālumā no augšas. Tas tur dēli, kur sēdēs vadītāji.
Dēlis ar LED ir mazs dēlis (32 cm x 32 cm).
Es izurbju 9 caurumus, lai gaismas diodes varētu izkļūt.
sadalīšana
Es izveidoju sadalījumu ar tādu pašu materiālu kā apakšā un dēli ar lediem.
Katrs 4 gabali ar griezumu 10,3 cm (9 cm x 31 cm). Tagad es varu tos salikt kopā.
Pogas un RFID lasītājs
Es izveidoju caurumu pamatnē, lai ievietotu savu RFID lasītāju un pogas. RFID priekšpusē es ievietoju plānu tāfeles gabalu, lai tas izskatītos tīrāks.
6. darbība: 6. darbība: visu ievietojiet korpusā
Tas ir atkarīgs no tā, kā vēlaties to izdarīt. Es personīgi izmantoju daudz kabeļu bez lodēšanas, jo vēlos atkārtoti izmantot savu Raspberry Pi.
Es līmēju gaismas diodes vietā un pielīmēju RFID lasītāju un maizes dēļus pie korpusa.
Un tā jūs veidojat atslēgas šķirošanu!
Ieteicams:
Krāsu šķirotājs: 6 soļi
Krāsu šķirotājs: šis krāsu šķirošanas mērķis ir pārvietot m & ms dažādās kaudzēs, pamatojoties uz to krāsu
Taustiņu atgādinājums: 4 soļi
Atslēgas atgādinājums: Šis Arduino projekts ir atgādinājuma mašīna, lai palīdzētu tiem, kuri aizmirst regulāri paņemt līdzi atslēgas. Kā parasti, noliekot atslēgas uz galda, jūs varat aizmirst to paņemt. Tātad, šajā projektā tiek izmantots ultraskaņas sensors, piemēram, kad lietotājs nonāk tuvu
Arduino - Pjezo trīs taustiņu klavieres: 4 soļi
Arduino - pjezo trīs taustiņu klavieres: klavieres ar trim pogām ir projekts iesācējiem ar zināmu pieredzi Arduino lietošanā. Es biju netīši uzbudināts, mēģinot to izveidot, pirmo reizi spēlējoties ar pjezo skaņas signālu. Tas bija TIK skaļi! Mēģinot noskaidrot dažādus
2 taustiņu tastatūra Osu !: 6 soļi
2 taustiņu tastatūra Osu !: Šajā apmācībā jūs zināt, kā izveidot divu taustiņu tastatūru osu! Lūdzu, sekojiet norādījumiem
Taustiņu makro: 6 soļi (ar attēliem)
Taustiņu makro: Šis projekts sastāv no papildu astoņu taustiņu tastatūras, kas nosūta makro (teksta virknes) uz datoru. Iepriekš microSD kartē saglabātā teksta failā var saglabāt līdz 64 makro. Šie makro ir sakārtoti astoņās lapās, kuras var atlasīt