Სარჩევი:

ბერგარდიანი: 5 ნაბიჯი
ბერგარდიანი: 5 ნაბიჯი

ვიდეო: ბერგარდიანი: 5 ნაბიჯი

ვიდეო: ბერგარდიანი: 5 ნაბიჯი
ვიდეო: Угрюм-река (1969) (1 серия) фильм 2024, ნოემბერი
Anonim
ბერგარდიანი
ბერგარდიანი

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

თვისებები

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

მოკლე ინფორმაცია

მოდით განვმარტოთ ეს მოკლე ვერსიით. ჩვენ გვჭირდება ვებგვერდი და ამ პროექტისთვის მე ვიყენებ Flask- ს, ჩვენ ასევე გვჭირდება მონაცემთა ბაზა და მე ვიყენებ mysql- ს, ასევე სკრიპტს, რომელიც აწარმოებს აპარატურას და ეს არის პითონთან (3) და ბოლოს ჩვენ გვჭირდება სერვერის დაყენება ეს იქნება nginx PI– ზე.

რა გვჭირდება

  • ჟოლო პი 3
  • დედინაცვალი 28BYJ
  • სტეპმოტორული მძღოლის ჩიპი ULN2003 სტეპერიანი მოდული
  • Rgb 3 რეზისტორებით 330 Ohm
  • Pi NoIR კამერა V2
  • ულტრაბგერითი სენსორი HC-SR04
  • მიკრო მოდული არდიუნოდან
  • MAX98357A
  • სპიკერი 8 Ohm
  • და არ დაგავიწყდეთ დათვის ყიდვა

ჟოლოს პი დაყენება -------------------------------------------------- ------------------------------------------------------ ------------------------------

თავდაპირველად ჩვენ გვჭირდება Pi- ს დაყენება. დაიწყეთ უკვე შესვლა putty– ს საშუალებით, თუ არ გაქვთ putty გირჩევთ გადმოწეროთ ეს, უბრალოდ ჩაწერეთ Pi– ს სტატიკური ip ssh– ით და მიდიხართ მასთან ერთად. თუ თქვენ უნდა დააინსტალიროთ თქვენი Raspberry Pi მაშინ მე მივიღე ცუდი ამბავი, მე ამას არ ავხსნი ამ პროექტში.

დააინსტალირეთ პაკეტები

sudo apt განახლება

sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3

ვირტუალური გარემო

python3 -m pip დააინსტალირეთ -განაახლეთ pip setuptools საჭე virtualenv

mkdir {თქვენი პროექტის საქაღალდის სახელი} && cd {თქვენი პროექტის საქაღალდე} python3 -m venv --system-site-packages env source env/bin/activing python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask- MySQL mysql-connector-python passlib

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

github.com/NMCT-S2-Project-I/Project-I.git

თუ გადახედავთ თქვენი პროექტის საქაღალდეს, თქვენ უნდა ნახოთ 5 საქაღალდე

  • კონფიგურაცია
  • შური
  • სენსორი
  • კვ
  • ვებ

Მონაცემთა ბაზა

sudo systemctl სტატუსი mysql

ss -lt | grep mysql sudo mysql

შექმენით მომხმარებელი მონაცემთა ბაზაში ყველა პრივილეგიით და შექმენით თქვენი მონაცემთა ბაზა

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

შექმენით მონაცემთა ბაზა თქვენი მონაცემთა ბაზის სახელი; მიანიჭეთ ყველა პრივილეგია თქვენს მონაცემთა ბაზის სახელზე.* 'user'@'localhost' - ს გრანტის ვარიანტით;

კონფიგურაციის ფაილები სერვერისთვის

Uwsgi-flask.ini– ში თქვენ შეცვლით 'module =…'-ს 'module = web: app' და თქვენს ვირტუალენვისკენ მიმავალ გზას, რომელიც თქვენ შექმენით. სხვა ფაილებში თქვენ უნდა შეცვალოთ ბილიკები თქვენი დირექტორია.

მას შემდეგ რაც გაარკვიეთ, შეგიძლიათ ფაილების დაყენება საჭირო ადგილას.

sudo cp conf/project1-*. service/etc/systemd/system/

sudo systemctl daemon-reload sudo systemctl პროექტის დაწყება 1-* sudo systemctl სტატუსის პროექტი 1-*

ახლა ჩვენ უნდა დავაყენოთ ეს ხელმისაწვდომი

sudo cp conf/nginx/etc/nginx/sites-available/project1

sudo rm/etc/nginx/sites-enabled/default sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project1 sudo systemctl გადატვირთვა nginx.service sudo nginx -t

თუ ყველაფერი კარგად წარიმართა, უნდა გქონდეს გამარჯობა, ამ ბრძანებით

wget -qO - localhost

Შესრულებულია ! ეს ის ნაწილია, რომლის საშუალებითაც შესაძლებელია თქვენი სისტემის გაშვება …

ნაბიჯი 1: აპარატურის მიერთება Pi- სთან

აპარატურის მიერთება Pi- სთან
აპარატურის მიერთება Pi- სთან

BCM- ის გამოყენებით

აუდიო MAX98357A

  • BCK GPIO 18 -მდე
  • მონაცემები GPIO 21 -მდე
  • LRCK GPIO 19 -მდე

მსუბუქი

  • წითელი GPIO 17 -მდე
  • მწვანე GPIO 27 -მდე
  • ლურჯი GPIO 22 -მდე

ძრავის მოდული ULN2003

  • მიამაგრეთ 1 GPIO 5 -ზე
  • pin 2 GPIO 6 -ზე
  • პინი 3 GPIO 13 -ზე
  • პინი 4 GPIO 26 -მდე

მიკრო

D0 GPIO 21 -მდე

ულტრაბგერითი სენსორი

  • გამოიწვია GPIO 16
  • ექო GPIO 20 -ზე

ნაბიჯი 2: ძირითადი პროგრამების კოდირება

მე აქ დეტალებს არ ვიღებ, მაგრამ თქვენ შეგიძლიათ შეამოწმოთ ჩემი კოდი github– ში.

დასაწყისისთვის გავაკეთე ჩემი html და css, ინდექსი, შესვლა, რეგისტრაცია, საწყისი ეკრანი, მუსიკა, დამატმუსიკა, addbear, შუქი, კამერა, კამერის პარამეტრები, სენსორი, დაფის გვერდი. Html ფაილები უნდა იყოს შაბლონებში და css ფაილები სტატიკურ/css საქაღალდეში. თქვენ შეგიძლიათ სრულად მოაწყოთ css, როგორც გსურთ.

თუ ეს ნაწილი გააკეთეთ, თქვენ უნდა დააინსტალიროთ თქვენი კოლბა. Flask არის მარტივი მხოლოდ მაგალითი hello მსოფლიოში

# იმპორტის კოლბა თავიდან

კოლბის იმპორტიდან * @app.route ('/') def index (): render_template დაბრუნება ('index.html')

ახლა ჩემს კოდში ეს უკვე შევსებულია, ერთადერთი რაც თქვენ უნდა გააკეთოთ არის მონაცემთა ბაზის მომხმარებლის და პაროლის შეცვლა თქვენგან და რა თქმა უნდა შექმენით იგივე მონაცემთა ბაზა, რომელიც ასევე შეგიძლიათ ნახოთ github– ში.

ნაბიჯი 3: მონაცემთა ბაზის შექმნა

მონაცემთა ბაზის შექმნა
მონაცემთა ბაზის შექმნა

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

ასე რომ, პირველ რიგში ჩვენ უნდა შევქმნათ მონაცემთა ბაზა, თუ თქვენ არ გადადგამთ პირველ ნაბიჯს.

მონაცემთა ბაზის შექმნა beargardian;

ამის გაკეთების შემდეგ თქვენ შექმნით ცხრილებს mysql workbench ან phpadmin

მომხმარებლის ცხრილი აქვს

  • მომხმარებლის იდენტიფიკაცია
  • სახელი
  • გვარი
  • ელფოსტა
  • ბავშვის სახელი
  • პაროლი sha1– ით
  • მომხმარებლის საქაღალდე
  • პლემუსიკა (int)
  • ნათურა (int)
  • სათამაშო ჩაწერა (int)

მუსიკალური მაგიდა აქვს

  • musicID
  • სიმღერა
  • გზა
  • მომხმარებლის საქაღალდე
  • სტატუსი
  • მოცულობა

აქვს ჩაწერის მაგიდა

  • ჩაწერის ID
  • გზა
  • მომხმარებლის საქაღალდე
  • დრო
  • დღის

ფერადი მაგიდა აქვს

  • ფერი ID
  • წითელი
  • მწვანე
  • ლურჯი
  • სიკაშკაშე
  • მომხმარებლის იდენტიფიკაცია

დათვის მაგიდა აქვს

  • bearID (ათობითი (8))
  • userID ნაგულისხმევი null
  • მარკის სახელი

სენსორული მაგიდა აქვს

  • სენსორის ID
  • მანძილი
  • მიკრო
  • bearID
  • დრო
  • დღის
  • ძილის დრო

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

ნაბიჯი 4: აპარატურის კოდირება

მე ვაჩვენებ ოდნავ კოდს და გეტყვით, რატომ გავაკეთე ასე.

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

იმპორტი _threaddef ფუნქციის_სახელი (რაღაც, რაღაც_ სხვა): კოდი გასაშვებად

_thread.start_new_thread (ფუნქციის_სახელი, tuple_whith_functions_variables)

თუ გადახედე ჩემს პროგრამას დაინახე logger.info ('…'). ეს არის ბეჭდვის ფუნქცია, მაგრამ ბევრად უკეთესი, რადგან Pi– ზე თქვენ არ შეგიძლიათ დაბეჭდოთ პერსონალი, ამიტომ მე ვაკეთებ ფაილს და ვბეჭდავ იქ. ამ კოდს შეუძლია დააყენოს ჟურნალი.

logger = logging.getLogger (_ სახელი _) logger.setLevel (logging. INFO) # შექმენით ფაილის დამმუშავებელი = logging. FileHandler ('logger.log') handler.setLevel (loging. INFO)

# შექმენით ჟურნალის ფორმატი

formatter = logging. Formatter (' %(asctime) s - %(name) s - %(message) s') handler.setFormatter (formatter)

# დაამატეთ დამმუშავებლებს ჟურნალში

logger.addHandler (დამმუშავებელი)

logger.info ('აპარატურის დაწყება / n ---------------------------------------')

შემდგომ კოდში მე ავხსნი ყველაფერს.

გირჩევთ: