Arduino va infraqizil sensorlar asosida harakat sensori bilan xavfsizlik signalini yaratish. Uy signalizatsiyasi yoki mobil telefon va Arduino-dan Arduino Signalli harakat sensori va LCD monitoridan foydalanish

Infraqizil (IR) sensorlar odatda masofalarni o'lchash uchun ishlatiladi, lekin ular ob'ektlarni aniqlash uchun ham ishlatilishi mumkin. Arduino-ga bir nechta IR sensorlarini ulab, biz xavfsizlik signalini yaratishimiz mumkin.

Ko‘rib chiqish

Infraqizil (IR) sensorlar odatda masofalarni o'lchash uchun ishlatiladi, lekin ular ob'ektlarni aniqlash uchun ham ishlatilishi mumkin. Infraqizil sensorlar infraqizil uzatuvchi va infraqizil qabul qiluvchidan iborat. Transmitter infraqizil nurlanish impulslarini chiqaradi, qabul qiluvchi esa har qanday ko'zgularni aniqlaydi. Agar qabul qiluvchi aks ettirishni aniqlasa, bu sensorning oldida bir oz masofada biron bir ob'ekt borligini anglatadi. Agar aks ettirish bo'lmasa, ob'ekt yo'q.

Ushbu loyihada biz foydalanadigan IR sensori ma'lum bir diapazonda aks ettirishni aniqlaydi. Ushbu datchiklar infraqizil nurning sensorga qaytish burchagini aniqlaydigan kichik chiziqli zaryadlangan qurilmaga (CCD) ega. Quyidagi rasmda ko'rsatilganidek, sensor kosmosga infraqizil impulsni uzatadi va sensorning oldida ob'ekt paydo bo'lganda, impuls sensorga ob'ekt va sensor orasidagi masofaga proportsional burchak ostida qaytariladi. Sensor qabul qiluvchi burchakni aniqlaydi va chiqaradi va bu qiymatdan foydalanib siz masofani hisoblashingiz mumkin.

Arduino-ga bir nechta IR datchiklarini ulab, biz oddiy xavfsizlik signalini yaratishimiz mumkin. Biz eshik romiga datchiklarni o'rnatamiz va datchiklarni to'g'ri tekislash orqali biz kimdir eshikdan o'tib ketganini aniqlay olamiz. Bu sodir bo'lganda, IR sensorining chiqishi o'zgaradi va biz Arduino yordamida sensorlarning chiqishini doimiy ravishda o'qish orqali bu o'zgarishlarni aniqlaymiz. IN bu misolda IQ sensori chiqish ko‘rsatkichi 400 dan oshganda ob’ekt eshikdan o‘tayotganini bilamiz. Bu sodir bo‘lganda, Arduino signalni ishga tushiradi. Signalni qayta o'rnatish uchun foydalanuvchi tugmani bosishi mumkin.

Aksessuarlar

  • 2 x IR masofa sensori;
  • 1 x Arduino Mega 2560;
  • 1 x signal;
  • 1 x tugma;
  • 1 x 470 Ohm qarshilik;
  • 1 x NPN tranzistori;
  • jumpers.

Ulanish diagrammasi

Ushbu loyiha uchun diagramma quyidagi rasmda ko'rsatilgan. Ikkita IR sensorining chiqishi A0 va A1 pinlariga ulangan. Qolgan ikkita pin 5V va GND pinlariga ulangan. 12 voltli signal 3-pinga tranzistor orqali ulanadi va signalni o'chirish uchun ishlatiladigan tugma 4-pinga ulanadi.


Quyidagi fotosuratda ushbu tajriba uchun datchiklarni eshik ramkasiga qanday yopishtirilganimiz ko'rsatilgan. Albatta, agar siz uni muntazam ravishda ishlatsangiz, sensorlarni boshqacha o'rnatgan bo'lardingiz.


O'rnatish

  1. Arduino platasining 5V va GND pinlarini datchiklarning quvvat va GND pinlariga ulang. Siz ularni tashqi quvvat bilan ham ta'minlashingiz mumkin.
  2. Datchiklarning chiqish pinlarini Arduino platasining A0 va A1 pinlariga ulang.
  3. Arduino-ning 3-pinini tranzistor bazasiga 1k ohm rezistor orqali ulang.
  4. Tranzistorning kollektoriga 12V ni qo'llang.
  5. 12 voltli buzzerning musbat simini emitentga va manfiy simni yerga ulang.
  6. 4-pinni 5V ga tugma orqali ulang. Xavfsizlik nuqtai nazaridan, katta oqim oqimining oldini olish uchun buni har doim qo'shimcha kichik qarshilik orqali qilish yaxshiroqdir.
  7. Arduino platasini USB kabel orqali kompyuteringizga ulang va Arduino IDE yordamida dasturni mikrokontrollerga yuklang.
  8. Arduino platasini quvvat manbai, batareya yoki USB kabel orqali quvvatlang/

Kod

const int buzzer=3; // pin 3 - signal signalining chiqishi const int tugmasi=4; // 4-pin - void setup() tugmasi uchun kirish ( pinMode(buzzer,OUTPUT); // pinMode(bosish tugmasi,INPUT); // pin 4-ni kirishga o'rnatish ) void loop() ( / / ikkala sensorning chiqishini o'qing va natijani chegara qiymati bilan solishtiring int sensor1_value = analogRead(A0); int sensor2_value = analogRead(A1), agar (sensor1_value > 400 || sensor2_value > 400) ( while(true)); digitalWrite(buzzer,HIGH) ; // signalni yoqing if(digitalRead(bosish tugmasi) == HIGH) break ) else ( digitalWrite(buzzer,LOW); // signalni o'chiring ) )

Video

So'nggi o'n yil ichida avtomobil o'g'irlash eng ko'p sodir bo'lgan muhim joylar dunyoda sodir etilgan jinoyatlar tarkibida. Bu jinoyatlarning umumiy soniga nisbatan ushbu toifadagi o'g'irlikning solishtirma og'irligi bilan emas, balki avtomashinalarning qimmatligi tufayli etkazilgan zararning ahamiyati bilan bog'liq. 90-yillarning oxiriga kelib avtotransport vositalarini oʻgʻirlashga qarshi kurash boʻyicha koʻrilgan chora-tadbirlarning samarasizligi ushbu jinoyatlarni sodir etishga ixtisoslashgan barqaror guruhlarning yaratilishiga olib keldi. o'ziga xos xususiyatlar uyushgan jinoyatchilik; Ehtimol, siz "qora avtomobil biznesi" atamasini eshitgansiz. Evropa mamlakatlari avtoparkida har yili jinoiy hujumlar ob'ektiga aylangan avtomobillarning ≈ 2% etishmaydi. Shuning uchun, men Arduino Uno asosida avtomobilim uchun GSM signalini yaratish g'oyasini o'ylab topdim.

Boshlaymiz!

Biz nimadan yig'amiz?

Biz tizimimizning qalbini tanlashimiz kerak. Menimcha, bunday signalizatsiya uchun Arduino Uno-dan yaxshiroq narsa yo'q. Asosiy mezon - bu etarli miqdordagi "pinlar" va narx.


Asosiy Arduino xususiyatlari Uno

Mikrokontroller - ATmega328
Ishlash kuchlanishi - 5 V
Kirish kuchlanishi (tavsiya etiladi) - 7-12 V
Kirish kuchlanishi (chegara) - 6-20 V
Raqamli kirish/chiqish - 14 ta (shundan 6 tasi PWM chiqishi sifatida ishlatilishi mumkin)
Analog kirishlar - 6
Kirish / chiqish orqali doimiy oqim - 40 mA
3.3V - 50mA chiqish uchun doimiy oqim
Flash xotira - 32 KB (ATmega328), shundan 0,5 KB yuklovchi uchun ishlatiladi
Operativ xotira - 2 KB (ATmega328)
EEPROM - 1 KB (ATmega328)
Soat chastotasi - 16 MGts


Mos keladi!

Endi siz GSM modulini tanlashingiz kerak, chunki bizning signalizatsiya tizimi avtomobil egasini xabardor qilishi kerak. Demak, siz uni google orqali qidirishingiz kerak ... Mana, ajoyib sensor - SIM800L, hajmi shunchaki ajoyib.


Men o'yladim va Xitoydan buyurtma berdim. Biroq, hamma narsa unchalik pushti emas edi. Sensor shunchaki SIM-kartani tarmoqda ro'yxatdan o'tkazishdan bosh tortdi. Mumkin bo'lgan hamma narsa sinab ko'rildi - natija nolga teng edi.
Menga salqinroq narsani - Sim900 Shieldni taqdim etgan mehribon odamlar bor edi. Endi bu jiddiy narsa. Shield mikrofon va naushnik uyasiga ega bo'lib, uni to'liq telefon qiladi.


Sim900 Shield ning asosiy xususiyatlari

4 ta ish chastotasi standarti 850/900/1800/1900 MGts
GPRS ko'p slotli sinf 10/8
GPRS mobil stantsiyasi B sinfi
GSM faza 2/2+ bilan mos keladi
4-sinf (2 Vt @850/900 MGts)
1-sinf (1 Vt @ 1800/1900 MGts)
AT buyruqlari yordamida boshqarish (GSM 07.07, 07.05 va SIMCOM kengaytirilgan AT buyruqlari)
Kam quvvat iste'moli: 1,5 mA (uyqu rejimi)
Ishlash harorati oralig'i: -40 ° C dan + 85 ° C gacha


Mos keladi!

Yaxshi, lekin egasiga xabar berish uchun siz ba'zi sensorlardan o'qishni olishingiz kerak. Agar mashina tortib olinadigan bo'lsa, u holda avtomobilning holati kosmosda aniq o'zgaradi. Keling, akselerometr va giroskopni olaylik. Ajoyib. OK, endi biz sensorni qidirmoqdamiz.

O'ylaymanki, GY-521 MPU6050 albatta mos keladi. Unda harorat sensori ham borligi ma’lum bo‘ldi. Biz ham undan foydalanishimiz kerak, shunday "qotil xususiyat" bo'ladi. Faraz qilaylik, mashina egasi uni uyi tagiga qo‘yib, chiqib ketdi. Avtomobil ichidagi harorat "silliq" o'zgaradi. Agar tajovuzkor mashinaga kirishga harakat qilsa nima bo'ladi? Masalan, u eshikni ochishi mumkin bo'ladi. Avtomobil ichidagi harorat tez o'zgara boshlaydi, chunki salondagi havo havo bilan aralasha boshlaydi muhit. O'ylaymanki, u ishlaydi.


GY-521 MPU6050 ning asosiy xususiyatlari

MPU-6050 chipidagi 3 o'qli giroskop + 3 o'qli akselerometr GY-521 moduli. Ob'ektning fazodagi o'rni va harakatini, aylanish vaqtidagi burchak tezligini aniqlash imkonini beradi. Bundan tashqari, o'rnatilgan harorat sensori mavjud. U turli xil kopterlarda va samolyot modellarida qo'llaniladi; ushbu sensorlar asosida harakatni suratga olish tizimi ham yig'ilishi mumkin.

Chip - MPU-6050
Ta'minot kuchlanishi - 3,5V dan 6V gacha (DC);
Giro diapazoni - ±250 500 1000 2000°/s
Akselerometr diapazoni - ±2±4±8±16g
Aloqa interfeysi - I2C
Hajmi - 15x20 mm.
Og'irligi - 5 g


Mos keladi!

Tebranish sensori ham foydali bo'ladi. To'satdan ular mashinani "qo'pol kuch" bilan ochishga harakat qilishadi yoki to'xtash joyida boshqa mashina sizning mashinangizga uriladi. Keling, tebranish sensori SW-420 (sozlanishi) ni olaylik.


SW-420 ning asosiy xarakteristikalari

Ta'minot kuchlanishi - 3,3 - 5 V
Chiqish signali - raqamli yuqori/past (odatda yopiq)
Ishlatilgan sensor - SW-420
Amaldagi taqqoslash moslamasi LM393
Olchamlari - 32x14 mm
Qo'shimcha ravishda - sozlash qarshiligi mavjud.


Mos keladi!

SD xotira kartasi modulini burang. Biz jurnal faylini ham yozamiz.


SD xotira kartasi modulining asosiy xususiyatlari

Modul mikrokontroller asosidagi qurilmaning ishlashi uchun zarur bo'lgan ma'lumotlarni saqlash, o'qish va SD-kartaga yozish imkonini beradi. Qurilmadan foydalanish o'nlab megabaytdan ikki gigabaytgacha bo'lgan fayllarni saqlashda dolzarbdir. Kengashda SD-karta uchun konteyner, karta quvvat stabilizatori va interfeys va elektr uzatish liniyalari uchun ulagich vilkasi mavjud. Agar siz audio, video yoki boshqa yirik ma'lumotlar bilan ishlashingiz kerak bo'lsa, masalan, voqealar, sensor ma'lumotlari yoki veb-server ma'lumotlarini saqlash uchun, Arduino uchun SD xotira kartasi moduli bular uchun SD-kartadan foydalanishga imkon beradi. maqsadlar. Moduldan foydalanib, siz SD-kartaning xususiyatlarini o'rganishingiz mumkin.
Ta'minot kuchlanishi - 5 yoki 3,3 V
SD-karta xotirasi hajmi - 2 GB gacha
Olchamlari - 46 x 30 mm


Mos keladi!

Va keling, datchiklar ishga tushirilganda servo diskni qo'shamiz, video yozuvchisi bo'lgan servo haydovchi burilib, voqeani videoga oladi. Keling, MG996R servo diskini olaylik.


MG996R Servo Drive-ning asosiy xususiyatlari

Barqaror va ishonchli himoya zarardan
- Metall haydovchi
- Ikki qatorli sharli podshipnik
- sim uzunligi 300 mm
- O'lchamlari 40x19x43mm
- Og'irligi 55 g
- Aylanish burchagi: 120 daraja.
- Ishlash tezligi: 0,17 sek/60 daraja (4,8 V yuksiz)
- Ishlash tezligi: 0,13 sek/60 daraja (6V yuksiz)
- Boshlanish momenti: 4,8V quvvat manbaida 9,4kg/sm
- Boshlanish momenti: 6V quvvat manbaida 11kg/sm
- Ishlash kuchlanishi: 4,8 - 7,2 V
- Barcha haydovchi qismlari metalldan yasalgan


Mos keladi!

Biz yig'amiz

Google-da har bir sensorni ulash haqida juda ko'p maqolalar mavjud. Va menda yangi velosipedlar ixtiro qilish istagi yo'q, shuning uchun men oddiy va ishlaydigan variantlarga havolalarni qoldiraman.

Hammaga salom, bugun biz harakat sensori deb nomlangan qurilmani ko'rib chiqamiz. Ko'pchiligimiz bu narsa haqida eshitganmiz, ba'zilarimiz hatto ushbu qurilma bilan shug'ullanishgan. Harakat sensori nima? Keling, buni tushunishga harakat qilaylik, shuning uchun:

Harakat sensori yoki siljish sensori - har qanday jismning harakatini aniqlaydigan qurilma (qurilma). Ko'pincha bu qurilmalar xavfsizlik, signalizatsiya va monitoring tizimlarida qo'llaniladi. Ushbu sensorlarning ko'plab omillari mavjud, ammo biz platalarga ulanish uchun harakat sensori modulini ko'rib chiqamiz. Arduino,va ayniqsa kompaniyadan RobotDyn. Nima uchun bu kompaniya? Men ushbu do'kon va uning mahsulotlarini reklama qilishni xohlamayman, lekin o'z mahsulotlarini oxirgi iste'molchiga yuqori sifatli taqdimoti tufayli laboratoriya namunalari sifatida tanlangan ushbu do'kon mahsulotlari edi. Shunday qilib, biz uchrashamiz - harakat sensori(PIR sensori) RobotDyn dan:


Ushbu sensorlar kichik o'lchamli, kam quvvat sarflaydi va ulardan foydalanish oson. Bundan tashqari, RobotDyn harakat sensorlari ham ipak ekranli kontaktlarga ega, bu, albatta, kichik narsa, lekin juda yoqimli. Xo'sh, bir xil sensorlardan foydalanadiganlar, lekin faqat boshqa kompaniyalardan, tashvishlanmasliklari kerak - ularning barchasi bir xil funktsiyaga ega va hatto kontaktlar belgilanmagan bo'lsa ham, bunday sensorlarning pinoutini Internetda topish oson.

Asosiy spetsifikatsiyalar harakat sensori (PIR sensori):

Sensorning ishlash maydoni: 3 metrdan 7 metrgacha

Kuzatuv burchagi: 110 o gacha

Ishlash kuchlanishi: 4,5...6 volt

Joriy iste'mol: 50 mkA gacha

Eslatma: Sensorning standart funksiyasi yorug'lik sensorini IN va GND pinlariga ulash orqali kengaytirilishi mumkin, keyin harakat sensori faqat qorong'ida ishlaydi.

Qurilmani ishga tushirish.

Yoqilganda sensorni ishga tushirish deyarli bir daqiqa davom etadi. Ushbu davrda sensor noto'g'ri signallar berishi mumkin, bu mikrokontrollerni unga ulangan sensori bilan dasturlashda yoki agar ulanish mikrokontrollerdan foydalanmasdan amalga oshirilgan bo'lsa, aktuator davrlarida hisobga olinishi kerak.

Aniqlash burchagi va maydoni.

Aniqlash (kuzatish) burchagi 110 daraja, aniqlash masofasi diapazoni 3 dan 7 metrgacha, quyidagi rasmda hammasi ko'rsatilgan:

Sezuvchanlikni sozlash (aniqlash masofasi) va vaqtni kechiktirish.

Quyidagi jadvalda harakat sensori asosiy sozlamalari ko'rsatilgan; chap tomonda vaqtni kechiktirish regulyatori mavjud, chap ustunda esa mumkin bo'lgan sozlamalar tavsifi mavjud. O'ng ustunda aniqlash masofasi sozlamalari tasvirlangan.


Sensor ulanishi:

  • PIR sensori - Arduino Nano
  • PIR sensori - Arduino Nano
  • PIR sensori - Arduino Nano
  • PIR Sensor - yorug'lik sensori uchun
  • PIR Sensor - yorug'lik sensori uchun

Oddiy ulanish diagrammasi quyidagi diagrammada ko'rsatilgan, bizning holatimizda sensori orqa tomondan shartli ravishda ko'rsatilgan va Arduino Nano platasiga ulangan.

Harakat sensori ishlashini ko'rsatadigan eskiz (biz dasturdan foydalanamiz):

/* * PIR sensori -> Arduino Nano * PIR sensori -> Arduino Nano * PIR sensori -> Arduino Nano */ void setup() ( //Port monitoriga ulanishni o'rnatish Serial.begin(9600); ) void loop( ) ( //A0 portidan chegara qiymatini o'qing //agar signal bo'lsa, odatda u 500 dan yuqori bo'ladi if(analogRead(A0) > 500) ( //Harakat sensori signali Serial.println("Harakat bor! !!"); ) else ( / / Signal yo'q Serial.println("Hammasi jim...");

Eskiz - bu harakat sensori ishlashining umumiy sinovi, uning ko'plab kamchiliklari bor, masalan:

  1. Mumkin bo'lgan noto'g'ri signallar, sensor bir daqiqa ichida o'z-o'zini ishga tushirishni talab qiladi.
  2. Port monitoriga qattiq ulanish, chiqish aktuatorlari yo'q (rele, sirena, LED indikatori)
  3. Juda ko'p qisqa vaqt harakat aniqlanganda sensorning chiqishidagi signal, ko'proq signalni dasturiy ravishda kechiktirish kerak uzoq muddat vaqt.

Sxemani murakkablashtirish va sensorning funksionalligini kengaytirish orqali siz yuqorida tavsiflangan kamchiliklardan qochishingiz mumkin. Buni amalga oshirish uchun siz kontaktlarning zanglashiga olib keladigan modulni o'rni moduli bilan to'ldirishingiz va ushbu modul orqali oddiy 220 voltli chiroqni ulashingiz kerak bo'ladi. O'rni modulining o'zi Arduino Nano platasining 3-piniga ulanadi. Shunday qilib, sxematik diagramma:

Endi harakat sensori sinovdan o'tgan eskizni biroz yaxshilash vaqti keldi. Eskizda o'rni o'chirishda kechikish amalga oshiriladi, chunki harakat sensori ishga tushirilganda chiqishda signal vaqti juda qisqa. Sensor ishga tushirilganda dastur 10 soniyali kechikishni amalga oshiradi. Agar so'ralsa, bu vaqtni o'zgaruvchining qiymatini o'zgartirish orqali oshirish yoki kamaytirish mumkin DelayValue. Quyida butun ishning eskizi va videosi keltirilgan yig'ilgan sxema:

/* * PIR sensori -> Arduino Nano * PIR sensori -> Arduino Nano * PIR sensori -> Arduino Nano * Relay moduli -> Arduino Nano */ //relout - o'rni moduli uchun pin (chiqish signali) const int relout = 3 ; //prevMillis - oldingi dasturni skanerlash siklining vaqtini saqlash uchun o'zgaruvchi //interval - releyni o'chirishdan oldin soniyalarni hisoblash uchun vaqt oralig'i unsigned long prevMillis = 0; int interval = 1000; //DelayValue - o'rni yoqilgan holatda saqlanadigan davr int DelayValue = 10; //initSecond - Initializatsiya siklini takrorlash o'zgaruvchisi int initSecond = 60; //countDelayOff - vaqt oralig'i hisoblagichi statik int countDelayOff = 0; //trigger - harakat sensori trigger bayrog'i statik bool trigger = noto'g'ri; void setup() ( //O'rni moduli ulangan portni ishga tushirishning standart protsedurasi //MUHIM!!! - o'rni moduli dastlabki o'chirilgan holatda qolishi uchun //va ishga tushirish vaqtida ishga tushmasligi uchun sizga kerak bo'ladi. kiritish/chiqish portiga //Qiymatni YUQORI yozish uchun, bu noto‘g‘ri “bosish”dan saqlaydi va o‘rni butun sxema yoqilishidan oldingi holatini saqlab qoladi (reout, HIGH);< initSecond; i ++) { delay(1000); } } void loop() { //Считать значение с аналогового порта А0 //Если значение выше 500 if(analogRead(A0) >500) ( //If(!trigger) ( trigger = true; ) ) harakat sensori trigger bayrog‘ini o‘rnating //harakat sensori trigger bayrog‘i (trigger) o‘rnatilganda ( //Bajarish quyidagi ko'rsatmalar//currMillis o'zgaruvchisida saqlash //dastur boshlanishidan beri o'tgan millisekundlar qiymati // imzosiz long currMillis = millis(); //Millisekundlarning oldingi qiymati bilan solishtiring //agar farq belgilangan oraliqdan katta bo'lsa, u holda: if(currMillis - prevMillis > interval) ( //Millisekundlarning joriy qiymatini prevMillis prevMillis = currMillis o'zgaruvchisiga saqlang; // Kechikish hisoblagichini uni / / davomida o'rni ON holatida saqlanishi kerak bo'lgan davr qiymati bilan solishtirib tekshiring, if(countDelayOff >= DelayValue) (//Agar qiymat teng bo'lsa, u holda: //qayta o'rnating. motion sensor trigger flag trigger = false //Kechikish hisoblagichini tiklash countDelayOff = 0 // o'rni o'chirib qo'ying digitalWrite(/ko'chadan uzilish) boshqa ( //Agar qiymat hali ham kam bo'lsa; keyin //kechikish hisoblagichini bir countDelayOff ++ ga oshiring //O'rni raqamli yozish (reout, LOW ) ) );

Dastur quyidagi tuzilmani o'z ichiga oladi:

unsigned long prevMillis = 0;

int interval = 1000;

...

unsigned long currMillis = millis();

if(currMillis - prevMillis > interval)

{

prevMillis = currMillis;

....

// Bizning operatsiyalarimiz strukturaning tanasiga kiritilgan

....

}

Aniqlik kiritish uchun ushbu dizaynga alohida izoh berishga qaror qilindi. Shunday qilib, bu dizayn dasturda parallel vazifani bajarishga imkon beradi. Strukturaning tanasi taxminan soniyada bir marta ishlaydi, bu o'zgaruvchan tomonidan osonlashtiriladi interval. Birinchidan, o'zgaruvchi currMillis funktsiyani chaqirganda qaytarilgan qiymat tayinlanadi millis(). Funktsiya millis() dastur boshlanganidan beri o'tgan millisekundlar sonini qaytaradi. Farqi bo'lsa currMillis - oldingi Millis o'zgaruvchining qiymatidan kattaroq interval demak, bu dasturni bajarish boshlanganidan beri bir soniyadan ko'proq vaqt o'tdi va siz o'zgaruvchining qiymatini saqlashingiz kerak. currMillis o'zgaruvchiga aylanadi oldingi Millis keyin strukturaning tanasida mavjud bo'lgan operatsiyalarni bajaring. Farqi bo'lsa currMillis - oldingi Millis o'zgaruvchan qiymatdan kamroq interval, keyin dasturni skanerlash davrlari orasida bir soniya hali o'tmagan va strukturaning tanasida mavjud bo'lgan operatsiyalar o'tkazib yuboriladi.

Xo'sh, maqolaning oxirida muallifning videosi bor:

Iltimos, sharhlar ishlashi uchun javascriptni yoqing. So'nggi o'n yil ichida avtomobil o'g'irliklari dunyoda sodir etilgan jinoyatlar tarkibida eng muhim o'rinlardan birini egalladi. Bu jinoyatlarning umumiy soniga nisbatan ushbu toifadagi o'g'irlikning solishtirma og'irligi bilan emas, balki avtomashinalarning qimmatligi tufayli etkazilgan zararning ahamiyati bilan bog'liq. 90-yillarning oxiriga kelib avtotransport vositalarini oʻgʻirlashga qarshi kurash sohasida koʻrilgan chora-tadbirlarning samarasizligi ushbu jinoyatlarni sodir etishga ixtisoslashgan va uyushgan jinoyatchilikning oʻziga xos belgilariga ega boʻlgan barqaror guruhlarning vujudga kelishiga olib keldi; Ehtimol, siz "qora avtomobil biznesi" atamasini eshitgansiz. Evropa mamlakatlari avtoparkida har yili jinoiy hujumlar ob'ektiga aylangan avtomobillarning ≈ 2% etishmaydi. Shuning uchun, men Arduino Uno asosida avtomobilim uchun GSM signalini yaratish g'oyasini o'ylab topdim.

Boshlaymiz!

Biz nimadan yig'amiz?

Biz tizimimizning qalbini tanlashimiz kerak. Menimcha, bunday signalizatsiya uchun Arduino Uno-dan yaxshiroq narsa yo'q. Asosiy mezon - bu etarli miqdordagi "pinlar" va narx.


Arduino Uno ning asosiy xususiyatlari

Mikrokontroller - ATmega328
Ishlash kuchlanishi - 5 V
Kirish kuchlanishi (tavsiya etiladi) - 7-12 V
Kirish kuchlanishi (chegara) - 6-20 V
Raqamli kirish/chiqish - 14 ta (shundan 6 tasi PWM chiqishi sifatida ishlatilishi mumkin)
Analog kirishlar - 6
Kirish / chiqish orqali doimiy oqim - 40 mA
3.3V - 50mA chiqish uchun doimiy oqim
Flash xotira - 32 KB (ATmega328), shundan 0,5 KB yuklovchi uchun ishlatiladi
Operativ xotira - 2 KB (ATmega328)
EEPROM - 1 KB (ATmega328)
Soat chastotasi - 16 MGts


Mos keladi!

Endi siz GSM modulini tanlashingiz kerak, chunki bizning signalizatsiya tizimi avtomobil egasini xabardor qilishi kerak. Demak, siz uni google orqali qidirishingiz kerak ... Mana, ajoyib sensor - SIM800L, hajmi shunchaki ajoyib.


Men o'yladim va Xitoydan buyurtma berdim. Biroq, hamma narsa unchalik pushti emas edi. Sensor shunchaki SIM-kartani tarmoqda ro'yxatdan o'tkazishdan bosh tortdi. Mumkin bo'lgan hamma narsa sinab ko'rildi - natija nolga teng edi.
Menga salqinroq narsani - Sim900 Shieldni taqdim etgan mehribon odamlar bor edi. Endi bu jiddiy narsa. Shield mikrofon va naushnik uyasiga ega bo'lib, uni to'liq telefon qiladi.


Sim900 Shield ning asosiy xususiyatlari

4 ta ish chastotasi standarti 850/900/1800/1900 MGts
GPRS ko'p slotli sinf 10/8
GPRS mobil stantsiyasi B sinfi
GSM faza 2/2+ bilan mos keladi
4-sinf (2 Vt @850/900 MGts)
1-sinf (1 Vt @ 1800/1900 MGts)
AT buyruqlari yordamida boshqarish (GSM 07.07, 07.05 va SIMCOM kengaytirilgan AT buyruqlari)
Kam quvvat iste'moli: 1,5 mA (uyqu rejimi)
Ishlash harorati oralig'i: -40 ° C dan + 85 ° C gacha


Mos keladi!

Yaxshi, lekin egasiga xabar berish uchun siz ba'zi sensorlardan o'qishni olishingiz kerak. Agar mashina tortib olinadigan bo'lsa, u holda avtomobilning holati kosmosda aniq o'zgaradi. Keling, akselerometr va giroskopni olaylik. Ajoyib. OK, endi biz sensorni qidirmoqdamiz.

O'ylaymanki, GY-521 MPU6050 albatta mos keladi. Unda harorat sensori ham borligi ma’lum bo‘ldi. Biz ham undan foydalanishimiz kerak, shunday "qotil xususiyat" bo'ladi. Faraz qilaylik, mashina egasi uni uyi ostiga qo‘yib, chiqib ketdi. Avtomobil ichidagi harorat "silliq" o'zgaradi. Agar tajovuzkor mashinaga kirishga harakat qilsa nima bo'ladi? Masalan, u eshikni ochishi mumkin bo'ladi. Avtomobil ichidagi harorat tez o'zgara boshlaydi, chunki salondagi havo atrof-muhit havosiga aralasha boshlaydi. O'ylaymanki, bu ishlaydi.


GY-521 MPU6050 ning asosiy xususiyatlari

MPU-6050 chipidagi 3 o'qli giroskop + 3 o'qli akselerometr GY-521 moduli. Ob'ektning fazodagi o'rni va harakatini, aylanish vaqtidagi burchak tezligini aniqlash imkonini beradi. Bundan tashqari, o'rnatilgan harorat sensori mavjud. U turli xil kopterlarda va samolyot modellarida qo'llaniladi; ushbu sensorlar asosida harakatni suratga olish tizimi ham yig'ilishi mumkin.

Chip - MPU-6050
Ta'minot kuchlanishi - 3,5V dan 6V gacha (DC);
Giro diapazoni - ±250 500 1000 2000°/s
Akselerometr diapazoni - ±2±4±8±16g
Aloqa interfeysi - I2C
Hajmi - 15x20 mm.
Og'irligi - 5 g


Mos keladi!

Tebranish sensori ham foydali bo'ladi. To'satdan ular mashinani "qo'pol kuch" bilan ochishga harakat qilishadi yoki to'xtash joyida boshqa mashina sizning mashinangizga uriladi. Keling, tebranish sensori SW-420 (sozlanishi) ni olaylik.


SW-420 ning asosiy xarakteristikalari

Ta'minot kuchlanishi - 3,3 - 5 V
Chiqish signali - raqamli yuqori/past (odatda yopiq)
Ishlatilgan sensor - SW-420
Amaldagi taqqoslash moslamasi LM393
Olchamlari - 32x14 mm
Qo'shimcha ravishda - sozlash qarshiligi mavjud.


Mos keladi!

SD xotira kartasi modulini burang. Biz jurnal faylini ham yozamiz.


SD xotira kartasi modulining asosiy xususiyatlari

Modul mikrokontroller asosidagi qurilmaning ishlashi uchun zarur bo'lgan ma'lumotlarni saqlash, o'qish va SD-kartaga yozish imkonini beradi. Qurilmadan foydalanish o'nlab megabaytdan ikki gigabaytgacha bo'lgan fayllarni saqlashda dolzarbdir. Kengashda SD-karta uchun konteyner, karta quvvat stabilizatori va interfeys va elektr uzatish liniyalari uchun ulagich vilkasi mavjud. Agar siz audio, video yoki boshqa yirik ma'lumotlar bilan ishlashingiz kerak bo'lsa, masalan, voqealar, sensor ma'lumotlari yoki veb-server ma'lumotlarini saqlash uchun, Arduino uchun SD xotira kartasi moduli bular uchun SD-kartadan foydalanishga imkon beradi. maqsadlar. Moduldan foydalanib, siz SD-kartaning xususiyatlarini o'rganishingiz mumkin.
Ta'minot kuchlanishi - 5 yoki 3,3 V
SD-karta xotirasi hajmi - 2 GB gacha
Olchamlari - 46 x 30 mm


Mos keladi!

Va keling, datchiklar ishga tushirilganda servo diskni qo'shamiz, video yozuvchisi bo'lgan servo haydovchi burilib, voqeani videoga oladi. Keling, MG996R servo diskini olaylik.


MG996R Servo Drive-ning asosiy xususiyatlari

Shikastlanishdan barqaror va ishonchli himoya
- Metall haydovchi
- Ikki qatorli sharli podshipnik
- sim uzunligi 300 mm
- O'lchamlari 40x19x43mm
- Og'irligi 55 g
- Aylanish burchagi: 120 daraja.
- Ishlash tezligi: 0,17 sek/60 daraja (4,8 V yuksiz)
- Ishlash tezligi: 0,13 sek/60 daraja (6V yuksiz)
- Boshlanish momenti: 4,8V quvvat manbaida 9,4kg/sm
- Boshlanish momenti: 6V quvvat manbaida 11kg/sm
- Ishlash kuchlanishi: 4,8 - 7,2 V
- Barcha haydovchi qismlari metalldan yasalgan


Mos keladi!

Biz yig'amiz

Google-da har bir sensorni ulash haqida juda ko'p maqolalar mavjud. Va menda yangi velosipedlar ixtiro qilish istagi yo'q, shuning uchun men oddiy va ishlaydigan variantlarga havolalarni qoldiraman.

Ushbu loyiha o'g'rilarning kirib borishga urinishlarini oldini olish/nazorat qilish tizimini ishlab chiqish va takomillashtirish bilan bog'liq. Ishlab chiqilgan xavfsizlik qurilmasi GSM (Mobil aloqa uchun global tizim) texnologiyasiga asoslangan o‘rnatilgan tizimdan (ochiq kodli dasturiy ta’minot va gsm modemdan foydalangan holda apparat mikrokontrollerini o‘z ichiga oladi) foydalanadi.

Uyda xavfsizlik moslamasi o'rnatilishi mumkin. Intrusion signal interfeysi sensori, shuningdek, boshqaruvchiga asoslangan xavfsizlik tizimiga ulangan.
Kirishga urinilganda, tizim egasiga ogohlantirish xabarini (masalan, sms) yuboradi. Mobil telefon yoki keyingi ishlov berish uchun oldindan tuzilgan har qanday mobil telefonga.

Xavfsizlik tizimi Arduino Uno mikrokontrolleri va GSM/GPRS asosidagi standart SIM900A modemidan iborat. Butun tizim har qanday 12V 2A quvvat manbai/batareyadan quvvatlanishi mumkin.

Quyida diagramma keltirilgan xavfsizlik tizimi Arduino-ga asoslangan.

Tizimning ishlashi juda oddiy va tushuntirishni talab qilmaydi. Tizimga quvvat berilganda, u kutish rejimiga o'tadi. J2 ulagichining pinlari qisqa tutashtirilganda, kerakli mobil raqamga oldindan dasturlashtirilgan ogohlantirish xabari yuboriladi. J2 kirish ulagichiga har qanday hujum detektorini (masalan, yorug'lik himoyasi yoki harakat sensori) ulashingiz mumkin. E'tibor bering, J2 ulagichining 1-pinidagi faol past (L) signali o'g'ri signalini faollashtiradi.

Bundan tashqari, tizimga ixtiyoriy "qo'ng'iroq-signal" qurilmasi qo'shildi. U faollashadi telefon qo'ng'irog'i foydalanuvchi S2 tugmachasini bosganda (yoki boshqa elektron blok signalni ishga tushirganda). "Qo'ng'iroq" tugmasini (S2) bosgandan so'ng, qo'ng'iroqni boshqa S3 tugmachasini - "tugatish" tugmasini bosish orqali bekor qilish mumkin. Ushbu parametr bosqin sodir bo'lgan taqdirda "o'tkazib yuborilgan qo'ng'iroq" signalini yaratish uchun ishlatilishi mumkin.

Sxema juda moslashuvchan, shuning uchun u har qanday SIM900A modemidan (va, albatta, Arduino Uno platasidan) foydalanishi mumkin. Iltimos, yig'ishni boshlashdan oldin modem hujjatlarini diqqat bilan o'qing. Bu tizimni ishlab chiqarish jarayonini oson va yoqimli qiladi.

Radioelementlar ro'yxati

Belgilanish Turi Denominatsiya Miqdori EslatmaDo'konMening bloknotim
Arduino taxtasi

Arduino Uno

1 Bloknot uchun
GSM/GPRS modemSIM900A1 Bloknot uchun
IC1 Lineer regulyator

LM7805

1 Bloknot uchun
C1 100 uF 25 V1 Bloknot uchun
C2 Elektrolitik kondansatör10 uF 16 V1 Bloknot uchun
R1 Rezistor

1 kOm

1 Bloknot uchun
LED1 Yorug'lik chiqaradigan diod 1 Bloknot uchun
S1 TugmaFiksatsiya bilan1