Mundarija:
Video: 433 MGts chastotali past narxli simsiz sensorlar tarmog'i: 5 qadam (rasmlar bilan)
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Menga ushbu maqolada o'z nashrlari ma'lumotlaridan foydalanishga rozilik bergani uchun Tereza Rajbaga katta rahmat
* Yuqoridagi rasmda - men sinab ko'rgan beshta sensor -uzatuvchi birlik
Simsiz sensorli tarmoqlar nima?
Oddiy ta'rif quyidagicha bo'ladi: simsiz sensorli tarmoqlar - bu ma'lum bir hududda tarqalgan, atrof -muhit ma'lumotlarini kuzatish va yozib olish uchun tarqatiladigan elektron qurilmalar guruhi, ular simsiz qayta ishlash va saqlash uchun markaziy joyga uzatiladi.
Hozirgi vaqtda simsiz sensorli tarmoqlardan bir necha usulda foydalanish mumkin, quyida bir nechta misollar keltirilgan:
- O'rmonlar, daryolar, ko'llar, dengizlar va okeanlarni ekologik nazorat qilish joylari;
- Terroristik, kimyoviy, biologik, epidemik hujumlar sodir bo'lganda ogohlantirish imkoniyati;
- Bolalar, qariyalar, bemorlar yoki alohida ehtiyojli odamlar uchun monitoring tizimlari;
- Qishloq xo'jaligi va issiqxonalarda kuzatuv tizimlari;
- Ob-havo ma'lumotlarini kuzatish tizimi;
- Shahar transportini, maktablarni, avtoturargohlarni kuzatish;
Va boshqa ko'plab ilovalar.
Ushbu maqolada men harorat va namlik ma'lumotlarini kuzatish uchun ishlatilgan simsiz sensorli tarmoqlar tajribasi natijalarini ko'rsatmoqchiman. Ushbu tajriba uchun men arzon modullar yordamida o'zim qurgan sensor-uzatuvchilarni ishlatishni tanladim. Qabul qilgich ham DIY, aloqa bir tomonlama (433 MGts radio diapazonida), ya'ni sensorlar faqat ma'lumotlarni uzatadi va markaziy joy faqat qabul qiladi. Sensorlar va qabul qilgichdan sensorlar o'rtasida aloqa yo'q.
Lekin nima uchun bir nechta uzatuvchi va faqat bitta qabul qiluvchini tanlash kerak? Shubhasiz, birinchi sabab "buni soddalashtirish" bo'ladi. O'rnatish qanchalik sodda bo'lsa, uning ishlamay qolish ehtimoli shunchalik past bo'ladi va nosozlik bo'lsa, bitta komponentni ta'mirlash va almashtirish ancha oson. Quvvat iste'moli ham past bo'ladi, batareyalar uzoqroq xizmat qiladi (sensorlar faqat kuzatish va qabul qilish vaqtida iste'mol qiladi, qolgan vaqtda qurilma chuqur uyqu rejimida bo'ladi). Oddiyligi qurilmani ham arzon qiladi. E'tibor qilish kerak bo'lgan yana bir jihat - qamrov zonasi. Nima uchun? Sensorlarda ham, markaziy modulda ham sezgir qabul qilgich va kuchli uzatgichga ega bo'lishdan ko'ra, sezgir qabul qilgichni qurish va undan foydalanish ancha oson (bu ikki tomonlama yaxshi aloqa uchun zarur). Nozik va sifatli qabul qilgich yordamida ma'lumotlarni uzoq masofadan olish mumkin, lekin bir xil masofadagi ma'lumotlarni chiqarish yuqori emissiya quvvatini talab qiladi, bu esa yuqori xarajatlar, elektr energiyasi iste'moli va (unutmasligimiz kerak) 433 MGts diapazonidagi qonuniy maksimal uzatuvchi kuchi. O'rta sifatli, arzon, lekin yuqori sifatli antennani (hatto DIY) va sifatli antennaga ega bo'lgan arzon transmitterni ishlatib, biz mavjud simsiz sensorlar tarmoqlari narxining bir qismini yaxshi natijalarga erishishimiz mumkin.
1 -qadam: nazariy mulohazalar
Issiqxonaning turli joylarida havo va tuproqning harorati va namligini kuzatish uchun simsiz sensorlar tarmog'ini qurish g'oyasi xayolimga ancha oldin, deyarli 10 yil kelgan. Men 1 simli tarmoq qurishni va 1 simli harorat va namlik sensorlaridan foydalanishni xohlardim. Afsuski, 10 yil oldin namlik sensori kamdan -kam uchraydigan va qimmat bo'lgan (harorat sensori keng tarqalgan bo'lsa -da) va issiqxonada simlarni tarqatish men uchun g'oyadan tezda voz kechganga o'xshamadi.
Biroq, hozir vaziyat tubdan o'zgardi. Biz arzon va sifatli datchiklarni (harorat va namlik) topa olamiz, shuningdek 433 MGts diapazonidagi arzon transmitter va qabul qiluvchilarga kirishimiz mumkin. Faqat bitta muammo bor: agar bizda ko'proq sensorlar bo'lsa (masalan, 20), biz to'qnashuvlarni qanday hal qilamiz (iltimos, bu bir tomonlama aloqa ekanligini yodda tuting), ya'ni 2 yoki undan ortiq datchiklarning emissiyasi bir-biriga to'g'ri keladi? Mumkin bo'lgan echimni izlayotganda, men juda qiziq qog'ozlarga duch keldim:
Simsiz sensorlar tasodifiy operatsiyalarga asoslangan holda yig'iladi - RAJBA, T. va RAJBA, S.
va
Tasodifiy yuborish bilan simsiz sensorlar tarmog'ida to'qnashuv ehtimoli - RAJBA S. va RAJBA. T
Asosan, mualliflar shuni ko'rsatadiki, agar paketlar poissoniy (ekspansional) taqsimot bo'yicha ma'lum vaqt nuqtalarida chiqarilsa, simsiz sensor tarmog'ida to'qnashuvlar ehtimolini hisoblash mumkin.
Yuqoridagi maqoladan olingan ma'lumotda o'rganilayotgan tarmoqning xususiyatlari ko'rsatilgan.
- juda ko'p sonli sensorlar yuboruvchi birliklar N;
- sensor-uzatuvchi qurilmalar to'liq mustaqil bo'lib qoladi va ularni yoqish yoki o'chirish tarmoq ishiga ta'sir qilmaydi;
- barcha sensor-uzatuvchi qurilmalar (yoki ularning bir qismi) qabul qiluvchi stantsiyaning radio diapazonida joylashgan bo'lsa, mobil bo'lishi mumkin;
- asta -sekin o'zgarib turadigan jismoniy parametrlar o'lchovlarga uchraydi, bu esa ma'lumotlarni tez -tez uzatishga hojat yo'qligini anglatadi (masalan, har bir necha daqiqada yoki o'nlab daqiqalarda);
- uzatish bir tomonlama, ya'ni sensor-uzatuvchi qurilmadan qabul qilish punktigacha T o'rtacha vaqt oralig'ida. Ma'lumot t manzilidagi protokolda uzatiladip davomiyligi;
- har qanday tanlangan sensor Puasson vaqtida tasodifiy uzatishni boshlaydi. PASTA (Poisson Arrivals See Time Averages) Poisson davrlarida zondlar yuborilishini oqlash uchun ishlatiladi;
- Sensor-jo'natuvchi barcha birliklar tasodifiy mustaqil bo'lib qoladi va ular t vaqtining tasodifiy tanlangan vaqtida ma'lumotlarni uzatadilarp takrorlash davomiyligi va o'rtacha davomiyligi;
- agar t protokoli paytida bir yoki bir nechta datchiklar uzatishni boshlasap davomiyligi boshqa sensordan uzatiladi, bunday holat to'qnashuv deb ataladi. To'qnashuv natijasida markaziy tayanch stantsiya ma'lumotni to'g'ri qabul qila olmaydi.
Bu men sinab ko'rmoqchi bo'lgan sensor tarmog'iga deyarli mos keladi …
Deyarli.
Men matematikani qog'ozda to'liq tushundim deb aytmayapman, lekin taqdim etilgan ma'lumotlar va xulosalar asosida men nima haqida ekanligini biroz tushuna oldim. Yagona narsa, qog'ozda ishlatilgan qiymat meni biroz xavotirga soldi:). Bu t o'zgaruvchisip - ma'lumotlarni uzatish davomiyligi 3,2x10-5 s. Shunday qilib, to'plangan ma'lumotlarni uzatish vaqti 3,2 bizni tashkil qiladi! Buni 433 MGts diapazonida bajarish mumkin emas. Men transmitter sensorlarini dasturlash uchun rcswitch yoki radioheaddan foydalanmoqchiman. Ikkita kutubxonaning kodlarini o'rganib, men eng kichik uzatish vaqti 20 ms ni tashkil etadi, degan xulosaga keldim, bu biznikidan 3,2. 2,4 gigagertsli chastotali uzatgichlar bilan bu mumkinp vaqt juda kichik … lekin bu boshqa hikoya.
Agar biz ushbu maqola mualliflari taklif qilgan formulani qo'llasak, natija shunday bo'ladi:
Dastlabki ma'lumotlar (misol):
- Datchiklar soni N = 20;
- Ma'lumot uzatish davomiyligi tp= 20x10-3 s (0,020 soniya)
- O'rtacha uzatish oralig'i T = 180s
Formula:
T oralig'ida to'qnashuv ehtimoli
agar biz dastlabki ma'lumotlarni hisobga olsak, T oralig'ida to'qnashuv ehtimoli 0,043519 bo'ladi
100 o'lchovda 4,35 to'qnashuv ehtimoli borligini ko'rsatadigan bu qiymat, menimcha, juda yaxshi. O'rtacha uzatish vaqtini ko'paytirsak, ehtimollik yaxshilanishi mumkin, shuning uchun 300s qiymatida biz 0,026332 ehtimolga ega bo'lardik, ya'ni 100 o'lchov uchun 2,6 to'qnashuv. Agar tizim ishlayotganda (masalan, ob -havo sharoitiga qarab) paketli ma'lumotlarning yo'qolishini kutish mumkin deb hisoblasak, bu raqam juda zo'r.
Men bunday tarmoqni simulyatsiya qilishni xohlardim, lekin men ham xuddi shunday dizayn yordamchisiman, shuning uchun men C -da kichik dastur yaratdim, siz github -dan manba kodini topishingiz mumkin (shuningdek, Windows buyruq satrida ishlaydigan kompilyatsiya qilingan ikkilik - ozod qilish).
Ma'lumot kiritish:
- sensor_number - tarmoqdagi sensorlar soni;
- o'lchovlar_numberi - simulyatsiya qilinadigan o'lchovlar soni;
- average_transmission_interval -ketma -ket ma'lumotlarni uzatish orasidagi o'rtacha vaqt;
- uzatish_ vaqti - ma'lumotlarni uzatishning samarali davomiyligi.
Chiqish:
- hisoblangan maksimal o'lchash vaqti;
- ikkita sensor o'rtasidagi to'qnashuvlar ro'yxati;
- to'qnashuvlar soni;
- to'qnashuvlarning nazariy ehtimoli.
Natijalar juda qiziq:)
Nazariya etarli bo'lsa, men nazariy qism haqida ko'proq gapirishni xohlamayman, maqolalar va manba kodi juda ravon, shuning uchun simsiz sensor tarmog'ining amaliy va samarali qo'llanilishiga va test natijalariga murojaat qilganim ma'qul.
2 -qadam: Amaliy bajarish - Uskuna
Transmitter-sensorlar uchun bizga quyidagi komponentlar kerak bo'ladi.
- ATtiny85 mikrokontroller 1.11 $;
- Integratsiyalangan elektron rozetkasi 8DIP 0.046 $;
- Harorat/namlik sensori DHT11 0,74 $;
- 433MGts H34A uzatuvchi moduli 0,73 $;
- 4xAA batareya ushlagichi 1 $ kalit bilan;
Hammasi bo'lib 3,63 $;
Sinovlar uchun qabul qilgich Arduino UNO (faqat sinov uchun) va H3V4F qabul qilish moduli (0,66 $) arzon boshq antennali (0,32 dollar).
Sensor-uzatuvchi sxemalari
Transmitter-sensor bloklari 3xAA, 1,5V batareyalar bilan quvvatlanadi (batareya ushlagichining to'rtinchi bo'linmasida-elektron yig'ma). Ko'rib turganingizdek, transmitterning quvvat manbai va harorat-namlik sensori mikrokontrollerning PB0 piniga ulangan (uzatuvchi va sensor pin yuqori holatiga o'rnatilganda quvvatlanadi). Shunday qilib, mikrokontroller uyqu rejimida bo'lganda, u 4,7 uA oqim sarfiga yetishi mumkin. Transmitter-sensorning uyg'onish vaqti taxminan 3 soniya (o'lchov, uzatish va hk) va 180-yillardagi uzatmalar orasidagi o'rtacha vaqt (oldingi bobda bo'lgani kabi) bo'lishini hisobga olsak, batareyalar juda ko'p qarshilik ko'rsatishi kerak. Yaxshi sifatli gidroksidi batareyalar bilan (ya'ni 2000 mA / soat), avtonomiya omnicalculator.com saytida hisoblanganidek 10 oydan ortiq bo'lishi mumkin (bu erda umumiy oqim sarfi: sensor - 1,5mA, uzatuvchi moduli - 3,5mA va ATtiny85 mikrokontroller - 5mA, jami 10mA)).
Quyidagi fotosuratda siz deyarli tugagan sensor-uzatuvchi yig'ilishini ko'rishingiz mumkin.
Quyida test qabul qilish moslamasining fotosurati keltirilgan.
3 -qadam: Amaliy Amalga oshirish - Dasturiy ta'minot
Sensor-uzatuvchi qurilmalarning asosiy komponenti bo'lgan attiny85 mikrokontroleriga yuklangan dastur, sensor tomonidan berilgan ma'lumotlarni o'qish, uni radio orqali uzatishga aylantirish va Poisson vaqt oralig'ida uzatish (eksponentli taqsimlash yoki PASTA - Poissonga kelganlar o'rtacha vaqtni ko'radi). Bundan tashqari, oddiy funktsiyadan foydalanib, u batareyalarning holatini kuzatadi va agar sensor uchun kerakli kuchlanish berilmasa, ogohlantirish beradi. Manba kodi github -da mavjud. Sinov qabul qiluvchining kodi juda oddiy, men uni quyida joylashtiraman.
// https://github.com/Martin-Laclaustra/rc-switch/tree/protocollessreceiver// saytidan rcswitch kutubxonasi o'zgartirildi, bu asl rcswitch kutubxonasi misollaridan o'zgartirilgan versiya #include RCSwitch mySwitch = RCSwitch (); imzosiz uzoq ma'lumotlar = 0; void setup () {Serial.begin (9600); mySwitch.enableReceive (0); // Qabul qilgich 0 uzilishida => bu 2 -pin} void loop () {if (mySwitch.available ()) {unsigned long data = mySwitch.getReceivedValue (); // chiqish (mySwitch.getReceivedValue (), mySwitch.getReceivedBitlength (), mySwitch.getReceivedDelay (), mySwitch.getReceivedRawdata (), mySwitch.getReceivedProtocol ()); int namlik = bitExtracted (ma'lumotlar, 7, 1); // 1 -pozitsiyadan 7 bit kamroq - o'ngdagi birinchi bit int temperaturasi = bitExtracted (ma'lumotlar, 7, 8); // 8 -pozitsiyadan o'ngga keyingi 7 bit va boshqalar int v_min = bitExtracted (ma'lumotlar, 1, 15); int packet_id = bitExtracted (ma'lumotlar, 3, 16); // 3 bit - 8 ta paket identifikatori 0 dan 7 gacha int sensor_id = bitExtracted (ma'lumotlar, 6, 19); // 64 bitli ID identifikatorlari uchun 6bit - jami 24 bit Serial.print (sensor_id); Serial.print (","); Serial.print (packet_id); Serial.print (","); Serial.print (harorat); Seriyali bosma (","); Seriyali bosma (namlik); Serial.println (); mySwitch.resetAvailable (); }} // https://www.geeksforgeeks.org/extract-k-bits-given-position-number/ int bitExtracted (imzosiz uzun raqam, int k, int p) {qaytish (((1 (p- 1)));}
Men tushunishni osonlashtirish uchun iloji boricha ko'proq sharhlar kiritishga harakat qildim.
Nosozliklarni tuzatish uchun men dasturiy ta'minot kutubxonasidan va USBasp dasturchisi bilan attiny85 ishlab chiqish kartasidan foydalandim (bu boradagi ko'rsatmalarni ham ko'ring). Seriya havolasi ishlab chiqarish kartasining egilgan pimlariga (3 va 4) ulangan Serialdan TTL konvertoriga (PL2303 chipli) ulangan (quyidagi rasmga qarang). Bularning barchasi kodni to'ldirishga bebaho yordam berdi.
4 -qadam: test natijalari
Men DHT11 datchiklari tomonidan o'lchangan qiymatlarni to'playdigan va yuboradigan 5 ta sensor-jo'natuvchi blokini yaratdim. Men test qabul qilgich va terminal emulyatsiya dasturi (foxterm) yordamida uch kun davomida o'lchovlarni yozdim va saqladim. O'qish uchun 48 soatlik interval tanladim. O'lchangan qiymatlar meni qiziqtirmasdi (masalan, sensor 2, menga noto'g'ri qiymatlarni ko'rsatadi), lekin to'qnashuvlar soni. Bundan tashqari, datchiklar paketlarning yo'qolishining boshqa sabablarini bartaraf etish uchun qabul qilgich tomonidan juda yaqin (4-5 m masofada) joylashtirilgan. Sinov natijalari cvs fayliga saqlandi va yuklandi (quyidagi faylga qarang). Men ham bu csv fayliga asoslangan excel faylini yukladim. Men sizga to'qnashuv qanday ko'rinishini ko'rsatish uchun ekran tasvirlarini oldim (albatta testlarimda), men har bir skrinshotga sharhlar qo'shdim.
Siz nima uchun ThingSpeak kabi ma'lumotlarni yuklash xizmatidan foydalanmaganligimni o'ylashingiz mumkin. Gap shundaki, menda ko'plab yozuvlar, ko'plab sensorlar va ma'lumotlar tez -tez tartibsizlik bilan keladi va Internetdagi Internet -xizmatlar faqat ma'lum miqdordagi sensorlarda va faqat juda katta intervallarda ma'lumotlarni uzatishga imkon beradi. Men kelajakda o'z IoT -serverimni o'rnatishni va sozlashni o'ylayapman.
Oxir-oqibat, 5 ta sensorlar-uzatuvchi birliklari (taxminan 920/sensori) bo'yicha 4598 ta o'lchovlar natijasida 48 soat davomida jami 5 marta to'qnashuv sodir bo'ldi (0,5435 to'qnashuv/100 o'lchov). Matematikani bajarish (wsn_test dasturidan dastlabki ma'lumotlar yordamida: 5 datchik, o'rtacha 180s, uzatish vaqti 110 ms) to'qnashuv ehtimoli 0,015185 (1,52 to'qnashuv/100 o'lchov) bo'ladi. Amaliy natijalar nazariy natijalarga qaraganda yaxshiroqdir, shunday emasmi?:)
Qanday bo'lmasin, bu davrda 18 ta paket yo'qolgan, shuning uchun to'qnashuvlar bu borada unchalik muhim emas. Albatta, eng aniq natijalarga erishish uchun test uzoq vaqt davomida o'tkazilishi kerak, lekin menimcha, bu sharoitda ham muvaffaqiyat va nazariy taxminlarni to'liq tasdiqlaydi.
5 -qadam: Yakuniy fikrlar
Zudlik bilan ariza berish
Katta issiqxonada bir nechta ekinlar etishtiriladi. Agar sug'orish qo'lda amalga oshirilsa, hech qanday iqlim monitoringi, avtomatizatsiyasiz, ma'lumotlar yozilmasa, sug'orish tezligi oshib ketishi yoki suv ostida qolishi xavfi mavjud, shuningdek, suv sarfini optimallashtirishga hech qanday dalil yo'q, ekinlar uchun xavf mavjud. umumiy Buning oldini olish uchun biz simsiz sensor tarmog'idan foydalanishimiz mumkin:)
Issiqxonada harorat sensori, havo namligi sensori, tuproq namligi sensori joylashtirilishi mumkin va uzatilgan ma'lumotlar yordamida bir nechta harakatlarni bajarish mumkin: suvning kerakli joyga oqishini ta'minlaydigan start-stopli elektr klapanlar, ishga tushirish elektr fanatlari. har xil hududlarda haroratni pasaytirish uchun, kerak bo'lganda isitgichlarni ishga tushiring va kelajakda tahlil qilish uchun barcha ma'lumotlarni arxivlash mumkin. Bundan tashqari, tizim hamma joyda mavjud bo'lgan veb -interfeysni va g'ayritabiiy holatlarda elektron pochta yoki SMS signallarini taqdim etishi mumkin.
Keyingisi nima?
- Ko'p sonli datchiklar yordamida sinov;
- Haqiqiy vaqtda qamrov zonasida masofadan turib sensorlar yordamida sinov o'tkazish;
- Mahalliy IoT serverini o'rnatish va sozlash (masalan, Raspberry Pi -da);
- Shuningdek, 2,4 GGts chastotali uzatuvchi (qabul qiluvchi) sensorlar yordamida sinovlar o'tkaziladi.
shuning uchun … davom ettirish kerak …:)
Ogohlantirish: Sizning mintaqangizda 433 MGts chastota diapazonidan foydalanish radiochastota qoidalariga bo'ysunishi mumkin. Iltimos, ushbu loyihani sinab ko'rishdan oldin qonuniyligingizni tekshiring
Sensorlar musobaqasida ikkinchi o'rinni egalladi