Სარჩევი:

გაიღვიძე - ჭკვიანი მაღვიძარა: 6 ნაბიჯი
გაიღვიძე - ჭკვიანი მაღვიძარა: 6 ნაბიჯი

ვიდეო: გაიღვიძე - ჭკვიანი მაღვიძარა: 6 ნაბიჯი

ვიდეო: გაიღვიძე - ჭკვიანი მაღვიძარა: 6 ნაბიჯი
ვიდეო: Kingmaker - The Change of Destiny Episode 6 | Arabic, English, Turkish, Spanish Subtitles 2024, ნოემბერი
Anonim
გაიღვიძე - ჭკვიანი მაღვიძარა
გაიღვიძე - ჭკვიანი მაღვიძარა

Wake me up არის ჭკვიანი მაღვიძარა, რომელიც ასევე შეიძლება გამოყენებულ იქნას როგორც ჭკვიანი შუქი.

ჩაშენებული ledstrip ახდენს თქვენი ოთახში შემომავალი ბუნებრივი შუქის სიმულაციას. ეს საშუალებას გაძლევთ მიიღოთ მშვიდი და ბუნებრივი გზა თქვენი დღის დასაწყებად.

მაღვიძარა ასევე აღჭურვილია 4*7 სეგმენტის დისპლეით დროის წასაკითხად, დინამიკები თქვენი საყვარელი მუსიკით გაღვიძებისთვის, სენსორული ღილაკი, ldr led led- ის სიკაშკაშის ადაპტირებისთვის და ტემპერატურის სენსორი, რომლის საშუალებითაც შეგიძლიათ ნახოთ თქვენი ოთახის ტემპერატურა.

მარაგები

გადასახდელი ზუსტი ფასების სია შეგიძლიათ იხილოთ აქ:

მიკროკონტროლერები და კომპიუტერები:

Raspberry Pi 4I ვიყენებდი ჟოლოს 4 4GB თუმცა, ნებისმიერი ჟოლოს მოდელი 3+ უნდა იყოს კარგი

არდუინო უნო

Arduino გამოიყენება 4*7 სეგმენტის საათის ჩვენების გასაკონტროლებლად.

სენსორები:

  • TMP36: ტემპერატურის სენსორი
  • LDR: სინათლეზე დამოკიდებული რეზისტორი

აქტივატორები:

  • WS2801: ინდივიდუალურად ადრესადი ledstrip
  • LCD დისპლეი: 16*2 LCD დისპლეი.
  • 4*7 სეგმენტიანი საათის ჩვენება

IC- ები:

  • 74HC595: Shiftregister LCD ეკრანისთვის
  • MCP3008: 8 ბიტიანი ციფრული ანალოგური გადამყვანი
  • ლოგიკური დონის გადამყვანი: გამოიყენება რასპსა და არდუინოს შორის კომუნიკაციისთვის

Სხვა რაღაცეები:

  • Adafruit MAX9744 გამაძლიერებელი დინამიკების დასატენად
  • ნებისმიერი სპიკერი, მე გამოვიყენე Visaton 4Ohm 8Watt სრული დიაპაზონი (ხელოვნება No. 2240)
  • 9 ვოლტიანი დენის წყაროს გამაძლიერებელი
  • 5 ვოლტიანი დენის წყაროს მიაწოდოს ledstrip და სხვა კომპონენტები. გაითვალისწინეთ, რომ თითოეულ led ledstrip შეიძლება drow 60mA ასე რომ დარწმუნდით თქვენი კვების წყარო არის საკმარისი.
  • რამდენიმე 220Ohm რეზისტორი
  • პატარა პურის დაფა თქვენს ქეისში ჩასასმელად.

ინსტრუმენტები:

  • გასაყიდი რკინა.
  • რაღაცის გასაკეთებლად (მე გამოვიყენე 3D პრინტერი PLA და PETG და ვინილის სტიკერები ხის ეფექტის მისაღებად.)

ნაბიჯი 1: ჟოლოს პიის დაყენება

ჟოლოს პი არის ჩვენი მთავარი მიკრო კონტროლერი.

ჟოლოს პი მართავს ჩვენს ადგილობრივ ვებ სერვერს, მონაცემთა ბაზას, აკონტროლებს ledstrip- ს, დინამიკებს,…

ნაწილი 1: Raspbian– ის დაყენება

გამოიყენეთ ეს გაკვეთილი raspbian– ის დასაყენებლად:

დარწმუნდით, რომ SSH ჩართულია

ნაწილი 2: დაკავშირება

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

wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

