Სარჩევი:

NexArdu: განათების ჭკვიანი კონტროლი: 5 ნაბიჯი
NexArdu: განათების ჭკვიანი კონტროლი: 5 ნაბიჯი

ვიდეო: NexArdu: განათების ჭკვიანი კონტროლი: 5 ნაბიჯი

ვიდეო: NexArdu: განათების ჭკვიანი კონტროლი: 5 ნაბიჯი
ვიდეო: Séance ordinaire - 5 juillet 2021 2024, ივლისი
Anonim
NexArdu: განათების ჭკვიანი კონტროლი
NexArdu: განათების ჭკვიანი კონტროლი

განახლება

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

ესკიზი სახლის განათების ჭკვიანურად გასაკონტროლებლად 433.92MHz (aka 433MHz) უკაბელო X10 მსგავსი მოწყობილობების საშუალებით, მაგ. ნექსი.

ფონი

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

ობიექტური

ეს ინსტრუქცია იყენებს უკაბელო კონტროლირებადი მოწყობილობების შესაძლებლობებს, როგორიცაა System Nexa, რომელიც მუშაობს 433.92MHz სიხშირეზე. აქ ჩვენ უნდა გამოვყოთ:

  1. განათების ავტომატური კონტროლი
  2. ვებ კონტროლი

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

შიდა სერვერი იყენებს Arduino Ethernet ფარის შესაძლებლობას უზრუნველყოს ვებ სერვერი. ვებ სერვერი დაესწრება ვებ კლიენტის ზარებს Arduino– ს შესამოწმებლად და ინტერაქციისთვის. ეს არის პირდაპირი გადაწყვეტა შეზღუდული ფუნქციონირებით; ვებ სერვერის კოდის გაზრდის შესაძლებლობები შეზღუდულია Arduino– ს მეხსიერებით. გარე სერვერი მოითხოვს გარე PHP ვებ სერვერის დაყენებას. ეს კონფიგურაცია უფრო რთულია და არ არის მხარდაჭერილი ამ სამეურვეო პროგრამით, თუმცა PHP კოდი/გვერდი Arduino– ს შესამოწმებლად და მართვისთვის არის უზრუნველყოფილი ძირითადი ფუნქციონირებით. ვებ სერვერის გაძლიერების შესაძლებლობები, ამ შემთხვევაში, შეზღუდულია გარე ვებ სერვერის მიერ.

მასალების ანგარიში

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

  1. Arduino Uno (ტესტირებულია R3– ზე)
  2. Arduino Ethernet ფარი
  3. Nexa კომპლექტი ან მსგავსი მუშაობს 433.92MHz
  4. PIR (პასიური ინფრაწითელი) სენსორი, რომელიც მუშაობს 433.92 მჰც სიხშირით
  5. 10KOhms რეზისტორი
  6. LDR
  7. RTC DS3231 (მხოლოდ გარე სერვერის ვერსია)
  8. 433.92MHz გადამცემი: XY-FST
  9. 433.92 მჰც მიმღები: MX-JS-05V

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

  1. Arduino Uno (ტესტირებულია R3– ზე)
  2. Nexa კომპლექტი ან მსგავსი მუშაობს 433.92MHz
  3. 10KOhms რეზისტორი
  4. LDR
  5. 433.92MHz გადამცემი: XY-FST

(Ethernet ფარის გამოტოვება მოითხოვს ესკიზის ცვლილებებს, რომლებიც არ არის მოცემული ამ ინსტრუქციებში)

Nexa Logic. მოკლე აღწერა

Nexa მიმღები სწავლობს დისტანციური მართვის ID- ს და ღილაკის ID- ს. სხვა სიტყვებით რომ ვთქვათ, ყველა პულტს აქვს თავისი გამგზავნის ნომერი და თითოეულ წყვილს ჩართვის/გამორთვის ღილაკს აქვს თავისი ღილაკის ID. მიმღებმა უნდა ისწავლოს ეს კოდები. Nexa– ს ზოგიერთ დოკუმენტში ნათქვამია, რომ მიმღები შეიძლება დაწყვილდეს ექვს დისტანციურ დისტანციამდე. Nexa პარამეტრები:

  • SenderID: დისტანციური მართვის პირადობის მოწმობა
  • ButtonID: ღილაკის წყვილის ნომერი (ჩართვა/გამორთვა). ის იწყება 0 ნომრით
  • ჯგუფი: დიახ/არა (ანუ "ყველა გამორთული/ჩართული" ღილაკები)
  • ბრძანება: ჩართვა/გამორთვა

ინსტრუქციული ნაბიჯები. შენიშვნა

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

ნაბიჯი #1: წრე

ნაბიჯი #2: Nexardu შიდა ვებ სერვერთან ერთად (NTP– ს ჩათვლით)

ნაბიჯი #3: Nexardu გარე სერვერთან ერთად

ნაბიჯი #4: ღირებული ინფორმაცია

ნაბიჯი 1: წრე…

წრე…
წრე…

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

Arduino pin#8 მონაცემთა pin RX (მიმღები) მოდული Arduino pin#2 მონაცემთა pin RX (მიმღები) მოდული Arduino pin#7 მონაცემთა pin TX (გამგზავნის) მოდული

RTC კონფიგურაცია. საჭიროა მხოლოდ გარე სერვერის კონფიგურაციაზე. Arduino pin A4 to SDA pin on RTC module Arduino pin A5 to SCL pin on RTC module

ნაბიჯი 2: Nexardu შიდა ვებ სერვერთან ერთად (NTP– ს ჩათვლით)

ბიბლიოთეკები

ეს კოდი იყენებს უამრავ ბიბლიოთეკას. მათი უმეტესობა შეგიძლიათ იხილოთ Arduino IDE- ს "ბიბლიოთეკის მენეჯერის" საშუალებით. თუ ვერ იპოვით ჩამოთვლილ ბიბლიოთეკას, გთხოვთ google.

Wire.hSPI.h - საჭიროა Ethernet ფარის მიერ NexaCtrl.h - Nexa მოწყობილობის კონტროლერი Ethernet.h - Ethernet ფარის ჩართვისა და გამოსაყენებლად RCSwitch.h - საჭირო PIRTime.h - საჭირო RTCTimeAlarms.h - დროის განგაშის მართვისთვის NTP კლიენტი

ესკიზი

ქვემოთ მოყვანილი კოდი იყენებს Arduino UNO დაფის გამოყენების შესაძლებლობას არა მხოლოდ როგორც Nexa მოწყობილობების გასაკონტროლებელი საშუალება, არამედ მას აქვს შიდა ვებ სერვერი. შენიშვნის დასამატებლად არის ის, რომ RTC (რეალური დროის საათი) მოდული ავტომატურად რეგულირდება NTP (ქსელის დროის პროტოკოლის) საშუალებით.

სანამ კოდს ატვირთავთ Arduino– ში, შეიძლება დაგჭირდეთ შემდეგი კონფიგურაცია:

  • SenderId: თქვენ ჯერ უნდა გაუსინჯოთ SenderId, იხილეთ ქვემოთ
  • PIR_id: თქვენ უნდა ამოიღოთ SenderId, იხილეთ ქვემოთ
  • LAN IP მისამართი: დააყენეთ თქვენი LAN- ის IP თქვენი Ethernet Arduino ფარი. ნაგულისხმევი მნიშვნელობა: 192.168.1.99
  • NTP სერვერი: არ არის მკაცრად აუცილებელი, მაგრამ კარგი იქნებოდა გუგლისთვის მიმდებარე NTP სერვერებისათვის. ნაგულისხმევი მნიშვნელობა: 79.136.86.176
  • კოდი მორგებულია CET დროის ზონისთვის. შეცვალეთ ეს მნიშვნელობა -საჭიროების შემთხვევაში, თქვენს დროის ზონაში, რათა აჩვენოთ სწორი დრო (NTP)

ყნოსავს Nexa კოდებს

ამისათვის თქვენ უნდა შეაერთოთ მინიმუმ RX კომპონენტი Arduino– ზე, როგორც ეს ნაჩვენებია წრეში.

ქვემოთ ნახეთ Nexa_OK_3_RX.ino ესკიზი, რომელიც მისი წერის დროს თავსებადია Nexa მოწყობილობებთან NEYCT-705 და PET-910.

შემდეგი ნაბიჯებია:

  1. დააწყვილეთ Nexa მიმღები დისტანციური მართვის საშუალებით.
  2. ჩატვირთეთ Nexa_OK_3_RX.ino არდუინოზე და გახსენით "სერიული მონიტორი".
  3. დააჭირეთ დისტანციური მართვის ღილაკს, რომელიც აკონტროლებს Nexa მიმღებს.
  4. გაითვალისწინეთ "RemoteID" და "ButtonID".
  5. დააყენეთ ეს რიცხვები SenderID და ButtonID წინა ესკიზის ცვლადი დეკლარაციის მიხედვით.

PIR- ის Id- ის წასაკითხად, უბრალოდ გამოიყენეთ ესკიზი (Nexa_OK_3_RX.ino) და წაიკითხეთ მნიშვნელობა "სერიული მონიტორის" შესახებ, როდესაც PIR ამოიცნობს მოძრაობას.

ნაბიჯი 3: Nexardu გარე სერვერთან ერთად

ბიბლიოთეკები

ეს კოდი იყენებს უამრავ ბიბლიოთეკას. უმეტესობა შეგიძლიათ ნახოთ Arduino IDE- ს "ბიბლიოთეკის მენეჯერის" საშუალებით. თუ ვერ იპოვით ჩამოთვლილ ბიბლიოთეკას, გთხოვთ google.

Wire.hRTClib.h - ეს არის ბიბლიოთეკა https://github.com/MrAlvin/RTClibSPI.h - მოითხოვება Ethernet shieldNexaCtrl.h - Nexa მოწყობილობის კონტროლერი Ethernet.h - Ethernet ფარის ჩართვისა და გამოსაყენებლად RCSwitch.h - საჭირო PIRTime.h - საჭიროა RTCTimeAlarms.h - დროის განგაშის მენეჯმენტი aREST.h - გარე სერვისის/wdt.h მიერ ექსპლუატირებული RESTful API სერვისებისთვის - Watchdog ტაიმერის დამუშავება

ესკიზი

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

სანამ კოდს ატვირთავთ Arduino– ში, შეიძლება დაგჭირდეთ შემდეგი კონფიგურაცია:

  • SenderId: თქვენ ჯერ უნდა გაიცნოთ SenderId, იხილეთ Nexa კოდების ყნოსვა წინა საფეხურზე
  • PIR_id: თქვენ ჯერ უნდა გაუსინჯოთ SenderId, იხილეთ Nexa კოდების ყნოსვა წინა საფეხურზე
  • LAN IP მისამართი: დააყენეთ თქვენი LAN- ის IP თქვენი Ethernet Arduino ფარი. ნაგულისხმევი მნიშვნელობა: 192.168.1.99

Nexa კოდის ჩხვლეტის პროცედურისთვის მიმართეთ ნაბიჯს #1.

დამატებითი ფაილი

ატვირთეთ თანდართული nexardu4.txt ფაილი თქვენს გარე PHP სერვერზე და დაარქვით მას nexardu4.php

RTC დრო მითითებულია

RTC– ზე დროის/თარიღის დასაყენებლად ვიყენებ ესკიზს SetTime, რომელიც აერთიანებს ბიბლიოთეკას DS1307RTC.

ნაბიჯი 4: ღირებული ინფორმაცია

ღირებული ინფორმაცია
ღირებული ინფორმაცია
ღირებული ინფორმაცია
ღირებული ინფორმაცია

კარგია ქცევის ცოდნა

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

    1. ფხიზლად: არდუინო ელოდება ღამის დადგომას.
    2. აქტიური: დადგა ღამე და არდუინომ განათება ჩართო.
    3. უხერხული: განათება ჩართულია, მაგრამ მოდის მათი გამორთვის დრო. ის იწყება "დროის_ გადატრიალების_ დროზე - PIR_ დროზე", ანუ, თუ გამორთვის დრო დაყენებულია 22:30 და PIR_ დრო 20 წუთზე, მაშინ არდუინო შევა საძილე მდგომარეობაში 22:10 საათზე.
    4. მიძინებული: ღამე გადის, არდუინომ შუქი ჩააქრო და არდუინო ელოდება გამთენიისას რომ გაიღვიძებს.
  2. არდუინო ყოველთვის უსმენს სიგნალებს დისტანციური მართვის საშუალებით. ეს გამოირჩევა შუქების მდგომარეობის ჩვენების (ჩართვა/გამორთვის) ინტერნეტში დისტანციური მართვის გამოყენებისას.
  3. მიუხედავად იმისა, რომ არდუინო გაღვიძებულია, ის ცდილობს ყოველთვის გამორთოს შუქები, ამიტომ სიგნალები, რომლებიც გაგზავნილია რემონტის კონტროლის საშუალებით, განათების ჩასართავად შეიძლება დაიჭიროს არდუინომ. თუ ეს მოხდება, არდუინო კვლავ შეეცდება შუქის ჩაქრობას.
  4. მიუხედავად იმისა, რომ არდუინო აქტიურია, ის ცდილობს მუდმივად ჩართოს შუქები, ამიტომ შუქის გამორთვის დისტანციური მართვის მიერ გაგზავნილი სიგნალები შესაძლოა დაიჭიროს არდუინომ. თუ ეს მოხდება, არდუინო შეეცდება კვლავ აანთოს შუქი.
  5. ძილში ნათურების ჩართვა/გამორთვა შესაძლებელია დისტანციური მართვის საშუალებით. არდუინო არ დაუპირისპირდება.
  6. საძილე მდგომარეობაში PIR– ის ათვლა დაიწყებს ხელახლა „დროის_ გადატრიალებას _ PIR_ დრო“და ასე რომ, დრო_ გადატრიალების_ გახანგრძლივებისათვის 20 წუთით იზრდება ყოველ ჯერზე, როდესაც PIR მოძრაობას ამოიცნობს. "აღმოჩენილია PIR სიგნალი!" შეტყობინება ნაჩვენები იქნება ბრაუზერში, როდესაც ეს მოხდება.
  7. სანამ არდუინო მიძინებულია, განათების ჩართვა და გამორთვა შესაძლებელია დისტანციური მართვის საშუალებით. არდუინო არ დაუპირისპირდება.
  8. Arduino– ს გადატვირთვა ან ენერგიის ციკლი მას აქტიურ რეჟიმში მიიყვანს. ეს ნიშნავს, რომ თუ Arduino გადატვირთულია დროის_გადაწყვეტის შემდეგ, Arduino აანთებს შუქებს. ამის თავიდან ასაცილებლად არდუინო უნდა გადავიდეს მექანიკურ რეჟიმში (მონიშნეთ "სინათლის ავტომატური კონტროლი") და დაელოდეთ დილამდე, რომ დაუბრუნდეთ მას "სინათლის ავტომატურ კონტროლს".
  9. როგორც უკვე აღვნიშნეთ, არდუინო ელოდება გამთენიისას, რომ კვლავ გააქტიურდეს. ამის გამო, სისტემას შეუძლია მოატყუოს სინათლის სენსორის მიმართ საკმარისად ძლიერი შუქის გადატანა, რომელიც უნდა გადალახოს "მინიმალური სიკაშკაშის" ბარიერს. თუ ეს მოხდება, მაშინ არდუინო უნდა გადავიდეს აქტიურ მდგომარეობაში.
  10. ტოლერანტობის მნიშვნელობა ძალიან მნიშვნელოვანია, რათა თავიდან იქნას აცილებული სისტემის გაფრქვევა და გამორთვა ბარიერის მნიშვნელობის მინიმალური სიკაშკაშის გარშემო. LED განათება, მათი მბჟუტავობისა და მაღალი რეაგირების გამო, შეიძლება იყოს flapping ქცევის წყარო. გაზარდეთ ტოლერანტობის ღირებულება, თუ თქვენ განიცდით ამ პრობლემას. მე ვიყენებ ღირებულებას 7.

კოდის ცოდნა კარგია

  1. როგორც ხედავთ, კოდი ძალიან დიდია და იყენებს ბიბლიოთეკების მნიშვნელოვან რაოდენობას. ეს საფრთხეს უქმნის გროვისათვის საჭირო თავისუფალი მეხსიერების რაოდენობას. მე შევამჩნიე არასტაბილური ქცევა წარსულში, როდესაც სისტემა შეჩერდა, განსაკუთრებით ვებ ზარების შემდეგ. ამრიგად, ყველაზე დიდი გამოწვევა, რაც მე მქონია, იყო მისი ზომის შეზღუდვა და მრავალფეროვანი ცვლადების გამოყენება სისტემის სტაბილურობის მიზნით.
  2. კოდი, რომელიც იყენებს შიდა სერვერს -გამოიყენება ჩემს მიერ სახლში, მუშაობს 2016 წლის თებერვლიდან უპრობლემოდ.
  3. მე მნიშვნელოვანი ძალისხმევა ჩავდე კოდის გამდიდრებაში ახსნა -განმარტებებით. ისარგებლეთ ამით, რომ ითამაშოთ სხვადასხვა პარამეტრებით, როგორიცაა Nexa კოდის გაგზავნის რაოდენობა ერთ პაკეტში, NTP სინქრონიზაციის დრო და ა.
  4. კოდი არ შეიცავს დღის დაზოგვას. ეს უნდა იყოს მორგებული ვებ ბრაუზერის საშუალებით, როდესაც ის გამოიყენება.

ზოგიერთი პუნქტი გასათვალისწინებელია

  1. დაამატეთ ანტენები TX და RX რადიოსიხშირული (RF) მოდულებში. ეს დაზოგავს თქვენს დროს ორ ძირითად პუნქტზე პრეტენზიას: RF სიგნალის გამძლეობას და დიაპაზონს. მე ვიყენებ 50Ohms მავთულს 17,28 სმ (6,80 ინჩი) სიგრძის.
  2. ეს უხერხული შეიძლება იმუშაოს სახლის ავტომატიზაციის სხვა სისტემებთანაც, მაგალითად Proove– ს მსგავსად. ერთ -ერთი იმ მრავალი პირობის შესრულებაა ის, რომ ისინი მუშაობდნენ 433.92MHz სიხშირეზე.
  3. არდუინოსთან დიდი თავის ტკივილი არის ბიბლიოთეკებთან გამკლავება, რომლებიც დროთა განმავლობაში შეიძლება განახლდეს და უცებ არ იყოს თავსებადი თქვენს "ძველ" ესკიზთან; იგივე პრობლემა შეიძლება წარმოიშვას თქვენი Arduino IDE- ს განახლებისას. ფრთხილად იყავით, რომ ეს შეიძლება იყოს ჩვენი საქმე აქ -დიახ, ჩემი პრობლემაც.
  4. მრავალჯერადი პარალელური ვებ – კლიენტი სხვადასხვა განათების რეჟიმებით ქმნის „მოციმციმე“მდგომარეობას.

ეკრანის ანაბეჭდი

სურათის კარუსელში, თქვენ ნახავთ ვებ გვერდის ეკრანის ანაბეჭდს, რომელიც გამოჩნდება Arduino– ს თქვენი ბრაუზერის საშუალებით. კოდის ნაგულისხმევი IP კონფიგურაციის გათვალისწინებით, URL იქნება

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

დეტალური/გაფართოებული დოკუმენტაცია

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

Arduino_NexaControl_IS.pdf გთავაზობთ დოკუმენტაციას შიდა სერვერის გადაწყვეტის შესახებ.

Arduino_NexaControl_ES.pdf გთავაზობთ დოკუმენტებს გარე სერვერის გადაწყვეტის შესახებ.

გარე მითითებები

Nexa სისტემა (შვედური)

ნაბიჯი 5: დასრულდა

დასრულდა!
დასრულდა!

აქ თქვენ გაქვთ ყველაფერი დასრულებული და მოქმედებაში!

Arduino Uno ქეისი შეგიძლიათ იხილოთ Thingiverse– ში, როგორც „Arduino Uno Rev3 Ethernet Shield XL- კეისით“.

გირჩევთ: