Orodha ya maudhui:

NexArdu: Mwangaza Udhibiti wa Smart: Hatua 5
NexArdu: Mwangaza Udhibiti wa Smart: Hatua 5

Video: NexArdu: Mwangaza Udhibiti wa Smart: Hatua 5

Video: NexArdu: Mwangaza Udhibiti wa Smart: Hatua 5
Video: 🟡 POCO X5 PRO - САМЫЙ ДЕТАЛЬНЫЙ ОБЗОР и ТЕСТЫ 2024, Novemba
Anonim
NexArdu: Udhibiti wa Smart Smart
NexArdu: Udhibiti wa Smart Smart

Sasisha

Ikiwa umetengeneza utendaji sawa kutumia Msaidizi wa Nyumbani. Msaidizi wa Nyumbani hutoa anuwai kubwa ya uwezekano. Unaweza kupata maendeleo hapa.

Mchoro wa kudhibiti mwangaza wa nyumbani kwa njia nzuri kupitia 433.92MHz (aka 433MHz) vifaa kama X10 visivyo na waya, n.k. Nexa.

Usuli

Linapokuja suala la mwangaza wa mapambo, imekuwa inanichosha kwa njia fulani kwamba kila wiki ya pili au ya tatu ilibidi nirekebishe vipima ambavyo vinawasha taa kwa sababu ya kuhama kwa saa ya jua kwa heshima na CET. Wakati huo huo, usiku mwingine tunalala mapema kuliko nyingine. Kwa sababu ya hii, wakati mwingine taa huzima ama "kuchelewa sana" au "mapema mno". Hapo juu yalinipa changamoto kufikiria: Ninataka mwangaza wa mapambo kuwasha kila wakati kwenye kiwango sawa cha taa iliyoko na kisha uzime kwa wakati fulani kulingana na ikiwa tumeamka au la.

Lengo

Hii inaweza kutumia uwezekano wa vifaa visivyo na waya kama mfumo Nexa unaofanya kazi kwenye masafa ya 433.92MHz. Hapa tunapaswa kuangazia:

  1. Udhibiti wa kuja kwa moja kwa moja
  2. Udhibiti wa wavuti

Udhibiti wa wavuti. Seva ya ndani na ya nje

Seva ya ndani hutumia uwezekano wa ngao ya Arduino Ethernet kutoa seva ya wavuti. Seva ya wavuti itahudhuria simu za mteja wa wavuti ili kuangalia na kuingiliana na Arduino. Hii ni suluhisho la mbele moja kwa moja na utendaji mdogo; uwezekano wa kuongeza nambari ya seva ya wavuti ni mdogo na kumbukumbu ya Arduino. Seva ya nje inahitaji usanidi wa seva ya nje ya wavuti ya PHP. Usanidi huu ni ngumu zaidi na hauungwa mkono na mafunzo haya hata hivyo, nambari / ukurasa wa PHP kuangalia na kudhibiti Arduino hutolewa na utendaji wa kimsingi. Uwezekano wa kuimarisha seva ya wavuti, katika kesi hii, umepunguzwa na seva ya nje ya wavuti.

Muswada wa vifaa

Ili kutumia kikamilifu fursa ambazo mchoro huu unatoa, unahitaji:

  1. Arduino Uno (iliyojaribiwa kwa R3)
  2. Ngao ya Ethernet ya Arduino
  3. Seti ya Nexa au inayofanana na hiyo kwa 433.92MHz
  4. Sensor ya PIR (Passive InfraRed) inayofanya kazi kwa 433.92MHz
  5. Kinzani ya 10KOhms
  6. LDR
  7. RTC DS3231 (toleo la seva ya nje tu)
  8. Mtumaji wa 433.92MHz: XY-FST
  9. Mpokeaji wa 433.92MHz: MX-JS-05V

Kiwango cha chini kilichopendekezwa ni:

  1. Arduino Uno (iliyojaribiwa kwa R3)
  2. Seti ya Nexa au inayofanana na hiyo kwa 433.92MHz
  3. Kinzani ya 10KOhms
  4. LDR
  5. Mtumaji wa 433.92MHz: XY-FST

(Ukosefu wa ngao ya Ethernet inahitaji marekebisho ya mchoro ambao haukutolewa ndani ya hii inayoweza kufundishwa)

Mantiki ya Nexa. Maelezo mafupi

Mpokeaji wa Nexa anajifunza kitambulisho cha kudhibiti kijijini na kitambulisho cha kitufe. Kwa maneno mengine, kila kijijini kina nambari yake ya mtumaji na kila vitufe vya kuwasha / kuzima vina kitambulisho chake. Mpokeaji lazima ajifunze nambari hizo. Nyaraka zingine za Nexa zinasema kuwa mpokeaji anaweza kuunganishwa na hadi mbali sita. Vigezo vya Nexa:

  • SenderID: Kitambulisho cha udhibiti wa kijijini
  • KitufeID: nambari ya jozi ya vitufe (kuwasha / kuzima). Huanza na nambari 0
  • Kikundi: ndio / hapana (vifungo vya "All off / on")
  • Amri: on / off

Hatua zinazofundishwa. Kumbuka

Hatua tofauti zilizoelezewa hapa ni kutoa ladha mbili tofauti juu ya jinsi ya kufikia lengo. Jisikie huru kuchagua moja kwa urahisi wako. Hapa kuna faharisi:

Hatua # 1: Mzunguko

Hatua # 2: Nexardu na seva ya ndani ya wavuti (iliyo na NTP)

Hatua # 3: Nexardu na Seva ya nje

Hatua # 4: Habari muhimu

Hatua ya 1: Mzunguko…

Mzunguko…
Mzunguko…

Washa vifaa anuwai kama inavyoonekana kwenye picha.

Pini ya Arduino # 8 kwa pini ya Takwimu kwenye moduli ya RX (mpokeaji) Pini ya Arduino # 2 kwa pini ya Takwimu kwenye moduli ya RX (mpokeaji) Pini ya Arduino # 7 kwa pini ya Takwimu kwenye moduli ya TX (mtumaji)

Usanidi wa RTC. Inahitajika tu kwenye usanidi wa Seva ya nje. Pini ya Arduino A4 kwa pini ya SDA kwenye moduli ya RTC

Hatua ya 2: Nexardu na Seva ya Ndani ya Wavuti (iliyo na NTP)

Maktaba

Nambari hii hutumia maktaba mengi. Wengi wao wanaweza kupatikana kupitia "Meneja wa Maktaba" wa IDE ya Arduino. Je! Haupaswi kupata maktaba iliyoorodheshwa, tafadhali google.

Wire.hSPI.h - Inahitajika na ngao ya Ethernet Mteja wa NTP

Mchoro

Nambari hapa chini hutumia uwezekano wa kutumia bodi ya Arduino UNO sio tu kama maana ya kudhibiti vifaa vya Nexa lakini pia ina seva ya Ndani ya Wavuti. Maneno ya kuongeza ni kwamba moduli ya RTC (Saa Saa Saa) hubadilishwa kiatomati kupitia NTP (Itifaki ya Wakati wa Mtandao).

Kabla ya kupakia nambari kwa Arduino, unaweza kuhitaji kusanidi yafuatayo:

  • SenderId: unahitaji kunusa SenderId kwanza, angalia hapa chini
  • PIR_id: unahitaji kunusa SenderId kwanza, angalia hapa chini
  • Anwani ya IP ya LAN: weka IP ya LAN yako kwa ngao yako ya Ethernet Arduino. Thamani ya msingi: 192.168.1.99
  • Seva ya NTP: Sio lazima sana lakini inaweza kuwa nzuri kwa google kwa seva za NTP katika eneo lako lililo karibu. Thamani ya msingi: 79.136.86.176
  • Nambari inarekebishwa kwa ukanda wa saa wa CET. Rekebisha thamani hii -kama inahitajika, kwa eneo lako la wakati ili kuonyesha wakati sahihi (NTP)

Kunusa nambari za Nexa

Kwa hili unahitaji waya - angalau, sehemu ya RX kwa Arduino kama inavyoonyeshwa kwenye mzunguko.

Pata chini ya mchoro wa Nexa_OK_3_RX.ino ambao, wakati wa kuiandika, inaambatana na vifaa vya Nexa NEYCT-705 na PET-910.

Hatua za kufuata ni:

  1. Oanisha mpokeaji wa Nexa na rimoti.
  2. Pakia Nexa_OK_3_RX.ino kwenye Arduino na ufungue "Monitor Serial".
  3. Bonyeza kitufe cha kudhibiti kijijini kinachodhibiti mpokeaji wa Nexa.
  4. Kumbuka "RemoteID" na "ButtonID".
  5. Weka nambari hizi chini ya SenderID na ButtonID kwenye tamko la kutofautisha la mchoro uliopita.

Kusoma kitambulisho cha PIR, tumia tu mchoro huo huo (Nexa_OK_3_RX.ino) na usome thamani kwenye "Serial Monitor" wakati PIR inapogundua mwendo.

Hatua ya 3: Nexardu na Seva ya nje

Maktaba

Nambari hii hutumia maktaba mengi. Sehemu nyingi zinaweza kupatikana kupitia "Meneja wa Maktaba" wa IDE ya Arduino. Ikiwa hautapata maktaba iliyoorodheshwa, tafadhali google.

Wire.hRTClib.h - hii ni maktaba kutoka https://github.com/MrAlvin/RTClibSPI.h - Inahitajika na ngao ya EthernetNexaCtrl.h - Mtawala wa kifaa cha NexaEthernet.h - Ili kuwezesha na kuweka ngao ya EthernetRCSwitch.h - Inahitajika kwa PIRTime.h - Inahitajika kwa RTCTimeAlarms.h - Usimamizi wa saa ya saaREST.h - kwa huduma za RESTful API zinazotumiwa na serverair ya nje / wdt.h

Mchoro

Mchoro hapa chini una ladha nyingine ya kitu kimoja, wakati huu ukiwezesha uwezekano ambao seva ya nje ya wavuti inaweza kutoa. Kama ilivyoelezwa tayari katika utangulizi, Seva ya nje inahitaji usanidi wa seva ya nje ya wavuti ya PHP. Usanidi huu ni ngumu zaidi na hauungwa mkono na mafunzo haya hata hivyo, nambari / ukurasa wa PHP kuangalia na kudhibiti Arduino hutolewa na utendaji wa kimsingi.

Kabla ya kupakia nambari kwa Arduino, unaweza kuhitaji kusanidi yafuatayo:

  • SenderId: unahitaji kunusa SenderId kwanza, angalia Kunusa nambari za Nexa kwenye hatua iliyotangulia
  • PIR_id: unahitaji kunusa SenderId kwanza, angalia Kunusa nambari za Nexa kwenye hatua iliyotangulia
  • Anwani ya IP ya LAN: weka IP ya LAN yako kwa ngao yako ya Ethernet Arduino. Thamani ya msingi: 192.168.1.99

Kwa utaratibu wa kunusa nambari ya Nexa, tafadhali rejea Hatua # 1.

Faili inayosaidia

Pakia faili ya nexardu4.txt iliyowekwa kwenye seva yako ya nje ya PHP na uipe jina jipya kwa nexardu4.php

Wakati wa RTC umewekwa

Kuweka saa / tarehe kwenye RTC ninatumia mchoro wa SetTime ambayo huja pamoja maktaba DS1307RTC.

Hatua ya 4: Habari ya Thamani

Habari ya Thamani
Habari ya Thamani
Habari ya Thamani
Habari ya Thamani

Nzuri kujua tabia

  1. Wakati Arduino iko chini ya "Udhibiti wa Nuru Moja kwa Moja", inaweza kupita kwa majimbo manne tofauti kuhusiana na mwangaza ulioko na wakati wa siku:

    1. Kwa kuamsha: Arduino anasubiri usiku uje.
    2. Amilifu: Usiku umewadia na Arduino amewasha taa.
    3. Somnolent: Taa ZIMEWASHWA lakini wakati wa kuzima unakuja. Huanza saa "time_to_turn_off - PIR_time" ambayo ni kwamba, ikiwa time_t_turn_off imewekwa saa 22:30 na PIR_time imewekwa hadi dakika 20, basi Arduino itaingia katika hali ya uchungu saa 22:10.
    4. Kulala: Usiku unapita, Arduino amezima taa na Arduino anasubiri alfajiri iwe ya kuamka.
  2. Arduino daima anasikiliza ishara zilizotumwa na vidhibiti vya mbali. Hii inaangazia uwezekano wa kuonyesha hali ya taa (kuwasha / kuzima) kwenye wavuti wakati udhibiti wa kijijini unatumiwa.
  3. Wakati Arduino inaamka inajaribu kuzima taa kila wakati kwa hivyo, kwenye ishara zinazotumwa na udhibiti wa remonte kuwasha taa zinaweza kukamatwa na Arduino. Ikiwa hii itatokea, Arduino atajaribu kuzima taa tena.
  4. Wakati Arduino inafanya kazi inajaribu kuwasha taa kila wakati kwa hivyo, ishara za OFF zinazotumwa na rimoti kuzima taa zinaweza kukamatwa na Arduino. Ikiwa hii itatokea, Arduino atajaribu kuwasha taa tena.
  5. Katika hali isiyo ya kawaida taa zinaweza kuwashwa / kuzimwa na rimoti. Arduino haitapinga.
  6. Katika hali isiyo ya kawaida, hesabu ya PIR itaanza kuweka upya kutoka "time_to_turn_off - PIR_time" na kwa hivyo muda_wakugeuza_kupanuliwa kwa dakika 20 kila wakati PIR inapogundua mwendo. Ishara ya "PIR Imegunduliwa!" ujumbe utaonyeshwa kwenye kivinjari cha wavuti wakati hii itatokea.
  7. Wakati Arduino iko taa za kulala zinaweza kuwashwa na kuzimwa kupitia rimoti. Arduino haitapinga.
  8. Kuweka upya au mzunguko wa nguvu wa Arduino utaleta kwenye hali ya kazi. Hii inamaanisha kuwa ikiwa Arduino imewekwa upya baada ya saa_washa_ basi Arduino atawasha taa. Ili kuepusha hii Arduino inahitaji kuletwa katika hali ya mwongozo (weka alama kwenye "Udhibiti wa Nuru Moja kwa Moja") na subiri hadi asubuhi kuirudisha kwenye "Udhibiti wa Nuru Moja kwa Moja".
  9. Kama ilivyotajwa hapo juu, Arduino anasubiri alfajiri ili kufanya kazi tena. Kwa sababu ya hii, mfumo unaweza kudanganywa kwa kuelekeza taa yenye nguvu ya kutosha kuelekea kwenye sensa ya mwanga ambayo inapita kizingiti cha "kiwango cha chini cha mwangaza". Ikiwa hii itatokea, basi Arduino atabadilika kuwa hali ya kazi.
  10. Thamani ya uvumilivu ni ya umuhimu mkubwa ili kuepusha mfumo kugonga na kuzima karibu na kizingiti cha thamani ya kiwango cha chini cha Mwangaza. Taa zilizoongozwa, kwa sababu ya kuzunguka kwao na mwitikio wao wa hali ya juu, inaweza kuwa chanzo cha tabia ya kupepea. Ongeza thamani ya uvumilivu ikiwa unapata shida hii. Ninatumia thamani 7.

Nzuri kujua kuhusu nambari hiyo

  1. Kama unavyoweza kugundua, nambari ni kubwa sana na hutumia idadi kubwa ya maktaba. Hii inaharibu kiwango cha kumbukumbu ya bure inayohitajika kwa lundo. Nimeona tabia isiyokuwa thabiti hapo awali kuwa na mfumo kusimamishwa, haswa baada ya simu za wavuti. Kwa hivyo, changamoto kubwa ambayo nimekuwa nayo imekuwa kupunguza ukubwa wake na matumizi ya anuwai anuwai ili kufanya mfumo uwe thabiti.
  2. Nambari inayotumia seva ya ndani inayotumiwa na mimi nyumbani, imekuwa ikiendelea sasa tangu Februari 2016 bila shida.
  3. Nimeweka juhudi kubwa katika kuimarisha nambari na maelezo. Tumia fursa hii kucheza na vigezo anuwai kama nambari ya kutuma nambari za Nexa kwa kila kupasuka, wakati wa usawazishaji wa NTP, nk.
  4. Nambari haionyeshi kuokoa mchana. Hii inahitaji kurekebishwa kupitia kivinjari cha wavuti wakati inatumika.

Baadhi ya vidokezo vya kuzingatia

  1. Ongeza antena kwa moduli za frequency za redio (RF) za TX na RX. Itakuokoa wakati ukilalamika juu ya alama kuu mbili: uthabiti na anuwai ya ishara ya RF. Ninatumia waya wa 50Ohms 17.28cm (6.80in) mrefu.
  2. Hii inaweza kufanya kazi na mifumo mingine ya kiotomatiki ya nyumbani kama Proove, kwa mfano. Moja ya masharti mengi ya kutimiza ni kuwafanya wafanye kazi kwa masafa ya 433.92MHz.
  3. Kichwa kikubwa na Arduino ni kushughulika na maktaba ambazo zinaweza kusasishwa kwa wakati na ghafla kutorudi sambamba na mchoro wako "wa zamani"; shida hiyo inaweza kuongezeka wakati wa kuboresha Arduino IDE yako. Jihadharini kwamba hii inaweza kuwa kesi yetu hapa - ndio, shida yangu pia.
  4. Wateja wengi wa wakati mmoja wa wavuti na njia tofauti za nuru huunda hali ya "kupepesa".

Picha ya skrini

Kwenye jukwa la picha hapo juu, unapata picha ya skrini ya ukurasa wa wavuti ulioonyeshwa unapopiga simu Arduino kupitia kivinjari chako cha wavuti. Kwa kuzingatia usanidi default wa IP ya nambari, URL itakuwa https:// 192.168.1.99

Jambo moja ambalo linaweza kuboreshwa ni uwekaji wa kitufe cha "tuma" kwani inachukua athari kwenye visanduku vyote vya kuingiza na sio tu kwenye "Udhibiti wa Nuru Moja kwa Moja" kama vile mtu anaweza kudhani. Kwa maneno mengine, ikiwa ungependa kubadilisha maadili yoyote yanayowezekana, kila wakati unahitaji kubonyeza kitufe cha "tuma".

Nyaraka za kina / za hali ya juu

Nimeambatanisha faili zifuatazo ili waweze kukusaidia kuelewa suluhisho lote, haswa kwa utatuzi na uboreshaji.

Arduino_NexaControl_IS.pdf hutoa nyaraka juu ya suluhisho la seva ya ndani.

Arduino_NexaControl_ES.pdf hutoa nyaraka kwenye suluhisho la Seva ya nje.

Marejeo ya nje

Mfumo wa Nexa (Kiswidi)

Hatua ya 5: Imemalizika

Imemalizika!
Imemalizika!

Hapo umemaliza yote na kwa vitendo!

Kesi ya Arduino Uno inaweza kupatikana huko Thingiverse kama "Arduino Uno Rev3 na kesi ya Ethernet Shield XL".

Ilipendekeza: