Satura rādītājs:

Taustiņu šķirotājs: 6 soļi
Taustiņu šķirotājs: 6 soļi

Video: Taustiņu šķirotājs: 6 soļi

Video: Taustiņu šķirotājs: 6 soļi
Video: Переход. Я нашёл нечто страшное в доме своего дяди. Джеральд Даррелл 2024, Novembris
Anonim
Taustiņu šķirotājs
Taustiņu šķirotājs
Taustiņu šķirotājs
Taustiņu šķirotājs

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?

1. darbība. Kas man būs vajadzīgs?
1. darbība. Kas man būs vajadzīgs?
1. darbība. Kas man būs vajadzīgs?
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

2. darbība: izveidojiet datu bāzes shēmu
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

3. darbība: kodēšana
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

5. solis: mājokļa izgatavošana
5. solis: mājokļa izgatavošana
5. solis: mājokļa izgatavošana
5. solis: mājokļa izgatavošana
5. solis: mājokļa izgatavošana
5. solis: mājokļa izgatavošana
5. solis: mājokļa izgatavošana
5. solis: 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: