Sisukord:
- Samm: vooluring…
- 2. toiming: Nexardu koos sisemise veebiserveriga (sisaldab NTP -d)
- Samm: Nexardu välise serveriga
- 4. samm: väärtuslikku teavet
- Samm: lõpetatud
Video: NexArdu: valgustuse nutikas juhtimine: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Värskenda
Kui olete arendanud sama funktsiooni Home Assistanti abil. Koduabiline pakub tohutult erinevaid võimalusi. Arenduse leiate siit.
Eskiis kodu valgustuse nutikaks juhtimiseks 433.92MHz (aka 433MHz) traadita X10-sarnaste seadmete, nt. Nexa.
Taust
Mis puudutab dekoratiivset valgustust, siis on mulle kuidagi väsitav olnud, et iga teine või kolmas nädal pidin ümber seadma taimerid, mis lülitavad sisse tuled, kuna päikesetund on CET suhtes nihkunud. Samal ajal Mõnel õhtul läheme varem magama kui teised. Seetõttu lülituvad tuled mõnikord välja "liiga hilja" või "liiga vara". Ülaltoodu pani mind mõtlema: ma tahan, et dekoratiivne valgustus lülituks alati sisse samal ümbritseva valguse tasemel ja lülituks seejärel teatud ajal välja, olenevalt sellest, kas oleme ärkvel või mitte.
Eesmärk
See juhendab ära traadita juhitavate seadmete, näiteks System Nexa, võimalused, mis töötavad sagedusel 433,92 MHz. Siin peame esile tooma:
- Valgustuse automaatne juhtimine
- Veebi juhtimine
Veebi juhtimine. Sisemine vs väline veebiserver
Sisemine server kasutab Arduino Etherneti kilbi võimalust veebiserveri pakkumiseks. Veebiserver osaleb veebikliendi kõnedes, et kontrollida ja suhelda Arduinoga. See on lihtne ja piiratud funktsionaalsusega lahendus; veebiserveri koodi täiustamise võimalusi piirab Arduino mälu. Väline server nõuab välise PHP veebiserveri seadistamist. See seadistamine on keerulisem ja seda õpetus ei toeta, kuid PHP kood/leht Arduino kontrollimiseks ja juhtimiseks on varustatud põhifunktsioonidega. Veebiserveri täiustamise võimalusi piirab sel juhul väline veebiserver.
Materjalide arve
Selle visandi võimaluste täielikuks ärakasutamiseks vajate:
- Arduino Uno (testitud R3 -ga)
- Arduino Etherneti kilp
- Nexa komplekt vms, mis töötab sagedusel 433,92 MHz
- PIR (passiivne infrapuna) andur, mis töötab sagedusel 433,92 MHz
- 10KOhm takisti
- LDR
- RTC DS3231 (ainult välise serveri versioon)
- 433,92 MHz saatja: XY-FST
- 433,92 MHz vastuvõtja: MX-JS-05V
Minimaalne soovitatav on:
- Arduino Uno (testitud R3 -ga)
- Nexa komplekt vms, mis töötab sagedusel 433,92 MHz
- 10KOhm takisti
- LDR
- 433,92 MHz saatja: XY-FST
(Etherneti kilbi väljajätmine nõuab eskiisi muutmist, mida selles juhendis ei ole)
Nexa loogika. Lühike kirjeldus
Nexa vastuvõtja õpib kaugjuhtimispuldi ja nupu ID -d. Teisisõnu, igal puldil on oma saatja number ja igal sisse/välja nuppude paaril on oma nupu ID. Vastuvõtja peab need koodid ära õppima. Mõned Nexa dokumendid väidavad, et vastuvõtja saab siduda kuni kuue kaugjuhtimispuldiga. Nexa parameetrid:
- SenderID: kaugjuhtimispuldi ID
- ButtonID: nupupaari number (sisse/välja). See algab numbriga 0
- Grupp: jah/ei (nupud "Kõik välja/sisse")
- Käsk: sisse/välja
Juhendatavad sammud. Märge
Siin kirjeldatud erinevad sammud pakuvad eesmärgi saavutamiseks kahte erinevat maitset. Valige julgelt endale sobiv. Siin on indeks:
Samm 1: ahel
2. samm: Nexardu koos sisemise veebiserveriga (NTP -ga)
Samm #3: Nexardu välise serveriga
4. samm: väärtuslikku teavet
Samm: vooluring…
Ühendage erinevad komponendid juhtmetega, nagu pildil näidatud.
Arduino pin#8 to Data pin on RX (vastuvõtja) moodul Arduino pin#2 to Data pin on RX (vastuvõtja) moodul Arduino pin#7 to Data pin on TX (sender) moodul Arduino pin A0 to LDR
RTC konfiguratsioon. Vajalik ainult välise serveri konfiguratsioonis. Arduino pin A4 kuni SDA pin RTC moodulil Arduino pin A5 kuni SCL pin RTC moodulil
2. toiming: Nexardu koos sisemise veebiserveriga (sisaldab NTP -d)
Raamatukogud
See kood kasutab palju teeke. Enamikku neist leiate Arduino IDE raamatukoguhalduri kaudu. Kui te ei leia loetletud raamatukogu, siis googeldage.
Wire.hSPI.h - nõutav Etherneti kilpNexaCtrl.h - Nexa seadme kontroller Ethernet.h - Etherneti kilbi lubamiseks ja esiletõstmiseks NTP klient
Sketš
Allolev kood kasutab võimalust kasutada Arduino UNO plaati mitte ainult Nexa seadmete juhtimiseks, vaid sellel on ka sisemine veebiserver. Märkus lisamiseks on see, et RTC (reaalajas kella) moodul reguleeritakse automaatselt NTP (Network Time Protocol) kaudu.
Enne koodi Arduinosse üleslaadimist peate võib -olla konfigureerima järgmise.
- SenderId: kõigepealt peate nuusutama SenderId, vt allpool
- PIR_id: kõigepealt peate nuusutama SenderId, vt allpool
- LAN -i IP -aadress: määrake oma LAN -i IP -aadressiks Arduino Ethernet. Vaikeväärtus: 192.168.1.99
- NTP -server: pole tingimata vajalik, kuid võib olla hea otsida teie läheduses asuvaid NTP -servereid. Vaikeväärtus: 79.136.86.176
- Kood on kohandatud CET ajavööndi järgi. Vajadusel kohandage seda väärtust oma ajavööndiga, et kuvada õige aeg (NTP)
Nexa koodide nuusutamine
Selleks peate vähemalt RX -komponendi ühendama Arduinoga, nagu skeemil näidatud.
Allpool leiate Nexa_OK_3_RX.ino visandi, mis selle kirjutamise ajal ühildub Nexa seadmetega NEYCT-705 ja PET-910.
Järgmised sammud on järgmised:
- Siduge Nexa vastuvõtja kaugjuhtimispuldiga.
- Laadige Nexa_OK_3_RX.ino Arduinole ja avage jadamonitor.
- Vajutage kaugjuhtimispuldi nuppu, mis juhib Nexa vastuvõtjat.
- Võtke teadmiseks "RemoteID" ja "ButtonID".
- Määrake need numbrid eelmise visandi muutuja deklaratsiooni all SenderID ja ButtonID.
PIR -i ID lugemiseks kasutage lihtsalt seda visandit (Nexa_OK_3_RX.ino) ja lugege väärtus "Seeriamonitorilt", kui PIR tuvastab liikumise.
Samm: Nexardu välise serveriga
Raamatukogud
See kood kasutab palju teeke. Enamiku neist leiate Arduino IDE raamatukoguhalduri kaudu. Kui te ei leia loetletud raamatukogu, googeldage.
Wire.hRTClib.h - see on raamatukogu aadressilt https://github.com/MrAlvin/RTClibSPI.h - Nõutav Etherneti kilbi pooltNexaCtrl.h - Nexa seadme kontroller PIRTime.h - vajalik RTCTimeAlarms.h jaoks - ajahäirete haldamine
Sketš
Alloleval visandil on sama asja teine maitse, mis annab seekord võimaluse välisele veebiserverile anda. Nagu sissejuhatuses juba mainitud, nõuab väline server välise PHP veebiserveri seadistamist. See seadistamine on keerulisem ja seda õpetus ei toeta, kuid PHP kood/leht Arduino kontrollimiseks ja juhtimiseks on varustatud põhifunktsioonidega.
Enne koodi Arduinosse üleslaadimist peate võib -olla konfigureerima järgmise.
- SenderId: esmalt peate nuusutama SenderId, vaadake jaotist Nexa koodide nuusutamine eelmises etapis
- PIR_id: kõigepealt peate nuusutama SenderId, vt Nexa koodide nuusutamine eelmises etapis
- LAN -i IP -aadress: määrake oma LAN -i IP -aadressiks Arduino Ethernet. Vaikeväärtus: 192.168.1.99
Nexa koodi nuusutamisprotseduuri kohta vt 1. sammu.
Täiendav fail
Laadige manustatud nexardu4.txt fail üles oma välisele PHP -serverile ja nimetage see ümber failiks nexardu4.php
RTC aeg seatud
Kellaaja/kuupäeva määramiseks RTC -s kasutan visandit SetTime, mis on kokku pandud raamatukogus DS1307RTC.
4. samm: väärtuslikku teavet
Hea teada käitumist
-
Kui Arduino on valguse automaatjuhtimise all, võib see ümbritseva valgustuse ja kellaaja järgi minna nelja erinevasse olekusse:
- Ärkvel: Arduino ootab öö saabumist.
- Aktiivne: öö on kätte jõudnud ja Arduino lülitas tuled sisse.
- Somnolent: tuled põlevad, kuid aeg on need välja lülitada. See algab kell "time_to_turn_off - PIR_time", st kui time_to_turn_off on seatud 22:30 ja PIR_time 20 minutile, siis läheb Arduino uinuvasse olekusse kell 22:10.
- Uinuv: Öö möödub, Arduino on tuled välja lülitanud ja Arduino ootab koidu ärkamist.
- Arduino kuulab alati kaugjuhtimispultide saadetud signaale. See võimaldab kaugjuhtimispuldi kasutamisel kuvada veebis tulede olekut (sisse/välja).
- Kuigi Arduino on ärkvel, üritab ta tuled kogu aeg välja lülitada, seetõttu võib Arduino jäädvustada signaalid, mis saadetakse parandusjuhtimisseadmest tulede sisselülitamiseks. Kui see peaks juhtuma, proovib Arduino tuled uuesti välja lülitada.
- Kui Arduino on aktiivne, üritab see tulesid pidevalt sisse lülitada, seetõttu võib Arduino jäädvustada kaugjuhtimispuldi poolt tulede väljalülitamiseks saadetud OFF -signaale. Kui see peaks juhtuma, proovib Arduino tuled uuesti sisse lülitada.
- Unises olekus saab tulesid kaugjuhtimispuldiga sisse/välja lülitada. Arduino ei hakka vastu.
- Unises olekus hakkab PIR -loendur lähtestama "time_to_turn_off - PIR_time" ja seega pikeneb time_to_turn_off 20 minuti võrra iga kord, kui PIR tuvastab liikumise. Tuvastati "PIR -signaal!" sõnum kuvatakse veebibrauseris.
- Kui Arduino on puhkeolekus, saab tulesid kaugjuhtimispuldi abil sisse ja välja lülitada. Arduino ei hakka vastu.
- Arduino lähtestamine või toite tsükkel viib selle aktiivsesse režiimi. See tähendab, et kui Arduino on lähtestatud pärast time_turn_off, lülitab Arduino tuled sisse. Selle vältimiseks tuleb Arduino viia manuaalsesse režiimi (märkige ruut "Light Automatic Control") ja oodake hommikuni, et see uuesti "Light Automatic Control" režiimi tagasi viia.
- Nagu eelpool mainitud, ootab Arduino, et koidik taas aktiivseks muutuks. Seetõttu võib süsteem petta, suunates piisavalt tugeva valguse valgusanduri poole, mis peaks ületama "minimaalse heleduse" läve. Kui see peaks juhtuma, peab Arduino muutuma aktiivsesse olekusse.
- Tolerantsiväärtus on väga oluline, et vältida süsteemi sisse- ja väljalülitamist läviväärtuse Minimaalne heledus ümber. LED -tuled võivad vilkumise ja suure reageerimisvõime tõttu olla lehvitava käitumise allikaks. Selle probleemi ilmnemisel suurendage tolerantsi väärtust. Kasutan väärtust 7.
Koodist on hea teada
- Nagu märkate, on kood väga suur ja kasutab märkimisväärses koguses raamatukogusid. See vähendab hunniku jaoks vajaliku vaba mälu hulka. Olen varem märganud ebastabiilset käitumist, kus süsteem peatati, eriti pärast veebikõnesid. Seetõttu on minu suurim väljakutse olnud selle suuruse ja erinevate muutujate kasutamise piiramine, et muuta süsteem stabiilseks.
- Kood, mis kasutab minu kodus kasutatavat sisemist serverit, töötab nüüd alates 2016. aasta veebruarist probleemivabalt.
- Olen teinud suuri jõupingutusi koodi rikastamiseks selgitustega. Kasutage seda võimalust, et mängida erinevate parameetritega, nagu Nexa -koodi saatmiste arv sarivõtte kohta, NTP -sünkroonimisaeg jne.
- Koodil puudub suveaeg. Seda tuleb veebibrauseri kaudu kohandada.
Mõned punktid, mida kaaluda
- Lisage antennid raadiosageduse (RF) moodulitele TX ja RX. See säästab teie aega kahe põhipunkti üle kurtmise üle: vastupidavus ja raadiosignaali ulatus. Ma kasutan 50 oomi traati, mille pikkus on 17,28 cm (6,80 tolli).
- See muutmatu võib töötada ka teiste koduautomaatikasüsteemidega, näiteks Proovega. Üks paljudest täidetavatest tingimustest on nende töötamine 433,92 MHz sagedusel.
- Arduino suur peavalu on tegeleda raamatukogudega, mis võivad aja jooksul uueneda ja äkki ei ühildu teie "vana" visandiga; sama probleem võib tekkida teie Arduino IDE uuendamisel. Ettevaatust, et see võib olla meie juhtum -jah, ka minu probleem.
- Mitu samaaegset veebiklienti, millel on erinevad valgusrežiimid, loob "vilkuva" oleku.
Ekraanipilt
Ülaltoodud pildikarussellilt leiate ekraanipildi veebilehelt, mis kuvatakse Arduinole helistamisel veebibrauseri kaudu. Arvestades koodi vaikimisi IP -konfiguratsiooni, oleks URL
Üks aspekt, mida võiks parandada, on nupu „esita” positsioneerimine, kuna see hakkab kehtima kõikidele sisendkastidele, mitte ainult „kergele automaatjuhtimisele”, nagu võiks arvata. Teisisõnu, kui soovite mõnda võimalikku väärtust muuta, peate alati vajutama nuppu "Esita".
Üksikasjalik/täiustatud dokumentatsioon
Olen lisanud järgmised failid, et need saaksid aidata teil lahendust mõista, eriti veaotsingu ja täiustamise jaoks.
Arduino_NexaControl_IS.pdf pakub dokumente sisemise serveri lahenduse kohta.
Arduino_NexaControl_ES.pdf pakub dokumente välise serveri lahenduse kohta.
Välised viited
Nexa süsteem (rootsi keeles)
Samm: lõpetatud
Siin on kõik valmis ja tegus!
Arduino Uno ümbrist võib Thingiversest leida kui "Arduino Uno Rev3 koos Ethernet Shield XL-ümbrisega".
Soovitan:
Seadme juhtimine Androidi WiFi abil Esp8266 Juhtimine: 6 sammu
Seadme juhtimine Androidi WiFi abil Esp8266 Juhtimine: nüüd teame, kuidas juhtida seadmeid esp8266 WiFi -mooduli abil ja Arduino teie seadet Androidi WiFi -juhtimise abil lisateabe saamiseks. klõpsake linki mohamed ashraf
Dünaamiline LED -valgustuse kontroller kunsti jaoks: 16 sammu (piltidega)
Dünaamiline LED -valgustuse kontroller kunstile: Sissejuhatus: Valgustus on visuaalse kunsti oluline aspekt. Ja kui valgustus võib aja jooksul muutuda, võib sellest saada kunsti oluline mõõde. See projekt sai alguse valgusetenduse külastamisest ja kogemustest, kuidas valgustus võiks täielikult
Päikeseaia valgustuse valmistamine: 3 sammu (piltidega)
Kuidas teha päikeseaia valgust: Hy poisid, see on minu esimene juhendamisprojektide tegemise projekt, ,, loodan, et teile meeldib see
Valgustuse lisamine arvuti korpusele: 5 sammu
Valgustuse lisamine arvuti korpusele: Süütage arvuti korpus laheda efekti saavutamiseks. Samuti seda, kuidas teie puhul pragusid varjata, et valgus neist läbi ei paistaks
LED kapi valgustuse all: 7 sammu
LED kapi valgustuse all: juba veebruaris alustasin selle disaini loomist, et sellel oleks " öövalgus " või kapi valguse all. Mõtlesin siis, et mul on juba kapi all kohandatud valgustus. Miks peaksin juba olemasolevat valgustust muutma ja see on vaid 6 m