Мазмуну:

Автоматтык карта таратуучусу: 7 кадам
Автоматтык карта таратуучусу: 7 кадам

Video: Автоматтык карта таратуучусу: 7 кадам

Video: Автоматтык карта таратуучусу: 7 кадам
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Ноябрь
Anonim
Автоматтык карта таратуучусу
Автоматтык карта таратуучусу

Мен карта оюнун ойногонду жакшы көргөндүктөн, биринчи проект катары смарт карт таратуучуну тандадым. Мага эң жакпаган нерсе - карталарды сатуу. Ар бир оюнда ар бир адам канча карт аларын эстен чыгарбоо керек. Бул көп карта оюндарын билгениңизде түшүнүксүз болуп калат. Менин долбоорум ошондой эле карылар жана Паркинсон менен ооруган адамдар сыяктуу карталарды таркатууда кыйналып жүргөн адамдарга жардам берет.

Жабдуулар

  • 1 Raspberry Pi (мен Raspberry Pi 4 колдондум)
  • SD карта (16 ГБ сунушталат)
  • Raspberry Pi үчүн 1 даана нан (T-бөлүгү)
  • 2 нан тактасы
  • 1 Нан, 5V жана 3V3 үчүн электр менен камсыздоо модулу
  • 1 ЖК дисплей
  • 1 потенциометр
  • 1 MPU6050 (акселерометр жана гироскоп)
  • 1 NPN транзистору
  • 1 PCF8574N I/O экспантери
  • 1 тепкичтүү мотор
  • 1 ULN2003 сынык тактасы тепкич моторун башкаруу үчүн
  • 1 HC-SR04 УЗИ сенсору
  • 1 5V DC кыймылдаткычтары
  • 1 диод
  • 6 470 Ом каршылыгы
  • 4 10K Ohm резисторлору
  • Бардыгын туташтыруу үчүн электр зымы

Жасоодо пайдалуу:

  • Кандооч
  • Solder
  • Дремел же джиг араа (жыгачты жана абс пластикти кесүүчү нерсе)

Программалык камсыздоо:

  • Putty
  • MySQL жумушчу стол
  • Win32 диск иштетүүчү
  • Код редактору (Visual Studio Code сунуштайм)
  • WinSCP
  • Raspbian сүрөтү

1 -кадам: Rasperry Pi даярдоо

Биринчиден, биз башка эч нерсе кылардан мурун Raspberry Pi даярдашыбыз керек. Баары Pi иштей тургандыктан, бул карта таратуучунун эң маанилүү бөлүктөрүнүн бири.

Орнотуу:

Raspbian сүрөтүн https://www.raspberrypi.org/downloads/raspberry-pi-os/ жүктөп алыңыз

  1. ZIP файлын жүктөп алыңыз
  2. ZIP файлын оңой таба турган жерден алыңыз
  3. Win32 Disk Imager программасын ачыңыз жана алынган сүрөттү тандаңыз
  4. Ачылуучу менюдан SD картаны тандап, жазууну басыңыз
  5. Жазуу процесси аяктагандан кийин Win32 Disk Imager программасын жаба аласыз

Эми биз Пи менен туташуудан мурун дагы бир нече нерсени жасашыбыз керек

  1. SD картадагы жүктөө папкасына өтүңүз
  2. Cmdline.txt файлын ачыңыз
  3. Боштук менен бөлүнгөн саптын аягына 'ip = 169.254.10.1' кошуңуз
  4. Сактоо жана файлдан чыгуу
  5. Ошол эле каталогдо ssh деп аталган файлды түзүңүз жана кеңейтүүнү алып салыңыз (бул пшке туташуу үчүн биринчи жүктөөдө sshти иштетет)
  6. SD картаны коопсуз чыгарып, Pi'ге салыңыз

Эми биз Piге туташа алабыз:

  1. Ethernet кабелин алып, бир башын Piге, экинчи учун компьютериңизге салыңыз
  2. Open Putty
  3. Хосттун атына 169.254.10.1 киргизиңиз
  4. SSH тандалганын жана порт 22 экенин текшериңиз
  5. Ачууну басыңыз
  6. Эгерде сиз эскертүү алсаңыз, аны уланта берсеңиз болот
  7. Колдонуучунун аты пи жана сырсөз малина

Программаны конфигурациялоо жана орнотуу:

Төмөнкү буйрук менен raspi-config ачыңыз:

sudo raspi-config

5чи вариантты тандаңыз: Интерфейс опциялары

SPI жана I2C иштетүү

3 -вариантта төмөнкү нерселерди өчүрүңүз: Жүктөө параметрлери:

  • Экран
  • Иш такта үчүн эмес, баштоо үчүн cli тандаңыз

Wifi орнотуу:

Wifi веб -сайтка оңой өтүү үчүн пайдалуу. Wi -Fi грамоталарыңыздын жанында экениңизди текшериңиз.

Wi -Fi орнотуу үчүн бизге бир нече нерсе керек:

Бул буйрукту колдонуу менен WiFi кошуңуз жана маалыматыңызга SSID менен PASSWORDту өзгөртүңүз:

sudo wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf

Wi -Fiңызды кайра конфигурациялоо үчүн бул буйрукту аткарыңыз:

sudo wpa_cli

Туура интерфейсти тандаңыз:

wlan0 интерфейси

Интерфейсти кайра конфигурациялоо:

кайра конфигурациялоо

Конфигурация бул буйрук менен ийгиликтүү болгонун текшериңиз:

ip a

Эгерде сиз wlan0 интерфейсинде IP дарегин көрсөңүз, анда бардыгы орнотулган.

Иштетүү тутуму жаңыртылууда

Иштетүү системасын бул 2 буйрук менен жаңыртыңыз:

sudo apt update

sudo apt толук жаңыртуу

MariaDB орнотуу:

Apache Webserver орнотуу:

sudo apt install apache2 -y

MariaDB серверин орнотуу:

sudo apt install mariadb -server -y

Эми биз кайра жүктөөбүз керек:

sudo өчүрүп күйгүзүү

MariaDB орнотуусун камсыз кылуу сунушталат. Сиз бул буйрукту иштетүү менен кыла аласыз:

sudo mysql_secure_installation

Биринчиден, сизден учурдагы тамыры сырсөзү суралат, бирок демейки орнотууда бирөө жок, ошондуктан Enter баскычын басыңыз.

Андан кийин сизден тамыры сырсөзүн коюңуз келеби деп суралат, y деп териңиз. Сырсөздү эстей алаарыңызды текшериңиз!

  • Анонимдүү колдонуучуларды алып салуу үчүн y киргизиңиз
  • Алыстан тамыр кирүүнү өчүрүү үчүн y киргизиңиз
  • Сыноо маалымат базасын жана ага кирүү мүмкүнчүлүгүн алып салуу үчүн y киргизиңиз
  • Артыкчылыктарды кайра жүктөө үчүн y киргизиңиз

Сиздин MariaDB орнотууңуз коопсуз болушу керек!

Эми биз жаңы колдонуучу түзө алабыз:

Бул буйрук менен mysql кабыгын киргизиңиз:

sudo mysql

Колдонуучу атын mysql жана сырсөз (your_password) менен төмөнкү командаларды түзүңүз:

mysql@localhost колдонуучусун түзүү 'your_password';

mysql@localhostко *. * боюнча бардык артыкчылыктарды берүү;

FLUSH артыкчылыктары;

Бул буйрук менен mysql кабыгынан чыгыңыз:

чыгуу;

Python пакеттери:

Эгер сиз Lite версиясын тандабасаңыз, Python мурунтан эле орнотулушу керек:

sudo apt install python3-pip

Бизге жакшы Python пакеттери керек, алардын бардыгын төмөнкү буйрук менен орното аласыз:

pip3 mysql-connector-python колбасы-сокетинин колбасы-геors Gevent Gevent-WebSocketти орнотуу

Эми биз дагы бир жолу өчүрүп -күйгүзүшүбүз керек

sudo өчүрүп күйгүзүү

2 -кадам: Visual Studio кодун жана MySQL Workbenchти орнотуу

MySQL Workbench менен Piге туташуу:

MySQL Workbenchти ачыңыз

Төмөнкү маалыматтар менен Пи менен жаңы байланыш түзүңүз:

  • Байланыштын аты: Raspi
  • Туташуу ыкмасы: SSH аркылуу стандарттык TCP/IP
  • SSH Hostname: Piнин IP-дареги

Сиз бул буйрук менен IP-дарегин ала аласыз:

ip a

  • SSH Колдонуучунун аты: pi
  • MySQL Hostname: 127.0.0.1
  • MySQL сервер порту: 3306
  • Колдонуучунун аты: mysql

Ок чыкылдатыңыз жана pi колдонуучусунун сырсөзүн киргизиңиз, андан кийин mysql колдонуучусунун сырсөзүн киргизиңиз.

Visual Studio кодун орнотуу:

Visual Studio кодун ачыңыз

Бул 2 кеңейтүүнү орнотуңуз:

  • Алыстан - SSH
  • Алыстан - SSH: Конфигурация файлдарын түзөтүү

Visual Studio Code F1де басыңыз жана ssh териңиз

Алыстан SSH тандоо: жаңы SSH хост кошуу

Ssh pi@IP-дарегин толтуруңуз

Кийинки кадамда Enter баскычын басыңыз

Байланыш азыр Pi менен жүргүзүлөт. Сиз Pi'ге F1 басуу менен жана Алыскы хостко туташууну тандап туташа аласыз.

Сырсөздү киргизиңиз, андыктан Visual Studio Code Piге кире алат.

Дагы бир нерсе: кодду оңой иштетүү жана мүчүлүштүктөрдү оңдоо үчүн Python кеңейтүүсүн алыскы машинага орнотуңуз.

3 -кадам: Fritzing диаграммасы

Чачтын диаграммасы
Чачтын диаграммасы
Чачтын диаграммасы
Чачтын диаграммасы
Чачтын диаграммасы
Чачтын диаграммасы

Бул кадамда мен схеманы түшүндүрөм.

Жогорудагы схемалар Fritzing менен жасалган.

DC мотору:

GPIO 18ди коллектордун базасына, npn транзисторунун ортоңку пинине туташтырыңыз. Мотордун жерин транзистордон коллекторго жана мотордун кубаттуулугун 5Вга туташтырыңыз. Транзистордун жерин жерге туташтыруу. Диодду мотордун үстүндөгү тоскоолдукка туташтырыңыз, андыктан ал токтун транзисторго түз агып кетишине тоскоол болот.

Step мотору:

Stepper моторун башкаруу тактасына туташтырыңыз. Башкаруу тактасында бир тарапта 5В менен жерге туташтыруу үчүн казыктар бар. Башка төөнөгүчтөр - контролдук төөнөгүчтөр. Бул казыктар мотордун ичиндеги магниттерди башкарат, андыктан ал бурула алат. Бул казыктарды Raspberry Piдеги GPIO 12, 16, 20 жана 21ге туташтырыңыз.

HC-SR04 УЗИ:

Бул сенсор үн аркылуу болжол менен 4,5 метрге чейинки аралыкты өлчөй алат.

VCC пинди 5Vга, GPIO 25ке триггерди, 470 Ohm каршылыгы бар эхо пинди GPIO 24кө жана жерге 470 Ohm каршылыгы менен жерге туташтырыңыз.

MPU6050:

VCC пинин 3V3ке, жерге жерге, piдеги sclга жана sda to sda га туташтырыңыз. Бул сенсор үчүн мен аны көзөмөлдөө үчүн I2C колдоном. Бул тууралуу кененирээк бул жерден окуй аласыз. Бул жерде негизги түшүндүрмө: Pi - кожоюн, ал эми MPU6050 - кул. Scl линиясы аркылуу Pi убакытты көзөмөлдөйт жана sda линиясы кожоюндан кулга же кулдан кожоюнга маалыматтарды жөнөтүү үчүн колдонулат. Маалыматты өткөрүүнү мастер гана баштай алат.

Жарык резисторго көз каранды:

LDRден туура окуу үчүн мен MCP3008 чипин колдоном. Бул ldrдан алынган көрсөткүчтөрдүн аналогдуктан санариптик сигналдарга туруктуу жана туура которулушун камсыз кылат.

3V3ти лдрдин бир жагына 10К Ом каршылыгы менен туташтырыңыз. Ldr менен резистордун ортосунда MCP3008 каналына 0 зым туташтырыңыз. Андан кийин лдрдын экинчи тарабын жерге туташтырыңыз.

ЖК дисплей:

Сиз LCD дисплейди PCF8574 жок колдоно аласыз, бирок Пиодогу GPIO казыктары чектелүү болгондуктан, кээ бир GPIO казыктарын сактоо үчүн PCF8574 колдоном. Сиз ошондой эле нөөмөт реестрин колдонсоңуз болот, бирок мен PCF8574тү жакшы көрөм. PCF8574тү SMbus протоколу менен башкара аласыз, бирок мен аны көзөмөлдөө үчүн өз классымды жазгам. Потенциометр контрастты көзөмөлдөйт.

LCD дисплей казыктары:

  • Жерге VSS
  • VDD 5V чейин
  • V0 потенциометрдин өзгөрмө пинине
  • GPIO 13кө RS
  • R/W жерге, анткени мен дисплейге гана жазам жана окубайм
  • E - GPIO 19
  • PCFтин DB0 - P0
  • DB1ден P1ге чейин
  • DB2ден P2ге чейин
  • DB3 - P3
  • DB4 - P4
  • DB5 - P5
  • DB6дан P6га чейин
  • DB7ден P7ге чейин
  • LED+ 5V чейин
  • LED- жерге

PCF8574 казыктары:

  • A0 жерге
  • A1 жерге
  • А2 жерге
  • Жерден жерге
  • VCC 5V чейин
  • SDA GPIO 27ге
  • 330 Ом каршылыгы бар GPIO 22ге SCL

Сизде LED+ жана LED жок болушу мүмкүн- сизде кандай дисплей бар. LED+ жана LED- арткы жарык үчүн.

Потенциометрдин оң жагын 5В менен жерге жерге туташтырыңыз.

Тартуу каршылыгын колдонгонуңузду текшериңиз!

4 -кадам: Githubдагы код

Сиз бардык керектүү кодду Githubдан таба аласыз.

Папка долбоору 1:

Бул папка backend үчүн бардык кодду камтыйт. Папкада Klasses аппаратты көзөмөлдөө үчүн бардык класстар.

Папканын репозиторийлери 2 файлды камтыйт: Database.py жана DataRepository.py. Database.py маалымат базасы менен байланышты сактайт жана суроолорду иштетет. DataRepository.py сайтка керектүү бардык суроолорду камтыйт.

App.py - backendдин негизги файлы. Бул файл Pi жүктөлгөндө автоматтык түрдө башталат.

Config.py маалымат базасына туташуу үчүн бир нече орнотууларды камтыйт. Бул файлдарды өзүңүздүн маалыматыңыз менен толтурууну тактаңыз.

Сиз бул папканы үй каталогуңуздун каалаган жерине жайгаштыра аласыз.

Папка html:

Бул папка сайттын бардык файлдарын, алдыңкы бетин камтыйт.

  • Папка сайттын макети үчүн файлдарды камтыйт.
  • Шрифттер сайтта колдонулган шрифттерди камтыйт.
  • Скрипт сайтты динамикалуу кылуу үчүн бардык Javascript файлдарын камтыйт

Бул папка/var/www/html папкасында болушу керек

Сиз бул буйрук менен файлды же папканы көчүрө аласыз:

sudo mv/path/to/current/directory/path/to/destination/directory

Сайтка өтүү үчүн браузериңизде ЖК дисплейде көрсөтүлгөн IP-даректи жазыңыз.

5 -кадам: Нормаланган маалымат базасынын структурасы

Маалыматтар базасынын нормалдаштырылган структурасы
Маалыматтар базасынын нормалдаштырылган структурасы

Бул кадамда биз маалымат базасын импорттойбуз.

  1. MySQL Workbench менен Raspberry Pi'ге туташыңыз
  2. Click Server -> Маалыматтарды Импорттоо
  3. Өз алдынча файлды импорттоону тандаңыз
  4. Githubдан Database-export папкасында dump_project1.sql деп аталган sql файлы бар
  5. Бул файлды карап чыгып, импортту баштоону басыңыз

Дал ушул. Пи азыр туура маалыматка ээ болсо, маалымат базасына кире алат.

6 -кадам: Картаны таратуучунун иши

Картаны таратуучунун иши
Картаны таратуучунун иши
Картаны таратуучунун иши
Картаны таратуучунун иши
Картаны таратуучунун иши
Картаны таратуучунун иши

Бул кадамда мен бул иш үчүн эмнени колдонгонумду жана бардыгын кантип орнотконумду түшүндүрөм.

Мен 2 ABS кутусун колдондум:

- 265 x 185 x 95 мм

- 171 x 121 x 80 мм

Мен кутуларга жасаган тешиктер

ЖК дисплей үчүн тешик, электр кабелдери үчүн 3 тешик, бирөө тепкич моторунан келген зымдар үчүн, DC мотору жана УЗИ сенсору.

Эң кичинекей коробкада мен тетиктерден зымдар үчүн тешик жасадым жана карттардын өтүшү үчүн тешик жасадым. Үстүнкү жагында мен эң чоң тешикти жасадым, андыктан сиз оюн карталарын түзмөккө жайгаштыра аласыз.

Мен DC моторун кронштейн жана эки жактуу скотч менен орноттум. Карталарды салуу үчүн жыгач тактай жасадым, дөңгөлөк үчүн картаны атууга тешиги бар.

Мен ABS пластикти тандап алдым, анткени ал жеңил, ошондуктан тепкич мотору аны оңой бура алат. Жыгач чындыгында оор болушу мүмкүн жана тепкич мотору бул менен көйгөйлөргө туш болушу мүмкүн. Тешиктерди кесүү үчүн мен металлга жана Дремелге арналган бургулоочу учтары бар бургулоону колдондум. Чоңураак тешиктерди кесүү бир топ эмгекти талап кылды жана пилла араа жакшы болмок.

7 -кадам: Кызмат катары программа

Пи жүктөлгөндөн кийин коддун башталышы чынында эле пайдалуу. Бул үчүн биз кызмат көрсөтөбүз.

Төмөнкү буйрук менен smartcard.service деп аталган жаңы файл түзүңүз:

sudo нано /etc/systemd/system/smartcard.service

Бул файлга кириши керек:

[Бирдик]

Description = Smart card backend After = network.target [Service] ExecStart =/usr/bin/python3 -u app.py WorkingDirectory =/home/pi/project1 StandardOutput = inherit StandardError = кайра баштоо = дайыма User = pi [Орнотуу] WantedBy = multi-user.target WorkingDirectory - бул программа жайгашкан папкага баруучу жол

Эми сизде жеке Smart Card бар!

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