"YourNetwork" არის თქვენი wifi ქსელის სახელი და "YourSSID" არის ქსელის პაროლი.

მას შემდეგ რაც დაამატებთ ქსელს სცადეთ გადატვირთოთ Raspberry Pi.

ჩაწერეთ ბრძანება "პინგი 8.8.8.8", ეს გამოგიგზავნით პაკეტს google სერვერებზე, თუ მიიღებთ პასუხს, რომ თქვენი ქსელი დაყენებულია და მუშაობს!

ნაწილი 3: დააინსტალირეთ საჭირო პროგრამები

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

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

sudo apt განახლება

sudo apt განახლება

ამას შეიძლება გარკვეული დრო დასჭირდეს.

აპაჩი

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

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

მარია დბ

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

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

PHPMyAdmin

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

პითონის პიპი

ჩვენ გვჭირდება პიპის დაყენება, რათა გავუშვათ პითონის ბიბლიოთეკები

pip3 დააინსტალირეთ mysql-connector-python

pip3 დააინსტალირეთ flask-socketio

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

pip3 დააინსტალირეთ gevent

pip3 დააინსტალირეთ gevent-websocket

ნაბიჯი 2: დააკავშირეთ ელექტრონიკა

ელექტრონიკის დაკავშირება
ელექტრონიკის დაკავშირება
ელექტრონიკის დაკავშირება
ელექტრონიკის დაკავშირება

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

ქვემოთ დავამატე გამაოგნებელი ფაილები.

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

მონაცემთა ბაზის დიზაინი
მონაცემთა ბაზის დიზაინი

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

ცხრილი 1: tblMuziek

ეს არის საკმაოდ ძირითადი მაგიდა. ეს ინახავს მხატვრის სახელს, სიმღერის სახელს და სიმღერის ფაილის სახელს.

ცხრილი 2: tblLedstrip

ეს ცხრილი თვალყურს ადევნებს ledstrip– ის ამჟამინდელ მდგომარეობას და ზოგავს ledstrip– ის მდგომარეობას. ჩვენ გვჭირდება ეს ჭკვიანი განათების ფუნქციისთვის.

ცხრილი 3: tblSensoren

ეს ცხრილი თვალყურს ადევნებს ჩვენს განგაშის სენსორებს. ჩვენ ვინახავთ სენსორის სახელს და MCP3008 არხს

ცხრილი 4: tbl შეხვედრა

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

ცხრილი 5: tblWekker

ეს მაგიდა ინახავს თქვენი მაღვიძარის პაროლს და სახელს (მაგალითად, საძინებელი) ეს მაგიდა არ არის სავალდებულო, მაგრამ მე დავამატე, რადგან ვვარაუდობ, რომ თქვენ გექნებათ 1 -ზე მეტი მაღვიძარა თქვენს სახლში.

ცხრილი 6: tblAlarrm

ეს არის ალბათ ყველაზე მნიშვნელოვანი მაგიდა. ის თვალყურს ადევნებს თქვენს მიერ დაყენებულ მაღვიძარას და რა უნდა გააკეთოს საათმა (რომელი სიმღერა უნდა ითამაშოს, რომელია თანმიმდევრობა, რა დღეებში უნდა გათიშოს,…). ძალიან მნიშვნელოვანია 2 თარიღის თვალყურის დევნება. 1 თარიღი გამოიყენება შესანახად, რომელ საათზე უნდა გააქტიურდეს სიგნალიზაცია. მეორე თვალყურს ადევნებს ბოლოს როდის დაირეკა მაღვიძარა. იმის გასაგებად, თუ რომელი კვირის დღე უნდა გათიშოს, გამოვიყენე ვარჩარი, რომელიც შეიცავს 7 ციფრის რაოდენობას. პირველი ციფრი არის ორშაბათი, მეორე სამშაბათი,… თუ ეს არის 1, ის უნდა გაითიშოს, თუ ეს არის 0 არ უნდა იყოს. მაგალითი: 1111100 ეს ნიშნავს, რომ ეს მაღვიძარა უნდა გააქტიურდეს ორშაბათს, სამშაბათს, ოთხშაბათს, ხუთშაბათს და პარასკევს.

ნაბიჯი 4: Arduino დაყენება

ეს ნაბიჯი ძალიან ადვილია. შემდეგი ნაბიჯი იქნება ჩემი github– ის ბმული, სადაც შეგიძლიათ ჩამოტვირთოთ arduino ფაილი.

რას აკეთებს პროგრამა?

პროგრამა ელოდება სერიული მონაცემების მიღებას pi- დან.

მონაცემების მიღებისთანავე ის იჭრება სტრიქონის მეშვეობით და აგზავნის დადასტურებას pi- ს.

სიმებიანი იქნება მსგავსი რამ: '1201' ეს ნიშნავს, რომ ის არის 12:01. მე გამოვიყენე საერთო ანოდი 7 სეგმენტის ჩვენება, რაც ნიშნავს რომ ციფრები უნდა იყოს მაღალი და A, B, C, D, E, F, G და DP დაბალი უნდა იყოს მათი ჩართვისთვის. თუ თქვენ იყენებთ საერთო კათოდს, თქვენ უბრალოდ უნდა შეცვალოთ HIGH LOW და LOW მაღალი.

აქ არის ბმული დამატებითი ინფორმაციისთვის, თუ როგორ მუშაობს 7 სეგმენტის ჩვენება. (ბიბლიოთეკის გამოყენებით):

www.instructables.com/id/Using-a-4-digit-7…

აქ არის ბმული ბიბლიოთეკის გამოყენების გარეშე 7 სეგმენტის ჩვენების შესახებ:

create.arduino.cc/projecthub/SAnwandter1/p…

ნაბიჯი 5: ჟოლო Pi Backend

ჟოლო პი ბაკენდი
ჟოლო პი ბაკენდი

თქვენ შეგიძლიათ ჩამოტვირთოთ ჩემი კოდი Github– ის გამოყენებით. (https://github.com/VanHevelNico/WakeMeUp)

როგორ დააყენოთ პროგრამა:

უკანა მხარე ჩაწერილია პითონში კოლბის გამოყენებით. შეგიძლიათ გააკეთოთ სერვისი, რომელიც იწყებს ამ პროგრამას (app.py) ავტომატურად.

თქვენ უნდა განათავსოთ frontend კოდი apache სერვერის html ფაილში, რომელიც ჩვენ ადრე გადმოვწერეთ. (/var/html)

როგორ მუშაობს პროგრამა?

როდესაც მაღვიძარა ჩართულია გადადით თქვენი საათის IP მისამართზე (ის გამოჩნდება LCD– ზე)

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

Აწყობა

ეს ინიციალებს ყველა საჭირო ობიექტს.

GetTemp

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

GetTempGrafiek

ეს იღებს ტემპერატურის სენსორის ბოლო 20 მნიშვნელობას და ასხივებს მას წინა მხარეს.

tijd_sturen

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

შემოწმება

ეს არის ყველაზე მნიშვნელოვანი მეთოდი. ის იღებს ყველა სიგნალს, რომელიც ჩართულია და ამოწმებს, თუ რომელიმე ამ სიგნალიზაციიდან უნდა გადიოდეს ახლა და 5 წუთის წინ (ეს არის ბუფერი, რათა დარწმუნდეთ, რომ თითოეული სიგნალიზაცია გადის საჭიროების შემთხვევაში). თუ მაღვიძარა უნდა ჩაქრეს, ჩვენ დავიწყებთ მუსიკას, ledstrip,… ჩვენ ვკითხულობთ ძალის მიმართ მდგრად რეზისტორს განუწყვეტლივ და როდესაც მნიშვნელობა 1000 -ზე ქვემოთ ეცემა (წაიკითხეთ fsr არის დაჭერილი) ჩვენ ვრთავთ განგაშის სიგნალს და განვაახლებთ სიგნალს მონაცემთა ბაზა. ჩვენ განვსაზღვრეთ თარიღი, როდესაც მაღვიძარა ბოლოჯერ ჩაირთო მიმდინარე თარიღზე.

statusLight

ეს მეთოდი გამოსცემს ledstrip- ის მნიშვნელობას და საჭიროების შემთხვევაში ჩართავს ledstrip- ს.

lichtAanpassen

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

ნაბიჯი 6: საქმე

საქმე
საქმე
საქმე
საქმე
საქმე
საქმე

ჩემი ფაილების ბმული შეგიძლიათ იხილოთ აქ:

გარსაცმის დასაბეჭდად გამოვიყენე 3D პრინტერი. იგი დაბეჭდილია 4 სხვადასხვა ნაწილად:

  1. წინა ფირფიტა ხვრელებით სპიკერისთვის და რამდენიმე კედელი 7 სეგმენტის ჩვენებისთვის
  2. გარეთა ბეჭედი გამჭვირვალე PETG- ში ledstrip- ისთვის.
  3. შუა ნაწილი
  4. უკანა დაფა ხვრელი LCD– ისთვის და ხვრელი კაბელებისთვის.

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

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

გირჩევთ: