Мазмуну:
- Жабдуулар
- 1 -кадам: Rasperry Pi даярдоо
- 2 -кадам: Visual Studio кодун жана MySQL Workbenchти орнотуу
- 3 -кадам: Fritzing диаграммасы
- 4 -кадам: Githubдагы код
- 5 -кадам: Нормаланган маалымат базасынын структурасы
- 6 -кадам: Картаны таратуучунун иши
- 7 -кадам: Кызмат катары программа
Video: Автоматтык карта таратуучусу: 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Мен карта оюнун ойногонду жакшы көргөндүктөн, биринчи проект катары смарт карт таратуучуну тандадым. Мага эң жакпаган нерсе - карталарды сатуу. Ар бир оюнда ар бир адам канча карт аларын эстен чыгарбоо керек. Бул көп карта оюндарын билгениңизде түшүнүксүз болуп калат. Менин долбоорум ошондой эле карылар жана Паркинсон менен ооруган адамдар сыяктуу карталарды таркатууда кыйналып жүргөн адамдарга жардам берет.
Жабдуулар
- 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/ жүктөп алыңыз
- ZIP файлын жүктөп алыңыз
- ZIP файлын оңой таба турган жерден алыңыз
- Win32 Disk Imager программасын ачыңыз жана алынган сүрөттү тандаңыз
- Ачылуучу менюдан SD картаны тандап, жазууну басыңыз
- Жазуу процесси аяктагандан кийин Win32 Disk Imager программасын жаба аласыз
Эми биз Пи менен туташуудан мурун дагы бир нече нерсени жасашыбыз керек
- SD картадагы жүктөө папкасына өтүңүз
- Cmdline.txt файлын ачыңыз
- Боштук менен бөлүнгөн саптын аягына 'ip = 169.254.10.1' кошуңуз
- Сактоо жана файлдан чыгуу
- Ошол эле каталогдо ssh деп аталган файлды түзүңүз жана кеңейтүүнү алып салыңыз (бул пшке туташуу үчүн биринчи жүктөөдө sshти иштетет)
- SD картаны коопсуз чыгарып, Pi'ге салыңыз
Эми биз Piге туташа алабыз:
- Ethernet кабелин алып, бир башын Piге, экинчи учун компьютериңизге салыңыз
- Open Putty
- Хосттун атына 169.254.10.1 киргизиңиз
- SSH тандалганын жана порт 22 экенин текшериңиз
- Ачууну басыңыз
- Эгерде сиз эскертүү алсаңыз, аны уланта берсеңиз болот
- Колдонуучунун аты пи жана сырсөз малина
Программаны конфигурациялоо жана орнотуу:
Төмөнкү буйрук менен 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 -кадам: Нормаланган маалымат базасынын структурасы
Бул кадамда биз маалымат базасын импорттойбуз.
- MySQL Workbench менен Raspberry Pi'ге туташыңыз
- Click Server -> Маалыматтарды Импорттоо
- Өз алдынча файлды импорттоону тандаңыз
- Githubдан Database-export папкасында dump_project1.sql деп аталган sql файлы бар
- Бул файлды карап чыгып, импортту баштоону басыңыз
Дал ушул. Пи азыр туура маалыматка ээ болсо, маалымат базасына кире алат.
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 бар!
Сунушталууда:
Raspberry Pi 4 Retropie Boot, эгер SD карта жок болсо: 5 кадам
Raspberry Pi 4 Retropie Boot, эгерде SD карта жок болсо: ~ github.com/engrpanda
Карта кеңештери: 3 кадам
Картага түшүрүү боюнча кеңештер: Кандай гана ишиңиз болбосун, жөө басуу, сейилдөө, велосипед тебүү же ал тургай айдоо, сиз алган маршруттарды жаздырсаңыз болот. Андан кийин ал жолдорду досторуңуз жана үй -бүлөңүз менен бөлүшө аласыз. Мындан тышкары, сиз каалаган маршрутуңузга каалаган жерлериңизди кошуу үчүн жазылган маршрутту колдоно аласыз
Micro SD карта менен Arduino колдонуучу аудио ойноткуч: 7 кадам (сүрөттөр менен)
Micro SD карта менен Arduino колдонгон аудио ойнотуучу: Дагы көптөгөн долбоорлор үчүн менин каналыма ЖАЗЫЛЫҢЫЗ ……………………. Көптөр SD картаны интерфейске алгысы келет. arduino менен же arduino аркылуу кандайдыр бир аудио чыгарууну кааласаңыз, бул жерде SD картаны arduino менен интерфейстин эң оңой жана эң арзан жолу. сен бизге бере аласың
Суу сактагыч менен WiFi автоматтык өсүмдүк азыктандыргычы - Ички/Тышкы өстүрүү - Суу өсүмдүктөрү автоматтык түрдө Алыстан Мониторинг менен: 21 кадам
WiFi суу сактагычы бар автоматтык өсүмдүк азыктандыргычы - ички/тышкы өстүрүү - суу өсүмдүктөрү автоматтык түрдө алыстан байкоо жүргүзүү менен: Бул окуу куралында биз өсүмдүктөрдү автоматтык түрдө сугаруучу жана Adosia платформасынын жардамы менен алыстан көзөмөлгө алына турган жабык/сырткы өсүмдүктөрдү багуу тутумун кантип орнотууну көрсөтөбүз
Автоматтык карта аралаштыргычы: 6 кадам (сүрөттөр менен)
Автоматтык карт алмаштыргыч: Саламатсызбы! Бул көрсөтмө Түштүк Флорида университетинин Макекурстун долбоорунун талабын аткаруу үчүн түзүлгөн. (www.makecourse.com) Бул нускамада мен сизге карталарды автоматтык түрдө аралаштыруу процессинде жол көрсөтөм