Სარჩევი:

Raspberry Pi ინტერნეტ ამინდის სადგური: 5 ნაბიჯი (სურათებით)
Raspberry Pi ინტერნეტ ამინდის სადგური: 5 ნაბიჯი (სურათებით)

ვიდეო: Raspberry Pi ინტერნეტ ამინდის სადგური: 5 ნაბიჯი (სურათებით)

ვიდეო: Raspberry Pi ინტერნეტ ამინდის სადგური: 5 ნაბიჯი (სურათებით)
ვიდეო: Raspberry Pi Weather Station 2024, ივლისი
Anonim
Raspberry Pi ინტერნეტ ამინდის სადგური
Raspberry Pi ინტერნეტ ამინდის სადგური
Raspberry Pi ინტერნეტ ამინდის სადგური
Raspberry Pi ინტერნეტ ამინდის სადგური

*** განახლება ***

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

https://piweatherrock.technicalissues.us/

დიდი მადლობა გადადით Gene Liverman– ზე PiWeatherRock– ში ამ პროექტზე მოსასხამისთვის.

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

ჩვენს ოჯახს (კარგი, ძირითადად მე) სიამოვნებდა ოჯახური iPad სამზარეულოს დახლზე ყოფნა, როდესაც არ გამოიყენება, ჩუმად აჩვენებს გარე გარე ამინდის პირობებს. თუმცა, მტკივნეულია iPad- ის ჩატვირთვა და გადმოტვირთვა არკადული აკვანის კორპუსში და მის გარეთ. გარდა ამისა, როდესაც მივდივარ ამინდის დასათვალიერებლად, აღმოვაჩინე, რომ ვიღაცამ აიღო iPad / ამინდის ჩვენება. რაც საჭიროა არის მუდმივი უკანა ეკრანი, რომლითაც ბავშვები არ აპირებენ აიპადის მსგავსად გადაფურცვლას.

ნაბიჯი 1: Gen 1 - Lunchbox Pi ამინდის სადგური

Gen 1 - Lunchbox Pi ამინდის სადგური
Gen 1 - Lunchbox Pi ამინდის სადგური
Gen 1 - Lunchbox Pi ამინდის სადგური
Gen 1 - Lunchbox Pi ამინდის სადგური

ჩემი პირველი აზრი იყო პატარა კომპოზიციური ვიდეო ჩვენების გამოყენება. მე ავიღე ის, რაც სურათზე გამოსახულია Ebay– ზე 22 დოლარად - უბრალოდ მოძებნეთ "4.3 დიუმიანი TFT LCD მანქანის უკანა ხედვის მონიტორის მანქანის მონიტორი". ეკრანს აქვს რეზოლუცია 656 x 416 პიქსელი, რაც არაჩვეულებრივად ხდის ბევრ სასარგებლო ინფორმაციის ჩვენებას გამოწვევას! დისპლეი მოითხოვს 12Vdc როგორც მიწოდების ძაბვას. Raspberry Pi– ს, რა თქმა უნდა, სჭირდება 5Vdc როგორც მიწოდების ძაბვა. ამის გადასაჭრელად, მე ვიყიდე იაფი USB მანქანის დამტენი ამაზონიდან. დაახლოებით 6 დოლარად ვიპოვე 5Vdc 2 Amp მანქანის ჩეინჯერი. ამიტომ, ლანჩბოქსს აქვს გარე 12Vdc კედლის მეჭეჭის კვების წყარო. 12Vdc პირდაპირ კვებავს ეკრანს. 12Vdc ასევე მიდის USB მანქანის დამტენთან, რომელიც ამცირებს ძაბვას რეგულირებად 5Vdc– მდე. როგორც საბოლოო გატეხვა, მე შევაერთე წყვილი მავთული პირდაპირ მანქანის დამტენსა და Raspberry Pi- ს შორის - ეს არ არის ჩემი საუკეთესო იდეა.

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

ნაბიჯი 2: Gen 2 - HDMI მონიტორი + Laser Cut Plexiglass Arcade Case

Gen 2 - HDMI მონიტორი + Laser Cut Plexiglass Arcade Case
Gen 2 - HDMI მონიტორი + Laser Cut Plexiglass Arcade Case
Gen 2 - HDMI მონიტორი + Laser Cut Plexiglass Arcade Case
Gen 2 - HDMI მონიტორი + Laser Cut Plexiglass Arcade Case
Gen 2 - HDMI მონიტორი + Laser Cut Plexiglass Arcade Case
Gen 2 - HDMI მონიტორი + Laser Cut Plexiglass Arcade Case

EBay– ზე დავბრუნდი, ვიპოვნე 54 $ დოლარიანი HDMI ღია ჩარჩოების მონიტორი, რომლის გარჩევადობაა 800x600. განმარტებით, ღია ჩარჩო ყველაფერს საჭიროებს ჩარჩოს ჩასამაგრებლად. ვინაიდან ლანჩის ყუთის სიჭრელე დიდი ხანია დასრულდა, დრო იყო აკრილის ლაზერული მოჭრა. ჩემს ადგილობრივ ჰაკერულ სივრცეში i3Detroit– ს აქვს მართლაც ლამაზი 150 ვატიანი საჭრელი, რომელსაც შეუძლია ხორცის დაფქვა 4.5 მმ აკრილისგან.

მე თავისუფლად დავამყარე ჩემი არკადული დანართი iPad არკადული ყუთზე. თუ მე ოდესმე Gen 3 -ის დიზაინს გავაკეთებ, ის გამომწვევად შეიცავდა მოსახსნელი / გასაშლელი უჯრა Pi- სთვის. გამოდის, რომ ეს არის მთავარი ტკივილი კისერზე, რომელიც ცდილობს შეაერთოს ნივთები Pi– დან, რადგან Pi და გვერდით კედლებს შორის არ არის დიდი ადგილი.

HDMI მონიტორს ასევე სჭირდება 12Vdc კვება. ასე რომ, მე გამოვიყენე იგივე ხრიკი USB მანქანის დამტენის ხელახლა გამოყენებისას. ამჯერად, მე გავტეხე ძველი USB კაბელი, ასე რომ Pi- ზე გამყარებული მავთულები არ იყო საჭირო.

თუ ვინმეს აინტერესებს არკადული საქმე გამოაქვეყნეთ კომენტარი ქვემოთ და მე ავტვირთავ DXF ფაილებს. ან, ფაილები ჩემს ვებგვერდზეა ph-elec.com.

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

პი დაყენება
პი დაყენება

ახალი Raspberry Pi– ის დაყენება საჭირო პროგრამული უზრუნველყოფით არც ისე რთულია. ყველა პროგრამა დაწერილია პითონში მხოლოდ ერთი დამატებული პითონის მოდულით. პითონის დამატებით მოდულს ეწოდება "pywapi". აქ არის ბმული, სადაც შეგიძლიათ ჩამოტვირთოთ მოდული. ეს მოდული აადვილებს რეალურ დროში ამინდის მიღებას Yahoo– დან, Weather.com– დან ან NOAA– დან.

უპირველეს ყოვლისა, აქ არის ჩამონათვალი ნედლი ჟოლოს დასაყენებლად:

  1. ჩამოტვირთეთ უახლესი Raspbian (Debian Wheezy). გათიშეთ.img ფაილის მისაღებად.
  2. ჩაწერეთ SD ბარათზე "dd bs = 4M if = 2014-09-09-wheezy-raspbian.img of =/dev/sdb"
  3. Dd ბრძანებას დაახლოებით ხუთი წუთი სჭირდება. დასრულების შემდეგ, გაუშვით "სინქრონიზაცია" მილების გასარეცხად.
  4. დააინსტალირეთ SD ბარათი Pi- ში და გადატვირთეთ. დარწმუნდით, რომ არსებობს Pi Ethernet კავშირი.
  5. როუტერზე "მიმაგრებული მოწყობილობების" გვერდის გამოყენებით იპოვეთ ახალი Pi- ს IP მისამართი.
  6. შედით Pi- ში "ssh [email protected]. ???" სად ??? არის IP ნომერი ზემოდან. პაროლი იქნება "ჟოლო".
  7. Pi- ზე, გამოიყენეთ ბრძანება "raspi-config" ნაგულისხმევი პარამეტრების დასაყენებლად.

    1. ჩართეთ ავტომატური ჩატვირთვა GUI- ში.
    2. დააყენეთ მასპინძლის სახელი მსგავსი "MyPi".
  8. დააინსტალირეთ VNC Pi- ზე "sudo apt-get install tightvncserver".

    გაუშვით "tightvncserver", რომელიც ადგენს პაროლს

  9. დაბრუნდით Linux– ის დიდ ყუთში, გამოიყენეთ „დისტანციური სამუშაო მაგიდა“Pi GUI დესკტოპის სანახავად.

    1. დააყენეთ პროტოკოლი "VNC" და IP ნომერი "192.168.1.… ?:1". გაითვალისწინეთ ": 1" IP ნომრის ბოლოს.
    2. დააჭირეთ ღილაკს დაკავშირება და მიუთითეთ VNC პაროლი.
    3. ბინგო, დისტანციური GUI Pi დესკტოპი!

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

    4. სამუშაო მაგიდაზე გაუშვით WiFi დაყენების ხატი. დააინსტალირეთ ახალი Pi / USB WiFi ქსელთან დასაკავშირებლად.
    5. დახურეთ VNC კავშირი - ჩვენ დავასრულეთ დისტანციური კომპიუტერები.
  10. Ssh ფანჯარაში, გადატვირთეთ Pi "sudo reboot" - ით. გათიშეთ Ethernet კაბელი, რადგან WiFi არის დაყენებული.
  11. დაბრუნდით სახლის როუტერზე, იპოვეთ ახალი IP ნომერი, რომელსაც Pi იყენებს WiFi– ით.
  12. Ssh– ის გამოყენებით, შედით სისტემაში ახალი IP ნომრის გამოყენებით. ამჯერად კავშირი იქნება WiFi- ით.
  13. Linux– ზე Files Manger– ის გამოყენებით, დაუკავშირდით Pi– ს „სერვერთან დაკავშირების“ბრძანების გამოყენებით.

    სერვერის მისამართია "sftp: //192.168.1. ???/home/pi"

  14. ძირითადი დაყენება დასრულებულია.

შემდეგი, pywapi უნდა გადმოწერილი და დაინსტალირებული. კიდევ ერთხელ, ეს არ არის ძალიან რთული შემდეგი ნაბიჯებით:

  1. ჩამოტვირთეთ უახლესი აქედან. ამოიღეთ არქივი ახალ დირექტორიაში.
  2. ფაილის მენეჯერის გამოყენებით, დააკოპირეთ დირექტორია Pi სახლის დირექტორიაში.
  3. Ssh- ის გამოყენებით, გააკეთეთ შემდეგი Pi- ზე:

    1. cd pywapi-0.3.8
    2. sudo python setup.py build
    3. sudo python setup.py ინსტალაცია
  4. Შესრულებულია.

განახლება, დამავიწყდა ორი სხვა რამის აღნიშვნა:

  1. Pi– ზე გაუშვით შემდეგი ბრძანება:

    1. sudo apt-get დააინსტალირეთ avahi-daemon

      ეს საშუალებას გაძლევთ დაუკავშირდეთ Pi– ს სახელით. ასე რომ, თქვენს ძირითად კომპიუტერზე შეგიძლიათ დააკავშიროთ როგორც "ssh [email protected]" IP ნომრების ნაცვლად. მრავალრიცხოვანი Pi- ს ქსელში მათი დაბნეულობა ადვილია, თუ სახელით არ დარეკავთ

    2. sudo raspi-config

      1. მოძებნეთ და გაუშვით მე -4 ვარიანტი სახელწოდებით "ინტერნაციონალიზაციის პარამეტრები" და დააყენეთ თქვენი დროის ზონა.
      2. დროის ზონის დაყენებით და ntpd (ქსელის დროის პროტოკოლის დემონი) გაშვებული Pi ყოველთვის აჩვენებს სწორ დროს რამდენიმე მილიწამში! უნდა მიყვარდეს.
  2. კარგი, ახლა ჩვენ დავამთავრეთ.

ნაბიჯი 4: წყაროს კოდი

Საწყისი კოდი
Საწყისი კოდი

ამ მცირე ამინდის ჩვენების ყველა კოდის საფუძველია Python, PyGame და Pywapi. ყველა ღია წყარო / უფასო პროგრამული უზრუნველყოფა.

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

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

  1. cd ამინდი
  2. sudo python ამინდი. py

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

მას შემდეგ რაც ყველაფერი მუშაობს ssh– ის გამოყენებით, დროა მიიღოთ ამინდი, რომელიც ავტომატურად დაიწყება გადატვირთვისას. ეს ასევე მართლაც ადვილი გასაკეთებელია.

  1. Ssh- ის გამოყენებით გაუშვით "sudo vi /etc/rc.local"
  2. ბოლო ხაზის წინ, რომელიც ამბობს "გასვლა 0", დაამატეთ შემდეგი ხაზებს.

    1. cd/home/pi/ამინდი
    2. sudo python weather.py &> err.log

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

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

რამდენიმე სხვა რამ უნდა აღინიშნოს ჩემს კოდთან დაკავშირებით. იქ ჩაფლული შეამჩნევთ რაიმე კოდს X10 მოწყობილობასთან სასაუბროდ. ეს იყო ჩემი მცდელობა გავაკონტროლო ჩემი გარე პოლუს განათება, რომელიც მდებარეობს A3 მისამართზე. მე უბრალოდ მინდოდა ნათურები ჩამობნელებულიყო და გამთენიისას. როგორც ჩანს, საკმაოდ ადვილია და ვიფიქრე, რომ ის მუშაობდა. Pi -ზე USB-to-RS232 დონგლის გამოყენებით მე დავუკავშირე CM11A X10 მოდული. CM11A არის ძველი X10 მაკრო მოდული. CM11A– ს ასევე აქვს RS232 პორტი, რომელიც საშუალებას გაძლევთ გააკონტროლოთ X10 ავტობუსი. როგორც ჩანს, ჯერ კიდევ არსებობს შეცდომები, რადგან ნათურის ბოძზე განათება არ იღებს შეტყობინებას!

ასევე აღსანიშნავია, რომ უფრო დიდ ეკრანზე არის ლამაზი ღია უფსკრული ეკრანის მარჯვენა მხარეს. ჩემი გეგმაა დაამატოთ სტატუსის ნათურები იმ მხარეში. მე ვთამაშობ IEEE802.15.4 რადიოთი და მათი შედეგები ერთ დღეს გამოჩნდება იმ ღია ადგილზე.

უახლესი და უდიდესი განახლებებისთვის ეწვიეთ ჩემს ვებ გვერდს ph-elec.com.

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

მადლობა, ჯიმ.

ოჰ, და არ დაგავიწყდეთ ხმის მიცემა! Გმადლობთ კიდევ ერთხელ.

BTW: ჩემს ვებგვერდზე ყოველთვის არის მეტი ინფორმაცია: www.ph-elec.com

ნაბიჯი 5: მეტრული განახლება

მიმაგრებულია ახალი ვერსია, რომელიც საშუალებას იძლევა აჩვენოს მეტრული ან იმპერიული.

იმედია ეს ეხმარება, ჯიმ

გირჩევთ: