Სარჩევი:

როგორ ვაკონტროლოთ საშუალებები ჟოლოს პიის გამოყენებით: 6 ნაბიჯი
როგორ ვაკონტროლოთ საშუალებები ჟოლოს პიის გამოყენებით: 6 ნაბიჯი

ვიდეო: როგორ ვაკონტროლოთ საშუალებები ჟოლოს პიის გამოყენებით: 6 ნაბიჯი

ვიდეო: როგორ ვაკონტროლოთ საშუალებები ჟოლოს პიის გამოყენებით: 6 ნაბიჯი
ვიდეო: 🔴როგორ ვაკონტროლოთ ჩვენი ემოციები? 🔴 ემოციების სრული კონტროლი 2024, ივლისი
Anonim
როგორ ვაკონტროლოთ საშუალებები ჟოლოს პიის გამოყენებით
როგორ ვაკონტროლოთ საშუალებები ჟოლოს პიის გამოყენებით
როგორ ვაკონტროლოთ საშუალებები ჟოლოს პიის გამოყენებით
როგორ ვაკონტროლოთ საშუალებები ჟოლოს პიის გამოყენებით
როგორ ვაკონტროლოთ საშუალებები ჟოლოს პიის გამოყენებით
როგორ ვაკონტროლოთ საშუალებები ჟოლოს პიის გამოყენებით

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

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

ეს პროექტი იყენებს რადიოსიხშირული კონტროლირებად საშუალებებს 433 MHz სიხშირეზე და RF გადამცემთან, რომელიც დაკავშირებულია თქვენს ჟოლოს პითან. მაღაზიებს აქვთ დისტანციური მართვის პულტი, რომელსაც შეუძლია ჩართოს/გამორთოს საშუალებები, მაგრამ ეს არ არის სახალისო! ჩვენ ნაცვლად გამოვიყენებთ ჟოლოს პიზე გაშვებულ ვებ სერვერს, რომელიც საშუალებას აძლევს ქსელში ჩართულ ნებისმიერ პირს ჩართოს ან გამორთოს გარკვეული საშუალებები. ამ პროექტის ვებ – გვერდი არის იდეალური, რადგან თქვენს ქსელში ნებისმიერი ვებ – მოწყობილობით მოწყობილობის გამოყენება შესაძლებელია როგორც დისტანციური მართვის საშუალება.

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

მარაგები

  • Raspberry Pi (მე გამოვიყენე RPi 3 მოდელი B+)
  • 433MHz გადამცემი და მიმღები (მე ეს გამოვიყენე)
  • 433 MHz განყოფილებები (მე ეს გამოვიყენე)
  • ქალი-მდე ქალი მხტუნავები (მე ვიყიდე ეს თაიგული)
  • კომპიუტერი ან ხელის მოწყობილობა, რომელსაც შეუძლია ინტერნეტთან წვდომა

ნაბიჯი 1: შექმენით თქვენი Raspberry Pi

შექმენით თქვენი Raspberry Pi
შექმენით თქვენი Raspberry Pi

დაიწყეთ Raspbian– ის უახლესი ვერსიის დაყენებით თქვენს ახალ Raspberry Pi– ზე. თუ თქვენ აპირებთ არსებული Pi- ს გამოყენებას (რისი გაკეთებაც შეგიძლიათ მთლიანად), ყველაფერი რაც თქვენ გჭირდებათ არის დარწმუნდეთ, რომ თქვენს Pi- ზე გაქვთ Python 3, რადგან ეს არის ის, რაც წერია ჩემს მიერ მოწოდებულ ყველა კოდში. ამის გაკეთება, ტიპი

პითონი 3

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

გასვლა ()

მას შემდეგ რაც დაადასტურებთ ამას, თქვენ უნდა დააინსტალიროთ კოლბა თქვენს Pi- ზე. Flask საშუალებას გვაძლევს შევქმნათ ჩვენი ვებ სერვერი. Pi ბრძანების სტრიქონიდან ჩაწერეთ

sudo pip3 ინსტალაციის კოლბა

იმ შემთხვევაში, თუ პიზე არ გაქვთ დაყენებული პიპი, თქვენ უნდა აკრიფოთ

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

მე მირჩევნია განვვითარდე ჩემს Raspberry Pi– ზე ჩემი დესკტოპის კომპიუტერის კომფორტიდან. თუ თქვენც გირჩევნიათ ეს ვარიანტი, თქვენ უნდა დააყენოთ გარკვეული გარემო SSH– ში Pi– ში. PuTTY იმუშავებს, მაგრამ მე მირჩევნია გქონდეს GUI (გრაფიკული ინტერფეისი), რაც იმას ნიშნავს, რომ თქვენ პირდაპირ Pi- ზე ხართ. GUI ვარიანტისთვის, თქვენ გსურთ დააინსტალიროთ VNC Viewer კომპიუტერზე, რომელზეც აპირებთ მუშაობას. ასევე არის პარამეტრები, რომლებიც უნდა მოარგოთ თქვენს Pi- ზე. პარამეტრების შეცვლის ინსტრუქცია შეგიძლიათ იხილოთ აქ.

ნაბიჯი 2: გააერთიანეთ თქვენი აპარატურა

თქვენი აპარატურის მიერთება
თქვენი აპარატურის მიერთება

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

პინოუტი

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

მიმღები (დიდი ჩიპი):

  • GND - ნებისმიერი დანიშნულების გრუნტი
  • მონაცემები - პინ 11
  • DER - არ არის დაკავშირებული
  • +5V - ნებისმიერი დანიშნული +5V პინი
  • ------
  • +5V - ნებისმიერი დანიშნული +5V პინი
  • GND - ნებისმიერი დანიშნულების გრუნტი
  • GND - არ არის დაკავშირებული
  • ANT - არ არის დაკავშირებული

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

გადამცემი:

  • P - 3.3V პინი
  • DA - პინ 7
  • G - ნებისმიერი დანიშნულების გრუნტი
  • AN - არ არის დაკავშირებული

შენიშვნა: ისევ და ისევ, თქვენ შეგიძლიათ დაუკავშიროთ ანტენა გადამცემს საჭიროებისამებრ, მაგრამ აღმოვაჩინე, რომ არ მჭირდება. დიაპაზონი საკმარისზე მეტია (50+ფუტი).

ნაბიჯი 3: დაამატეთ კოდი

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

აქ ჩართული ენებია:

  • პითონი
  • CSS
  • Javascript
  • HTML
  • JQuery/Ajax

პითონი გამოიყენება კოლბის სერვერში და

RxTx.py

ფაილი, რომელიც ამუშავებს კოდის გადაცემას და მიღებას. CSS გამოიყენება ვებ – გვერდის სტილის შესაქმნელად. ვის უნდა მოსაწყენი ვებსაიტი !? Javascript გამოიყენება ნებისმიერი ღონისძიების მართვისას (ღილაკის დაჭერა და ა.შ.). HTML არის ვებ გვერდის ძირითადი სამშენებლო ბლოკი. დაბოლოს, JQuery/Ajax გამოიყენება ვებსაიტსა და პითონის უკანა ხაზს შორის კომუნიკაციისთვის.

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

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

Outlet Switch-> comm-- DataRW.py-- keys.py-- RxTx.py-> ვებ გვერდი-სტატიკური ----- favicon.ico ----- style.css-- შაბლონები ----- index.html ----- გრაფიკი. html-- app.py-- data.file

თქვენ შეგიძლიათ განათავსოთ Outlet Switch საქაღალდე სადმე თქვენს Pi- ზე. როდესაც მზად იქნებით თქვენი ვებ სერვერის გასაშვებად, გახსენით ტერმინალი თქვენს Pi– ზე და

cd

(შეცვალეთ დირექტორია) ვებ - გვერდის დირექტორიაში. შემდეგ აკრიფეთ

python3 აპლიკაცია. py

ტერმინალში. თუ რაიმე შეცდომა არ იყო, კარგი უნდა იყო!

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

ნაბიჯი 4: ესროლე

მიეცი ეს კადრი!
მიეცი ეს კადრი!

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

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

YouTube– ის ზემოთ მოყვანილი ვიდეო გვიჩვენებს, თუ როგორ უნდა დაიწყოთ ახალი სია თქვენს სიაში. შეაჯამეთ რას აჩვენებს:

  • პირველ რიგში შეიყვანეთ განყოფილების სათაური სათაურის ველში
  • დააწკაპუნეთ ან შეეხეთ სათაურის ველს გარეთ, რათა პროგრამამ შეძლოს შეამოწმოს, რომ სათაური უკვე არ არსებობს. თქვენ არ შეგიძლიათ გქონდეთ სათაურები ერთი სახელით
  • დადასტურებისთანავე ჩართულია ON კოდი და OFF Code ღილაკები.
  • დააჭირეთ და გააჩერეთ თქვენს მიერ მოწოდებულ დისტანციურ ღილაკზე და სწრაფად დააწკაპუნეთ ON კოდის ღილაკზე ინტერფეისზე. გეჭიროთ დისტანციური მართვის ღილაკზე სანამ თქვენი ორობითი კოდი არ შეივსებს მიმდებარე ველს.
  • გაიმეორეთ წინა ნაბიჯი OFF კოდისთვის.
  • დააწკაპუნეთ OK და ახლა თქვენ მზად ხართ გადართოთ ეს განყოფილება!

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

ნაბიჯი 5: გამართვა და RxTx.py ფაილი

გამართვა და RxTx.py ფაილი
გამართვა და RxTx.py ფაილი
გამართვა და RxTx.py ფაილი
გამართვა და RxTx.py ფაილი
გამართვა და RxTx.py ფაილი
გამართვა და RxTx.py ფაილი
გამართვა და RxTx.py ფაილი
გამართვა და RxTx.py ფაილი

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

  • დარწმუნდით, რომ თქვენს Pi- ზე დაინსტალირებულია matplotlib. ამის გაკეთება შეგიძლიათ Pi– ს ტერმინალში შემდეგი აკრეფით:

    • პითონი 3

    • იმპორტი matplotlib

    • თუ თქვენ მიიღებთ შეცდომას, თქვენ უნდა დააინსტალიროთ matplotlib.
    • გამოდით პითონის ჭურვიდან გამოყენებით

      გასვლა ()

  • Matplotlib– ის დასაყენებლად ჩაწერეთ

    sudo pip3 დააინსტალირეთ matplotlib

  • ტერმინალში
  • ჩამოტვირთეთ თანდართული test.py ფაილი და განათავსეთ იგი RxTx.py ფაილის გვერდით თქვენს Pi- ზე
  • გახსენით პითონის ტერმინალი და შეცვალეთ დირექტორია comm საქაღალდეში.
  • ტიპი

    python3 ტესტი. py

  • როდესაც ნათქვამია "** ჩაწერა დაიწყო **", ხანგრძლივად დააჭირეთ ღილაკს ჩართვა ან გამორთვა თქვენს დისტანციურ დისკზე ჩაწერის დასრულებამდე.
  • პროგრამა ჩატვირთავს matplotlib ფიგურას, რომელიც გარეგნულად მსგავსია. გაადიდეთ სანამ არ დაინახავთ განმეორებით სიგნალს, როგორც ეს მოცემულია ზემოთ მოცემულ ფოტოებში.
  • დაითვალეთ ლოგიკური 1 და ლოგიკური 0 თითოეული შეტყობინებისთვის, სადაც შეტყობინება არის განმეორებითი სიგნალის ერთი გამეორება ზემოთ ნაჩვენები. თუ ჯამში 25 არის, RxTx.py ფაილი სავარაუდოდ არ არის დამნაშავე. თუ 25 – ის გარდა სხვა რამეს წააწყდებით, დარწმუნდით, რომ გააკეთეთ კომენტარი ქვემოთ, და მე ხელახლა გამოვიყენებ RxTx.py ფაილს, რომ იყოს უფრო ღია (ან მოგერიდებათ, სცადოთ თქვენი ხელი).

რა მოხდება, თუ მე ვერ ვხედავ განმეორებით სიგნალს?

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

ნაბიჯი 6: ისიამოვნეთ

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

გირჩევთ: