Სარჩევი:

Wifi კონტროლირებადი 12v Led Strip Raspberry Pi გამოყენებით Tasker, Ifttt ინტეგრაცია .: 15 ნაბიჯი (სურათებით)
Wifi კონტროლირებადი 12v Led Strip Raspberry Pi გამოყენებით Tasker, Ifttt ინტეგრაცია .: 15 ნაბიჯი (სურათებით)

ვიდეო: Wifi კონტროლირებადი 12v Led Strip Raspberry Pi გამოყენებით Tasker, Ifttt ინტეგრაცია .: 15 ნაბიჯი (სურათებით)

ვიდეო: Wifi კონტროლირებადი 12v Led Strip Raspberry Pi გამოყენებით Tasker, Ifttt ინტეგრაცია .: 15 ნაბიჯი (სურათებით)
ვიდეო: Fysetc Spider v1.1 - Basics 2024, ივლისი
Anonim
Wifi კონტროლირებადი 12v Led Strip ჟოლოს Pi გამოყენებით Tasker, Ifttt ინტეგრაცია
Wifi კონტროლირებადი 12v Led Strip ჟოლოს Pi გამოყენებით Tasker, Ifttt ინტეგრაცია
Wifi კონტროლირებადი 12v Led Strip ჟოლოს Pi გამოყენებით Tasker, Ifttt ინტეგრაცია
Wifi კონტროლირებადი 12v Led Strip ჟოლოს Pi გამოყენებით Tasker, Ifttt ინტეგრაცია

ამ პროექტში მე გაჩვენებთ თუ როგორ უნდა აკონტროლოთ მარტივი 12 ვ ანალოგური LED ზოლები wifi– ზე ჟოლოს პი გამოყენებით.

ამ პროექტისთვის დაგჭირდებათ:

  • 1x Raspberry Pi (მე ვიყენებ Raspberry Pi 1 მოდელს B+)
  • 1x RGB 12v Led Strip [Ebay ავსტრალია]
  • 3x IRFZ44N N-Channel Mosfet's [Ebay ავსტრალია]
  • 1x DC დენის ჯეკის ადაპტერი [Ebay Australia]
  • ზოგიერთი მავთული
  • ეკრანი, კლავიატურა (მხოლოდ დასაყენებლად)

ნაბიჯი 1: დააინსტალირეთ Raspbian OS Windows– ის გამოყენებით

დააინსტალირეთ Raspbian OS Windows– ის გამოყენებით
დააინსტალირეთ Raspbian OS Windows– ის გამოყენებით
დააინსტალირეთ Raspbian OS Windows– ის გამოყენებით
დააინსტალირეთ Raspbian OS Windows– ის გამოყენებით
დააინსტალირეთ Raspbian OS Windows– ის გამოყენებით
დააინსტალირეთ Raspbian OS Windows– ის გამოყენებით

Raspbian– ის ფანჯრებით დაყენების მიზნით დაგჭირდებათ:

  • Win32 Disk Imager: [ჩამოტვირთეთ]
  • Raspbian OS Lite: [Zip], [ტორენტი]

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

  1. შეაერთეთ თქვენი SD ბარათი ბარათის მკითხველში და გახსენით ჩემი კომპიუტერი
  2. მოძებნეთ დისკის წერილი
  3. დააწკაპუნეთ მარჯვენა ღილაკით Win32DiskImager და დააწკაპუნეთ "გაუშვით ადმინისტრატორად"
  4. შემდეგ დააწკაპუნეთ პატარა ლურჯ საქაღალდეზე და დაათვალიერეთ RaspbianOS– ის თქვენი სურათი
  5. ასევე დააჭირეთ ჩამოსაშლელ ყუთს მოწყობილობის ქვეშ და შეცვალეთ იგი SD ბარათის Drive Letter- ში
  6. შემდეგ დააჭირეთ "დაწერეთ"
  7. დიალოგური ფანჯარა გაიხსნება სანამ დააჭირეთ Yes- ს და დარწმუნდით, რომ სამიზნე მოწყობილობა სწორია
  8. შემდეგ ამოიღეთ SD ბარათი და ჩადეთ იგი pi- ში

ნაბიჯი 2: დააინსტალირეთ Raspbian OS Mac OS X– ის გამოყენებით

დააინსტალირეთ Raspbian OS Mac OS X– ის გამოყენებით
დააინსტალირეთ Raspbian OS Mac OS X– ის გამოყენებით
დააინსტალირეთ Raspbian OS Mac OS X– ის გამოყენებით
დააინსტალირეთ Raspbian OS Mac OS X– ის გამოყენებით
დააინსტალირეთ Raspbian OS Mac OS X– ის გამოყენებით
დააინსტალირეთ Raspbian OS Mac OS X– ის გამოყენებით
დააინსტალირეთ Raspbian OS Mac OS X– ის გამოყენებით
დააინსტალირეთ Raspbian OS Mac OS X– ის გამოყენებით

Raspbian– ის Mac– ით დასაყენებლად დაგჭირდებათ:

  • ApplePi-Baker [ჩამოტვირთვა]
  • Raspbian OS Lite: [Zip], [ტორენტი]

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

  1. გახსენით Disk Utility და მოძებნეთ თქვენი SD ბარათი მარცხენა მხარეს, შემდეგ დააწკაპუნეთ მასზე
  2. მოძებნეთ "მოწყობილობა" ფანჯრის ბოლოში, თქვენ უნდა ნახოთ დისკის მსგავსი რაღაც, სადაც x არის რიცხვი
  3. დაიმახსოვრეთ "მოწყობილობის" ნომერი და გახსენით ApplePi-Baker
  4. ის მოგთხოვთ პაროლს იმის გამო, რომ მას სჭირდება თქვენი SD ბარათის ფორმატირება
  5. დააწკაპუნეთ "მოწყობილობის" ნომერზე, რომელიც არის After / dev / მარცხენა მხარეს
  6. დააჭირეთ ღილაკს "აღდგენა-სარეზერვო" დაათვალიერეთ RaspbianOS თქვენი სურათი.
  7. ის დაიწყებს SD ბარათის წაშლას და მასზე Raspbian- ის დაყენებას
  8. დასრულების შემდეგ გამოჩნდება გამაფრთხილებელი ყუთი, რომელიც გეუბნებათ, რომ შეგიძლიათ ამოიღოთ SD ბარათი, ამოიღოთ იგი და ჩაწეროთ თქვენს პიში.

ნაბიჯი 3: Pi- ის დაყენება

Pi- ს ჩართვამდე თქვენ უნდა შეაერთოთ HDMI ეკრანი, კლავიატურა და Ethernet კაბელი ან USB wifi (ჩვენ ამას დავაყენებთ შემდეგ ეტაპზე).

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

ჟოლოს შესვლა:

თქვენი მომხმარებლის სახელი არის pi და პაროლი არის ჟოლო (თქვენ ეკრანზე ვერაფერს დაინახავთ, მაგრამ ის კვლავ შესულია)

შესვლისას ნახავთ:

pi@raspberrypi: ~ $

შემდეგ თქვენ უნდა შეიყვანოთ:

sudo raspi-config

შემდეგ თქვენი ეკრანი შეივსება ლურჯი ეკრანით, ცენტრში ნაცრისფერი ყუთის პარამეტრებით,

  1. ზემოდან და ქვევით კლავიშების გამოყენებით, მონიშნეთ და დააჭირეთ ღილაკს "გაფართოების ფაილური სისტემა" რამდენიმე წამის შემდეგ თქვენ მიიღებთ გაფრთხილებას, რომ "root ფაილური სისტემა შეიცვალა", დააჭირეთ Enter
  2. შემდეგ დააჭირეთ ქვემოთ ისარს და გადადით ჩატვირთვის პარამეტრებზე და დააწკაპუნეთ Enter, შემდეგ დააჭირეთ ღილაკს Enter, როდესაც "Desktop / CLI" არის არჩეული, შემდეგ მონიშნეთ "Console Autologin" და დააწკაპუნეთ enter
  3. შემდეგ შეარჩიეთ დამატებითი პარამეტრები და დააჭირეთ Enter
  4. შემდეგ გადაახვიეთ ssh– ზე და დააწკაპუნეთ enter– ზე და აირჩიეთ დიახ
  5. შემდეგ დააჭირეთ მარჯვენა ისარს, სანამ უკანა მხარე არ არის მონიშნული და დააჭირეთ Enter
  6. შემდეგ კვლავ გადადით ბოლოში და დააწკაპუნეთ დასრულებაზე და თქვით დიახ გადატვირთვას

გადატვირთვის შემდეგ, თუ თქვენ ხართ დაკავშირებული Ethernet– ით, თქვენ უნდა შეიყვანოთ ეს ბრძანება თქვენი IP მისამართის საპოვნელად, ასე რომ ჩვენ შეგვიძლია ჩავრთოთ pi– ში

იპოვეთ ip:

მასპინძლის სახელი -მე

ნაბიჯი 4: დააინსტალირეთ Wifi

Pi– ზე wifi დასაყენებლად ჩვენ გვჭირდება ფაილის რედაქტირება

1. შეიყვანეთ ბრძანების სტრიქონი

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

2. გადადით ფაილის ბოლოს და შეიყვანეთ

ქსელი = {

ssid = "Your_Wifi_Name" psk = "Your_wifi_password"}

3. შემდეგ გადატვირთეთ თქვენი პი

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

თქვენი pi გადატვირთვის შემდეგ მიიღეთ მისი IP მისამართი აკრეფით

მასპინძლის სახელი -მე

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

ნაბიჯი 5: დისტანციურად დაუკავშირდით თქვენს Pi– ს Windows– ის გამოყენებით

დისტანციურად დაუკავშირდით თქვენს Pi– ს Windows– ის გამოყენებით
დისტანციურად დაუკავშირდით თქვენს Pi– ს Windows– ის გამოყენებით
დისტანციურად დაუკავშირდით თქვენს Pi– ს Windows– ის გამოყენებით
დისტანციურად დაუკავშირდით თქვენს Pi– ს Windows– ის გამოყენებით
დისტანციურად დაუკავშირდით თქვენს Pi– ს Windows– ის გამოყენებით
დისტანციურად დაუკავშირდით თქვენს Pi– ს Windows– ის გამოყენებით
დისტანციურად დაუკავშირდით თქვენს Pi– ს Windows– ის გამოყენებით
დისტანციურად დაუკავშირდით თქვენს Pi– ს Windows– ის გამოყენებით

ახლა, როდესაც ჩვენ გვაქვს pi ინტერნეტთან დაკავშირებული, შეგვიძლია ამოვიღოთ კლავიატურის მაუსი და ეკრანი და დისტანციურად დავუკავშირდეთ მას "ssh" - ის გამოყენებით

იმისათვის, რომ ssh შევიდა pi ერთად Windows თქვენ უნდა ჩამოტვირთოთ

putty: [ჩამოტვირთეთ]

  1. გახსენით ბოთლი, IP მისამართის ყუთში შეიყვანეთ ჟოლოს pi ip და დააჭირეთ ღილაკს გახსნა
  2. თქვენ მიიღებთ დიალოგურ ფანჯარას, რომელიც ჰგავს სურათს 2 დააჭირეთ დიახ
  3. თქვენ ნახავთ ახალ დიალოგს, რომელშიც ნათქვამია "შესვლა როგორც" შესვლა "პი"
  4. შემდეგ ის მოგთხოვთ პაროლს შეიყვანეთ "ჟოლო"

თქვენ ახლა უკავშირდებით pi- ს ssh- ს

ნაბიჯი 6: დისტანციურად დაუკავშირდით თქვენს Pi– ს Mac– ის გამოყენებით

დისტანციურად დაუკავშირდით თქვენს Pi– ს Mac– ის გამოყენებით
დისტანციურად დაუკავშირდით თქვენს Pi– ს Mac– ის გამოყენებით
დისტანციურად დაუკავშირდით თქვენს Pi– ს Mac– ის გამოყენებით
დისტანციურად დაუკავშირდით თქვენს Pi– ს Mac– ის გამოყენებით
დისტანციურად დაუკავშირდით თქვენს Pi– ს Mac– ის გამოყენებით
დისტანციურად დაუკავშირდით თქვენს Pi– ს Mac– ის გამოყენებით
დისტანციურად დაუკავშირდით თქვენს Pi– ს Mac– ის გამოყენებით
დისტანციურად დაუკავშირდით თქვენს Pi– ს Mac– ის გამოყენებით

ახლა, როდესაც ჩვენ გვაქვს pi ინტერნეტთან დაკავშირებული, შეგვიძლია ამოვიღოთ კლავიატურა და მაუსი და დისტანციურად შევუერთოთ მას "ssh" - ის გამოყენებით

1. გახსენით "ტერმინალი"

2. ჩაწერეთ

ssh pi@IP_ADDRESS

3. შემდეგ შეიძლება მიიღოთ შეტყობინება, რომ მასპინძლის გასაღები არ არის შენახული, უბრალოდ ჩაწერეთ "დიახ"

4. შემდეგ დაწინაურებისას შეიყვანეთ ჟოლოს პაროლი, რომელიც არის "ჟოლო"

თქვენ ახლა უკავშირდებით pi- ს ssh- ს

ნაბიჯი 7: პროგრამული უზრუნველყოფის ინსტალაცია

რადგან ჩვენ ახლა გვაქვს წვდომა პიზე, ჩვენ გვჭირდება პროგრამული უზრუნველყოფის დაყენება led ზოლის გასაკონტროლებლად

ჩვენ დაგვჭირდება ინსტალაცია

  • pigpio (ეს გარდაქმნის GPIO– ს ყველა ქინძისთავს ციფრულიდან PWM– ზე)
  • კოლბა (სერვერის სკრიპტი, რომელიც ესაუბრება პიგპიონსა და ვებ სერვერს)
  • apache2 (ვებ სერვერი)

დააინსტალირეთ პიგპიო

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

wget

2. ჩვენ მაშინ უნდა unzip და წასვლა დირექტორია

გახსენით pigpio.zip && cd PIGPIO

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

make -j4 && sudo make install

4. ახლა გახსენით rc. ადგილობრივი, ასე რომ ჩვენ შეგვიძლია გითხრათ pi, რომ გაუშვას pigpiod დაწყებისას

sudo nano /etc/rc.local

შემდეგ მხოლოდ გასასვლელი ხაზის შესვლამდე

sudo pigpiod

თქვენ ახლა დააინსტალირეთ pigpio პროგრამული უზრუნველყოფა

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

პირველ რიგში ჩვენ გვჭირდება პროგრამული უზრუნველყოფის ჩამონათვალის განახლება ამის შესასრულებლად

sudo apt განახლება && sudo apt განახლება -y

შემდეგ დააინსტალირეთ პიპი

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

ახლა ჩვენ შეგვიძლია დავაყენოთ კოლბა

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

დააინსტალირეთ Apache2

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

sudo apt-get დააინსტალირეთ libapache2-mod-wsgi -y

დააინსტალირეთ git

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

მას შემდეგ, რაც ყველაფერი დამთავრდება, გამორთეთ პი

sudo გამორთვა ახლა

ნაბიჯი 8: ენერგიის გაყვანილობა

დენის გაყვანილობა
დენის გაყვანილობა
დენის გაყვანილობა
დენის გაყვანილობა
დენის გაყვანილობა
დენის გაყვანილობა

პირველ რიგში ჩვენ უნდა შევაერთოთ დენის კონექტორი პურის დაფაზე

  1. შეაერთეთ შავი მავთული დენის ჯეკზე არსებულ უარყოფით კონექტორთან
  2. შეაერთეთ წითელი მავთული დენის ჯეკზე დადებით კონექტორთან
  3. შეაერთეთ წითელი მავთულის მეორე ბოლო პურის დაფის დადებით მხარეს
  4. შეაერთეთ შავი მავთულის მეორე ბოლო პურის დაფის დადებით მხარეს
  5. შემდეგ დააკავშირეთ დაფის პი პიდან (როგორც ჩანს სურათზე) უარყოფით პინზე დაფაზე

ახლა ჩვენ უნდა დავუკავშიროთ ყველაზე სრულყოფილი.

ნაბიჯი 9: Mosfets- ის გაყვანილობა და Pi- ს დაკავშირება

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

Mosfet საშუალებას გაძლევთ გააკონტროლოთ რამდენი ენერგია შეიძლება გადავიდეს led ნათურებზე, ჩვენ დაგვჭირდება სამი mosfets, რადგან ჩვენ გვჭირდება წითელი, მწვანე და ლურჯი ნათურების ცალკე კონტროლი.

Mosfet- ს აქვს სამი ქინძისთავი, მარცხნივ მას აქვს "Gate" პინი, რომელიც უკავშირდება pi- ს, რათა გააკონტროლოს რამდენი ენერგია შეიძლება მიედინოს led შუქზე

ცენტრალურ ქინძისთავს ეწოდება "გადინება", რომელიც მიდის led ნათურებზე და მიაწვდის ძაბვას, რომლის კარიბჭე გასვლის საშუალებას იძლევა

და მარჯვენა მხარეს არის "წყარო" პინი. ეს ქინძი მიდის მიწაზე პურის დაფაზე.

აკავშირებს წითელ ლედს

  1. ჩადეთ ერთი მოსფეტი დაფაზე
  2. დააკავშირეთ შავი მავთული GND– დან პურის დაფაზე წყაროსთან (მარჯვენა პინი)
  3. შემდეგ შეაერთეთ წითელი მავთული mosfet– ის ცენტრალური პინიდან led– ის წითელ პინზე
  4. შემდეგ დააკავშირეთ წითელი მავთული მარცხენა პინიდან GPIO 17 -ზე pi

მწვანე ლედის დაკავშირება

  1. ჩადეთ მე –2 მოსფეტი დაფაზე
  2. შემდეგ ისევე, როგორც ადრე შეაერთეთ შავი მავთული GND– დან პურის დაფაზე წყაროსთან (მარჯვენა პინი)
  3. შემდეგ შეაერთეთ მწვანე მავთული ცენტრის ქინძისთავზე mosfet– ზე და მწვანე pin– ზე led ზოლზე.
  4. შემდეგ დააკავშირეთ მწვანე მავთული მარცხენა პინიდან GPIO 22 -ზე pi

ლურჯი ლედის დაკავშირება

  1. ჩადეთ ბოლო მოსფეტი დაფაზე
  2. დააკავშირეთ მეორე შავი მავთული GND– დან პურის დაფაზე წყაროსთან (მარჯვენა პინი)
  3. შემდეგ დააკავშირეთ ლურჯი მავთული ცენტრის პინზე mosfet– ზე და ლურჯ pin– ზე led ზოლზე.
  4. შემდეგ დააკავშირეთ ლურჯი მავთული მარცხენა პინიდან GPIO 24 -ზე pi

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

როდესაც ჩვენ დავასრულეთ, შეგვიძლია დავიწყოთ მისი გამოცდა.

ნაბიჯი 10: ჩამოტვირთეთ და გამოსცადეთ Led Strip

ჩამოტვირთეთ წყაროს კოდი Led ზოლის გასაკონტროლებლად

git კლონი https://github.com/DavidMontesin/Raspberry-PI-Wifi-Led-Strip.git && cd Raspberry-PI-Wifi-Led-Strip/

Led ზოლის შესამოწმებლად გაუშვით test.py ფაილი.

პითონის ტესტი. py

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

როგორ მუშაობს ეს სკრიპტი?

თუ გახსნით პითონის სკრიპტს, შეიძლება გაინტერესებთ როგორ მუშაობს იგი, პირველ სტრიქონში ნახავთ:

იმპორტის დრო

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

პიპორტის იმპორტი

ეს ბიბლიოთეკა საშუალებას გვაძლევს კომუნიკაცია led ზოლთან

pi = pigpio.pi ()

დააყენეთ ცვლადი, ასე რომ ჩვენ შეგვიძლია გამოვიყენოთ pi.set_pw… insted of pigpio.pi (). set_pw…

RedPin = 17

GreenPin = 22

BluePin = 24

ეს არის მხოლოდ ცვლადები, რაც საშუალებას გვაძლევს ვუთხრათ სკრიპტს რა led არის დაკავშირებული

ამობეჭდვა ("გამოცნობა წითელზე")

ეს უბრალოდ დაბეჭდავს ტექსტს ბრძანების ხაზზე

pi.set_PWM_dutycycle (RedPin, 255)

ეს ბრძანება არის pigpio libary– ის ნაწილი და ამბობს, რომ დააყენოთ „RedPin“, რომელიც ეძებს ჩვენს მიერ მითითებულ რიცხვს და ადგენს მის სიკაშკაშეს „255“, რაც არის მაქსიმალური

დრო. ძილი (2)

ეს არის დროის ბიბლიოთეკის ნაწილი და მხოლოდ 2 წამის განმავლობაში შეაჩერებს სკრიპტს

ეს მოქნილი ბრძანება გამეორდება სხვა led– ებამდე

pi.stop ()

რომელიც შეწყვეტს ლაპარაკს led ზოლზე და მოაწესრიგებს ყველა ფერს.

ნაბიჯი 11: სერვერის სკრიპტის დაპროგრამება

** სანამ დაიწყებ, გირჩევ წაიკითხო პითონისა და ფლაკონის შესახებ:

აქ არის რამოდენიმე სახელმძღვანელო:

www.pythonforbeginners.com

docs.python-guide.org/en/latest/intro/learn…

flask.pocoo.org

როგორც Main.py არის git პირდაპირ ეს ნაბიჯი არის მხოლოდ ახსნა კოდი.

ჯერ ბიბლიოთეკები გვაქვს

კოლბის იმპორტიდან ბოთლი, render_template, მოთხოვნა

პიგპიონის იმპორტი ძაფიდან იმპორტი start_new_thread

მაშინ ჩვენ გვჭირდება ცვლადების დაყენება

აპლიკაცია = ბოთლი (_ სახელი_)

CurrentColour = "თეთრი" RedColourCode = 0 BlueColourCode = 0 GreenColourCode = 0 RedBeforeEffect = 0 BlueBeforeEffect = 0 GreenBeforeEffect = 0 pi = pigpio.pi ()

პირველი ცვლადი არის flask, რომელიც არის ჩვენი ვებ სერვერი, ჩვენ მას ვუწოდებთ აპლიკაციას, ასე რომ უფრო ადვილია დარეკვა და გაშვება. შემდეგ არის 6 ცვლადი, რომ პირველი სამი შეიცავდეს რა ფერს შეიცვლის ორი და დანარჩენი სამი შეიცავს წინა ფერს.

@app.route ('/', მეთოდები = ['GET'])

ეს ხაზი ამბობს, რომ თუ ვინმე ჩაწერს pi- ს IP მისამართს ვებ ბრაუზერში, მაშინ ის გაუშვებს სკრიპტს მის ქვემოთ, მას ასევე აქვს GET მეთოდი, როდესაც ეს ნიშნავს, რომ ნებისმიერი ტექსტი შემდეგ? ფერი = გადაეცემა ვებ სერვერს და იქნება გამოიყენება led ზოლის ფერის შესაცვლელად.

def მთავარი ():

გლობალური CurrentColour

ტექსტი def Main () ნიშნავს, რომ ის შექმნის ფუნქციას სახელწოდებით main, რომლის გამოძახება შესაძლებელია სკრიპტის ნებისმიერი ადგილიდან. და გლობალური ხაზი ნიშნავს, რომ ის განაახლებს ცვლადს მთელ სკრიპტში.

მოთხოვნის შემთხვევაში.args.get ('ფერი'):

CurrentColour = request.args.get ("ფერი") თუ CurrentColour == "თეთრი": FadeTORGB (255, 255, 255) elif CurrentColour == "წითელი": FadeTORGB (255, 0, 0) elif CurrentColour == "მწვანე ": FadeTORGB (0, 255, 0) elif CurrentColour ==" DarkBlue ": FadeTORGB (0, 0, 255) elif CurrentColour ==" LightBlue ": FadeTORGB (0, 255, 255) elif CurrentColour ==" ნარინჯისფერი ": FadeTORGB (255, 15, 0) elif CurrentColour == "ვარდისფერი": FadeTORGB (255, 0, 192) elif CurrentColour == "ყვითელი": FadeTORGB (255, 157, 0) elif CurrentColour == "იისფერი": FadeTORGB (123, 0, 255) elif CurrentColour == "შავი": FadeTORGB (0, 0, 0) render_template return ('index.html')

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

def FadeTORGB (RedNum, BlueNum, GreenNum):

start_new_thread (FadeUpRed, (RedNum,)) start_new_thread (FadeUpBlue, (BlueNum,)) start_new_thread (FadeUpGreen, (GreenNum,)))

ეს გამოიძახებს სამ სხვა ფუნქციას, რომელიც შეცვლის ენერგიის რაოდენობას, რომელიც მიდის თითოეულ led– ზე, fade ეფექტით.

def FadeUpRed (REDUpNum):

გლობალური RedColourCode თუ RedColourCode <REDUpNum: ხოლო RedColourCode REDUpNum: ხოლო RedColourCode> REDUpNum: RedColourCode -= 1 pi.set_PWM_dutycycle (RedPin, RedColourCode)

def FadeUpBlue (BlueUpNum):

გლობალური BlueColourCode თუ BlueColourCode <BlueUpNum: ხოლო BlueColourCode BlueUpNum: ხოლო BlueColourCode> BlueUpNum: BlueColourCode -= 1 pi.set_PWM_dutycycle (BluePin, BlueColourCode)

def FadeUpGreen (GreenUpNum):

გლობალური GreenColourCode თუ GreenColourCode <GreenUpNum: ხოლო GreenColourCode GreenUpNum: ხოლო GreenColourCode> GreenUpNum: GreenColourCode -= 1 pi.set_PWM_dutycycle (GreenPin, GreenColourCode)

თუ _name_ == "_ მთავარი_":

app.run (მასპინძელი = "0.0.0.0")

ნაბიჯი 12: ვებ სერვერის დაპროგრამება

ახლა, როდესაც ჩვენ გვაქვს სერვერი, ჩვენ გვჭირდება ვებსაიტის დიზაინი.

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

ასევე გირჩევთ წაიკითხოთ html, css, javascript

HTML

პირველ რიგში ჩვენ გვჭირდება html პროგრამირება, ეს არის ის, სადაც მიდის მთელი შინაარსი, რომელიც შემდგომში შეიძლება სტილიზებული იყოს css– ის გამოყენებით

1. ხელმძღვანელის შექმნა (სათაური, ფაილების დაკავშირება,)

Wifi Led ზოლები

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

ვებ გვერდის სრული ეკრანის შექმნა iOS- ში

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

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

ამის შემდეგ თქვენ უნდა დახუროთ წარწერა და შექმნათ სხეულის ტეგი

სხეულის ტეგი ნიშნავს, რომ მასში შემავალი ნებისმიერი ტეგი გამოჩნდება ვებ გვერდზე

ახლა ჩვენ ვაპირებთ გავაკეთოთ ფერების ღილაკები, რომლებსაც შეუძლიათ შეცვალონ led ზოლები.

ჩვენ შევქმნით ერთს თითოეული ფერისთვის და დავდებთ ცხრილში

ეს ქმნის მაგიდის გარე ჩარჩოს

ეს შექმნის მწკრივს ცხრილისთვის

ახლა მოდით შევქმნათ ფორთოხლის ღილაკი

tag td ქმნის უჯრედს, შემდეგ "onClick" ფუნქცია დაუძახებს javascript ფუნქციას, რომელსაც ჩვენ შევქმნით ამ უკანასკნელში, მათ "კლასი" ფუნქცია გამოიყენება ღილაკის სტილის შესაქმნელად და სტილი მხოლოდ მისი შეღებვისთვის.

ჩვენ უბრალოდ უნდა შევცვალოთ sendColour ტექსტი და სტილი ერთმანეთისთვის, მაგრამ ყოველი მე -2 ღილაკის შემდეგ ჩვენ ვხურავთ რიგს და შევქმნით ახალ სტრიქონს

და სხვა…

მას შემდეგ, რაც თქვენ შეიტანთ ყველა ფერს, თქვენ უნდა დახუროთ მაგიდა

Javascript

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

შემდეგ შექმენით ფუნქცია

ფუნქცია SendColour (დაწკაპუნებული ფერი) {

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

xhttp = ახალი XMLHttpRequest ();

xhttp.open ("GET", "? ფერი =" + დაწკაპუნებული ფერი, ყალბი); xhttp.send (); }

ახლა ჩვენ უნდა დავხუროთ javascript და html

CSS

ახლა ჩვენ ვაპირებთ ვებსაიტის დიზაინს

ჯერ გამოუშვით cd შაბლონების საქაღალდედან და გადადით სტატიკურ საქაღალდეში

cd.. && cd სტატიკური

ახლა შექმენით Style.css ფაილი

ნანო სტილი. css

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

. Ფერები {

სიგანე: 100%; }

. ღილაკი {

ბალიში: 25px 35px; საზღვარი-რადიუსი: 4px; }

სერვერის ტესტირება

სერვერის შესამოწმებლად გადადით ვებ სერვერის საქაღალდეში

cd..

შემდეგ შედი

პითონი მეინი.პი

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

YOUR_PI_PI: 5000the: 5000 ბოლოსთვის მნიშვნელოვანია, რადგან ეს არის პორტი, რომელზეც მუშაობს ვებ სერვერი.

თუ თქვენ მოხვდით ვებგვერდზე და მიიღეთ "შიდა სერვერის შეცდომა", მაშინ შეხედეთ კონსოლს (ჩაქსოვილი ან ტერმინალი) და ნახავთ უამრავ ტექსტს, უბრალოდ შეხედეთ ბოლო სტრიქონს და ეს უნდა იყოს. გითხრათ რა ხდება, შეგიძლიათ გუგლში იპოვოთ პასუხი, მაგრამ თუ ეკრანზე ჩანს ფერები, შეგიძლიათ დააწკაპუნოთ ერთზე და თქვენ უნდა ნახოთ led ზოლი ამ ფერისკენ, თუ ის არ შეამოწმებს არის თუ არა დენი ჩართული და ჩართული ან რომ HTML კოდი სწორად არის შეყვანილი რა

ნაბიჯი 13: მისი მუშაობა Apache2– ით

ახლა, როდესაც ჩვენ გამოვცადეთ, ჩვენ უნდა მივმართოთ მას აპაჩესთან, რათა ის იმუშაოს გაშვებისას და პორტში 80 (სტანდარტული ვებ პორტი)

1. თქვენს WebServer საქაღალდეში შექმენით wsgi ფაილი

ნანო wifiled.wsgi

შემდეგ შეიყვანეთ ფაილში

იმპორტის სისტემა

sys.path.insert (0, '/home/pi/Webserver/') მთავარი იმპორტის აპლიკაციიდან, როგორც აპლიკაცია

შემდეგ დაამატეთ მომხმარებელი pi ჯგუფს, რომელსაც ეწოდება www-data, ეს საშუალებას მისცემს apache- ს შეხედოს ვებ სერვერის საქაღალდეში

sudo usermod -a -G www -data pi

შემდეგ წაშალეთ ნაგულისხმევი კონფიგურაცია

sudo a2dissite 000-ნაგულისხმევი

შემდეგ შექმენით ფაილი Apache კონფიგურაციის საქაღალდეში

sudo nano /etc/apache2/sites-available/wifiled.conf

და შედი

ServerName WifiLed ServerAdmin [email protected] WSGIScriptAlias//home/pi/Webserver/wifiled.wsgi შეკვეთა ნებადართულია, უარყოს ნებართვა ყველაფრისგან მოითხოვეთ ყველა მინიჭებული ErrorLog $ {APACHE_LOG_DIR} /error.log LogLevel გაფრთხილება CustomLog_O $/APACHElog კომბინირებული

შემდეგ უთხარი apache– ს, რომ წაიკითხოს კონფიგურაცია შესვლით

sudo a2ensite wifiled.conf

ახლა გადატვირთეთ pi, როდესაც ის გადატვირთულია, შედით თქვენს ბრაუზერში

YOUR_PI_IP

ნაბიჯი 14: Tasker და Ifttt და სხვა სერვისების დაყენება

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

ტასკერი

თქვენს Android მოწყობილობაზე ღია მიმღები

შემდეგ შექმენით ახალი პროფილი, რომელიც დაფუძნებულია ღონისძიებაზე, შეგიძლიათ აირჩიოთ ნებისმიერი გამომწვევი. მე ავირჩიე "ტელეფონის ზარი" და მივანიჭე ფერი ნებისმიერს "C: ANY", შემდეგ ის მოგთხოვთ შეარჩიოთ დავალება, დააწკაპუნეთ "New Task" - ზე და დაასახელეთ იგი თქვენი მოქმედებით. მე მას დავარქმევ "სატელეფონო ზარს", შემდეგ დააჭირეთ დამატების მოქმედებას და ვეძებთ "HTTP Head" - ს და დავაყენებ სერვერს: port to your_raspberry_pi_IP, შემდეგ ბილიკზე შეგიძლიათ ან დააყენოთ მყარი ფერი "/? Color = Green" - ით, ან შეგიძლიათ შექმნათ ეფექტი ჩვენ ამას გავაკეთებთ შემდეგ ეტაპზე. შემდეგ დააჭირეთ უკან და ისევ უკან.

IFTTT

ჯერ წადი ifttt და შექმენი ახალი აპლეტი ამოირჩიე ნებისმიერი გამომწვევი (მე ავირჩიე ღილაკი) და შემდეგ მოქმედებისათვის შეარჩიე შემქმნელი არხი და თქვა გააკეთე ჩვენ ვითხოვთ შემდეგ url- ში შეიყვანეთ YOUR_PUBLIC_PI/? ფერი = LightBlue თუ არ იცნობთ თქვენს საზოგადოებას ip უბრალოდ შეიყვანეთ "ჩემი IP" Google- ში. შემდეგ მეთოდისთვის შეიყვანეთ HEAD, შემდეგ დააწკაპუნეთ "შექმენით მოქმედება", როდესაც თქვენი მოქმედება მოხდება, თუ მოთხოვნით თქვენს პი -ს შეიცვალოს ფერი.

სხვა სერვისები

თქვენ ასევე შეგიძლიათ დააკავშიროთ სხვა სერვისები, რომლებიც ქმნიან HTTP HEAD ან GET მოთხოვნას.

ნაბიჯი 15: პერსონალური ეფექტების შექმნა

Main.py- ში დაამატეთ იმპორტის განცხადება, იმპორტის ქვეშ შეიყვანეთ

იმპორტის დრო

ასევე სანამ ეფექტს შევქმნით ჩვენ უნდა დავამატოთ ცვლადი მხოლოდ GreenBeforeEffect დამატების ქვეშ

CanChangeColour = მართალია

შემდეგ შეცვალეთ if request.args.get ('ფერი'):

რათა

if request.args.get ('ფერი') და CanChangeColour:

სექცია უბრალოდ დაბრუნების ქვეშ render_template ('Main.html') დამატება

@app.route ('/ეფექტი', მეთოდები = ['GET'])

def ეფექტი ():

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

x = 0

გლობალური RedColourCode გლობალური BlueColourCode გლობალური GreenColourCode გლობალური RedBeforeEffect გლობალური BlueBeforeEffect გლობალური GreenBeforeEffect

მოდით შევქმნათ ჩვენი პირველი ეფექტი

if request.args.get ('ზარი'):

RedBeforeEffect = RedColourCode BlueBeforeEffect = BlueColourCode GreenBeforeEffect = GreenColourCode FadeTORGB (0, 0, 0) დრო. ძილი (2)

ეს მოქმედება გააქტიურდება, როდესაც pi მიიღებს მოთხოვნას, როგორიცაა "/? Effect = Call" და შეინახავს მიმდინარე ფერს, ასე რომ ჩვენ შეგვიძლია დარეკოთ იგი.

ახლა ჩვენ ვაპირებთ, რომ led გამუქდეს შავიდან მწვანემდე, შემდეგ ისევ შავად და მე ამის გაკეთება ხუთჯერ მინდა

ხოლო x <= 5: FadeTORGB (0, 255, 0) x += 1 დრო. ძილი (1) FadeTORGB (0, 0, 0) დრო. ძილი (1) CanChangeColour = ნამდვილი დრო. ძილი (2) FadeTORGB (RedBeforeEffect, BlueBeforeEffect, GreenBeforeEffect)

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

ახლა ჩვენ მხოლოდ რეაქციის შესაქმნელად.

დაბრუნების ""

ასევე გადატვირთეთ ჟოლოს პი

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

გირჩევთ: