Orodha ya maudhui:

Mtandao wa Sensorer isiyo na waya ya bei ya chini kwenye Bendi ya 433MHz: Hatua 5 (na Picha)
Mtandao wa Sensorer isiyo na waya ya bei ya chini kwenye Bendi ya 433MHz: Hatua 5 (na Picha)

Video: Mtandao wa Sensorer isiyo na waya ya bei ya chini kwenye Bendi ya 433MHz: Hatua 5 (na Picha)

Video: Mtandao wa Sensorer isiyo na waya ya bei ya chini kwenye Bendi ya 433MHz: Hatua 5 (na Picha)
Video: Cheki jama alivyo paa na ndege ya kichawi utashangaa 2024, Novemba
Anonim
Mtandao wa Sensorer isiyo na waya ya bei ya chini kwenye Bendi ya 433MHz
Mtandao wa Sensorer isiyo na waya ya bei ya chini kwenye Bendi ya 433MHz

Asante nyingi kwa Teresa Rajba kwa kunipa huruma kukubali kwake kutumia data kutoka kwa machapisho yao katika nakala hii

* Kwenye picha hapo juu - vitengo vitano vya mtumaji wa sensa ambavyo nilitumia kupima

Je! Mitandao ya sensorer isiyo na waya ni nini?

Ufafanuzi rahisi ungekuwa: mitandao ya sensorer zisizo na waya inahusu kikundi cha vifaa vya elektroniki vilivyosambazwa kwenye eneo fulani kwa ufuatiliaji na kurekodi data ya mazingira, ambayo hupitishwa bila waya mahali pa kati kushughulikiwa na kuhifadhiwa.

Siku hizi Mitandao ya sensorer isiyo na waya inaweza kutumika kwa njia kadhaa, bellow ni mifano michache tu:

  • Maeneo ya ufuatiliaji wa mazingira ya misitu, mito, maziwa, bahari na bahari;
  • Uwezekano wa kutahadharisha iwapo shambulio la kigaidi, kemikali, kibaolojia, janga;
  • Mifumo ya ufuatiliaji kwa watoto, wazee, wagonjwa au watu wenye mahitaji maalum;
  • Mifumo ya ufuatiliaji katika kilimo na greenhouses;
  • Mfumo wa ufuatiliaji wa Hali ya Hewa;
  • Ufuatiliaji wa trafiki ya jiji, shule, bustani za gari;

Na matumizi mengine mengi.

Katika jarida hili nataka kuonyesha matokeo ya jaribio na mitandao ya sensorer zisizo na waya ambazo zimetumika kwa ufuatiliaji wa data ya joto na unyevu, na tofauti ndogo na inayoweza kutabirika. Kwa jaribio hili nilichagua kutumia watumaji wa sensorer ambao niliunda mwenyewe kwa kutumia moduli za bei rahisi. Mpokeaji pia ni DIY, mawasiliano hayana mwelekeo (kwenye bendi ya redio ya 433 MHz), ikimaanisha kuwa sensorer hupitisha tu data na eneo kuu hupokea tu. Hakuna mawasiliano kati ya sensorer na kutoka kwa mpokeaji hadi sensorer.

Lakini kwa nini kuchagua kutumia vipitishaji vingi na mpokeaji mmoja tu? Kwa wazi sababu ya kwanza itakuwa "kuifanya iwe rahisi". Kukusanya rahisi zaidi, kuna uwezekano mdogo wa kutofaulu, na kwa kweli ni rahisi sana kukarabati na kubadilisha sehemu moja ikiwa kuna utendakazi. Matumizi ya nguvu pia ni ya chini, betri zitadumu kwa muda mrefu (sensorer zitatumia tu wakati wa ufuatiliaji na upokeaji, wakati wote kifaa kitakuwa katika hali ya usingizi mzito). Ukweli kwamba ni rahisi hufanya kifaa pia kuwa rahisi. Kipengele kingine cha kuzingatia ni eneo la chanjo. Kwa nini? Ni rahisi sana kujenga na kutumia mpokeaji nyeti kuliko kuwa na mpokeaji nyeti na mtoaji mwenye nguvu kwenye sensorer na moduli kuu (hii ni muhimu kwa mawasiliano mazuri ya pande mbili). Ukiwa na mpokeaji nyeti na mzuri inawezekana kupokea data kutoka umbali mrefu, lakini kutoa data kwa umbali huo inahitaji nguvu kubwa ya chafu na hii inakuja na gharama kubwa, matumizi ya umeme na (tusisahau) uwezekano wa kupita nguvu ya upitishaji wa kiwango cha juu kwenye bendi ya 433 MHz. Kwa kutumia kipokezi cha ubora wa kati, cha bei rahisi lakini na antena ya hali ya juu (hata DIY) na vipeperushi vya bei rahisi vyenye antena yenye ubora, tunaweza kupata matokeo bora kwa sehemu ya gharama ya mitandao iliyopo ya sensa za waya.

Hatua ya 1: Mawazo ya Kinadharia

Wazo la kujenga mtandao wa sensorer isiyo na waya kwa ufuatiliaji wa joto na unyevu wa hewa na mchanga katika maeneo tofauti ya chafu ulinijia akilini mwangu muda mrefu uliopita, karibu miaka 10. Nilitaka kujenga mtandao wa waya 1 na kutumia sensorer joto-waya 1 na unyevu. Kwa bahati mbaya, miaka 10 iliyopita sensorer za unyevu zilikuwa nadra na za bei ghali (ingawa sensorer za joto zilikuwa zimeenea) na kwa kuwa kueneza waya kote chafu hakuonekana chaguo niliacha wazo haraka sana.

Walakini, sasa hali imebadilika sana. Tuna uwezo wa kupata sensorer za bei rahisi na zenye ubora mzuri (joto na unyevu), na pia tunapata vifaa vya kupitishia na kupokea kwenye bendi ya 433 MHz. Kuna shida moja tu: ikiwa tuna sensorer zaidi (wacha tuseme 20) tunatatua vipi migongano (tafadhali kumbuka kuwa hii ni mawasiliano ya njia moja), ikimaanisha, kuingiliana na chafu ya sensorer 2 au zaidi? Wakati nikitafuta suluhisho linalowezekana nikapata karatasi hizi za kupendeza sana:

Sensor isiyo na waya hukusanyika kulingana na utaratibu wa shughuli za kubahatisha - na RAJBA, T. na RAJBA, S.

na

Uwezekano wa migongano katika Mtandao wa Sensorer isiyo na waya na kutuma kwa nasibu - na RAJBA S. na RAJBA. T

Kimsingi, waandishi wanatuonyesha kuwa uwezekano wa migongano kwenye mtandao wa sensorer isiyo na waya inaweza kuhesabiwa ikiwa vifurushi vinatolewa kwa wakati fulani kulingana na usambazaji wa poissonia (kielelezo).

Dondoo kutoka kwa karatasi hapo juu inaorodhesha sifa za mtandao uliosomwa.

  • idadi kubwa kabisa ya vitengo vya mtumaji wa sensa N;
  • vitengo vya mtumaji wa sensa hubaki huru kabisa na kuwasha au kuzima hakuna ushawishi wowote kwenye operesheni ya mtandao;
  • vitengo vyote vya mtumaji wa sensa (au sehemu yao) inaweza kuwa ya rununu ikiwa tu iko katika anuwai ya redio ya kituo cha kupokea;
  • vigezo vya mwili vinavyobadilika polepole vinakabiliwa na vipimo nini inamaanisha hakuna haja ya kusambaza data mara kwa mara (k.m kila dakika kadhaa au dakika kadhaa);
  • usafirishaji ni wa njia ya njia moja, yaani kutoka kwa kitengo cha mtumaji wa sensorer hadi mahali pa kupokea kwa vipindi vya wastani vya muda wa T. Habari hupitishwa katika itifaki katika tp muda wa muda;
  • sensorer yoyote iliyochaguliwa huanza kusambaza kwa nasibu wakati wa Poisson. PASTA (Wawasili wa Poisson Tazama Wastani wa Wakati) itatumika kuhalalisha kutumwa kwa uchunguzi katika nyakati za Poisson;
  • vitengo vyote vya mtumaji wa sensa hubaki huru bila mpangilio na watasambaza habari hiyo kwa wakati uliochaguliwa bila mpangilio wa tp muda na wa wastani wa T muda wa kurudia;
  • ikiwa sensorer moja au zaidi zinaanza kusambaza wakati itifaki ya tp muda unasambazwa kutoka kwa sensa nyingine, hali kama hiyo inaitwa mgongano. Mgongano hufanya iwezekane kituo cha msingi kupokea habari kwa njia sahihi.

Inafaa karibu kabisa na mtandao wa sensa ninayotaka kujaribu…

Karibu.

Sisemi kwamba nilielewa kabisa hisabati kwenye karatasi, lakini kwa msingi wa data iliyowasilishwa na kwa hitimisho nimeweza kuelewa kidogo ni nini. Jambo pekee ni kwamba thamani iliyotumiwa kwenye karatasi ilinitia wasiwasi kidogo:). Ni tofauti ya tp - muda wa usambazaji wa data ambao unadhaniwa kuwa 3.2x10-5 s. Kwa hivyo wakati wa kupitisha data iliyokusanywa itakuwa 3.2 sisi! Hii haiwezi kufanywa kwenye bendi ya 433 MHz. Ninataka kutumia rcswitch au kichwa cha redio kupanga sensorer za kusambaza. Kujifunza nambari za maktaba mbili, nilifikia hitimisho kwamba wakati mdogo zaidi wa kusafirisha ungekuwa 20ms, juu ya thamani ya 3.2 sisi. Na viboreshaji vya 2.4 GHz, inawezekana tp muda ni mdogo sana… lakini hiyo ni hadithi nyingine.

Ikiwa tutatumia fomula iliyopendekezwa na waandishi wa karatasi hii matokeo yatakuwa:

Takwimu za awali (mfano):

  • Idadi ya sensorer N = 20;
  • Muda wa usafirishaji wa data tp= 20x10-3 s (0.020s)
  • Kipindi cha wastani cha maambukizi T = 180s

Fomula:

Uwezekano wa mgongano kwenye kipindi cha T ni

Picha
Picha

ikiwa tutazingatia data ya mwanzo uwezekano wa mgongano kwenye muda wa T utakuwa 0.043519

Thamani hii, ambayo inaonyesha uwezekano wa kuwa na migongano 4.35 kwa vipimo 100, kwa maoni yangu, ni nzuri kabisa. Uwezekano unaweza kuboreshwa ikiwa tutaongeza wastani wa muda wa usafirishaji, kwa hivyo kwa thamani ya 300 tutakuwa na uwezekano wa 0.026332, yaani migongano 2.6 kwa vipimo 100. Ikiwa tunazingatia kuwa tunaweza kutarajia upotezaji wa data ya pakiti hata hivyo wakati wa utendaji wa mfumo (kulingana na hali ya hali ya hewa kwa mfano) basi nambari hii ni bora sana.

Nilitaka kufanya masimulizi ya aina hii ya mtandao lakini pia aina ya msaidizi wa kubuni, kwa hivyo nilitengeneza programu ndogo huko C, unaweza kupata nambari ya chanzo kwenye github (pia binary iliyokusanywa ambayo inaendesha windows command line - kutolewa).

Data ya kuingiza:

  • nambari ya sensorer - idadi ya sensorer kwenye mtandao;
  • vipimo - idadi - idadi ya vipimo vya kuiga;
  • wastani_uwasilishaji_wa wastani-muda wa wastani kati ya usambazaji wa data mfululizo;
  • muda wa kupitisha - muda mzuri wa usafirishaji wa data.

Pato:

  • muda wa upimaji uliohesabiwa;
  • orodha ya migongano kati ya sensorer mbili;
  • idadi ya migongano;
  • uwezekano wa kinadharia wa migongano.

Matokeo ni ya kupendeza sana:)

Inatosha na nadharia, nisingependa kusisitiza zaidi juu ya sehemu ya nadharia, nakala na nambari ya chanzo ni fasaha kabisa, kwa hivyo ni bora nitekeleze kwa vitendo, utekelezaji mzuri wa mtandao wa sensa ya waya na matokeo ya mtihani.

Hatua ya 2: Utekelezaji wa Vitendo - vifaa

Kwa sensorer za transmitter tutahitaji vifaa vifuatavyo:

  • Mdhibiti mdogo wa ATtiny85 1.11 $;
  • Tundu la mzunguko uliounganishwa 8DIP 0.046 $;
  • Joto / sensorer ya unyevu DHT11 0.74 $;
  • Moduli ya transmita ya 433MHz H34A 0.73 $;
  • Mmiliki wa betri 4xAA na switch 1 $;

Jumla ya $ 3.63;

Mpokeaji anayetumiwa kwa majaribio ni Arduino UNO (tu kwa upimaji) na moduli ya kupokea H3V4F (0.66 $) na antena ya arc ya bei rahisi (0.32 $).

Hesabu za mtumaji wa sensorer

Picha
Picha

Vitengo vya sensorer vinatumiwa na 3xAA, 1.5v betri (katika sehemu ya nne ya mmiliki wa betri kuna mkutano wa elektroniki). Kama unaweza kuona usambazaji wa nguvu ya transmitter na sensorer ya joto-unyevu imeunganishwa kwenye pini ya PB0 ya microcontroller (transmitter na sensorer huendeshwa wakati pini imewekwa juu). Kwa hivyo wakati mdhibiti mdogo yuko kwenye hali ya usingizi mzito, anaweza kufikia matumizi ya sasa ya 4.7uA. Kwa kuzingatia kuwa wakati wa kuamka kwa sensa ya kusambaza itakuwa juu ya 3s (kipimo, usafirishaji n.k.) na wastani wa muda kati ya usambazaji wa miaka ya 180 (kama mfano katika sura iliyotangulia), betri zinapaswa kupinga sana. Na betri zenye ubora wa alkali (yaani 2000 mAh), uhuru unaweza kuwa zaidi ya miezi 10 kama ilivyohesabiwa kwenye omnicalculator.com (ambapo jumla ya matumizi ya sasa ni: sensa - 1.5mA, moduli ya kusambaza - 3.5mA na ATtiny85 microcontroller - 5mA, jumla ya 10mA).

Kwenye picha hapa chini unaweza kuona mkutano wa watumaji wa sensorer karibu kumaliza.

Picha
Picha

Chini ni picha ya kitengo cha mpokeaji wa jaribio.

Picha
Picha

Hatua ya 3: Utekelezaji wa Vitendo - Programu

Programu iliyopakiwa kwa mdhibiti mdogo wa attiny85, sehemu kuu ya vitengo vya mtumaji wa sensa, ina kusudi la kusoma data iliyotolewa na sensa, kuibadilisha kupitishwa na redio, na kuipitisha ndani ya muafaka wa wakati wa Poisson (usambazaji wa kielelezo au PASTA - Wawasili wa Poisson Tazama Wastani wa Wakati). Pia, kwa kutumia kazi rahisi, inafuatilia hali ya betri na inatoa onyo ikiwa voltage inayohitajika ya sensorer haitolewi tena. Nambari ya chanzo inapatikana kwenye github. Nambari ya mpokeaji wa jaribio ni rahisi sana ninaiweka hapa chini.

// maktaba ya rcswitch iliyobadilishwa kutoka https://github.com/Martin-Laclaustra/rc-switch/tree/protocollessreceiver// nambari ni toleo lililobadilishwa kutoka kwa mifano ya maktaba ya asili ya rcswitch # pamoja na RCSwitch mySwitch = RCSwitch (); data ndefu isiyosainiwa = 0; kuanzisha batili () {Serial.begin (9600); mySwitch.enablePokea (0); // Mpokeaji kwa kukatiza 0 => hiyo ni pini # 2} kitanzi batili () {if (mySwitch.available ()) {unsigned data ndefu = mySwitch.getReceivedValue (); // pato (mySwitch.getReceivedValue (), mySwitch.getReceivedBitlength (), mySwitch.getReceivedDelay (), mySwitch.getReceivedRawdata (), mySwitch.getReceivedProtocol ()); unyevu wa ndani = kidogoUmechotwa (data, 7, 1); // chini ya ishara 7bits kutoka nafasi 1 - kulia kidogo kwanza joto la ndani = kidogo Imechotwa (data, 7, 8); // ijayo 7bits kutoka nafasi ya 8 kwenda kulia na kadhalika int v_min = bitEdracted (data, 1, 15); packet_id = bitExtracted (data, 3, 16); // 3bits - vitambulisho 8 vya pakiti kutoka 0 hadi 7 int sensor_id = bitExtracted (data, 6, 19); // 6bit kwa ID ya sensa ya 64 - jumla ya bits 24 Serial.print (sensor_id); Serial.print (","); Serial.print (packet_id); Serial.print (","); Serial.print (joto); Printa ya serial (","); Serial.print (unyevu); Serial.println (); mySwitch.resetInapatikana (); }} // nambari kutoka https://www.geeksforgeeks.org/extract-k-bits-given-position-number/ int bitExtracted (unsigned sign long, int k, int p) {return (((1 (p - 1)));}

Nimejaribu kuingiza maoni mengi iwezekanavyo ili kurahisisha jambo kueleweka.

Kwa utatuzi nilitumia maktaba ya vifaa vya laini na bodi ya maendeleo ya attiny85 na programu ya USBasp (tazama pia inayoweza kufundishwa juu ya hii). Kiunga cha serial kimefanywa na kibadilishaji cha Serial to TTL (na PL2303 chip) iliyounganishwa na pini zilizopigwa (3 na 4) za bodi ya maendeleo (angalia picha hapa chini). Yote hii imekuwa msaada mkubwa sana kukamilisha nambari.

Picha
Picha

Hatua ya 4: Matokeo ya Mtihani

Matokeo ya Mtihani
Matokeo ya Mtihani
Matokeo ya Mtihani
Matokeo ya Mtihani

Nimeunda vitengo 5 vya mtumaji-sensa ambavyo hukusanya na kutuma maadili yaliyopimwa na sensorer za DHT11. Nilirekodi na kuhifadhi vipimo, kwa msaada wa mpokeaji wa jaribio na mpango wa kuiga wa mwisho (foxterm), wakati wa siku tatu. Nilichagua muda wa saa 48 kwa masomo. Sikuwa na nia ya maadili yaliyopimwa (sensorer 2, kwa mfano, inanionyesha maadili mabaya) lakini kwa idadi ya migongano. Kwa kuongezea, sensorer ziliwekwa karibu sana (kwa 4-5 m) na mpokeaji ili kuondoa sababu zingine za upotezaji wa pakiti. Matokeo ya mtihani yamehifadhiwa kwenye faili ya cvs na kupakiwa (angalia faili hapa chini). Nilipakia pia faili bora kuliko faili hii ya csv. Nilichukua viwambo vya skrini kukuonyesha jinsi mgongano unavyoonekana (katika majaribio yangu ya shaka), niliongeza maoni pia kwa kila skrini.

Unaweza kujiuliza kwanini sikutumia huduma ya kipakiaji data kwa mfano ThingSpeak. Ukweli ni kwamba nina rekodi nyingi, sensorer nyingi na data huja mara nyingi kwa vipindi visivyo kawaida, na huduma za mkondoni za IoT huruhusu tu data kwa idadi fulani ya sensorer na kwa vipindi vikubwa tu. Ninafikiria siku zijazo kusanidi na kusanidi seva yangu ya IoT.

Mwishowe, vipimo 4598 kwenye vitengo 5 vya mtumaji wa sensa (aprox. 920 / sensor) vilisababisha jumla ya migongano 5 kwa kipindi cha masaa 48 (migongano 0.5435 / vipimo 100). Kufanya hesabu kadhaa (kutumia programu ya wsn_test na data ya awali: sensorer 5, wastani wa muda wa miaka 180, muda wa maambukizi 110 ms) uwezekano wa kugongana itakuwa 0.015185 (migongano 1.52 / vipimo 100). Matokeo ya vitendo ni bora zaidi basi matokeo ya kinadharia sio?:)

Picha
Picha

Kwa hivyo kuna pia pakiti 18 zilizopotea katika kipindi hiki, kwa hivyo migongano haijalishi sana katika suala hili. Kwa kweli mtihani unapaswa kufanyika kwa kipindi kirefu kupata matokeo kamili lakini kwa maoni yangu ni mafanikio hata katika hali hii na inathibitisha kabisa mawazo ya nadharia.

Hatua ya 5: Mawazo ya Mwisho

Maombi ya haraka

Katika chafu kubwa mazao kadhaa hupandwa. Ikiwa umwagiliaji umetengenezwa kwa mikono bila ufuatiliaji wa hali ya hewa, bila kiotomatiki, bila rekodi za data kuna hatari ya kumwagilia juu au chini na pia matumizi ya maji ni mengi, hakuna ushahidi wa utumiaji wa maji, kuna hatari kwa mazao katika jumla. Ili kuepuka hili, tunaweza kutumia mtandao wa sensorer isiyo na waya:)

Sensorer za joto, sensorer za unyevu wa hewa, sensorer za unyevu wa mchanga zinaweza kuwekwa pande zote kwenye chafu na kwa msaada wa data iliyoambukizwa vitendo kadhaa vinaweza kufanywa: anza-kusimamisha valves za umeme kwa kuruhusu maji kutiririka ambapo inahitajika, anza-simama mashabiki wa umeme ili kupunguza joto katika maeneo tofauti, hita za kuanza-kuanza zinahitajika na data zote zinaweza kuhifadhiwa kwa uchambuzi wa siku zijazo. Pia, mfumo unaweza kutoa kiolesura cha wavuti ambacho kinapatikana kila mahali na barua pepe au kengele za SMS ikiwa hali iko ya kawaida.

Nini kinafuata?

  • Kujaribu na idadi kubwa ya sensorer;
  • Upimaji wa wakati halisi na sensorer za mbali katika eneo la chanjo;
  • Kuweka na kusanidi seva ya ndani ya IoT (kwenye Raspberry Pi kwa mfano);
  • Vipimo pia na transmitter (transceiver) -sensors kwenye 2.4Ghz.

hivyo… itaendelea…:)

KANUSHO: Kutumia bendi ya masafa ya 433MHz katika mkoa wako inaweza kuwa chini ya kanuni za masafa ya redio. Tafadhali angalia uhalali wako kabla ya kujaribu mradi huu

Shindano la Sensorer
Shindano la Sensorer
Shindano la Sensorer
Shindano la Sensorer

Mkimbiaji Juu katika Shindano la Sensorer

Ilipendekeza: