Агуулгын хүснэгт:
- Хангамж
- Алхам 1: Rasperry Pi бэлтгэх
- Алхам 2: Visual Studio код болон MySQL Workbench -ийг тохируулах
- Алхам 3: Хөргөх диаграм
- Алхам 4: Github дээрх код
- Алхам 5: Өгөгдлийн сангийн хэвийн бүтэц
- Алхам 6: Карт дистрибьютерийн хайрцаг
- Алхам 7: Үйлчилгээ болгон програмчлах
Видео: Автомат карт дистрибьютер: 7 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:01
Би картын тоглоом тоглох дуртай тул ухаалаг картын борлуулагчийг анхны төслөөрөө сонгосон. Миний хамгийн дургүй байгаа зүйл бол карт зарах явдал юм. Тоглолт бүрийн хувьд хүн бүр хэдэн карт авах ёстойг санах хэрэгтэй. Маш олон картын тоглоом мэддэг байхад энэ нь ойлгомжгүй болдог. Миний төсөл нь ахмад настан, Паркинсоны өвчтэй хүмүүс гэх мэт карт тараахад бэрхшээлтэй хүмүүст туслах болно.
Хангамж
- 1 Raspberry Pi (би Raspberry Pi 4 ашигласан)
- SD карт (16 ГБ санал болгож байна)
- Raspberry Pi-ийн 1 ширхэг талхны хэсэг (T-хэсэг)
- 2 талхны самбар
- 1 Талхны самбар, 5V ба 3V3 цахилгаан хангамжийн модуль
- 1 LCD дэлгэц
- 1 потенциометр
- 1 MPU6050 (акселерометр ба гироскоп)
- 1 NPN транзистор
- 1 PCF8574N I/O өргөтгөгч
- 1 шатлалт мотор
- 1 ULN2003 таслагч самбар нь stepper моторыг хянадаг
- 1 HC-SR04 хэт авианы мэдрэгч
- 1 5V тогтмол гүйдлийн мотор
- 1 диод
- 6 470 Ом эсэргүүцэл
- 4 10K Ом эсэргүүцэл
- Бүгдийг холбох цахилгаан утас
Бэлтгэх явцад танд хэрэгтэй болно:
- Гагнуурын төмөр
- Гагнуур
- Дремел эсвэл jig хөрөө (мод, хий хуванцар огтлох зүйл)
Програм хангамж:
- Шаваас
- MySQL ажлын ширээ
- Win32 диск дүрслэгч
- Код засварлагч (би Visual Studio кодыг санал болгож байна)
- 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 програмыг хааж болно
Одоо бид Pi -тэй холбогдохын тулд дахиад хэдэн зүйл хийх хэрэгтэй байна
- SD карт дээрх ачаалах хавтас руу очно уу
- Cmdline.txt файлыг нээнэ үү
- Хоосон зайгаар тусгаарлагдсан мөрийн төгсгөлд 'ip = 169.254.10.1' нэмнэ үү
- Файлыг хадгалаад гарна уу
- Үүнтэй ижил санд ssh нэртэй файл үүсгээд өргөтгөлийг устгана уу (энэ нь эхний ачаалах үед ssh -ийг идэвхжүүлж бид Pi -тэй холбогдох боломжтой болно)
- SD картыг аюулгүйгээр гаргаж, Pi -д оруулна уу
Одоо бид Pi руу холбогдож болно:
- Ethernet кабель аваад нэг үзүүрийг Pi -д, нөгөө үзүүрийг компьютер дээрээ оруулна уу
- Нээлттэй шаваас
- Хостын нэрийн талбарт 169.254.10.1 оруулна уу
- SSH сонгогдсон бөгөөд порт нь 22 байгаа эсэхийг шалгаарай
- Нээх дээр дарна уу
- Хэрэв танд анхааруулга ирсэн бол та үүнийг үргэлжлүүлж, үл тоомсорлож болно
- Хэрэглэгчийн нэр нь pi, нууц үг нь бөөрөлзгөнө юм
Програм хангамжийн тохиргоо ба суурилуулалт:
Дараах тушаалаар raspi-config-ийг нээнэ үү.
sudo raspi-config
5 -р сонголтыг сонгоно уу: Интерфэйсийн сонголтууд
SPI ба I2C -ийг идэвхжүүлнэ үү
3 -р сонголтод дараах зүйлсийг идэвхгүй болго: Ачаалах сонголтууд:
- Шилдэг дэлгэц
- Ширээний хувьд биш харин эхлүүлэхийн тулд cli сонгоно уу
Wifi тохиргоо:
Wifi нь вэбсайт руу хялбархан нэвтрэхэд тустай. Та wifi -ийн итгэмжлэлээ ойрхон байгаа эсэхийг шалгаарай.
Wi -Fi -ийг тохируулахын тулд бидэнд дараахь зүйлс хэрэгтэй болно.
Энэ тушаалыг ашиглан Wi -Fi -аа нэмж, 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 вэб серверийг суулгах:
sudo apt install apache2 -y
MariaDB серверийг суулгаж байна:
sudo apt install mariadb -server -y
Одоо бид дахин ачаалах хэрэгтэй:
sudo дахин ачаална уу
MariaDB суулгалтыг аюулгүй байлгахыг зөвлөж байна. Та энэ тушаалыг ажиллуулж үүнийг хийж болно:
sudo mysql_secure_installation
Эхлээд танаас одоогийн үндсэн нууц үгийг асуух болно, гэхдээ анхдагч суулгалтанд тийм нууц үг байдаггүй тул enter дарна уу.
Дараа нь танаас root нууц үгээ тохируулахыг хүсч байгаа эсэхийг асуух болно, y гэж бичнэ үү. Нууц үгээ санаж байгаа эсэхээ шалгаарай!
- Нэргүй хэрэглэгчдийг устгахын тулд y оруулна уу
- Алсын зайнаас root нэвтрэлтийг идэвхгүй болгохын тулд y оруулна уу
- Туршилтын мэдээллийн санг устгах, түүнд хандахын тулд y оруулна уу
- Онцгой эрхүүдийг дахин ачаалахын тулд y оруулна уу
Таны MariaDB суулгац найдвартай байх ёстой!
Одоо бид шинэ хэрэглэгч үүсгэж болно:
Энэ тушаалаар mysql бүрхүүлийг оруулна уу.
sudo mysql
Дараах тушаалуудыг mysql хэрэглэгчийн нэр, нууц үгээр (your_password) ашиглан үүсгэ.
'your_password' -оор тодорхойлогдсон mysql@localhost хэрэглэгчийг үүсгэх;
mysql@localhost дээр *. * дээрх бүх давуу эрхийг олгох;
FLUSH давуу эрх;
Энэ тушаалаар mysql бүрхүүлээс гарна уу.
гарах;
Python багцууд:
Хэрэв та Lite хувилбарыг сонгоогүй бол Python -ийг аль хэдийн суулгасан байх ёстой.
sudo apt install python3-pip
Бидэнд маш их хэмжээний Python багц хэрэгтэй бөгөөд та тэдгээрийг дараах тушаалаар суулгаж болно.
pip3 mysql-connector-python колбо-сокетио колбо-cors gevent gevent-websocket суулгах
Одоо бид дахин дахин ачаалах хэрэгтэй
sudo дахин ачаална уу
Алхам 2: Visual Studio код болон MySQL Workbench -ийг тохируулах
MySQL Workbench ашиглан Pi -тэй холбогдох:
MySQL Workbench -ийг нээнэ үү
Дараах мэдээллээр Pi -тай шинэ холболт үүсгэнэ үү.
- Холболтын нэр: Raspi
- Холболтын арга: SSH дээр стандарт TCP/IP
- SSH хостын нэр: Pi-ийн IP хаяг
Та IP хаягийг дараах тушаалаар авах боломжтой.
ip a
- SSH хэрэглэгчийн нэр: pi
- MySQL хостын нэр: 127.0.0.1
- MySQL серверийн порт: 3306
- Хэрэглэгчийн нэр: mysql
OK дарж pi хэрэглэгчийн нууц үгийг оруулаад mysql хэрэглэгчийн нууц үгийг оруулна уу.
Visual Studio кодыг тохируулах:
Visual Studio кодыг нээнэ үү
Эдгээр 2 өргөтгөлийг суулгана уу:
- Алсын зай - SSH
- Алсын зай - SSH: Тохиргооны файлуудыг засварлах
Visual Studio Code F1 дээр дараад ssh гэж бичнэ үү
Алсын SSH сонгох: Шинэ SSH хост нэмэх
Ssh pi@IP хаягийг бөглөнө үү
Дараагийн алхамд enter дарна уу
Одоо Pi -тай холболт хийгдэж байна. Та F1 товчлуурыг дарж Алсын хост руу холбогдохыг сонгож Pi -тай холбогдох боломжтой.
Visual Studio Code нь Pi руу нэвтрэх боломжтой байхын тулд нууц үгээ оруулна уу.
Өөр нэг зүйл: Python өргөтгөлийг алсын машин дээр суулгаарай, ингэснээр та кодыг хялбархан ажиллуулж, дибаг хийж чадна.
Алхам 3: Хөргөх диаграм
Энэ алхамд би хэлхээг тайлбарлах болно.
Дээрх схемүүдийг Fritzing ашиглан хийсэн болно.
DC мотор:
GPIO 18 -ийг npn транзисторын дунд зүү болох коллекторын сууринд холбоно уу. Хөдөлгүүрийн газардуулгыг транзистороос коллекторт холбож, хөдөлгүүрийн хүчийг 5В -т холбоно. Транзисторын газардуулгыг газардуулгын шугамд холбоно. Диодыг хөдөлгүүр дээр хаалтанд холбож, гүйдэл нь транзистор руу шууд урсахаас сэргийлнэ.
Stepper мотор:
Stepper моторыг хяналтын самбарт холбоно уу. Хяналтын самбар дээр 5V ба газардуулга холбох нэг талын тээглүүр байдаг. Бусад тээглүүр нь хяналтын тээглүүр юм. Эдгээр тээглүүр нь хөдөлгүүр доторх соронзыг хянадаг тул эргүүлэх боломжтой. Эдгээр зүүг Raspberry Pi дээрх GPIO 12, 16, 20, 21 -тэй холбоно уу.
HC-SR04 хэт авианы:
Энэхүү мэдрэгч нь дууны тусламжтайгаар ойролцоогоор 4.5 метр хүртэлх зайг хэмжих боломжтой.
VCC зүүг 5V, гох зүүг GPIO 25 -д, 470 Ом эсэргүүцэлтэй цуурай зүүг GPIO 24 -т, газарт 470 Ом эсэргүүцэлтэй газардуул.
MPU6050:
VCC зүүг 3V3, газардуулгатай холбож, Pi дээрх scl рүү, sda to sda дээр Pi дээр холбоно уу. Энэ мэдрэгчийн хувьд би үүнийг хянахын тулд I2C ашигладаг. Та эндээс илүү ихийг уншиж болно. Энд үндсэн тайлбар байна: Pi бол эзэн, MPU6050 бол боол юм. Scl шугамаар дамжуулан Pi нь цаг хугацааг хянадаг бөгөөд sda шугам нь өгөгдлийг мастераас боол руу эсвэл боолоос мастер руу илгээдэг. Зөвхөн мастер л өгөгдөл дамжуулах ажлыг эхлүүлж чадна.
Гэрэл хамааралтай резистор:
LDR -ээс зөв уншихын тулд би MCP3008 чип ашигладаг. Энэ нь ldr -ийн уншилт тогтвортой бөгөөд аналогиас тоон дохио руу зөв хөрвүүлэгдсэн эсэхийг шалгадаг.
3V3 -ийг ldr -ийн нэг талд 10K Ом эсэргүүцэлтэй холбоно уу. Ldr ба резисторын хооронд MCP3008 -ийн 0 суваг руу утас холбоно. Дараа нь ldr -ийн нөгөө талыг газардуул.
LCD дэлгэц:
Та LCD дэлгэцийг PCF8574 -гүйгээр ашиглаж болно, гэхдээ Pi дээрх 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 газардана
- А1 газардана
- А2 газардуул
- Газраас газар хүртэл
- VCC - 5V хүртэл
- SDA - GPIO 27
- 330 Ом эсэргүүцэлтэй GPIO 22 руу SCL
Танд ямар дэлгэц байгаагаас хамааран LED+ ба LED байхгүй байж магадгүй. LED+ ба LED нь арын гэрэлтүүлэг юм.
Потенциометрийн эерэг талыг 5В, газардуулгыг газардуул.
Татах эсэргүүцэл ашиглаж байгаа эсэхээ шалгаарай.
Алхам 4: Github дээрх код
Та шаардлагатай бүх кодыг миний Github дээрээс олж болно.
Фолдер төсөл1:
Энэ хавтас нь арын хэсгийн бүх кодыг агуулдаг. Klasses фолдерт техник хангамжийг хянах бүх ангиуд байдаг.
Фолдерын репозитор нь Database.py ба DataRepository.py гэсэн 2 файл агуулдаг. Database.py нь мэдээллийн баазын холболтыг хадгалж, асуулга боловсруулдаг. DataRepository.py нь сайтад шаардлагатай бүх асуулгыг агуулдаг.
App.py бол арын хэсгийн үндсэн файл юм. Pi ачаалах үед энэ файл автоматаар эхэлдэг.
Config.py нь мэдээллийн санд холбогдох хэд хэдэн тохиргоог агуулдаг. Эдгээр файлыг өөрийн мэдээллээр бөглөсөн эсэхээ шалгаарай.
Та энэ фолдерыг гэрийн лавлахын аль ч хэсэгт байрлуулж болно.
Html фолдер:
Энэ фолдер нь сайтын бүх файлуудыг агуулдаг.
- Фолдер нь сайтын зохион байгуулалтын файлуудыг агуулдаг.
- Фонтууд нь сайт дээр ашигласан фонтуудыг агуулдаг.
- Скрипт нь сайтыг динамик болгохын тулд бүх Javascript файлуудыг агуулдаг
Энэ фолдер нь/var/www/html хавтсанд байх ёстой
Та дараах тушаалыг ашиглан файл эсвэл фолдер хуулж болно.
sudo mv/path/to/current/директор/path/to/destination/директор
Сайт руу очихын тулд LCD дэлгэц дээр IP хаягийг оруулна уу.
Алхам 5: Өгөгдлийн сангийн хэвийн бүтэц
Энэ үе шатанд бид мэдээллийн санг импортлох гэж байна.
- MySQL Workbench ашиглан Raspberry Pi -тай холбогдоно уу
- Server -> Data Import дээр дарна уу
- Импортоор бие даасан файлыг сонгоно уу
- Github-аас Database-export фолдерт dump_project1.sql нэртэй sql файл байдаг.
- Энэ файлыг хайж олоод импортлохыг дарна уу
Ингээд л боллоо. Pi зөв мэдээлэлтэй бол одоо мэдээллийн санд хандах боломжтой.
Алхам 6: Карт дистрибьютерийн хайрцаг
Энэ алхамаар би энэ хэрэгт юуг ашиглаж, бүх зүйлийг хэрхэн холбосноо тайлбарлах болно.
Энэ тохиолдолд би 2 ABS хайрцгийг ашигласан.
- 265 x 185 x 95 мм хэмжээтэй
- 171 x 121 x 80 мм
Миний хайрцганд хийсэн нүхнүүд
LCD дэлгэцийн нүх, цахилгаан кабелийн 3 цооног, нэг алхам нь моторын утас, тогтмол гүйдлийн мотор, хэт авианы мэдрэгч.
Хамгийн жижиг хайрцагт би бүрэлдэхүүн хэсгүүдийн утаснуудын нүх, картуудыг дамжуулах нүх гаргав. Дээд талд нь би хамгийн том нүх гаргаснаар тоглоомын картыг төхөөрөмжид байрлуулж болно.
Би DC моторыг хаалт болон хоёр талт соронзон хальсны хамт суулгасан. Би карт буудах дугуйны нүхтэй картуудыг тавих модон самбар хийв.
Би ABS хуванцарыг сонгосон, учир нь энэ нь хөнгөн жинтэй тул stepper мотор амархан эргүүлж чаддаг. Мод үнэхээр хүнд байж болох бөгөөд stepper мотор нь үүнтэй холбоотой асуудал үүсгэж болзошгүй юм. Нүхийг таслахын тулд би метал болон Дремелд зориулагдсан өрөмдлөг бүхий өрөм ашигласан. Илүү том нүхийг хайчлах нь илүү их хөдөлмөр шаардсан бөгөөд jig хөрөө илүү сайн байх болно.
Алхам 7: Үйлчилгээ болгон програмчлах
Pi -г ачаалсны дараа кодыг эхлүүлэх нь үнэхээр ашигтай байдаг. Үүний тулд бид үйлчилгээ хийх гэж байна.
Дараах тушаалаар smartcard.service нэртэй шинэ файл үүсгэнэ үү.
sudo нано /etc/systemd/system/smartcard.service
Үүнийг файлд оруулах ёстой:
[Нэгж]
Тодорхойлолт = Ухаалаг картны арын дараа = network.target [Үйлчилгээ] ExecStart =/usr/bin/python3 -u app.py WorkingDirectory =/home/pi/project1 StandardOutput = өвлөх StandardError = өвлөн дахин эхлүүлэх = үргэлж User = pi [Install] WantedBy = олон хэрэглэгчийн зорилт WorkingDirectory бол програм байрладаг хавтас руу орох зам юм
Одоо та өөрийн гэсэн ухаалаг карттай боллоо!
Зөвлөмж болгож буй:
SIM900A 2G модуль + Голограмм SIM карт = "Шороо хямд" ангилалд ялсан хослол? 6 алхам
SIM900A 2G модуль + Голограмм SIM карт = "Шороон хямдхан" ангиллын хослолын ялалт ?: Энэ арван жилийн хэлц үг болох IoT заримдаа өөрийгөө моодонд тэсвэртэй гэж боддог хүмүүсийн оюун санаанд хүртэл орж ирдэг. Интернет, урьд өмнө хэзээ ч сонсож байгаагүй компанийг харсан (Голограмм) SIM карт тарааж байна
SD карт байхгүй бол Raspberry Pi 4 Retropie Boot: 5 алхам
SD карт байхгүй бол Raspberry Pi 4 Retropie Boot -ийг гаднаас ачаалах: ~ github.com/engrpanda
GPRS (SIM карт) өгөгдлийн холбоос бүхий цаг агаарын авсаархан мэдрэгч: 4 алхам
GPRS (SIM карт) бүхий авсаархан цаг агаарын мэдрэгч Мэдээллийн холбоос: Төслийн хураангуй Энэ нь BME280 температур/даралт/чийгшил мэдрэгч болон ATMega328P MCU дээр суурилсан батерейгаар ажилладаг цаг агаарын мэдрэгч юм. Энэ нь 3.6 V лити тионил АА гэсэн хоёр батерейгаар ажилладаг. Энэ нь маш бага унтлагын хэрэглээ бөгөөд 6 мкА байна. Энэ нь өгөгдлийг илгээдэг
ESP8266 автомат автомат IoT коридорын шөнийн гэрэл: 4 алхам (зурагтай)
ESP8266 -тай автомат IoT хонгилын шөнийн гэрэл: Би энэ төслийг өөр зааварчилгааны бичлэгээс авсан шатны гэрлээс санаа авч эхлүүлсэн. Ялгаа нь хэлхээний тархи нь ESP8266 -ийг ашиглаж байгаа бөгөөд энэ нь IoT төхөөрөмж байх болно гэсэн үг юм
Автомат карт солих: 6 алхам (зурагтай)
Автомат карт солигч: Сайн байна уу! Энэхүү зааварчилгаа нь Өмнөд Флоридагийн их сургуулийн Макекурсын төслийн шаардлагыг биелүүлэх зорилгоор бүтээгдсэн болно. (www.makecourse.com) Энэхүү зааварчилгаанд би танд автомат карт солих процессыг удирдах болно