Indholdsfortegnelse:
- Trin 1: Trin 1: Hvad skal jeg bruge?
- Trin 2: Trin 2: Lav en skematisk database
- Trin 3: Trin 3: Kodning
- Trin 4: Trin 4: Sæt al koden på My Raspberry Pi
- Trin 5: Trin 5: Lav et hus
- Trin 6: Trin 6: Læg alt i huset
Video: Nøglesortering: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Jeg læser i øjeblikket NMCT på Howest. I vores sidste semester måtte vi lave et projekt. Så jeg lavede en Keysorter.
Hvad gør den?
Vi har mange bilnøgler derhjemme, og de ligner alle ens. Så jeg lavede en Keysorter for at løse dette problem.
Den skal scanne en nøgle ind via RFID og give den et sted i boksen. Hvis jeg scanner den samme nøgle igen, viser det hans tidligere tildelte sted. Der er også en knap til at vise den sidst vaskede bil.
Dette kører al på en Raspberry Pi, som også har mulighed for at tilføje en webside via Flask.
På siden skulle jeg kunne se på alle nøglerne, tilføje et navn til en nøgle og fjerne en nøgle.
Trin 1: Trin 1: Hvad skal jeg bruge?
Jeg startede med at lave en liste over komponenter, som jeg skal bruge for at få denne ting til at fungere.
Komponenter:
- Hindbær pi
- 2 x Skiftregister (74hc595)
- 3 x knap
- 9 x grøn led
- RFID -scanner (MFRC522)
- 12 x modstand 220 ohm
Derefter lagde jeg alt dette i min fritzing skematisk.
Da jeg var færdig, klarede jeg det i virkeligheden.
Trin 2: Trin 2: Lav en skematisk database
For at gemme alle mine data måtte jeg oprette en database, der kunne køre på min Pi.
Jeg lavede det i Mysql.
Bordbil:
- Bil -ID
- bruger ID
- Mærke (bilmærke)
- Type
- Sidst vasket
- Nøgle
- RFID_ID
Trin 3: Trin 3: Kodning
Da alt dette var klar, kunne jeg begynde at kode.
Jeg startede med at lave koden til min sensor i Python 3.5.
Klik her for at downloade koden.
Brug linket til at klone projektet.
Trin 4: Trin 4: Sæt al koden på My Raspberry Pi
Installation af pakker
Først installerede jeg alle de pakker, jeg havde brug for for at få dette til at fungere.
mig@my-rpi: ~ $ sudo apt opdatering
mig@my-rpi: ~ $ sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3
Virtuelt miljø
mig@my-rpi: ~ $ python3 -m pip installation-opgrader pip setuptools hjul virtualenvme@my-rpi: ~ $ mkdir project1 && cd project1 mig@my-rpi: ~/project1 $ python3 -m venv --system- site-packages env me@my-rpi: ~/project1 $ source env/bin/active (env) me@my-rpi: ~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib
Upload projektet til din Pi ved hjælp af pycharm
Åbn Pycharm og gå til VCS> Import fra versionskontrol> Github og klon min github -fil.
Sæt implementeringskonfigurationen til det bibliotek, du lige har oprettet. (/hjem/mig/projekt1). Tryk på ansøg!
Gå til tolkindstillingerne, og vælg det virtuelle miljø, du lige har oprettet. (/hjem/mig/projekt1/env/bin/pyhon)
Kontroller, om sti -tilknytning er korrekt.
Nu kan du uploade koden til dit bibliotek ved hjælp af Pycharm.
Database
Kontroller, om databasen kører. Du skal få sådan noget som dette:
mig@my -rpi: ~ $ sudo systemctl status mysql ● mariadb.service - MariaDB databaseserver Indlæst: indlæst (/lib/systemd/system/mariadb.service; aktiveret; leverandør forudindstillet: aktiveret) Aktiv: aktiv (kører) siden søn 2018-06-03 09:41:18 CEST; 1 dag 4 timer siden Main PID: 781 (mysqld) Status: "Tager dine SQL -anmodninger nu …" Opgaver: 28 (grænse: 4915) CGruppe: /system.slice/mariadb.service └─781/usr/sbin/mysqld
3. juni 09:41:13 my-rpi systemd [1]: Starter MariaDB-databaseserver … 3. juni 09:41:15 my-rpi mysqld [781]: 2018-06-03 9:41:15 4144859136 [Bemærk] / usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) 03. juni 09:41:18 my-rpi systemd [1]: Startede MariaDB-databaseserver.
mig@my -rpi: ~ $ ss -lt | grep mysql LYT 0 80 127.0.0.1:mysql *: *
Opret brugere og tilføj databasen
mig@my-rpi: ~ $ sudo mariadb
Når du er i databasen, skal du gøre dette.
Opret BRUGER 'project1-admin'@'localhost' IDENTIFICERET MED 'adminpassword'; Opret BRUGER 'project1-web'@'localhost' IDENTIFICERET MED 'webpassword'; Opret BRUGER 'project1-sensor'@'localhost' IDENTIFICERET MED 'sensorpassword';
Opret DATABASE -projekt1;
TILDELE ALLE PRIVILEGER PÅ projekt1.* Til 'project1-admin'@'localhost' MED GRANT MULIGHED; GRANT SELECT, INSERT, UPDATE, DELETE ON project1.* TO 'project1-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON project1.* TO 'project1-sensor'@'localhost'; FLUSH -PRIVILEGER;
CREATE TABLE `user` (` idUser` int (11) NOT NULL, `Password` varchar (45) DEFAULT NULL, PRIMARY KEY (` idUser`)) ENGINE = InnoDB DEFAULT CHARSET = utf8
Opret tabel `bil` (` idCar` int (11) NOT NULL AUTO_INCREMENT, `idUser` int (11) NOT NULL,` Brand` 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`), CONSTRAINT `f1 UDENLANDSK NØGLE (`idUser`) REFERENCER` bruger` (` idUser`) TIL SLET INGEN HANDLING VED OPDATERING INGEN AKTION) MOTOR = InnoDB AUTO_INCREMENT = 4 DEFAULT CHARSET = utf8
Tilslut din database til Pycharm
Klik på databasefanen i højre side. Hvis du ikke har en fane åben, skal du gøre dette: Vis> Værktøj Windows> Database.
Klik på tilføj forbindelse. Vælg Datakilde> MySQL (Hvis der er en knap til download af driver, skal du trykke på den.)
Gå til SSH/SSL, og tjek SSH. Udfyld dine Raspberry pi -legitimationsoplysninger (vært/bruger/adgangskode). Port skal være 22, og glem ikke at kontrollere huske adgangskode.
Gå tilbage til General. Værten skal være localhost og databasen skal være projekt1. Udfyld legitimationsoplysningerne fra project1-admin, og test forbindelsen.
Hvis forbindelsen er OK, skal du gå til fanen Skemaer og kontrollere, at projekt1 er markeret.
Kontroller, om databasen er korrekt
mig@my-rpi: ~ $ echo 'vis tabeller;' | mysql projekt1 -t -u projekt1-admin -p Indtast adgangskode: + --------------------------- + | Tabeller_ i_projekt1 | + ---------------------------+ | sensor | | brugere | +---------------------------+
Konfigurationsfiler
I telefonbogen conf finder du 4 filer. Du bør ændre brugernavne til dit brugernavn.
Systemd
For at starte alt skal du udføre disse kommandoer.
mig@my-rpi: ~/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/
mig@min-rpi: ~/projekt1 $ sudo systemctl daemon-genindlæs mig@min-rpi: ~/projekt1 $ sudo systemctl start projekt1-* mig@min-rpi: ~/projekt1 $ sudo systemctl status projekt1-* ● projekt1- flask.service-uWSGI-forekomst til betjening af projekt1-webgrænseflade Indlæst: indlæst (/etc/systemd/system/project1-flask.service; deaktiveret; leverandør forudindstillet: aktiveret) Aktiv: aktiv (kører) siden man 2018-06-04 13: 14:56 CEST; 1 s siden Main PID: 6618 (uwsgi) Opgaver: 6 (grænse: 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
Jun 04 13:14:56 my-rpi uwsgi [6618]: kortlagt 383928 bytes (374 KB) til 5 kerner Jun 04 13:14:56 my-rpi uwsgi [6618]: *** Operationel MODE: forbehandling ***
● project1-sensor.service-Project 1 sensortjeneste indlæst: indlæst (/etc/systemd/system/project1-sensor.service; deaktiveret; leverandør forudindstillet: aktiveret) Aktiv: aktiv (kører) siden man 2018-06-04 13: 16:49 CEST; 5 sekunder siden Main PID: 6826 (python) Opgaver: 1 (grænse: 4915) CGruppe: /system.slice/project1-sensor.service └─6826/home/me/project1/env/bin/python/home/me/project1 /sensor/sensor.py
4. juni 13:16:49 my-rpi systemd [1]: Startede Project 1 sensortjeneste. 4. juni 13:16:49 my-rpi python [6826]: DEBUG: _ main _: Gemt sensor process_count = b'217 / n 'i databasen Jun 04 13:16:55 my-rpi python [6826]: DEBUG: _ main_: Gemte sensor process_count = b'218 / n 'i databasen
nginx
mig@my-rpi: ~/project1 $ ls -l/etc/nginx/sites-*
/etc/nginx/sites-available: total 4 -rw-r-r-- 1 root root 2416 Jul 12 2017 standard
/etc/nginx/sites-enabled: total 0 lrwxrwxrwx 1 root root 34 Jan 18 13:25 default->/etc/nginx/sites-available/default
For at gøre alt som standard udfør disse kommandoer.
mig@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 genstart nginx.service
Automatisk start
Lad os sikre os, at alt starter automatisk.
Gå til conf -biblioteket og udfør disse sidste kommandoer, og du er færdig!
mig@my-rpi: ~/project1 $ sudo systemctl aktiver projekt1-*
Hvis du genstarter din Pi, skal den starte automatisk.
Trin 5: Trin 5: Lav et hus
Genbrug
Til min bolig brugte jeg et gammelt skab, som min mor ville smide væk.
grundlag
Jeg savede 4 planker (34 cm x 26 cm). (så det er en terning fra 34 x 34 x 26).
I bunden tilføjede jeg et tyndt stykke træ som bund.
Bord med LED'er
I midten har jeg lagt 2 små træstykker på hver side begge 9 cm fra toppen. Dette holder bestyrelsen, hvor led'erne skal sidde.
Tavlen med LED'erne er et lille bræt (32 cm x 32 cm).
Jeg borede 9 huller, før ledningerne kunne komme ud af.
division
Jeg lavede opdelingen med samme materiale som bunden og brættet med led.
4 stykker hver med et snit på 10,3 cm (9 cm x 31 cm). Nu kan jeg sætte dem sammen.
Knapper og RFID -læser
Jeg lavede et hul i basen til at sætte min RFID -læser og knapper i. Til RFID’en lagde jeg et tyndt stykke bræt foran den for at få den til at se renere ud.
Trin 6: Trin 6: Læg alt i huset
Dette afhænger af, hvordan du vil gøre det. Jeg brugte personligt mange kabler uden lodning, fordi jeg gerne vil kunne genbruge min Raspberry Pi.
Jeg limede LED'erne på plads og tapede RFID -læseren og brødbrætter til sagen.
Og sådan laver du en Keysorter!
Anbefalede:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Trin for trin pc -bygning: 9 trin
Trin for trin PC Building: Supplies: Hardware: MotherboardCPU & CPU -køler PSU (strømforsyningsenhed) Opbevaring (HDD/SSD) RAMGPU (ikke påkrævet) CaseTools: Skruetrækker ESD -armbånd/mathermal pasta m/applikator
Tre højttalerkredsløb -- Trin-for-trin vejledning: 3 trin
Tre højttalerkredsløb || Trin-for-trin vejledning: Højttalerkredsløb styrker lydsignalerne, der modtages fra miljøet til MIC og sender det til højttaleren, hvorfra forstærket lyd produceres. Her vil jeg vise dig tre forskellige måder at lave dette højttalerkredsløb på:
Trin-for-trin uddannelse i robotik med et sæt: 6 trin
Trin-for-trin uddannelse i robotteknologi med et kit: Efter ganske få måneder med at bygge min egen robot (se alle disse), og efter at jeg to gange havde dele mislykkedes, besluttede jeg at tage et skridt tilbage og tænke min strategi og retning. De flere måneders erfaring var til tider meget givende, og
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)