Სარჩევი:

ბარათის ავტომატური დისტრიბუტორი: 7 ნაბიჯი
ბარათის ავტომატური დისტრიბუტორი: 7 ნაბიჯი

ვიდეო: ბარათის ავტომატური დისტრიბუტორი: 7 ნაბიჯი

ვიდეო: ბარათის ავტომატური დისტრიბუტორი: 7 ნაბიჯი
ვიდეო: სასწრაფოდ უშველე შენ ტელეფონს ! 🔴 2024, ნოემბერი
Anonim
ბარათის ავტომატური დისტრიბუტორი
ბარათის ავტომატური დისტრიბუტორი

მე ავირჩიე სმარტ ბარათების დისტრიბუტორი, როგორც ჩემი პირველი პროექტი, რადგან მე მიყვარს კარტის თამაში. რაც ყველაზე მეტად არ მომწონს არის სავიზიტო ბარათები. თქვენ უნდა დაიმახსოვროთ რამდენი თამაში იღებს თითოეულ ადამიანს. ეს გაუგებარია, როდესაც ბევრი კარტის თამაში იცი. ჩემი პროექტი ასევე დაეხმარება იმ ადამიანებს, რომლებსაც უჭირთ ბარათების განაწილება ხანდაზმული ადამიანების მსგავსად და ადამიანები, რომლებსაც პარკინსონი აწუხებთ.

მარაგები

  • 1 Raspberry Pi (მე გამოვიყენე Raspberry Pi 4)
  • SD ბარათი (რეკომენდირებულია 16 GB)
  • 1 Outbread ცალი ჟოლოს Pi (T- ცალი)
  • 2 დაფა
  • 1 კვების ბლოკის მოდული, 5V და 3V3
  • 1 LCD დისპლეი
  • 1 პოტენომეტრი
  • 1 MPU6050 (ამაჩქარებელი და გიროსკოპი)
  • 1 NPN ტრანზისტორი
  • 1 PCF8574N I/O გაფართოება
  • 1 სტეპერიანი ძრავა
  • 1 ULN2003 გარღვევის დაფა სტეპერ ძრავის გასაკონტროლებლად
  • 1 ულტრაბგერითი სენსორი HC-SR04
  • 1 5V DC ძრავა
  • 1 დიოდი
  • 6 470 Ohm წინააღმდეგობა
  • 4 10K Ohm წინააღმდეგობა
  • ელექტრო მავთული ყველაფრის დასაკავშირებლად

სასარგებლოა დამზადებისას:

  • გასაყიდი რკინა
  • Solder
  • დრემელის ან ჯიგის ხერხი (ხის და პლასტმასის გასაჭრელად)

პროგრამული უზრუნველყოფა:

  • პუტი
  • MySQL სამუშაო მაგიდა
  • Win32 დისკის იმიჯერი
  • კოდის რედაქტორი (მე გირჩევთ Visual Studio Code- ს)
  • WinSCP
  • რასპბიური გამოსახულება

ნაბიჯი 1: Rasperry Pi- ის მომზადება

პირველ რიგში ჩვენ უნდა მოვამზადოთ ჟოლო Pi სანამ სხვა რამეს გავაკეთებთ. იმის გამო, რომ ყველაფერი Pi იქნება, ასე რომ ეს არის ბარათის დისტრიბუტორის ერთ -ერთი ყველაზე მნიშვნელოვანი ნაწილი.

ინსტალაცია:

ჩამოტვირთეთ Raspbian სურათი

  1. ჩამოტვირთეთ ZIP ფაილი
  2. ამოიღეთ ZIP ფაილი, სადაც შეგიძლიათ მარტივად იპოვოთ
  3. გახსენით Win32 Disk Imager და შეარჩიეთ ამოღებული სურათი
  4. ჩამოსაშლელ მენიუში აირჩიეთ SD ბარათი და დააწკაპუნეთ ჩაწერაზე
  5. ჩაწერის პროცესის დასრულების შემდეგ შეგიძლიათ დახუროთ Win32 Disk Imager

ახლა ჩვენ გვჭირდება კიდევ რამდენიმე რამის გაკეთება სანამ Pi- სთან დაკავშირებას შევძლებთ

  1. გადადით SD ბარათის ჩატვირთვის საქაღალდეში
  2. გახსენით ფაილი cmdline.txt
  3. დაამატეთ 'ip = 169.254.10.1' ხაზის ბოლოს, რომელიც გამოყოფილია სივრცეში
  4. შეინახეთ და გამოდით ფაილიდან
  5. იმავე დირექტორიაში შექმენით ფაილი სახელწოდებით ssh და წაშალეთ გაფართოება (ეს გაააქტიურებს ssh პირველ ჩატვირთვისას, ასე რომ ჩვენ შეგვიძლია Pi- სთან დაკავშირება)
  6. უსაფრთხოდ ამოიღეთ SD ბარათი და ჩადეთ იგი Pi- ში

ახლა ჩვენ შეგვიძლია დაკავშირება Pi:

  1. აიღეთ Ethernet კაბელი და ჩადეთ ერთი ბოლო Pi და მეორე ბოლო თქვენს კომპიუტერში
  2. გახსენით პუტი
  3. შეიყვანეთ 169.254.10.1 მასპინძლის სახელის ველში
  4. დარწმუნდით, რომ SSH არჩეულია და პორტი არის 22
  5. დააწკაპუნეთ გახსნაზე
  6. თუ გაფრთხილებას მიიღებთ, შეგიძლიათ გააგრძელოთ და უგულებელყოთ იგი
  7. მომხმარებლის სახელი არის pi და პაროლი არის ჟოლო

პროგრამული უზრუნველყოფის კონფიგურაცია და ინსტალაცია:

გახსენით raspi-config შემდეგი ბრძანებით:

sudo raspi-config

აირჩიეთ მე -5 ვარიანტი: ინტერფეისის პარამეტრები

ჩართეთ SPI და I2C

მე –3 ვარიანტში გამორთეთ შემდეგი რამ: ჩატვირთვის პარამეტრები:

  • გაფრქვევის ეკრანი
  • აირჩიეთ cli გაშვებისთვის და არა სამუშაო მაგიდისთვის

Wifi დაყენება:

Wifi სასარგებლოა ვებგვერდზე ადვილად ნავიგაციისთვის. დარწმუნდით, რომ დახურული გაქვთ თქვენი wifi სერთიფიკატები.

Wifi– ს დასაყენებლად ჩვენ გვჭირდება რამდენიმე რამ:

დაამატეთ თქვენი wifi ამ ბრძანების გამოყენებით და შეცვალეთ SSID და PASSWORD თქვენს ინფორმაციაზე:

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

შეასრულეთ ეს ბრძანება თქვენი WiFi– ს ხელახლა კონფიგურაციისთვის:

sudo wpa_cli

აირჩიეთ სწორი ინტერფეისი:

ინტერფეისი wlan0

ხელახლა დააკონფიგურირეთ ინტერფეისი:

ხელახლა კონფიგურაცია

შეამოწმეთ წარმატებული იყო თუ არა ხელახალი კონფიგურაცია ამ ბრძანებით:

ip a

თუ ხედავთ IP მისამართს wlan0 ინტერფეისზე, მაშინ ყველაფერი დაყენებულია.

ოპერაციული სისტემის განახლება

განაახლეთ ოპერაციული სისტემა ამ ორი ბრძანებით:

sudo apt განახლება

sudo apt სრული განახლება

MariaDB– ის დაყენება:

Apache ვებ სერვერის დაყენება:

sudo apt დააინსტალირეთ apache2 -y

MariaDB სერვერის ინსტალაცია:

sudo apt დააინსტალირეთ mariadb -server -y

ახლა ჩვენ გვჭირდება გადატვირთვა:

sudo გადატვირთვა

რეკომენდებულია MariaDB ინსტალაციის დაცვა. ამის გაკეთება შეგიძლიათ ამ ბრძანების შესრულებით:

sudo mysql_secure_installation

პირველი თქვენ მოგეთხოვებათ მიმდინარე root პაროლი, მაგრამ ნაგულისხმევ ინსტალაციას არ აქვს ერთი, ასე რომ დააჭირეთ Enter.

შემდეგ თქვენ გკითხავთ, გსურთ დააყენოთ ძირეული პაროლი, ჩაწერეთ y. დარწმუნდით, რომ გახსოვთ პაროლი!

  • შეიყვანეთ y ანონიმური მომხმარებლების წასაშლელად
  • შეიყვანეთ y, რომ დისტანციურად გააუქმოს root შესვლა
  • შეიყვანეთ y საცდელი მონაცემთა ბაზების ამოსაღებად და მასზე წვდომისათვის
  • შეიყვანეთ y პრივალების გადატვირთვისთვის

თქვენი MariaDB ინსტალაცია უნდა იყოს უსაფრთხო!

ახლა ჩვენ შეგვიძლია შევქმნათ ახალი მომხმარებელი:

შეიყვანეთ mysql shell ამ ბრძანებით:

sudo mysql

შექმენით მომხმარებელი მომხმარებლის სახელით mysql და პაროლით (your_password) შემდეგი ბრძანებები:

შექმენით მომხმარებლის mysql@localhost, განსაზღვრული 'your_password';

მიანიჭეთ ყველა უპირატესობა *. * - ს mysql@localhost;

FLUSH პრივილეგიები;

გამოდით mysql ჭურვიდან ამ ბრძანებით:

გასვლა;

პითონის პაკეტები:

პითონი უკვე უნდა იყოს დაინსტალირებული, თუ არ შეარჩიეთ Lite ვერსია:

sudo apt დააინსტალირეთ python3-pip

ჩვენ გვჭირდება პითონის პაკეტების კარგი რაოდენობა, თქვენ შეგიძლიათ დააინსტალიროთ ყველა მათგანი შემდეგი ბრძანებით:

pip3 დააინსტალირეთ mysql-connector-python flask-socketio flask-cors gevent gevent-websocket

ახლა ჩვენ უნდა გადატვირთოთ კიდევ ერთხელ

sudo გადატვირთვა

ნაბიჯი 2: Visual Studio კოდის და MySQL Workbench- ის დაყენება

Pi– სთან დაკავშირება MySQL Workbench– ით:

გახსენით MySQL Workbench

შექმენით ახალი კავშირი Pi– სთან შემდეგი ინფორმაციით:

  • კავშირის სახელი: რასპი
  • კავშირის მეთოდი: სტანდარტული TCP/IP SSH– ზე
  • 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– ს კოდს F1 და ჩაწერეთ ssh

აირჩიეთ დისტანციური SSH: დაამატეთ ახალი SSH მასპინძელი

შეავსეთ ssh pi@IP მისამართი

შემდეგ ეტაპზე დააჭირეთ Enter

ახლა კავშირი დამყარებულია პითან. Pi– სთან დაკავშირება შეგიძლიათ F1 დაჭერით და დისტანციური მასპინძელთან დაკავშირების არჩევით.

შეიყვანეთ პაროლი ისე, რომ Visual Studio Code– ს წვდომა ჰქონდეს Pi– ზე.

კიდევ ერთი რამ: დააინსტალირეთ პითონის გაფართოება დისტანციურ მანქანაზე, ასე რომ თქვენ შეგიძლიათ მარტივად გაუშვათ და გამართოთ კოდი.

ნაბიჯი 3: გაყინვის დიაგრამა

გაყინვის დიაგრამა
გაყინვის დიაგრამა
გაყინვის დიაგრამა
გაყინვის დიაგრამა
გაყინვის დიაგრამა
გაყინვის დიაგრამა

ამ ეტაპზე მე ავხსნი წრეს.

ზემოთ მოყვანილი სქემები დამზადებულია ფრიზინგით.

DC ძრავა:

შეაერთეთ GPIO 18 კოლექტორის ბაზაზე, შუა პინი npn ტრანზისტორზე. შეაერთეთ ძრავის საფუძველი კოლექტორთან ტრანზისტორიდან და ძრავის სიმძლავრე 5 ვ. შეაერთეთ ტრანზისტორის მიწა მიწის ხაზთან. შეაერთეთ დიოდი ბარიერში ძრავაზე ისე, რომ ის ბლოკავს მრგვალს პირდაპირ ტრანზისტორში.

Ბიჯური ძრავი:

შეაერთეთ სტეპერიანი ძრავა საკონტროლო დაფაზე. საკონტროლო დაფაზე არის ერთ მხარეს ქინძისთავები 5V და მიწასთან დასაკავშირებლად. სხვა ქინძისთავები არის საკონტროლო ქინძისთავები. ეს ქინძისთავები აკონტროლებენ მაგნიტებს ძრავის შიგნით, რათა ის გადატრიალდეს. შეაერთეთ ეს ქინძისთავები GPIO 12, 16, 20 და 21 Raspberry Pi– ზე.

HC-SR04 ულტრაბგერითი:

ამ სენსორს შეუძლია მანძილის გაზომვა დაახლოებით 4.5 მეტრამდე ხმის გამოყენებით.

შეაერთეთ VCC პინი 5V- თან, გამშვები პინი GPIO 25 -თან, ექოს პინი 470 Ohm რეზისტორით GPIO 24 -თან და მიწა 470 Ohm რეზისტენტთან მიწასთან.

MPU6050:

შეაერთეთ VCC პინი 3V3- თან, მიწა მიწასთან, scl- ით scl- ზე Pi და sda sda- ზე Pi- ზე. ამ სენსორისთვის მე ვიყენებ I2C მის გასაკონტროლებლად. ამის შესახებ მეტი შეგიძლიათ წაიკითხოთ აქ. აქ არის ძირითადი ახსნა: Pi არის ოსტატი და MPU6050 არის მონა. Scl ხაზის მეშვეობით Pi აკონტროლებს ვადებს და sda ხაზი გამოიყენება მონაცემების გასაგზავნად ოსტატიდან მონაზე ან მონადან ბატონზე. მხოლოდ მასტერს შეუძლია მონაცემთა გადაცემის ინიცირება.

შუქზე დამოკიდებული რეზისტორი:

LDR– დან სწორი კითხვის მისაღებად მე ვიყენებ MCP3008 ჩიპს. ეს უზრუნველყოფს, რომ ldr– ის კითხვები სტაბილური და სწორია ანალოგურიდან ციფრულ სიგნალებად.

შეაერთეთ 3V3 ldr– ის ერთ მხარეს 10K Ohm რეზისტორით. Ldr და რეზისტორს შორის დააკავშირეთ მავთული MCP3008 არხზე 0. შემდეგ დააკავშირეთ ldr– ის მეორე მხარე მიწასთან.

LCD დისპლეი:

თქვენ შეგიძლიათ გამოიყენოთ LCD დისპლეი PCF8574– ის გარეშე, მაგრამ რადგანაც PiI– ზე GPIO ქინძისთავები შეზღუდულია, მე ვიყენებ PCF8574– ს GPIO ქინძისთავების შესანახად. თქვენ ასევე შეგიძლიათ გამოიყენოთ ცვლის რეგისტრატორი, მაგრამ მე მირჩევნია PCF8574. თქვენ შეგიძლიათ აკონტროლოთ PCF8574 SMbus პროტოკოლით, მაგრამ მე დავწერე ჩემი კლასი, რომ გავაკონტროლო იგი. პოტენომეტრი აკონტროლებს კონტრასტს.

LCD ეკრანის ქინძისთავები:

  • VSS მიწაზე
  • VDD– დან 5V– მდე
  • V0 პოტენციომეტრის ცვლადი პინისკენ
  • RS to GPIO 13
  • R/W მიწაზე, რადგან მე მხოლოდ ვწერ ეკრანზე და არ ვკითხულობ
  • E GPIO 19 -მდე
  • PCF DB0 to P0
  • DB1– დან P1– მდე
  • DB2 to P2
  • DB3 to P3
  • DB4 to P4
  • DB5 to P5
  • DB6– დან P6– მდე
  • DB7– დან P7– მდე
  • LED+ 5V– მდე
  • LED- მიწაზე

PCF8574 ქინძისთავები:

  • A0 მიწაზე
  • A1 მიწაზე
  • A2 მიწაზე
  • მიწას მიწაზე
  • VCC 5V– მდე
  • SDA GPIO 27 -მდე
  • SCL– დან GPIO 22 – მდე, რეზისტორი 330 Ohm– ით

თქვენ შეიძლება არ გქონდეთ LED+ და LED- ეს დამოკიდებულია იმაზე, თუ რა ტიპის ჩვენება გაქვთ. LED+ და LED- არის განათებისთვის.

შეაერთეთ პოტენომეტრის დადებითი მხარე 5V- თან და მიწა მიწასთან.

დარწმუნდით, რომ იყენებთ გამწევ რეზისტორებს!

ნაბიჯი 4: კოდი Github– ზე

თქვენ შეგიძლიათ იპოვოთ ყველა საჭირო კოდი ჩემს Github– ზე.

საქაღალდის პროექტი 1:

ეს საქაღალდე შეიცავს უკანა ხაზის მთელ კოდს. საქაღალდეში კლასები არის ყველა კლასი აპარატურის გასაკონტროლებლად.

საქაღალდის საცავი შეიცავს 2 ფაილს: Database.py და DataRepository.py. Database.py ინარჩუნებს კავშირს მონაცემთა ბაზასთან და ამუშავებს შეკითხვებს. DataRepository.py შეიცავს ყველა მოთხოვნას საიტისთვის.

App.py არის უკანა ხაზის მთავარი ფაილი. ეს ფაილი ავტომატურად იწყება Pi ჩატვირთვისას.

Config.py შეიცავს რამდენიმე პარამეტრს მონაცემთა ბაზასთან დასაკავშირებლად. დარწმუნდით, რომ შეავსეთ ეს ფაილები თქვენივე ინფორმაციით.

თქვენ შეგიძლიათ განათავსოთ ეს საქაღალდე თქვენი სახლის დირექტორიის ნებისმიერ ადგილას.

საქაღალდე html:

ეს საქაღალდე შეიცავს ყველა ფაილს საიტისთვის, frontend.

  • საქაღალდე შეიცავს ფაილებს საიტის განლაგებისათვის.
  • შრიფტები შეიცავს შრიფტებს, რომლებიც გამოიყენება საიტზე.
  • სკრიპტი შეიცავს ყველა Javascript ფაილს, რათა საიტი დინამიური გახდეს

ეს საქაღალდე უნდა იყოს საქაღალდეში/var/www/html

თქვენ შეგიძლიათ დააკოპიროთ ფაილი ან საქაღალდე ამ ბრძანებით:

sudo mv/path/to/current/დირექტორია/path/to/destination/დირექტორია

თქვენს ბრაუზერში საიტის ნავიგაციისთვის, ეკრანის ეკრანზე ნაჩვენები იქნება IP მისამართი.

ნაბიჯი 5: მონაცემთა ბაზის ნორმალიზებული სტრუქტურა

მონაცემთა ბაზის ნორმალიზებული სტრუქტურა
მონაცემთა ბაზის ნორმალიზებული სტრუქტურა

ამ ეტაპზე ჩვენ ვაპირებთ მონაცემთა ბაზის იმპორტს.

  1. დაუკავშირდით თქვენს Raspberry Pi– ს MySQL Workbench– ით
  2. დააწკაპუნეთ სერვერზე -> მონაცემთა იმპორტი
  3. აირჩიეთ იმპორტირებული დამოუკიდებელი ფაილი
  4. საქაღალდეში მონაცემთა ბაზა-ექსპორტი Github– დან არის sql ფაილი სახელწოდებით dump_project1.sql
  5. დაათვალიერეთ ეს ფაილი და დააწკაპუნეთ იმპორტის დაწყებას

Ის არის. Pi– ს შეუძლია წვდომა მონაცემთა ბაზაზე, თუ მას აქვს სწორი ინფორმაცია.

ნაბიჯი 6: საქმე ბარათის დისტრიბუტორისთვის

ბარათი დისტრიბუტორისთვის
ბარათი დისტრიბუტორისთვის
ბარათი დისტრიბუტორისთვის
ბარათი დისტრიბუტორისთვის
ბარათი დისტრიბუტორისთვის
ბარათი დისტრიბუტორისთვის

ამ ნაბიჯში მე ავხსნი რა გამოვიყენე საქმისთვის და როგორ დავაყენე ყველაფერი.

საქმისთვის მე გამოვიყენე 2 ABS ყუთი:

- 265 x 185 x 95 მმ

- 171 x 121 x 80 მმ

ყუთებში გაკეთებული ხვრელები

ხვრელი LCD ეკრანისთვის, 3 ხვრელი დენის კაბელებისთვის, ერთი სტეპერიანი ძრავის მავთულისთვის, DC ძრავა და ულტრაბგერითი სენსორი.

ყველაზე პატარა ყუთში მე გავაკეთე ხვრელი კომპონენტებისგან მავთულხლართებისთვის და ხვრელები ბარათების გასავლელად. თავში მე გავაკეთე ყველაზე დიდი ხვრელი, ასე რომ თქვენ შეგიძლიათ განათავსოთ სათამაშო ბარათები მოწყობილობაში.

მე დავამონტაჟე DC ძრავა ფრჩხილით და რამდენიმე ორმხრივი ლენტით. მე გავაკეთე ხის დაფა, რომლითაც ბარათები დავაყენე საჭესთან ერთად ხვრელი ბარათის გადასაღებად.

მე ავირჩიე ABS პლასტიკური, რადგან ის არის მსუბუქი, ასე რომ სტეპერიანი ძრავა ადვილად გადააქცევს მას. ხე შეიძლება მართლაც მძიმე იყოს და სტეპერ ძრავას შეიძლება პრობლემები შეექმნას. ხვრელების დასაჭრელად მე გამოვიყენე საბურღი საბურღი ლითონისა და დრემელისთვის. უფრო დიდი ხვრელების გაჭრას გაცილებით მეტი შრომა დასჭირდა და ჯიგის ხერხი უკეთესი იქნებოდა.

ნაბიჯი 7: პროგრამა, როგორც სერვისი

ნამდვილად სასარგებლოა, რომ კოდი დაიწყოს Pi- ს ჩატვირთვის შემდეგ. ამისათვის ჩვენ ვაპირებთ მომსახურების გაწევას.

შექმენით ახალი ფაილი სახელწოდებით smartcard.service შემდეგი ბრძანებით:

sudo nano /etc/systemd/system/smartcard.service

ეს უნდა შევიდეს ფაილში:

[ერთეული]

აღწერა = Smart card backend After = network.target [Service] ExecStart =/usr/bin/python3 -u app.py WorkingDirectory =/home/pi/project1 StandardOutput = მემკვიდრეობით StandardError = მემკვიდრეობით გადატვირთვა = ყოველთვის მომხმარებელი = pi [ინსტალაცია] WantedBy = multi-user.target WorkingDirectory არის გზა საქაღალდეში, სადაც პროგრამა მდებარეობს

ახლა თქვენ გაქვთ საკუთარი სმარტ ბარათი!

გირჩევთ: