Мазмуну:

433МГц диапазонунда төмөн баалуу зымсыз сенсор тармагы: 5 кадам (сүрөттөр менен)
433МГц диапазонунда төмөн баалуу зымсыз сенсор тармагы: 5 кадам (сүрөттөр менен)

Video: 433МГц диапазонунда төмөн баалуу зымсыз сенсор тармагы: 5 кадам (сүрөттөр менен)

Video: 433МГц диапазонунда төмөн баалуу зымсыз сенсор тармагы: 5 кадам (сүрөттөр менен)
Video: Умное реле с сухими контактами Zigbee/WiFi TUYA 433 Mhz - подробный обзор 2024, Ноябрь
Anonim
Төмөн наркы Wireless Sensor Network 433MHz диапазонунда
Төмөн наркы Wireless Sensor Network 433MHz диапазонунда

Тереза Раджбага чоң рахмат, бул макалада алардын жарыяланган маалыматтарын колдонууга мага жылуу мамиле кылганы үчүн

* Жогорудагы сүрөттө - мен тестирлөө үчүн колдонгон беш сенсор -жөнөтүүчү бирдиги

Зымсыз сенсордук тармактар деген эмне?

Жөнөкөй аныктама мындай болмок: зымсыз сенсордук тармактар экологиялык маалыматтарды көзөмөлдөө жана жазуу үчүн белгилүү бир аймакта таркатылган электрондук түзүлүштөрдү билдирет, алар борбордук жерге зымсыз иштетилет жана сакталат.

Бүгүнкү күндө зымсыз сенсордук тармактарды бир нече жол менен колдонсо болот, төмөндө бир нече мисал келтирилген:

  • Токойлорду, дарыяларды, көлдөрдү, деңиздерди жана океандарды экологиялык көзөмөлдөө зоналары;
  • Террордук, химиялык, биологиялык, эпидемиялык чабуулдар болгондо эскертүү мүмкүнчүлүгү;
  • Балдар, улгайган адамдар, бейтаптар же өзгөчө муктаждыктары бар адамдар үчүн мониторинг системалары;
  • Айыл чарбасында жана күнөсканаларда көзөмөл системалары;
  • Аба ырайынын божомолдоо системасы;
  • Шаардагы жол кыймылын, мектептерди, унаа токтоочу жайларды көзөмөлдөө;

Жана башка көптөгөн колдонмолор.

Бул макалада мен жай жана салыштырмалуу болжолдуу вариация менен, температураны жана нымдуулукту көзөмөлдөө үчүн колдонулган зымсыз сенсор тармактары менен болгон эксперименттин жыйынтыктарын көрсөткүм келет. Бул эксперимент үчүн мен жеткиликтүү модулдарды колдонуу менен өзүм курган сенсорлорду колдонууну чечтим. Кабыл алуучу дагы DIY, байланыш бир багыттуу (433 МГц радио диапазонунда), башкача айтканда сенсорлор маалыматтарды гана өткөрүп, борбордук жайгашуу гана алат. Сенсорлор менен кабылдагычтан сенсорлорго эч кандай байланыш жок.

Бирок эмне үчүн бир нече өткөргүчтү жана бир гана кабыл алууну колдонууну тандадыңыз? Албетте, биринчи себеп "жөнөкөй кылуу" болмок. Орнотуу канчалык жөнөкөй болсо, анын иштебей калуу ыктымалдуулугу ошончолук азаят жана мүчүлүштүктөр болгон учурда жалгыз компоненттерди оңдоо жана алмаштыруу оңой болот. Электр энергиясын керектөө дагы аз, батарейкалар узакка созулат (сенсорлор мониторинг жана кабыл алуу учурунда гана керектелет, калган убакта түзмөк терең уйку режиминде болот). Жөнөкөй болгону аппаратты арзан кылат. Эске алчу дагы бир жагдай - камтуу аймагы. Неге? Сезгич кабылдагычка жана сенсорлордо да, борбордук модулда да күчтүү өткөргүчкө ээ болгондон көрө, сезгич кабыл алгычты куруу жана колдонуу алда канча оңой (бул жакшы эки багыттуу байланыш үчүн зарыл). Сезгич жана сапаттуу ресивер менен алыскы аралыктан маалыматтарды кабыл алууга болот, бирок ошол эле аралыкка маалыматтарды чыгаруу үчүн жогорку эмиссия кубаты талап кылынат жана бул жогорку чыгымдар, электр энергиясын керектөө жана (эстен чыгарбоо керек) 433 МГц диапазонунда мыйзамдуу максималдуу өткөргүч күчү. Орто сапаттагы ресиверди колдонуу менен, бирок арзан сапаттуу антенна (ал тургай DIY) жана сапаттуу антеннасы бар арзан өткөргүчтөр менен, биз учурдагы зымсыз сенсордук тармактардын наркынын бир аз бөлүгүндө мыкты натыйжаларга жетише алабыз.

1 -кадам: Теориялык ойлор

Күнөскананын ар кайсы аймактарында абанын жана топурактын температурасын жана нымдуулугун көзөмөлдөө үчүн зымсыз сенсор тармагын куруу идеясы менин оюма көп убакыт мурун, дээрлик 10 жыл мурун келген. Мен 1 зымдуу тармак кургум келип, 1 зымдуу температура жана нымдуулук сенсорлорун колдонгум келди. Тилекке каршы, 10 жыл мурун нымдуулук сенсорлору сейрек кездешүүчү жана кымбат болгон (температура сенсорлору кеңири таралган) жана күнөсканага зымдарды жайып жибергендиктен, мен бул идеядан тез эле баш тарттым.

Бирок, азыр абал түп тамырынан бери өзгөрдү. Биз арзан жана сапаттуу сенсорлорду таба алабыз (температура жана нымдуулук), ошондой эле 433 МГц диапазонунда арзан өткөргүчтөр менен кабыл алгычтарга ээбиз. Бир гана көйгөй бар: эгерде сенсорлорубуз көбүрөөк болсо (айталы 20), биз кагылышууларды кантип чечебиз (бул бир тараптуу байланыш экенин эстен чыгарбаңыз), мааниси, 2 же андан көп сенсордун эмиссиясын бири-бирине дал келтирүү? Мүмкүн болгон чечимди издеп жатып, мен бул абдан кызыктуу кагаздарга туш болдум:

Зымсыз сенсор кокус операциялар процедурасына негизделген биригет - RAJBA, T. жана RAJBA, S.

жана

Туш келди жөнөтүү менен зымсыз сенсор тармагында кагылышуу ыктымалдуулугу - RAJBA S. жана RAJBA тарабынан. Т.

Негизинен, авторлор зымсыз сенсор тармагындагы кагылышуулардын ыктымалдыгын, эгерде пакеттер пуассониялык (экспоненциалдуу) бөлүштүрүүгө ылайык белгилүү бир убакыт чекиттеринде чыгарылса, эсептеп чыгууга болорун көрсөтүшөт.

Жогорудагы кагаздан алынган үзүндү изилденген тармактын өзгөчөлүктөрүн тизмектейт.

  • сенсор-жөнөтүүчү бирдиктердин кыйла көп саны N;
  • сенсор-жөнөтүүчү блоктор толугу менен көз карандысыз бойдон калат жана аларды күйгүзүү же өчүрүү тармактын ишине эч кандай таасирин тийгизбейт;
  • бардык сенсор-жөнөтүүчү блоктор (же алардын бир бөлүгү) кабыл алуу станциясынын радио диапазонунда жайгашуусу шартында мобилдүү болушу мүмкүн;
  • акырындык менен өзгөрүп турган физикалык параметрлер өлчөөлөргө дуушар болот, бул маалыматты тез -тез өткөрүп туруунун кажети жоктугун билдирет (мисалы, ар бир нече мүнөт же бир нече ондогон мүнөт);
  • берүү бир тараптуу типте, б.а. сенсор-жөнөтүүчү бирдиктен T пунктуна чейин T орточо убакыт аралыгында. Маалымат протоколдо t дарегинде берилетб узактыгы убакыт;
  • каалаган тандалган сенсор Пуассон убагында туш келди өткөрүп баштайт. PASTA (Poisson Arrivals See Time Averages) Пуассон доорундагы зонддорду жөнөтүүнү негиздөө үчүн колдонулат;
  • бардык сенсор-жөнөтүүчү бирдиктер туш келди көз карандысыз бойдон калышат жана алар маалыматты t мезгилинин туш келди тандалган учурунда өткөрүп беришетб кайталануунун орточо убактысы жана T;
  • эгер бир же бир нече сенсор т протоколу учурунда өткөрүп баштасаб узактыгы башка сенсордон берилип жатат, мындай абал кагылышуу деп аталат. Кагылышуу борбордук базалык станцияга маалыматты туура кабыл алуу мүмкүнчүлүгүн бербейт.

Бул мен сынап көргүм келген сенсор тармагына дээрлик дал келет …

Дээрлик.

Мен кагаздагы математиканы толугу менен түшүндүм деп айткан жокмун, бирок берилген маалыматтарга жана корутундуларга таянып, ал эмне жөнүндө экенин бир аз түшүнө алдым. Жалгыз нерсе, кагазда колдонулган баалуулук мени бир аз тынчсыздандырды:). Бул t өзгөрмөсүб - 3.2x10 деп кабыл алынган маалыматтарды берүүнүн узактыгы-5 с. Ошентип, чогултулган маалыматтын берилиш убактысы 3,2 бизди түзөт! Бул 433 МГц диапазонунда жасалышы мүмкүн эмес. Мен rcswitch же radiohead'ди колдонуп, сенсорлорду программалагым келет. Эки китепкананын коддорун изилдеп, мен эң кичине берүү убактысы 3,2 биздикинен 20ms жогору болот деген жыйынтыкка келдим. 2.4 ГГц өткөргүчтөр менен, бул мүмкүн tб убакыт өтө аз … бирок бул башка окуя.

Эгерде биз бул эмгектин авторлору сунуштаган формуланы колдонсок, анда мындай болот:

Алгачкы маалыматтар (мисал):

  • Сенсорлордун саны N = 20;
  • Маалыматты берүүнүн узактыгы tб= 20x10-3 с (0.020s)
  • Орточо берүү аралыгы T = 180с

Формула:

T интервалында кагылышуу ыктымалдуулугу

Сүрөт
Сүрөт

эгерде биз баштапкы маалыматтарды эске алсак, T интервалында кагылышуу ыктымалдуулугу 0.043519 болот

100 өлчөөдө 4.35 кагылышуу ыктымалдыгын көрсөткөн бул баа, менин оюмча, абдан жакшы. Эгерде биз орточо берүү убактысын көбөйтсөк, ыктымалдык жакшырышы мүмкүн, ошондуктан 300s маанисинде биз 0.026332 ыктымалдуулукка ээ болобуз, башкача айтканда 100 өлчөөгө 2,6 кагылышуу. Эгерде биз системанын иштеши учурунда (мисалы, аба ырайынын шартына жараша) маалымат пакетинин жоголушун күтсөк болот деп эсептесек, анда бул сан чындап эле сонун.

Мен мындай тармактын симуляциясын жасагым келди, бирок ошондой эле дизайнердин жардамчысымын, ошондуктан мен C тилинде кичинекей программа түздүм, сиз githubдан баштапкы кодду таба аласыз (ошондой эле Windowsтун командалык сабында иштеген экилик экилик - чыгаруу).

Киргизүү маалыматы:

  • sensor_number - тармактагы сенсорлордун саны;
  • өлчөөлөр_саны - моделдөө үчүн өлчөөлөрдүн саны;
  • average_transmission_interval -ырааттуу маалыматтарды берүүнүн ортосундагы орточо убакыт;
  • Transfer_time - маалыматтарды берүүнүн эффективдүү узактыгы.

Чыгуу:

  • эсептелген максималдуу өлчөө убактысы;
  • эки сенсордун кагылышуусунун тизмеси;
  • кагылышуулардын саны;
  • кагылышуулардын теориялык ыктымалдуулугу.

Жыйынтыктар абдан кызыктуу:)

Теория менен жетиштүү, мен теориялык бөлүктө көп нерсени талап кылгым келбейт, макалалар жана баштапкы код абдан чечен, ошондуктан мен зымсыз сенсор тармагын практикалык, эффективдүү ишке ашырууга жана тесттин жыйынтыгына кайрылганым жакшы.

2 -кадам: Практикалык ишке ашыруу - Аппараттык

Бергич-сенсорлор үчүн бизге төмөнкү компоненттер керек болот:

  • ATtiny85 микроконтроллери 1.11 $;
  • Интегралдык схема розеткасы 8DIP 0.046 $;
  • Температура/нымдуулук сенсору DHT11 0.74 $;
  • 433MHz H34A өткөргүч модулу 0,73 $;
  • 4хАА батарейка кармагычы 1 $ менен;

Бардыгы 3.63 $;

Тесттер үчүн колдонулган ресивер Arduino UNO (тестирлөө үчүн гана) жана H3V4F кабыл алуу модулу (0,66 $) арзан догалуу антеннасы (0,32 доллар) менен.

Сенсор-жөнөтүүчү схемалар

Сүрөт
Сүрөт

Бергич-сенсор блоктору 3xAA, 1.5в батареялары менен иштейт (батарея кармагычтын төртүнчү бөлүмүндө электрондук түзүлүш бар). Көрүнүп тургандай, өткөргүчтүн электр менен камсыздоосу жана температура-нымдуулук сенсору микроконтроллердин PB0 пинине илинет (өткөргүч жана сенсор пин бийик болуп орнотулганда иштейт). Ошентип, микроконтроллер терең уйку режиминде болгондо, 4.7uA учурдагы керектөөгө жетет. Бергич-сенсордун ойгонуу убактысы болжол менен 3s (өлчөө, берүү ж. Б.) Жана 180-жылдардын ортосундагы орточо убакыт (мурунку бөлүмдө мисал катары) болорун эске алып, батареялар бир топ каршылык көрсөтүшү керек. Кээ бир жакшы сапаттагы щелочтуу батареялар менен (б.а. 2000 мАч), автономия omnicalculator.com сайтында эсептелгендей 10 айдан ашык болушу мүмкүн (бул жерде жалпы керектөө: сенсор - 1,5мА, өткөргүч модулу - 3,5мА жана ATtiny85 микроконтроллери - 5мА, жалпы 10мА).

Төмөндөгү сүрөттө сенсор-жөнөтүүчүнүн дээрлик бүткөнүн көрө аласыз.

Сүрөт
Сүрөт

Төмөндө тест кабыл алуучу блоктун сүрөтү келтирилген.

Сүрөт
Сүрөт

3 -кадам: Практикалык ишке ашыруу - Программалык камсыздоо

Сенсор-жөнөтүүчү блоктордун негизги компоненти болгон attiny85 микроконтроллерине жүктөлгөн программалык камсыздоо сенсор тарабынан берилген маалыматтарды окуп, аны радио аркылуу которууга жана Пуассон убактысынын чегинде (экспоненциалдык бөлүштүрүү же ПАСТА - Пуассон келгендер Убакыттын орточо көрсөткүчтөрүн карагыла). Ошондой эле, жөнөкөй функцияны колдонуу менен, батарейкалардын абалын көзөмөлдөйт жана сенсорго керектүү чыңалуу берилбей калса, эскертүү берет. Булак коду githubда жеткиликтүү. Тест алуучунун коду өтө жөнөкөй, мен аны төмөндө жарыялап жатам.

// https://github.com/Martin-Laclaustra/rc-switch/tree/protocollessreceiver//ден rcswitch китепканасы өзгөртүлдү, бул код rcswitch китепканасынын мисалдарынан өзгөртүлгөн версия #include RCSwitch mySwitch = RCSwitch (); кол коюлбаган узун маалыматтар = 0; void setup () {Serial.begin (9600); mySwitch.enableReceive (0); // Алуучу үзгүлтүккө кабылганда 0 => бул #2 түйүнү} void loop () {if (mySwitch.available ()) {unsigned long data = mySwitch.getReceivedValue (); // чыгаруу (mySwitch.getReceivedValue (), mySwitch.getReceivedBitlength (), mySwitch.getReceivedDelay (), mySwitch.getReceivedRawdata (), mySwitch.getReceivedProtocol ()); int нымдуулугу = bitExtracted (маалыматтар, 7, 1); // 1 позициядан анча маанилүү эмес 7 бит - эң оң биринчи бит int температурасы = bitExtracted (маалыматтар, 7, 8); // кийинки 7 бит 8 позициядан оңго ж.б. int v_min = bitExtracted (маалыматтар, 1, 15); int packet_id = bitExtracted (маалыматтар, 3, 16); // 3 бит - 0ден 7ге чейин 8 пакет идентификатору int sens_id = bitExtracted (маалыматтар, 6, 19); // 6 бит 64 сенсор ID үчүн - бардыгы 24 бит Serial.print (sensor_id); Serial.print (","); Serial.print (packet_id); Serial.print (","); Serial.print (температура); Serial.print (","); Serial.print (нымдуулук); Serial.println (); mySwitch.resetAvailable (); }} // // https://www.geeksforgeeks.org/extract-k-bits-given-position-number/ int bitExtracted (белгисиз узун сан, int k, int p) {кайтуу ((((1 (p- 1)));}

Мен түшүнүктүү болушу үчүн мүмкүн болушунча көп комментарийлерди киргизүүгө аракет кылдым.

Мүчүлүштүктөрдү оңдоо үчүн мен программалык камсыздоо китепканасын жана USBasp программисти менен attiny85 өнүктүрүү тактасын колдондум (бул боюнча менин көрсөтмөлөрүмдү да караңыз). Сериялык шилтеме TTL конвертеринин Serial менен жасалган (PL2303 чипи менен) иштеп чыгуу тактасынын ийилген казыктарына (3 жана 4) туташкан (төмөндөгү сүрөттү караңыз). Мунун баары кодду толтурууга баа жеткис жардам берди.

Сүрөт
Сүрөт

4 -кадам: Тесттин жыйынтыгы

Тест жыйынтыгы
Тест жыйынтыгы
Тест жыйынтыгы
Тест жыйынтыгы

Мен DHT11 сенсорлору менен өлчөнгөн баалуулуктарды чогулткан жана жөнөтүүчү 5 сенсор-жөнөтүүчү бирдигин түздүм. Мен үч күндүн ичинде тест кабылдагычтын жана терминалдык эмуляция программасынын (фокстерм) жардамы менен өлчөөлөрдү жаздырдым жана сактап койдум. Мен окуу үчүн 48 сааттык интервалды тандадым. Мен сөзсүз түрдө өлчөнгөн баалуулуктарга кызыккан эмесмин (сенсор 2, мисалы, мага туура эмес баалуулуктарды көрсөтөт), бирок кагылышуулардын саны. Мындан тышкары, сенсорлор пакеттердин жоголушунун башка себептерин жоюу үчүн кабыл алуучу тарабынан өтө жакын (4-5 м) жайгаштырылган. Тесттин жыйынтыгы cvs файлына сакталган жана жүктөлгөн (төмөндөгү файлды караңыз). Мен дагы бул csv файлынын негизинде Excel файлын жүктөдүм. Мен кагылышуунун кандай болорун көрсөтүү үчүн кээ бир скриншотторду алдым (албетте менин тесттеримде), мен ар бир скриншотко комментарий коштум.

Эмне үчүн мен ThingSpeak сыяктуу маалыматтарды жүктөөчү кызматты колдонгон эмесмин деп ойлонушуңуз мүмкүн. Чындыгында, менде көптөгөн жазуулар бар, көптөгөн сенсорлор жана маалыматтар тез -тез иретсиз келип турат жана Интернеттеги IoT кызматтары белгилүү бир сандагы сенсорлорго жана бир кыйла чоң интервалдарга гана уруксат берет. Мен келечекте өзүмдүн IoT серверимди орнотууну жана конфигурациялоону ойлонуп жатам.

Акыр-аягы, 5 сенсор-жөнөтүүчү бирдиги боюнча 4598 өлчөө (болжол менен 920/сенсор) 48 сааттын ичинде 5 жолу кагылышууга алып келген (0.5435 кагылышуу/100 өлчөө). Кээ бир математиканы жасоо (баштапкы маалыматтар менен wsn_test программасын колдонуу: 5 сенсор, орточо убакыт 180с, берүү убактысы 110 мс) кагылышуу ыктымалдуулугу 0.015185 болмок (1.52 кагылышуу/100 өлчөө). Практикалык натыйжалар теориялык жыйынтыктардан да жакшыраак, туурабы?:)

Сүрөт
Сүрөт

Кандай болбосун, бул мезгилде 18 пакет жоголгон, андыктан кагылышуулар бул жагынан өтө деле маанилүү эмес. Албетте, эң акыркы жыйынтыктарды алуу үчүн тест узак убакыт бою жүргүзүлүшү керек, бирок менин оюмча, бул шарттарда да ийгилик жана теориялык божомолдорду толугу менен тастыктайт.

5 -кадам: Акыркы ойлор

Дароо колдонуу

Чоң күнөсканада бир нече эгин өстүрүлөт. Эгерде сугаруу кол менен жасалса, климаттын мониторинги жок, эч кандай автоматташтыруусуз, маалымат жазуулары жок сугаттын коркунучу бар, же суунун сарпталышы жогору, сууну керектөөнү оптималдаштыруу үчүн эч кандай далил жок, эгин үчүн коркунуч бар жалпы Мунун алдын алуу үчүн, биз зымсыз сенсор тармагын колдонсок болот:)

Температура сенсорлору, абанын нымдуулугу сенсорлору, топурактын нымдуулук сенсорлору күнөскананын тегерегине жайгаштырылышы мүмкүн жана берилүүчү маалыматтын жардамы менен бир нече аракеттерди жасоого болот: суунун керектүү жерге агып кетүүсүнө уруксат берүүчү электр клапандары, старт токтоочу электр желдеткичтери. ар кайсы аймактардагы температураны төмөндөтүү үчүн, керек болсо жылыткычтарды токтотуп, бардык маалыматтарды келечектеги анализ үчүн архивдесе болот. Ошондой эле, система бардык жерде жеткиликтүү веб -интерфейсти жана анормалдуу абалда электрондук почта же SMS сигналдарын бере алат.

Кийинкиси эмне?

  • Көп сандагы сенсорлор менен тестирлөө;
  • Камтуу аймагындагы алыстан сенсорлор менен реалдуу убакытта тестирлөө;
  • Жергиликтүү IoT серверин орнотуу жана конфигурациялоо (мисалы, Raspberry Piде);
  • Ошондой эле 2.4 ГГц өткөргүч (кабыл алуучу) -сенсорлору менен тесттер.

Ошентип … улантабыз …:)

ЭСКЕРТҮҮ: Сиздин аймакта 433MHz жыштык диапазонун колдонуу радио жыштык жөнгө салынышы мүмкүн. Бул долбоорду сынап көрүүдөн мурун мыйзамдуулугуңузду текшериңиз

Сенсорлор таймашы
Сенсорлор таймашы
Сенсорлор таймашы
Сенсорлор таймашы

Сенсорлор конкурсунда экинчи орунду ээледи

Сунушталууда: