Sisällysluettelo:
- Vaihe 1: Vaihe 1: Mitä tarvitsen?
- Vaihe 2: Vaihe 2: Tietokannan kaavion luominen
- Vaihe 3: Vaihe 3: Koodaus
- Vaihe 4: Vaihe 4: Al -koodin asettaminen Raspberry Pi: lle
- Vaihe 5: Vaihe 5: Kotelon tekeminen
- Vaihe 6: Vaihe 6: Laita kaikki koteloon
Video: Avainsortti: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Opiskelen tällä hetkellä NMCT: tä Howestissa. Viimeistä lukukautta varten meidän oli tehtävä projekti. Joten tein avainsortin.
Mitä se tekee?
Meillä on paljon auton avaimia kotona ja ne kaikki näyttävät samalta. Joten tein avainsortin tämän ongelman ratkaisemiseksi.
Sen on skannattava avain RFID: n kautta ja annettava sille paikka laatikossa. Jos skannaan saman avaimen uudelleen, se näyttää hänen aiemmin määrittämänsä paikan. Siellä on myös painike, joka näyttää viimeksi pestyn auton.
Tämä toimii myös Raspberry Pi: llä, jolla on myös mahdollisuus lisätä verkkosivu Flaskin kautta.
Sivulla minun pitäisi voida katsoa kaikki avaimet, lisätä nimi avaimeen ja poistaa avain.
Vaihe 1: Vaihe 1: Mitä tarvitsen?
Aloitin tekemällä luettelon komponenteista, jotka minun on saatava toimimaan.
Komponentit:
- Vadelma pi
- 2 x vuororekisteri (74hc595)
- 3 x painiketta
- 9 x vihreää lediä
- RFID -skanneri (MFRC522)
- 12 x vastus 220 ohmia
Sitten laitoin kaiken tämän fritzing -kaavioon.
Kun tämä oli tehty, onnistuin tosielämässä.
Vaihe 2: Vaihe 2: Tietokannan kaavion luominen
Tietojeni tallentamiseksi minun piti luoda tietokanta, joka voisi toimia Pi -laitteellani.
Tein sen Mysqlissä.
Pöytäauto:
- Auton tunnus
- käyttäjätunnus
- Merkki (automerkki)
- Tyyppi
- Viimeksi pesty
- Avain
- RFID_ID
Vaihe 3: Vaihe 3: Koodaus
Kun kaikki tämä oli valmis, voisin aloittaa koodauksen.
Aloitin tekemällä anturini koodin Python 3.5: ssa.
Voit ladata koodin napsauttamalla tätä.
Käytä linkkiä projektin kloonaamiseen.
Vaihe 4: Vaihe 4: Al -koodin asettaminen Raspberry Pi: lle
Pakettien asentaminen
Asensin ensin kaikki paketit, joita tarvitsin tämän toimimiseksi.
me@my-rpi: ~ $ sudo apt päivitys
me@my-rpi: ~ $ sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3
Virtuaalinen ympäristö
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 --systeemi- sivusto-paketit env me@my-rpi: ~/project1 $ source env/bin/aktivoi (env) me@my-rpi: ~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib
Lataa projekti Pi -laitteellesi pycharmin avulla
Avaa Pycharm ja siirry kohtaan VCS> Tuo Versionhallinnasta> Github ja kloonaa github -tiedostoni.
Laita käyttöönottoasetukset juuri tekemääsi hakemistoon. (/koti/minä/projekti1). Paina hae!
Siirry tulkin asetuksiin ja valitse juuri tekemäsi virtuaalinen ympäristö. (/home/me/project1/fi/bin/pyhon)
Tarkista, onko polun kartoitus oikein.
Nyt voit ladata koodin hakemistoosi Pycharmin avulla.
Tietokanta
Tarkista, onko tietokanta käynnissä. Sinun pitäisi saada jotain tällaista:
me@my -rpi: ~ $ sudo systemctl status mysql ● mariadb.service - MariaDB -tietokantapalvelin Ladattu: ladattu (/lib/systemd/system/mariadb.service; käytössä; valmistajan esiasetus: käytössä) Aktiivinen: aktiivinen (käynnissä) su 2018-06-03 09:41:18 CEST; 1 päivä 4 tuntia sitten Pää PID: 781 (mysqld) Tila: "Otetaan SQL -pyyntösi nyt…" Tehtävät: 28 (raja: 4915) CGroup: /system.slice/mariadb.service └─781/usr/sbin/mysqld
Kesäkuu 09 09:41:13 my-rpi systemd [1]: Käynnistetään MariaDB-tietokantapalvelin… kesäkuu 03 09:41:15 my-rpi mysqld [781]: 2018-06-03 9:41:15 4144859136 [Huomautus] / usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) kesäkuu 03 09:41:18 my-rpi systemd [1]: Käynnisti MariaDB-tietokantapalvelimen.
minä@my -rpi: ~ $ ss -lt | grep mysql KUUNTELE 0 80127.0.0.1:mysql *: *
Luo käyttäjiä ja lisää tietokanta
minä@my-rpi: ~ $ sudo mariadb
Kun olet tietokannassa, tee tämä.
LUO KÄYTTÄJÄ 'project1-admin'@'localhost' IDENTIFIED BY 'adminpassword'; CREATE USER 'project1-web'@'localhost' IDENTIFIED BY 'webpassword'; LUO KÄYTTÄJÄ 'project1-sensor'@'localhost' TUNNISTAA 'sensorpassword';
CREATE DATABASE -projekti1;
MYÖNNÄ KAIKKI ERIKOISUUDET PROJEKTIIN1. GRANT SELECT, INSERT, UPDATE, DELETE ON project1.* TO 'project1-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON project1.* TO 'project1-sensor'@'localhost'; Huuhteluoikeudet;
CREATE TABLE `user` (` idUser` int (11) NOT NULL, `Password` varchar (45) DEFAULT NULL, PRIMARY KEY (` idUser`)) MOOTTORI = InnoDB DEFAULT CHARSET = utf8
LUO TAULUKKO `auto` (` idCar` int (11) NOT NULL AUTO_INCREMENT, `idUser` int (11) NOT NULL,` Brand` varchar (45) DEFAULT NULL, `Type` varchar (45) DEFAULT NULL,` LastWashed` päivämäärän oletusarvo NULL, "RFID_Number" varchar (15) DEFAULT NULL, "Key" varchar (5) DEFAULT NULL, PRIMARY KEY (`idCar`,` idUser`), KEY `fk_Car_User1_idx` (` idUser`) `CONSTRAIN ULKOPAINIKE ("idUser") REFERENCES "user" ("idUser") POISTA EI TOIMIA PÄIVITTÄMISESSÄ EI TOIMIA) MOOTTORI = InnoDB AUTO_INCREMENT = 4 DEFAULT CHARSET = utf8
Yhdistä tietokanta Pycharmiin
Napsauta tietokannan välilehteä oikealla puolella. Jos välilehti ei ole auki, toimi seuraavasti: Näytä> Työkalu Windows> Tietokanta.
Napsauta Lisää yhteys. Valitse Tietolähde> MySQL (Jos painikkeen latausohjain on käytettävissä, paina sitä.)
Siirry kohtaan SSH/SSL ja tarkista SSH. Täytä Raspberry pi -tietosi (isäntä/käyttäjä/salasana). Portin pitäisi olla 22, äläkä unohda tarkistaa salasanan muistamista.
Palaa takaisin kenraaliin. Isännän tulee olla localhost ja tietokannan tulee olla project1. Täytä tunnistetiedot osoitteesta project1-admin fi testaa yhteys.
Jos yhteys on kunnossa, siirry välilehdelle Kaaviot ja varmista, että projekti1 on valittu.
Tarkista, onko tietokanta oikein
me@my-rpi: ~ $ echo 'näytä taulukot;' | mysql project1 -t -u project1-admin -pAnna salasana: + --------------------------- + | Taulukot_hankkeessa1 | + ---------------------------+ | anturi | | käyttäjät | +---------------------------+
Asetustiedostot
Hakemistosta conf löydät 4 tiedostoa. Sinun pitäisi vaihtaa käyttäjätunnukset käyttäjänimeksi.
Systemd
Aloittaaksesi kaiken sinun tulee suorittaa nämä komennot.
me@my-rpi: ~/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/
me@my-rpi: ~/project1 $ sudo systemctl daemon-lataa minut uudelleen@my-rpi: ~/project1 $ sudo systemctl aloita projekti1-* minä@my-rpi: ~/project1 $ sudo systemctl status project1-* ● project1- flask.service-uWSGI-ilmentymä palvelemaan project1-web-käyttöliittymää Ladattu: ladattu (/etc/systemd/system/project1-flask.service; pois käytöstä; toimittajan esiasetus: käytössä) Aktiivinen: aktiivinen (käynnissä) ma 2018-06-04 13: 14:56 CEST; 1 s sitten Pää PID: 6618 (uwsgi) Tehtävät: 6 (raja: 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
Kesäkuu 04 13:14:56 my-rpi uwsgi [6618]: kartoitettu 383928 tavua (374 kt) 5 ytimelle Kesäkuu 04 13:14:56 my-rpi uwsgi [6618]: *** Toimintatila: preforking ***
● project1-sensor.service-Project 1 -anturipalvelu Ladattu: ladattu (/etc/systemd/system/project1-sensor.service; pois käytöstä; toimittajan esiasetus: käytössä) Aktiivinen: aktiivinen (käynnissä) ma 2018-06-04 13: 16:49 CEST; 5 s sitten Pää PID: 6826 (python) Tehtävät: 1 (raja: 4915) CGroup: /system.slice/project1-sensor.service └─6826/home/me/project1/env/bin/python/home/me/project1 /sensor/sensor.py
Kesäkuu 04 13:16:49 my-rpi systemd [1]: Aloitti Project 1 -anturipalvelun. Kesäkuu 04 13:16:49 my-rpi python [6826]: DEBUG: _ main _: tallennettu anturiprosessi_luku = b'217 / n 'tietokantaan kesäkuu 04 13:16:55 my-rpi python [6826]: DEBUG: _ main_: Anturin prosessi_luku = b'218 / n 'tallennettu tietokantaan
nginx
minä@my-rpi: ~/project1 $ ls -l/etc/nginx/sites-*
/etc/nginx/sites-available: yhteensä 4 -rw-r-r-- 1 juurijuuri 2416 12. heinäkuuta 2017 oletus
/etc/nginx/sites-enabled: yhteensä 0 lrwxrwxrwx 1 juurijuuri 34.1. 18 13:25 oletus->/etc/nginx/sites-available/default
Jos haluat tehdä kaiken oletuksena, suorita nämä komennot.
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 käynnistä nginx.service
Automaattinen käynnistys
Varmista, että kaikki käynnistyy automaattisesti.
Mene conf -hakemistoon ja suorita nämä viimeiset komennot ja olet valmis!
me@my-rpi: ~/project1 $ sudo systemctl ota käyttöön projekti1-*
Jos käynnistät Pi uudelleen, sen pitäisi käynnistyä automaattisesti.
Vaihe 5: Vaihe 5: Kotelon tekeminen
Kierrätys
Asuntooni käytin vanhaa kaappia, jonka äitini heitti pois.
pohja
Sahoin 4 lankkua (34 cm x 26 cm). (joten se on kuutio 34 x 34 x 26).
Pohjaan lisäsin ohuen puukappaleen.
Hallitus ledien kanssa
Keskelle olen laittanut 2 pientä puupalaa kummallekin puolelle, molemmat 9 cm: n päässä ylhäältä. Tämä pitää hallituksen, jossa ledit istuvat.
LED -lauta on pieni levy (32 cm x 32 cm).
Porasin 9 reikää, jotta ledit tulisivat ulos.
jako
Tein jaon samasta materiaalista kuin pohja ja lauta led -valolla.
4 kappaletta, joissa on viilto 10,3 cm (9 cm x 31 cm). Nyt voin laittaa ne yhteen.
Painikkeet ja RFID -lukija
Tein pohjaan reiän laittaakseni RFID -lukijani ja painikkeet sisään. RFID: tä varten laitoin ohuen palan sen eteen, jotta se näyttäisi puhtaammalta.
Vaihe 6: Vaihe 6: Laita kaikki koteloon
Tämä riippuu siitä, miten haluat tehdä sen. Itse käytin paljon kaapeleita ilman juottamista, koska haluan pystyä käyttämään Raspberry Pi -laitteeni uudelleen.
Liimasin ledit paikalleen ja teipasin RFID -lukijan ja leipälevyt koteloon.
Ja näin teet avainsortin!
Suositeltava:
DIY Raspberry Pi Downloadbox: 4 vaihetta
DIY Raspberry Pi Downloadbox: Löydätkö usein itsesi lataamasta suuria tiedostoja, kuten elokuvia, torrentteja, kursseja, TV -sarjoja jne., Niin tulet oikeaan paikkaan. Tässä Instructable -ohjelmassa muuttaisimme Raspberry Pi zero -laitteemme latauskoneeksi. Joka voi ladata minkä tahansa
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen