Orodha ya maudhui:
- Hatua ya 1: Moduli za Sensorer
- Hatua ya 2: Vifaa
- Hatua ya 3: Programu
- Hatua ya 4: Uwekaji wa data
- Hatua ya 5: Programu ya Mpokeaji wa Mfano
Video: Arduino RF Sensor Decoder: Hatua 5
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:51
Nyumba yangu ya awali ilikuja na mfumo wa usalama uliowekwa tayari ambao ulikuwa na sensorer za mlango, sensa ya mwendo, na jopo la kudhibiti. Kila kitu kilikuwa na waya ngumu kwenye sanduku kubwa la umeme kwenye kabati na kulikuwa na maagizo ya wiring simu ya mezani ili kupiga moja kwa moja ikiwa kuna kengele. Nilipojaribu kucheza nayo niligundua kuwa sensorer moja ya mlango haikuwekwa kabisa na nyingine ilikuwa ya vipindi kwa sababu ya mpangilio usiofaa. Sana kwa usanidi wa kitaalam uliowekwa kwenye kadi ya biashara ya kampuni ya usalama. Suluhisho langu wakati huo lilikuwa kununua kamera kadhaa za usalama wa mtandao na kengele ya usalama isiyo na waya.
Songea mbele leo na hiyo kengele isiyo na waya imekaa ndani ya sanduku kwenye basement yangu. Baada ya kupatikana kwangu kwa mpokeaji wa bei rahisi wa RF niliamua kuona ikiwa ninaweza kuamua ujumbe unaosambazwa na anuwai ya sensorer za kengele na vidokezo ambavyo ninavyo. Nilidhani kuwa kwa kuwa wote walifanya kazi na sanduku la kengele la bei rahisi kwamba lazima wote watumie muundo wa ujumbe huo huo na kitambulisho tofauti tu. Hivi karibuni niligundua kuwa zinafanana tu katika muundo wa jumla wa ujumbe. Kwa hivyo mradi huo ukaenda haraka kutoka kwa kitu kidogo na kupendeza sana.
Hatua ya 1: Moduli za Sensorer
Kama unavyoona kwenye picha hapo juu viboreshaji ni pamoja na sensorer wazi za milango, vifaa vya kugundua mwendo, vifaa vya mbali vya mkono, na kitufe kisichotumia waya kinachotumiwa kupanga sanduku la kengele. Kama inavyotokea, hakuna vifaa hivi viwili vinavyotumia urefu sawa wa usawazishaji au muda kidogo. Kawaida tu, isipokuwa urefu wa ujumbe, ni muundo wa msingi wa bits. Kila kidogo huchukua muda uliowekwa na tofauti kati ya sifuri na moja kuwa mzunguko wa ushuru wa sehemu za juu / chini.
Fomu nzuri ya mawimbi iliyoonyeshwa hapo juu SIYO niliyopokea kwanza. Kwa sababu kuna trafiki nyingi kwenye bendi ya masafa ya 433-MHz nililazimika kuhakikisha kuamilisha sensor kabla tu ya kuweka wigo wa kufanya kichocheo kimoja. Kwa bahati nzuri sensorer zinaweka nakala kadhaa za ujumbe wa data wakati zinapoamilishwa na viboreshaji na vitufe vinaendelea kutoa ujumbe kwa muda mrefu tu kitufe kinapobanwa. Kwa kutumia upeo niliweza kuamua urefu wa usawazishaji na muda wa data kidogo kwa kila kitu. Kama ilivyotajwa hapo awali, nyakati za usawazishaji ni tofauti na nyakati kidogo ni tofauti lakini muundo wa ujumbe wote una usawazishaji wa kiwango cha chini ikifuatiwa na bits 24 za data na kidogo ya kuacha. Hiyo ilitosha kwangu kuweza kuunda kiboreshaji cha jumla katika programu bila kulazimika kuweka nambari ngumu maelezo yote tofauti kwa kila kifaa.
Hatua ya 2: Vifaa
Awali niliunda kisimbuzi cha sensorer kwa kutumia kinadhibiti cha PIC na lugha ya kusanyiko. Nimekuwa nikicheza na anuwai za Arduino hivi karibuni kwa hivyo nilifikiri nitaona ikiwa ningeweza kuiga. Skimu rahisi imeonyeshwa hapo juu na pia kuna picha ya mfano wangu. Nilichofanya ni kutumia waya tatu za kawaida za kuruka kutoka Arduino Nano kwenda kwa bodi ya kupokea RF. Nguvu na laini moja ya data ndio yote inahitajika.
Ukisoma Agizo langu kwenye "3-in-1 Saa na Maonyesho ya Hali ya Hewa" utaona kuwa ninatumia mpokeaji wa kawaida wa RXB6, 433-MHz. Unaweza kupata wapokeaji wa bei rahisi kufanya kazi kwa anuwai fupi inayohitajika kwa mradi huu lakini bado ninapendekeza utumie mpokeaji wa heterodyne bora.
Hatua ya 3: Programu
Programu inabadilisha bits zilizopokelewa kuwa herufi zinazoonekana za ASCII. Inatoa thamani ya urefu wa usawazishaji, na urefu wa 1 na 0 bits. Kwa sababu tayari nilijua urefu wa usawazishaji na fomati kidogo, ningeweza kuwaandikia programu hiyo haswa. Badala yake, niliamua kuona ikiwa ningeweza kuiandika ili kutatua urefu wa usawazishaji na kubaini kiatomati data. Hiyo inapaswa kufanya iwe rahisi kurekebisha ikiwa ninataka kujaribu kugundua fomati zingine wakati fulani. Ni muhimu kutambua kwamba programu haijui ikiwa kidogo ya ujumbe ni 1 au 0. Inafikiria kuwa ni 1 lakini, ikiwa itafikiria kuwa inapaswa kuwa sifuri, itabadilisha bits kwenye ujumbe uliokamilishwa kabla ya kuipeleka bandari ya serial.
Nyakati za mapigo ya usawazishaji na bits za data zimedhamiriwa kwa kutumia pembejeo ya kukatiza ya nje ya INT0 ili kuchochea kidhibiti. INT0 inaweza kusababisha kuongezeka, kushuka, au kingo zote mbili, au kwa kiwango cha chini cha utulivu. Programu huingiliwa pande zote mbili na hupima muda ambao mapigo hubaki kuwa chini. Hiyo inarahisisha mambo kwa sababu ujumbe unaanza / usawazishaji ni mapigo ya kiwango cha chini na bits zinaweza kuamua kulingana na wakati wao wa kiwango cha chini.
Kidhibiti cha kukatiza huamua kwanza ikiwa hesabu iliyopigwa ni ndefu ya kutosha kuwa mapigo ya kuanza / kusawazisha. Vifaa anuwai ninazo hutumia kunde za usawazishaji wa 4, 9, 10, na 14 milliseconds. Taarifa za kufafanua kwa min / max zinazoruhusiwa kwa viwango vya usawazishaji ziko mbele kwenye programu na kwa sasa zimewekwa kwa milisekunde 3 na 16. Nyakati kidogo pia hutofautiana kati ya sensorer kwa hivyo algorithm ya kusimba bits inahitaji kuzingatia hilo. Wakati kidogo wa kwanza huokolewa kama ilivyo wakati wa biti inayofuata ambayo ina tofauti kubwa kutoka kwa kwanza. Ulinganisho wa moja kwa moja wa nyakati zinazofuata kidogo hauwezekani kwa hivyo "fudge factor" hufafanua ("Tofauti") hutumiwa. Kuamua kidogo huanza kwa kudhani kuwa data ya kwanza hurekodiwa kama mantiki 1. Thamani hiyo imehifadhiwa na kisha kutumiwa kujaribu bits zinazofuata. Ikiwa hesabu inayofuata ya data iko ndani ya dirisha la utofauti la thamani iliyohifadhiwa basi pia imerekodiwa kama mantiki 1. Ikiwa iko nje ya dirisha la utofauti la thamani iliyohifadhiwa basi imeandikwa kama mantiki 0. Ikiwa mantiki 0 wakati kidogo ni mfupi kuliko wakati wa kwanza kidogo basi bendera imewekwa ili kuambia programu kwamba ka inahitaji kugeuzwa kabla ya kuonyesha. Kesi pekee ambapo algorithm hii inashindwa ni wakati bits kwenye ujumbe ni zote za 0. Tunaweza kukubali upungufu huo kwa sababu ujumbe huo hauna maana.
Sensorer ninayovutiwa nazo zote zina urefu wa ujumbe wa bits 24 za data lakini programu haizuiliki kwa urefu huo. Kuna bafa ya hadi baiti saba (zaidi inaweza kuongezwa) na hufafanua urefu wa chini na upeo wa ujumbe katika ka. Programu imewekwa kukusanya bits, kuzibadilisha kuwa ka, kuzihifadhi kwa muda, na kisha kuzitoa kwa muundo wa ASCII kupitia bandari ya serial. Tukio ambalo husababisha pato la ujumbe huo ni kupokea mapigo ya kuanza / kusawazisha mpya.
Hatua ya 4: Uwekaji wa data
Programu imewekwa ili kutoa data iliyobadilishwa kama herufi za ASCII kupitia pato la serial (TX) la Arduino. Wakati nilifanya toleo la PIC nilihitaji kuunganishwa na programu ya wastaafu kwenye PC ili kuonyesha data. Faida moja ya Arduino IDE ni kwamba ina kazi ya Ufuatiliaji wa serial iliyojengwa ndani. Niliweka kiwango cha bandari ya serial kuwa 115.2k na kisha kuweka dirisha la Serial Monitor kwa kiwango sawa. Picha iliyopigwa hapa inaonyesha onyesho la kawaida na matokeo kutoka kwa sensorer kadhaa ambazo ninazo. Kama unavyoona, wakati mwingine data sio kamili lakini unaweza kuamua kwa urahisi ni nini thamani halisi ya kila sensa inapaswa kuwa.
Hatua ya 5: Programu ya Mpokeaji wa Mfano
Nimejumuisha orodha ya programu inayoonyesha jinsi unaweza kutumia habari iliyokusanywa kupokea seti maalum ya nambari za programu yako. Mfano huu umewekwa ili kuiga moja ya maduka yangu ya mbali ya Etekcity. Amri moja inawasha LED iliyojengwa kwenye Nano (D13) na amri nyingine inazima LED. Ikiwa huna taa iliyojengwa kwenye Arduino yako, kisha ongeza kontena na LED kama inavyoonyeshwa kwenye mchoro. Katika programu halisi, kazi hii ingewasha / kuzima umeme kwa duka la umeme (kwa kutumia relay au triac). Nyakati za usawazishaji, nyakati kidogo, na ka data zinazotarajiwa zote zimefafanuliwa mbele kwa urahisi wa urekebishaji. Unaweza kutumia laini yoyote ya data iliyobaki kuwasha / kuzima vitu, n.k kwa programu yako maalum. Ongeza tu nambari inayofaa ya nambari ya amri na ubadilishe mantiki ya kuzima / kuzima kwa "kitanzi" ili kukidhi mahitaji yako.
Ilipendekeza:
LabDroid: Encoder / Decoder Code ya Morse: Hatua 4
LabDroid: Morse Code Encoder / Decoder: Kumbuka: Maagizo haya hayawezi kutekelezwa 1: 1 katika toleo jipya zaidi la LabDroid. Nitaisasisha hivi karibuni. Mradi huu utakuonyesha unachoweza kufanya na LabDroid. Kwa kuwa Ulimwengu wa Halo kawaida hufanywa kulingana na maandishi, mwanga au sauti, nilifikiria LabDr
Kiambatisho cha Morse Morse Decoder: Hatua 7 (na Picha)
Binary Tree Morse Decoder: a.articles {font-size: 110.0%; font-uzito: ujasiri; mtindo wa fonti: italiki; maandishi-mapambo: hakuna; rangi-ya nyuma: nyekundu;
IR REMOTE DECODER KUTUMIA ARDUINO .: 4 Hatua (na Picha)
IR REMOTE DECODER KUTUMIA ARDUINO .: Huu ni mafunzo mengine ya kirafiki ya kutengeneza kiboreshaji rahisi sana cha Remote ya IR kwa kutumia kipokezi cha Arduino na IR. Mafunzo haya yatafunika kila kitu kutoka kwa kuanzisha programu hadi kutumia Mpokeaji wa IR na kusimba ishara. Hizi
Decoder ya Udhibiti wa Kijijini wa IR Kutumia Arduino: Hatua 7
Decoder ya Udhibiti wa Kijijini wa IR Kutumia Arduino: Hello Makers, Hii ni mafunzo kamili juu ya jinsi ya kusimbua Udhibiti wowote wa Kijijini cha IR. Fuata tu hatua zangu hapa chini
Arduino Magnetic Decoder Decoder: Hatua 4 (na Picha)
Arduino Magnetic Decoder Decoder: Hii inaweza kufundishwa jinsi ya kutumia nambari inayopatikana kwa uhuru, arduino, na msomaji wa kawaida wa safu ya sumaku kuchanganua na kuonyesha data iliyohifadhiwa kwenye kadi za mistari ya sumaku kama kadi za mkopo, vitambulisho vya wanafunzi, n.k. chapisha hii baada ya