Სარჩევი:

ჟოლოს PI კამერა და სინათლის კონტროლის სიკვდილის ვარსკვლავი: 5 ნაბიჯი (სურათებით)
ჟოლოს PI კამერა და სინათლის კონტროლის სიკვდილის ვარსკვლავი: 5 ნაბიჯი (სურათებით)

ვიდეო: ჟოლოს PI კამერა და სინათლის კონტროლის სიკვდილის ვარსკვლავი: 5 ნაბიჯი (სურათებით)

ვიდეო: ჟოლოს PI კამერა და სინათლის კონტროლის სიკვდილის ვარსკვლავი: 5 ნაბიჯი (სურათებით)
ვიდეო: Алисы в стране чудес ► 1 Прохождение Bramble: The Mountain King 2024, ივლისი
Anonim
ჟოლოს PI კამერა და სინათლის კონტროლის სიკვდილის ვარსკვლავი
ჟოლოს PI კამერა და სინათლის კონტროლის სიკვდილის ვარსკვლავი
ჟოლოს PI კამერა და სინათლის კონტროლის სიკვდილის ვარსკვლავი
ჟოლოს PI კამერა და სინათლის კონტროლის სიკვდილის ვარსკვლავი
ჟოლოს PI კამერა და სინათლის კონტროლის სიკვდილის ვარსკვლავი
ჟოლოს PI კამერა და სინათლის კონტროლის სიკვდილის ვარსკვლავი

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

აქ არის კიდევ ერთი დიდი პროექტი, თავდაპირველად სახელად Shadow 0f Phoenix, ჟოლოს PI ფარი არდუინოს მოძრაობის გამოვლენისა და სინათლის კონტროლთან ერთად.

ნაბიჯი 1: კომერციული IP კამერების მდგომარეობა

კომერციული IP კამერების მდგომარეობა
კომერციული IP კამერების მდგომარეობა
კომერციული IP კამერების მდგომარეობა
კომერციული IP კამერების მდგომარეობა
კომერციული IP კამერების მდგომარეობა
კომერციული IP კამერების მდგომარეობა

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

მე შევადარებ მას NEO COOLCAM Full HD 1080P უკაბელო IP კამერის სერიას, რადგან მე მაქვს მრავალი სხვადასხვა მოდელის neo coolcams (ONVIF) კამერები. ისინი მოდის სხვადასხვა ფორმებსა და ზომებში, გარეთ და შენობაში, უმეტესობა მათგანს აქვს wifi მხარდაჭერა, მაგრამ ვნახოთ მათი გაფრთხილებები:

  • ჩინელი მწარმოებლები, რომლებიც ყიდიან ამ კამერებს, თითქმის ყოველთვის იტყუებიან ჩაშენებული გამოსახულების სენსორის გარჩევადობაზე, როდესაც ყიდულობთ 5MP/8MP კამერას Ebay– ზე, შესაძლოა აღმოჩნდეთ იაფი 2MP კამერით ცუდი სურათებით (ის მუშაობს, მაგრამ ხარისხი ნაგავია). როდესაც ყიდულობთ 8MP Raspberry PI v2 კამერას ორიგინალური საცალო ვაჭრობისგან, თქვენ მიიღებთ იმას, რაც გადაიხადეთ და ფაქტობრივი 8MP სენსორი გარჩევადობით 3280 × 2464 პიქსელი =>
  • უსაფრთხოების თვალსაზრისით ეს კამერები (თუნდაც უფრო ძვირი Dlink და სხვა მოდელები) საშინელებაა, ისინი იყენებენ ნაგულისხმევ პაროლებს, როგორიცაა 123456 ან ჩაშენებული მომხმარებლებში, როგორიცაა ადმინისტრატორი/ადმინისტრატორი ოპერატორი/ოპერატორი, რისი შეცვლაც თქვენ ვერ შეძლებთ ცვლილებები გაქრა გადატვირთვის შემდეგ. შეავსეთ ეს მრავალი კამერა ტელეფონის სახლის საშუალებით (დაუკავშირდით მათ სერვერებს ჩინეთში, ზოგი კი ავრცელებს ვიდეოს/სურათებს ისე, რომ არ მოგთხოვდეთ, რათა გაადვილოთ საქმე, თუ გადაწყვეტთ ერთ დღეს დააინსტალიროთ მათი Android/Iphone აპლიკაცია, რომ შეამოწმოთ თქვენი სახლში). მაშინაც კი, თუ თქვენ დააყენებთ ამ მოწყობილობებს როუტერის მიღმა, ეს არ არის საკმარისად კარგი, საუკეთესოა, თუ მათში არ დააყენებთ ნაგულისხმევ კარიბჭეს, არ გაუშვებთ მათ firewall- იდან ან არ ჩადებთ VLAN- ში, რათა შეუძლებელი იყოს მათი გასვლა ინტერნეტი ან კიდევ უკეთესი: საერთოდ არ გამოიყენოთ ისინი.
  • ისინი უფრო საიმედოა? არა, ბევრ მათგანს უფრო ძვირადღირებულ DLINK– ს აქვს შესაძლებლობა გადატვირთოს კამერა ყოველდღიურად/ყოველკვირეულად და ა.შ. უბრალოდ იფიქრეთ მათზე, როგორც კარგ ძველ Win95 ყუთებზე, რომელთა გადატვირთვაც უფრო ხშირად იყო საჭირო, ვიდრე არა:) მე არ ვამბობ, რომ Raspi- ზე დაფუძნებული აპარატურა იმდენად მყარია, რომ თქვენ შეგიძლიათ ააშენოთ ისინი ბირთვული ელექტროსადგურების გასაკონტროლებლად, მაგრამ შესაბამისი ტექნიკით/პროგრამული უზრუნველყოფით კონფიგურაცია, გამათბობლები, ავტომატური გაგრილების ვენტილატორები და მინიმუმამდე შემცირებული RW ოპერაცია SDCARD– ზე, მათ შეუძლიათ უპრობლემოდ მიაღწიონ ამ 100+ დღის ხანგრძლივობას. წერის დროს ჩემი DeathStar გადის 34 დღიდან, 100 -ზე მეტი იყო, მაგრამ ხანდახან მე ვტეხავდი კვების წყაროს კვებაზე, რომელიც აძლიერებს ჩემს სხვა სქემებს, ასე რომ, მისი გამორთვა მომიწია:(
  • მიზნობრივი აპარატურა: ისინი მზადდება 1 კონკრეტული მიზნისთვის, ხშირად გააჩნიათ მცირე ზომის ნვრამის არე და დაკავებული ყუთი, მაგრამ ზოგიერთი მოდელი ამ ჭურვის წვდომას ასევე შეუძლებელს ხდის, ასე რომ თქვენ შეგიძლიათ მათი გამოყენება მხოლოდ ის არის, რისთვისაც იგულისხმებოდა მათი გამოყენება. გამოიყენეთ თქვენი Raspi კამერა ნებისმიერი სხვა ამოცანისთვის: ფაილების სერვერი, tftp/dhcp სერვერი, ვებ სერვერი, მიწისძვრის სერვერი … პარამეტრები შეუზღუდავია.
  • შენახვის ადგილი: მათ ან არ აქვთ ან იყენებენ microsd ბარათებს FAT32 ფაილური სისტემით VS ჟოლოს პისზე, თუ გსურთ, შეგიძლიათ დაურთოთ 2 ტბაიტიანი მყარი დისკი.
  • მაკონტროლებელი შუქები: ზოგიერთს გააჩნია ALARM გამომავალი, სადაც შესაძლოა თქვენ შეძლოთ დააკავშიროთ პატარა სარელეო, რომ განათება გააქტიურდეს. როგორც მე გაჩვენებთ ამ სახელმძღვანელოში ინფრაწითელი კამერების გამოყენება დროის სრული დაკარგვაა, რადგან თქვენ ვერ შეძლებთ ვინმეს იდენტიფიცირებას IR სურათებზე ცუდი ხარისხის გამო. თუ თქვენ გჭირდებათ ვიდეოს ჩაწერა სიბნელეში, ამის საუკეთესო საშუალებაა ჯერ შუქი აანთოთ, შემდეგ ჩაწეროთ ვიდეო.

ასე რომ თქვენ შეიძლება გკითხოთ არის თუ არა პროფესიონალები თაროდან კამერის გამოყენების შესახებ? დიახ იმ ბიზნესისთვის, სადაც სამუშაო საათების დაყენება უფრო ძვირი ჯდება, ვიდრე ჟოლოს პისინგით დაკავება (არა ჩემთვის:) კურსი). სხვა უპირატესობად შემიძლია ვთქვა, რომ ONVIF სტანდარტის შემდეგ კამერებმა გაადვილა ცენტრალიზებული უზრუნველყოფა. ეს უზრუნველყოფს სტანდარტულ ინტერფეისს, რომლის საშუალებითაც შესაძლებელია კამერაში ბრძანებების გაგზავნა IP/ქსელის ნიღბის/Gateway და სხვა ნივთების დასაყენებლად. ამისათვის შეგიძლიათ ჩამოტვირთოთ Onvif მოწყობილობის მენეჯერი Sourceforge– დან. ამ მოწყობილობების უმეტესობას გააჩნია საშინელი გატეხილი ვებ – გვერდები, სადაც, მაგალითად, ის არ გაძლევთ საშუალებას დააყენოთ ip ან netmask სწორად, რადგან javascript, რომელიც ამ ველებს ამტკიცებს, არ მუშაობს და ამ პარამეტრების სწორად დაყენების ერთადერთი გზაა ONVIF.

ნაბიჯი 2: სიკვდილის ვარსკვლავის გეგმები

სიკვდილის ვარსკვლავის გეგმები
სიკვდილის ვარსკვლავის გეგმები
სიკვდილის ვარსკვლავის გეგმები
სიკვდილის ვარსკვლავის გეგმები
სიკვდილის ვარსკვლავის გეგმები
სიკვდილის ვარსკვლავის გეგმები

თქვენ შეგიძლიათ ააწყოთ ეს მოწყობილობა ჟოლოს ნებისმიერი PI– ით, დაწყებული 1 -დან 3B+ - მდე. ნულსაც კი აქვს კამერის პორტები, მაგრამ ვინაიდან ამდენი განსხვავებული მეორადი ბაზაა ბაზარზე, შეიძლება გაინტერესებთ რომელია ყველაზე იდეალური ამ აღნაგობისთვის.

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

ორი არჩევანია:

1, გადაამუშავეთ ვიდეოები ადგილობრივად მოძრაობით და გააგზავნეთ ვიდეო ნაკადი მოძრაობის გამოვლენისას (შენიშვნა: მოძრაობა აგზავნის ნელ მუდმივ ნაკადს სერვერზე, რაც არ უნდა იყოს, ეს შეიძლება იყოს დამოკიდებული რეზოლუციაზე და კადრების სიხშირეზე, რომელსაც იყენებთ რამოდენიმედან ასი მეგაბაიტი მრავალ გიგაბაიტამდე დღეში, უბრალოდ შეხსენება თუ გსურთ დაყენება გაზომულ კავშირზე). აქ პროცესორს აქვს მნიშვნელობა და სამწუხაროდ მოძრაობა (წერის დროს) არ იყენებს მრავალ ბირთვს, თუმცა OS შეეცდება ოდნავ დააბალანსოს დატვირთვა. თქვენ ყოველთვის გექნებათ ერთი ბირთვი 100% –ით.

2, დაამუშავეთ ვიდეო ცენტრალურ სერვერზე: აქ თქვენ უბრალოდ აგზავნით უმი ვიდეო ნაკადს კამერიდან გარე ნაკადიდან (როგორიცაა iSpy x86 კომპიუტერზე ან MotionEyeOS გაშვებული სხვა მინი კომპიუტერზე). ვინაიდან არ არის დამუშავებული თქვენს მიერ გამოყენებული PI მოდელის მნიშვნელობა, PI1 გამოგიგზავნით იგივე ნაკადს, როგორც PI3B+.

ამ გაკვეთილში მე მივდივარ პირველ არჩევანზე.

ცერემონიის წესი არის ის, რომ რაც უფრო სწრაფად ამოძრავებთ პროცესორს, მით უკეთეს შედეგს მიიღებთ. მაგალითად, ჩემი Raspi 2 კამერა, რომელიც დერეფანს უყურებდა, ხანდახან არ იღებდა მას, როდესაც ვიღაც ჩქარა მიდიოდა და როდესაც ის ჩაწერდა ჩამორჩენილს, მოდელ 3 -თან შედარებით ბევრი ჩარჩო დაეცა. მოდელ 3 -ს ასევე აქვს 802.11 abgn wifi, რომელიც მოსახერხებელია იმისათვის, რომ შეძლოთ უფრო მაღალი ხარისხის ვიდეოს სტრიმინგი, ის მუშაობს ყუთში და საკმაოდ საიმედოა. წერის დროს, რომ მოდელი 3B+ გამოვიდა, მე უბრალოდ გირჩევთ, რომ მიიღოთ ეს 1.4 Ghz Quad Core პროცესორით.

მასალების ჩამონათვალი

  • 30 სმ პლასტიკური DeathStar:)
  • ჟოლო Pi 3 B+
  • PiCam v2 (8 მეგაპიქსელი)
  • Arduino Pro Micro 5.5 ვ
  • 2x SIP-1A05 ლერწმის გადამრთველი რელე
  • 1x PCS HC-SR501 IR Pyroelectric Infrared IR PIR Motion Sensor Detector Module
  • 1x 10kohm რეზისტორი LDR– ისთვის
  • 1x LDR
  • 1x12V 4A DC ადაპტერი
  • 1xWarm თეთრი LED 5050 SMD მოქნილი სინათლის ნათურა Strip 12V DC
  • 1xBuck ძაბვის რეგულატორი

როგორც ხედავთ სქემატურად, ეს პროექტი თავდაპირველად შეიქმნა ერთი სარელეო ერთი შუქის გასაკონტროლებლად, რადგან მე არ ვგეგმავდი შიდა განათების დამატებას (რაც საკმაოდ მაგარია), ასე რომ მე მხოლოდ მეორე სარელეო დავამუშავე არდუინოს. SIP-1A05– ის მთავარი უპირატესობა ის არის, რომ მას აქვს შიდა დიოდური დიოდი, ხოლო mA– ს მოხმარება არის Arduino– ს პინ ენერგიის შეზღუდვის ქვეშ.

მიზეზი, რის გამოც PIR არის ფარი სურათებზე, რადგან დასაწყისში S0P იგეგმებოდა მარტივ IP პლასტმასის ყუთში ჩასმა DeathStar– ის ნაცვლად. როგორც თქვენ ალბათ მიხვდით, კამერა პირდაპირ ლაზერულ იარაღშია, PIR და LDR– ს სჭირდებოდათ კიდევ ერთი გაბურღული ხვრელი და ისინი წებოვანაა, რადგან არ ვაპირებ მათ ამოღებას.

DeathStar– ის ბოლოში გაიხვრიტა ხვრელი, სადაც მე ჩავწებდი დიდ ჭანჭიკში ძლიერი 2 კომპონენტიანი წებოთი. ეს შეიძლება დაიხუროს Neo Coolcams– ის ორიგინალურ სადგამში (ბოლოსდაბოლოს რაღაცისთვის კარგი იყო:)). დამატებითი მხარდაჭერისთვის მე ვიყენებ მყარი სპილენძის მავთულხლართებს ვარსკვლავის თავზე დასაჭერად.

მნიშვნელოვანი შენიშვნა ელექტროენერგიის მიწოდებასთან დაკავშირებით: ვინაიდან ერთი და იგივე წყარო მიეწოდება PI- ს, Arduino- ს და LED ზოლს, ის უნდა იყოს საკმარისად ძლევამოსილი, რომ შეძლოს ყველა მათგანის დამუშავება, ასე რომ იგი დაფუძნებული იქნება თქვენ მიერ არჩეული LED ზოლის მიხედვით. კომერციული 5050 12v 3 მეტრიანი LED ზოლები იწურება დაახლოებით 2A, ეს ბევრია. PI და Arduino– სთვის თქვენ უნდა გამოთვალოთ +2A– ში (თუმცა ეს ზედმეტად დიდი არ იქნება დააზარალებს). სტანდარტული ჰალოგენური ნათურებით, ნეონის ან სხვა მაღალი სიმძლავრის განათებით LED ზოლის გამოყენება არის ის, რომ თქვენ შეგიძლიათ მთელი ეს წრე დააყენოთ სასიამოვნო 12V@10Ah ტყვიის მჟავა ბატარეაზე, როგორც სარეზერვო საშუალება, ასე რომ ის ელექტროენერგიის გათიშვის შემთხვევაშიც კი იმუშავებს.

მამალი შეამცირებს ძაბვას 12-> 5V- დან Arduino- ს და PI- ს გაძლიერებისათვის, ხოლო პირდაპირი 12V კვება ჩართულია რელეზე LED ზოლის ჩართვის მიზნით.

ნაბიჯი 3: პროგრამული უზრუნველყოფა Arduino

პროგრამული უზრუნველყოფა Arduino
პროგრამული უზრუნველყოფა Arduino

ქვემოთ შეგიძლიათ იპოვოთ სრული კოდის ქვემოთ, რომელიც კარგად არის კომენტარი, მაგრამ აქ არის მოკლე ახსნა, თუ როგორ მუშაობს იგი: თითოეული მარყუჟის დასაწყისში ხდება ჩვეულებრივი xcomm () ფუნქციის გამოძახება იმის დასადგენად, არის თუ არა ჟოლოს PI ბრძანება, რომელიც შეიძლება იყოს LIGHT_ON/OFF დერეფნის განათების ჩართვისთვის ან DS_ON/OFF DeathStar- ის შუქის ჩართვის/გამორთვისთვის, მე ეს განვახორციელე მხოლოდ სრულყოფილებისთვის, რადგან თუ ვინმე გადადის PIR– ით უნდა აიღოს და ჩართოს შუქები, მაგრამ იქნებ გინდათ შეხედოთ ადგილს რაიმე მიზეზით მაშინაც კი, როცა იქ არავინ არის.

ამის შემდეგ ფოტო უჯრედის მნიშვნელობა იკითხება და მოძრაობის პინი შემოწმებულია მოძრაობისთვის. თუ მოძრაობაა, კოდი ამოწმებს, არის თუ არა ის საკმარისად ბნელი, ის ამოწმებს, თუ ჩვენ არ ვართ ლოდინის რეჟიმში. თუ ეს ყველაფერი გაივლის, ის უბრალოდ აანთებს დერეფნის შუქს და აგზავნის უკან PHOENIX_MOTION_DETECTED ჟოლოს PI- ში, თუ ის საკმარისად ბნელი არ არის, ის კვლავ აგზავნის კომპიუტერს, მაგრამ არ ანათებს შუქს. მოძრაობის აღმოჩენისთანავე იწყება 5 წუთიანი ტაიმერი.

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

ჩვენ გვაქვს DeathStar- ის შიდა განათების ჩასატარებელი სხვა ტაიმერი, რომელიც წმინდად არის დამოკიდებული ფოტო უჯრედის <dark_limit.

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

ნაბიჯი 4: პროგრამული ჟოლო PI

პროგრამული უზრუნველყოფა ჟოლო PI
პროგრამული უზრუნველყოფა ჟოლო PI
პროგრამული უზრუნველყოფა ჟოლო PI
პროგრამული უზრუნველყოფა ჟოლო PI
პროგრამული უზრუნველყოფა ჟოლო PI
პროგრამული უზრუნველყოფა ჟოლო PI

უახლესი Raspbian მუშაობს ჩემთვის:

Raspbian GNU/Linux 9.4 (მონაკვეთი)

Linux Phoenix 4.9.35-v7+ #1014 SMP პარ 30 ივნ 14:47:43 BST 2017 armv7l GNU/Linux ii motion 4.0-1 armhf V4L გადაღების პროგრამა მოძრაობის გამოვლენის მხარდაჭერით

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

მოძრაობა ასევე შეიძლება ადვილად აშენდეს წყაროდან:

apt-get -y დააინსტალირეთ autoconf automake pkgconf libtool libjpeg8-dev build-essential libzip-dev apt-get install libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libavdevice-dev

apt-get -y დააინსტალირეთ libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libavdevice-dev apt-get -y დააინსტალირეთ git git კლონი https://github.com/Motion-Project/motion cd motion/autoreconf -fiv. /configure --prefix =/usr/motion make && make install/usr/motion/bin/motion -v

მე გირჩევთ iSpy როგორც ვიდეო ჩამწერი/კოლექტორის სერვერი. სამწუხაროდ, წერის დროს Linux– ს არ აქვს კარგი ალტერნატივები. კამერა შეიძლება დაემატოს MJPEG url https:// CAMERA_IP: 8081 ნაგულისხმევი პორტით.

მოძრაობის დამუშავება შეიძლება იყოს სასარგებლო, მაგალითად, თქვენ არ გჭირდებათ მთელი დღის განმავლობაში უყუროთ თქვენს iSpy სერვერს, მოძრაობის შემთხვევაში შეგიძლიათ მიიღოთ ელ.წერილი. მიუხედავად იმისა, რომ iSpy– ს აქვს ეს ფუნქცია ელექტრონული ფოსტით გაფრთხილებისათვის მოძრაობის შემთხვევაში, ის დროდადრო ააქტიურებს ჩაწერას სხვადასხვა მოვლენისთვის, როგორიცაა სინათლის ასახვა ამ მხარეში. PIR მოძრაობის გამოვლენისას მე არასოდეს მქონია ერთი ცრუ განგაში. შეტყობინებების დამუშავება შესაძლებელია ადგილობრივად:

Pir მოძრაობის მოვლენა გამოვლინდა სენსორზე> Arduino alert> Raspberry pi იღებს კონსოლზე> C დამუშავების პროგრამა> გარე ფოსტის პროგრამა

თუმცა მე მირჩევნია როგორც ჟურნალების, ისე ვიდეოების დისტანციურად დამუშავება, ამ შემთხვევაში მე დავამატე სექცია C კონტროლის პროგრამაში, სანამ ის ლოგებს ლოგალურად შეაქვს უბრალო ტექსტურ ფაილში, ასევე შეაქვს ის syslog– ში და გადაეგზავნება SIEM– ში შემდგომი დამუშავება.

void logger (char *text) {

FILE *f = fopen ("phoenix.log", "a"); if (f == NULL) {printf ("შეცდომა ჟურნალის ფაილის გახსნისას! / n"); დაბრუნების; } fprintf (f, " %s => %s / n", cur_time (0), ტექსტი); დახურვა (ვ); #ifdef SYSLOG char loggy [500]; sprintf (loggy, " %s => %s / n", cur_time (0), ტექსტი); setlogmask (LOG_UPTO (LOG_NOTICE)); openlog ("DeathStar", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_USER); // syslog (LOG_NOTICE, "პროგრამა დაიწყო მომხმარებლის მიერ %d", getuid ()); syslog (LOG_NOTICE, loggy); დახურვა (); #ენდიფის დაბრუნება; }

მიმღების ბოლოს syslog-ng- ს შეუძლია ამ მოვლენების დემუქირება ძირითადი ჟურნალის ნაკადიდან:

გაფილტვრა f_phx {

მატჩი ("DeathStar"); }; დანიშნულების ადგილი d_phx {ფაილი ("/var/log/phoenix/deathstar.log"); }; ჟურნალი {წყარო (s_net); ფილტრი (f_phx); დანიშნულების ადგილი (d_phx); };

და ის შეიძლება გადაეცეს სხვა ინსტრუმენტს (მოძრაობა. php იხილეთ თანდართული) ანალიზისა და გაფრთხილებისათვის.

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

$ opt ['alert_after'] = '09:00:00'; // დილა $ opt ['alert_before'] = '17:00:00'; // საღამოები

Php პროგრამა იყენებს შესანიშნავ logtail პროგრამას ჟურნალების გასაანალიზებლად.

$ cmd = "logtail -o". $ offsetfile. ' '. $ logfile.'> '. $ logfile2;

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

Motion.php შეიძლება გაშვებული იყოს crontab– დან მცირე ხრიკით შაბათ – კვირას, როდესაც ის გაივლის ჟურნალებს, მაგრამ არ განახორციელებს შემდგომ დამუშავებას.

*/5 * * * 1-5/usr/local/bin/php ~/motion.php &>/dev/null */5 * * * 6-7/usr/local/bin/php ~/motion.php შაბათ -კვირა &>/dev/null

ნაბიჯი 5: საკითხები და შესასრულებელი სია

საკითხები და შესასრულებელი სია
საკითხები და შესასრულებელი სია
საკითხები და შესასრულებელი სია
საკითხები და შესასრულებელი სია

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

წლების განმავლობაში მე მქონდა გარკვეული პრობლემები Raspberry pi 2 დაფაზე, რომლებიც შეიძლება მუშაობდნენ ერთიდაიგივე პროგრამულ უზრუნველყოფას, მაგრამ შეიძინა სხვადასხვა დროს სხვადასხვა ადგილიდან. გარკვეული პერიოდის შემდეგ, რომელიც შეიძლება იყოს 2 დღე ან 20 დღე, როდესაც მოწყობილობაზე SSH ჩართვა, SSH უბრალოდ დაკიდებოდა, ასე რომ, როგორც მოძრაობის დემონი, ასევე ადგილობრივი C კოდი, რომელიც არდუინოს ესაუბრებოდა, აიტვირთა ვერძიში, ამიტომ მოწყობილობა ფუნქციონირებდა მაგრამ შეუძლებელი იყო სხვა რამის გაკეთება აღარ ამ მდგომარეობაში.

ბევრი პრობლემის მოგვარების შემდეგ მე ვიპოვე გამოსავალი:

homesync.sh

#!/bin/sh -e

### INIT INFO # უზრუნველყოფს: homesync # Required-Start: mountkernfs $ local_fs # Required-Stop: camera phoenix # Default-Start: S # Default-Stop: 0 6 # Short-Description: სახლის სინქრონიზატორი # აღწერა: სახლის სინქრონიზატორი NLD ### END INIT INFO NAME = home DESC = "Ramdisk Home Synchronizer" RAM = "/home/" DISK = "/realhome/" set -e case "$ 1" in start | foreth) echo -n "Starting $ DESC: "rsync -az --numeric -ids -წაშლა $ DISK $ RAM &> /dev /null echo" $ NAME. ";; შეჩერება | უკან) echo -n "$ DESC- ის შეჩერება:" rsync -az -რიცხვითი -ids -წაშლა $ RAM $ DISK &> /dev /null echo "$ NAME.";; *) ექო "გამოყენება: $ 0 {დაწყება | გაჩერება}" გასვლა 1;; esac გასასვლელი 0

სკრიპტი თან ახლავს fstab მოდიფიკაციას:

tmpfs /მთავარი tmpfs rw, ზომა = 80%, nosuid, nodev 0 0

სახლის დანაყოფი დამონტაჟებულია ramdisk– ით, რომელიც გამოიღებს დაახლოებით 600 მბ თავისუფალ ადგილს Raspberry pi 2– ზე, რაც საკმარისზე მეტია ორობითი და მცირე ლოგის ფაილების შესანახად:

tmpfs 690M 8.6M 682M 2% /სახლში

აღმოჩნდა, რომ PI გათიშვა მიეკუთვნებოდა SDcard– ზე ჩაწერის ოპერაციებს, თუმცა მე ვცადე სხვადასხვა ბარათი (Samsung EVO, Sandisk), რომლებიც შეცდომების დასკანირებულ იქნა არაერთხელ ადრე და შემდეგ და მათ სხვა ლეპტოპებში პრობლემა არ ჰქონიათ. ახლოვდება. მე არ მქონდა იგივე პრობლემა (ჯერ კიდევ) Raspberry PI 3s– თან და უფრო მაღალ აპარატურასთან, ამიტომაც გირჩევთ მათ ამ გაკვეთილში.

მიუხედავად იმისა, რომ ჟოლოს PI 3 -ის ამჟამინდელი მოძრაობა ჩემთვის საკმარისია, აქ არის რამოდენიმე იდეა, რომელთა შესწავლაც ღირს:

  1. ნუ გამოიყენებთ მოძრაობას, არამედ გამოიყენეთ მძლავრი ნაკადი ქსელში და მიეცით საშუალება მძლავრ სერვერს განახორციელოს მოძრაობის გამოვლენა და ვიდეო კოდირება (მაგ. ISpy). -> პრობლემა: ქსელის გამტარუნარიანობის მუდმივი დაკავება.
  2. გამოიყენეთ მოძრაობა და მიეცით საშუალება ffmpeg გააკეთოს ვიდეო კოდირება. -> პრობლემა: პროცესორი ვერ უმკლავდება მაღალ რეზოლუციებს
  3. გამოიყენეთ მოძრაობა, ჩაწერეთ ნედლეული ვიდეო და მიეცით საშუალება მძლავრ სერვერს გააკეთოს კოდირება. -> პროცესორის გამოყენება RPi– ზე დაბალია და ქსელის გამტარუნარიანობა შემოიფარგლება მხოლოდ რეალური მოძრაობის დროს. ამ სცენარისთვის ჩვენ შეგვიძლია დავწეროთ SD ბარათზე/რამდისკზე მაქსიმალური გამტარუნარიანობისთვის და შემდეგ ვიდეოს გადაწერა სხვა სერვერზე.

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

თუ მოგეწონათ ეს სასწავლო ინსტრუქცია დარჩა გონივრულად, რადგან მომავალ წელს გავაგრძელებ სერიას ჩემი 360 გრადუსიანი გარე ჟოლოს ნულოვანი გუმბათოვანი კამერით.

გირჩევთ: