Мазмуну:

Keysorter: 6 кадам
Keysorter: 6 кадам

Video: Keysorter: 6 кадам

Video: Keysorter: 6 кадам
Video: MMS - Key Sorter 400V 2024, Июль
Anonim
Keysorter
Keysorter
Keysorter
Keysorter

Учурда мен Howestте NMCTти окуп жатам. Акыркы семестрибиз үчүн биз долбоор түзүшүбүз керек болчу. Ошентип, мен Keysorter жасадым.

Ал эмне кылат?

Бизде машинанын ачкычтары көп жана баары окшош. Ошентип, мен бул маселени чечүү үчүн Keysorter жасадым.

Ал RFID аркылуу ачкычты сканерлеп, кутуга орун бериши керек. Ошол эле ачкычты кайра сканерлесем, анын мурда дайындалган орду көрсөтүлөт. Акыркы жуулган машинаны көрсөтүү баскычы да бар.

Бул Raspberry Piде иштейт, анда Flask аркылуу веб -баракча кошуу мүмкүнчүлүгү бар.

Баракта мен бардык ачкычтарды карап, ачкычка ат кошуп, ачкычты алып салышым керек.

1 -кадам: 1 -кадам: Мага эмне керек?

1 -кадам: Мага эмне керек?
1 -кадам: Мага эмне керек?
1 -кадам: Мага эмне керек?
1 -кадам: Мага эмне керек?

Мен бул нерсени иштетүү үчүн керек болгон компоненттердин тизмесин түзүүдөн баштадым.

Компоненттер:

  • Raspberry pi
  • 2 х Shift реестри (74hc595)
  • 3 x баскычы
  • 9 x жашыл LED
  • RFID сканери (MFRC522)
  • 12 х резистор 220 Ом

Андан кийин мунун баарын менин схемага киргиздим.

Мен муну кылгандан кийин реалдуу жашоого жетиштим.

2 -кадам: 2 -кадам: Маалыматтар базасынын схемасын түзүү

2 -кадам: Маалыматтар базасынын схемасын түзүү
2 -кадам: Маалыматтар базасынын схемасын түзүү

Менин маалыматымды сактап калуу үчүн, мен Piде иштей турган маалымат базасын түзүшүм керек болчу.

Мен аны Mysqlде жасадым.

Үстөл машинасы:

  • Унаанын идентификатору
  • Колдонуучунун идентификатору
  • Бренд (унаа маркасы)
  • Түрү
  • Акыркы жолу жууган
  • Ачкыч
  • RFID_ID

3 -кадам: 3 -кадам: Коддоо

3 -кадам: Коддоо
3 -кадам: Коддоо

Мунун баары даяр болгондо мен коддоону баштай алам.

Мен сенсорумдун кодун Python 3.5те жасоо менен баштадым.

Кодду жүктөө үчүн бул жерди басыңыз.

Долбоорду клондоштуруу үчүн шилтемени колдонуңуз.

4 -кадам: 4 -кадам: Ал кодду Менин Raspberry 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 орнотуу-pip setuptools дөңгөлөгүнүн виртуалын жогорулатуу@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv --system- сайт пакеттери мени@my-rpi: ~/project1 $ булагы env/bin/activate (env) me@my-rpi: ~/project1 $ python -m пипти орнотуу mysql-Connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Pycharmдын жардамы менен долбоорду Piңизге жүктөңүз

Pycharmды ачыңыз жана VCS> Версияны Башкаруудан Импорттоо> Github бөлүмүнө өтүңүз жана менин github файлымды клон кылыңыз.

Жайгашуу конфигурациясын сиз жасаган каталогго коюңуз. (/home/me/project1). Колдонууну басыңыз!

Котормочу жөндөөлөрүнө өтүп, өзүңүз жасаган виртуалдык чөйрөнү тандаңыз. (/home/me/project1/env/bin/pyhon)

Жол картасынын тууралыгын текшериңиз.

Эми сиз Pycharm аркылуу кодду каталогго жүктөй аласыз.

Маалыматтар базасы

Базанын иштеп жаткандыгын текшериңиз. Сизге окшош нерсе керек:

me@my -rpi: ~ $ sudo systemctl status mysql ● mariadb.service - MariaDB маалымат базасынын сервери Жүктөлгөн: жүктөлгөн (/lib/systemd/system/mariadb.service; иштетилген; сатуучу алдын ала коюлган: иштетилген) Активдүү: күндөн бери активдүү (иштеп жаткан) 2018-06-03 09:41:18 CEST; 1 күн 4саат мурун Негизги PID: 781 (mysqld) Статус: "SQL сурамдарыңыз азыр кабыл алынууда …" Тапшырмалар: 28 (чек: 4915) CGroup: /system.slice/mariadb.service └─781/usr/sbin/mysqld

Jun 03 09:41:13 my-rpi systemd [1]: MariaDB маалымат базасынын серверин иштетүү… Jun 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

маалымат базасына киргенден кийин муну жасаңыз.

CREATE USER 'project1-admin'@'localhost' IDENTIFIED BY 'adminpassword'; CREATE USER 'project1-web'@'localhost' IDENTIFIED BY 'webpassword'; CREATE USER 'project1-sensor'@'localhost' IDENTIFIED 'senspassword';

DATABASE долбоорун түзүү1;

Project1 боюнча бардык артыкчылыктарды берүү.* To 'project1-admin'@'localhost' ГРАНТ ОПЦИОНУ менен; ГРАНТ ТАНДОО, КИРГИЗҮҮ, ЖАҢЫРТУУ, Project1 ЖОК КЫЛУУ.* TO 'project1-web'@'localhost'; ГРАНТ ТАНДОО, КИРГИРҮҮ, ЖАҢЫРТУУ, Project1 ЖОК КЫЛУУ.* TO 'project1-sensor'@'localhost'; FLUSH артыкчылыктары;

CREAT TABLE `user` (` idUser` int (11) NOT NULL, `Password` varchar (45) DEFAULT NULL, PRIMARY KEY (` idUser`)) ENGINE = InnoDB DEFAULT CHARSET = utf8

CARABLE TABLE `car` (` idCar` int (11) 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`serk'_k), CONSTRAINT_ СЫРТКЫ АЧкыч (`idUser`) АДАБИЯТТАР`` колдонуучу` (` idUser`) ЖОК КЫЛУУДА ЭЧ ЭМЕС ЖОК КЫЛУУДА) Мотор = InnoDB AUTO_INCREMENT = 4 ЖАРЫККА ЧАРСЕТ = utf8

Маалымат базаңызды Pycharmга туташтырыңыз

Оң жактагы маалымат базасы өтмөгүн чыкылдатыңыз. Эгерде сизде өтмөк жок болсо, муну аткарыңыз: Көрүү> Курал Windows> Маалыматтар базасы.

Байланыш кошуу дегенди басыңыз. Маалымат булагын> MySQL тандаңыз (эгерде драйверди жүктөө баскычы болсо, аны басыңыз.)

SSH/SSLге кирип SSHди текшериңиз. Raspberry pi ишеним грамоталарын толтуруңуз (хост/колдонуучу/сырсөз). Порт 22 болушу керек жана сырсөздү эстеп калууну унутпаңыз.

Генералга кайт. Host localhost болушу керек жана маалымат базасы project1 болушу керек. Project1-adminден туташуусун текшерүү үчүн грамоталарды толтуруңуз.

Эгерде туташуу жакшы болсо, анда "Схемалар" өтмөгүнө өтүңүз жана project1 текшерилгенин текшериңиз.

Базанын тууралыгын текшериңиз

me@my-rpi: ~ $ echo 'столдорду көрсөтүү;' | mysql project1 -t -u project1-admin -pСырсөздү киргизиңиз: + --------------------------- + | Tables_in_project1 | + ---------------------------+ | сенсор | | колдонуучулар | +---------------------------+

Конфигурация файлдары

Conf каталогунда сиз 4 файлды таба аласыз. Сиз колдонуучунун атын колдонуучунун атына өзгөртүшүңүз керек.

Systemd

Баарын баштоо үчүн бул буйруктарды аткарышыңыз керек.

me@my-rpi: ~/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/

me@my-rpi: ~/project1 $ sudo systemctl daemon-reload me@my-rpi: ~/project1 $ sudo systemctl start project1-* me@my-rpi: ~/project1 $ sudo systemctl status1 project1-* ● project1- flask.service-uWSGI экземпляры project1 веб интерфейсин тейлейт Жүктөлгөн: жүктөлгөн (/etc/systemd/system/project1-flask.service; өчүрүлгөн; сатуучуга алдын ала коюлган: иштетилген) Активдүү: активдүү (иштеп жатат) Дш 2018-06-04 13: 14:56 CEST; 1s мурун Негизги PID: 6618 (uwsgi) Тапшырмалар: 6 (чек: 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

Июн 04 13:14:56 my-rpi uwsgi [6618]: 5 ядро үчүн 383928 байт (374 KB) картага түштү Июн 04 13:14:56 my-rpi uwsgi [6618]: *** Ыкчам режим: алдын ала иштөө ***

● project1-sensor.service-Project 1 сенсор кызматы Жүктөлдү: жүктөлдү (/etc/systemd/system/project1-sensor.service; өчүрүлгөн; сатуучуга алдын ала коюлган: иштетилген) Активдүү: активдүү (иштеп жатат) Дш 2018-06-04 13: 16:49 CEST; 5s мурун Негизги PID: 6826 (питон) Тапшырмалар: 1 (чек: 4915) CGroup: /system.slice/project1-sensor.service └─6826/home/me/project1/env/bin/python/home/me/project1 /sensor/sensor.py

Jun 04 13:16:49 my-rpi systemd [1]: Project 1 сенсор кызматы башталды. Июн 04 13:16:49 my-rpi python [6826]: Мүчүлүштүктөр: _ негизги _: Сакталган сенсор process_count = b'217 / n 'базасына Jun 04 13:16:55 my-rpi python [6826]: Мүчүлүштүктөр: _ 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 root root 2416 Jul 12 2017 демейки

/etc/nginx/sites-enabled: total 0 lrwxrwxrwx 1 root root 34 Jan 18 13:25 default->/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 restart nginx.service

Авто баштоо

Баары автоматтык түрдө башталаарына ынаналы.

Conf каталогуна өтүп, бул акыркы буйруктарды аткарыңыз, сиз бүттүңүз!

me@my-rpi: ~/project1 $ sudo systemctl project1-* иштетет

Эгерде сиз Пиңизди кайра жүктөсөңүз, ал автоматтык түрдө башталышы керек.

5 -кадам: 5 -кадам: Турак жай куруу

5 -кадам: Турак жай куруу
5 -кадам: Турак жай куруу
5 -кадам: Турак жай куруу
5 -кадам: Турак жай куруу
5 -кадам: Турак жай куруу
5 -кадам: Турак жай куруу
5 -кадам: Турак жай куруу
5 -кадам: Турак жай куруу

Кайра иштетүү

Менин үйүмдү жасаш үчүн апам алып кетүүчү эски шкафты колдондум.

база

Мен 4 тактайды (34 см х 26 см) араладым. (Ошентип, ал 34 x 34 x 26 өлчөмүндөгү куб).

Төмөн жагына ичке жыгачты түбүнө коштум.

Лидерлери бар такта

Ортодо мен ар бир жагына 2 кичинекей жыгачты койдум, экөө тең үстүнөн 9 см. Бул жерде лидерлер отура турган такта бар.

Жетекчелери бар такта - кичинекей такта (32 см x 32 см).

Леддердин чыгышы үчүн 9 тешик бургуладым.

бөлүнүү

Мен бөлүмдү түбү менен бирдей болгон материалды жана тактайды лед менен жасадым.

4 даана 10,3 см (9 см х 31 см) кесилген. Эми аларды бириктире алам.

Баскычтар жана RFID окурман

Мен RFID окурманымды жана баскычтарды коюу үчүн базага тешик жасадым. RFID үчүн мен таза көрүнүшү үчүн алдына жука тактайчаны койдум.

6 -кадам: 6 -кадам: Бардыгын турак жайга салуу

Бул сиз муну кандай кылгыңыз келгенине байланыштуу. Мен жеке Raspberry Pi'мди кайра колдоно алгыбыз келгендиктен, көп кабелдерди ширетпестен колдондум.

Мен лидерлерди ордуна жабыштырып, RFID окурманы менен корпусун скотч менен чаптадым.

Жана ушинтип сиз Keysorter жасайсыз!

Сунушталууда: