Ардуино орон сууцанд хөдөлгөөнийг хянах систем. Arduino дээр суурилсан гэрт зориулсан GSM хамгаалалтын систем. SD санах ойн картны модулийн үндсэн шинж чанарууд


Яаж хийх вэ энгийн GSM SIM800L дохиоллын систем, гараж эсвэл зуслангийн байшинд зориулсан Arduino. Aliexpress-ийн бэлэн модулиуд дээр үндэслэн бид өөрсдөө хийдэг. Үндсэн модулиуд- SIM800L GSM модуль, Arduino Nano (та дурын Uno гэх мэтийг ашиглаж болно), доош буулгах самбар, зайнаас гар утас.

Цагаан будаа. 1. Arduino дээрх хамгаалалтын дохиоллын модулиудын зохион байгуулалт

Дохио үйлдвэрлэх

Бид дээр сууна талхны хавтандэвсгэрээр дамжуулан шаардлагатай бол модулиудыг солих боломжийг танд олгоно. SIM800L болон Arduino Nano-д шилжүүлэгчээр дамжуулан 4.2 вольтын хүчийг нийлүүлэх замаар дохиоллыг идэвхжүүлнэ.



Эхний давталт эхлэхэд систем эхлээд эхний дугаар руу залгаж, дараа нь дуудлагыг зогсоож, хоёр дахь дугаар руу залгана. Эхнийх нь гэнэт тасарсан гэх мэт тохиолдолд хоёр дахь дугаарыг нэмнэ. Хоёр, гурав, дөрөв, тав дахь гогцоо өдөөгдөхөд идэвхжүүлсэн бүсийн дугаар, мөн хоёр дугаарт SMS илгээгдэнэ. Видеоны доорх тайлбарыг сонирхож буй схем, ноорог.
Бид бүх электрон хэрэгслийг тохиромжтой орон сууцанд байрлуулдаг.



Хэрэв танд 5 stb хэрэггүй бол Arduino-ийн 5V зүүг шаардлагагүй оролтууд руу холбоно уу. Батерейтай 5 гогцоотой GSM дохиоллын систем нь цахилгаан тасарсан тохиолдолд төхөөрөмжийг хэдэн өдрийн турш бие даан ажиллуулах боломжийг олгоно. Та тэдэнд ямар ч хамгаалалтын мэдрэгч, реле контакт гэх мэтийг холбож болно. Үүний үр дүнд бид SMS илгээх, 2 дугаар руу залгах зориулалттай энгийн, хямд авсаархан хамгаалалтын төхөөрөмжийг авах боломжтой. Зуслангийн байшин, орон сууц, гараж гэх мэтийг хамгаалахад ашиглаж болно.

Дэлгэрэнгүйг видеоноос үзнэ үү

Энэ бол тусгай тоног төхөөрөмжийн платформ бөгөөд тэдгээрийн үндсэн дээр та янз бүрийн зүйлийг үүсгэж болно электрон төхөөрөмжүүд, үүнд болон. Энэ төрлийн төхөөрөмжүүд нь энгийн загвар, тэдгээрийн үйлдлийн алгоритмыг програмчлах чадвараараа ялгагдана. Үүний ачаар бий болгосон Arduino ашиглан GSM дохиолол , хамгаалах объектын хувьд аль болох тохируулж болно.

Arduino модуль гэж юу вэ?

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

Arduino процессор нь хэрэглэгчийн бичсэн програмыг өөрөө ачаалах боломжийг олгодог. Өөрийнхөө өвөрмөц алгоритмыг бий болгосноор та янз бүрийн объект, ашиглалтын янз бүрийн нөхцөл, шийдвэрлэх ёстой даалгаврын хувьд хулгайн дохиоллын оновчтой горимоор хангах боломжтой.

Arduino-той ажиллахад хэцүү юу?

Arduino модулиуд нь олон хэрэглэгчдийн дунд маш их алдартай байдаг. Энэ нь түүний энгийн, боломжийн үнээр боломжтой болсон.

Модулиудыг удирдах программууд нь ердийн C ++ болон маягтын нэмэлт програмуудыг ашиглан бичигдсэн байдаг энгийн функцуудмодулийн контактууд дээрх оролт / гаралтын процессыг хянах. Нэмж дурдахад Windows, Linux эсвэл Mac OS дээр ажилладаг Arduino IDE үнэгүй програм хангамжийг програмчлалд ашиглаж болно.

Arduino модулиудын тусламжтайгаар төхөөрөмжүүдийг угсрах процедурыг ихээхэн хялбаршуулсан. Arduino дээрх GSM дохиог гагнуурын төмрөөр хийх шаардлагагүйгээр үүсгэж болно - угсрах самбар, холбогч, утас ашиглан хийгддэг.

Arduino ашиглан дохиолол хэрхэн үүсгэх вэ?

Arduino дээр үүсгэсэн gsm дохиоллын системийг өөрийн гараар хангах үндсэн шаардлагад дараахь зүйлс орно.

  • хулгай, нэвтэрсэн тухай тухайн байгууламжийн эзэнд мэдэгдэх;
  • дуут дохио, анхааруулах гэрэл зэрэг гадаад системийг дэмжих;
  • SMS эсвэл дуудлагаар дохиоллын хяналт;
  • гадны эрчим хүчний хангамжгүйгээр бие даасан ажил.

Сэрүүлэг үүсгэхийн тулд танд хэрэгтэй болно:

  • Arduino модуль;
  • функциональ мэдрэгчийн багц;
  • эсвэл модем;
  • бие даасан цахилгаан хангамж;
  • гадаад гүйцэтгэх төхөөрөмжүүд.

Arduino модулиудын нэг онцлог шинж чанар нь тусгай өргөтгөлийн карт ашиглах явдал юм. Тэдгээрийн тусламжтайгаар аюулгүй байдлын системийн тохиргоог угсрах шаардлагатай бүх нэмэлт төхөөрөмжүүд Arduino-д холбогдсон байна. Ийм хавтангууд нь Arduino модулийн орой дээр "сэндвич" хэлбэрээр суурилагдсан бөгөөд холбогдох туслах төхөөрөмжүүд нь өөрөө самбарт холбогдсон байдаг.

Хэрхэн ажилладаг?

Холбогдсон мэдрэгчүүдийн аль нэгийг асаахад дохио нь Arduino модулийн процессор руу дамждаг. Ачаалагдсан тусгай программ хангамжийг ашиглан микропроцессор үүнийг тодорхой алгоритмын дагуу боловсруулдаг. Үүний үр дүнд гадаад идэвхжүүлэгчийг ажиллуулах командыг үүсгэж болох бөгөөд энэ нь холбогдох өргөтгөлийн интерфэйсийн хавтангаар дамжуулагдана.

Хамгаалалтад байгаа байшин, орон сууцны эзэнд анхааруулах дохиог илгээх боломжийг хангахын тулд тусгай GSM модулийг өргөтгөх самбараар дамжуулан Arduino модульд холбосон. Энэ нь аль нэг үйлчилгээ үзүүлэгчээс SIM карт суулгадаг үүрэн.

Тусгай GSM адаптер байхгүй тохиолдолд түүний үүргийг ердийн хүн гүйцэтгэж болно гар утас... Сэрүүлэг болон залгах тухай сэрэмжлүүлэг бүхий SMS мессеж илгээхээс гадна үүрэн холбооны холболт байгаа нь таныг удирдах боломжийг олгоно. GSM дохиолол Arduino дээр алсаас ашиглахаас гадна тусгай хүсэлт илгээх замаар объектын төлөв байдлыг хянах боломжтой.

"Анхаар!

Байгууламжийн эзэнтэй холбогдохын тулд GSM модулиудаас гадна интернетээр дамжуулан харилцаа холбоог хангадаг энгийн модемуудыг ашиглаж болно.

Энэ тохиолдолд мэдрэгчийг асаах үед процессороор боловсруулсан дохио нь модемоор дамжуулан тусгай портал эсвэл вэбсайт руу дамждаг. Мөн аль хэдийн сайтаас анхааруулах SMS-г автоматаар үүсгэх эсвэл холбосон и-мэйл рүү шуудан илгээх ажлыг гүйцэтгэдэг.

дүгнэлт

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

Зохиогч нь хямд, утасгүй байхын тулд гар хийцийн бүтээгдэхүүн хийхийг хүссэн.
Энэхүү гар хийцийн бүтээгдэхүүн нь PIR хөдөлгөөн мэдрэгчийг ашигладаг бөгөөд мэдээллийг RF модулийг ашиглан дамжуулдаг.

Зохиогч хэт улаан туяаны модулийг ашиглахыг хүссэн боловч хязгаарлагдмал хүрээтэй тул ажиллах боломжтой зөвхөнХүлээн авагчийн харааны шугам, тиймээс тэрээр ойролцоогоор 100 метрийн зайд хүрэх боломжтой RF модулийг сонгосон.


Зочдод дохиоллын угсралтыг үзэхэд хялбар болгохын тулд би нийтлэлийг 5 үе шатанд хуваахаар шийдсэн.
1-р шат: Дамжуулагчийг бүтээх.
2-р шат: Хүлээн авагч үүсгэх.
3-р шат: Програм хангамжийг суулгах.
4-р шат: Угсарсан модулиудыг турших.
5-р шат: Хэргийг угсарч, модулийг суулгана.

Зохиогчид хэрэгтэй бүх зүйл нь:
- Хүлээн авагч болон дамжуулагчийн ARDUINO UNO / ARDUINO MINI / ARDUINO NANO 2 самбар;
- RF дамжуулагч модуль (433 МГц);
- PIR хөдөлгөөн мэдрэгч;
- 9V батерей (2 ширхэг) ба тэдгээрийн холбогч;
- Дуу чимээ;
- Гэрэл ялгаруулах диод;
- 220 Ом эсэргүүцэлтэй резистор;
- талхны хавтан;
- холбогч / утас / холбогч;
- хэлхээний самбар;
- Самбараас хавтангийн зүү холбогч;
- Шилжүүлэгч;
- Хүлээн авагч ба дамжуулагчийн орон сууц;
- өнгөт цаас;
- бэхэлгээний соронзон хальс;
- Төрөл тохируулах хутгуур;
- Халуун цавуу буу;
- Гагнуурын төмөр;
- Утас таслагч / хөрс хуулалтын хэрэгсэл;
- Металл хайч.


1-р шат.
Дамжуулагчийг үүсгэж эхэлцгээе.
Хөдөлгөөн мэдрэгч хэрхэн ажилладаг тухай диаграммыг доор харуулав.


Дамжуулагч нь өөрөө дараахь зүйлээс бүрдэнэ.
- Хөдөлгөөн мэдрэгч;
- Arduino самбар;
- Дамжуулагчийн модуль.


Мэдрэгч өөрөө гурван гаралттай:
- VCC;
- GND;
-ГАРАА.

Үүний дараа би мэдрэгчийн ажиллагааг шалгасан


Анхаар!!!
Програм хангамжийг татаж авахын өмнө зохиогч нь одоогийн самбар болон цуваа портыг Arduino IDE тохиргоонд зөв тохируулсан эсэхийг шалгана. Дараа нь би ноорог байршуулсан:

Хожим нь хөдөлгөөн мэдрэгч нь урд талын хөдөлгөөнийг илрүүлэх үед LED гэрэл асах бөгөөд та харгалзах мессежийг дэлгэц дээр харж болно.


Доорх диаграмын дагуу.


Дамжуулагч нь 3 тээглүүртэй (VCC, GND, Data), бид тэдгээрийг холбодог:
- Самбар дээрх зүүгээр VCC> 5V;
- GND> GND;
- Өгөгдөл> Самбар дээрх 12 зүү.

2-р шат.


Хүлээн авагч нь өөрөө дараахь зүйлээс бүрдэнэ.
- RF хүлээн авагчийн модуль;
- Arduino самбар
- Базер (чанга яригч).

Хүлээн авагчийн хэлхээ:


Хүлээн авагч нь дамжуулагчийн нэгэн адил 3 зүү (VCC, GND, Data) байдаг бөгөөд бид тэдгээрийг холбодог.
- Самбар дээрх зүүгээр VCC> 5V;
- GND> GND;
- Өгөгдөл> Самбар дээрх 12 зүү.


3-р шат.
Зохиогч номын сангийн файлыг бүх програм хангамжийн үндэс болгон сонгосон. Би түүний аль нь болохыг татаж аваад Arduino libraries хавтсанд хийлээ.

Дамжуулагчийн програм хангамж.
Програм хангамжийн кодыг самбарт байршуулахаас өмнө зохиогч дараах IDE параметрүүдийг тохируулсан.
- Самбар -> Arduino Nano (эсвэл таны ашиглаж байгаа ямар ч самбар);
- Цуваа порт ->


Параметрүүдийг тохируулсны дараа зохиогч Wireless_tx програмын файлыг татаж аваад самбарт байршуулав.

Хүлээн авагчийн програм хангамж
Зохиогч хүлээн авах самбарт ижил алхмуудыг давтана.
- Самбар -> Arduino UNO (эсвэл таны ашиглаж байгаа ямар ч самбар);
- Цуваа порт -> COM XX (таны самбар холбогдсон ком портыг шалгана уу).



Зохиогч параметрүүдийг тохируулсны дараа wireless_rx файлыг татаж аваад самбарт байршуулна:


Дараа нь татаж авах боломжтой програмын тусламжтайгаар зохиогч дуугарах дууг бий болгосон.

4-р шат.
Цаашилбал, програм хангамжийг татаж авсны дараа зохиогч бүх зүйл зөв ажиллаж байгаа эсэхийг шалгахаар шийджээ. Зохиогч тэжээлийн хангамжийг холбож, гараа мэдрэгчийн урдуур дамжуулж, дохиолол түүнд ажиллаж эхэлсэн бөгөөд энэ нь бүх зүйл хэвийн ажиллаж байна гэсэн үг юм.


5-р шат.
Дамжуулагчийн эцсийн угсралт
Эхлээд зохиогч хүлээн авагч, дамжуулагч, arduino самбар гэх мэт цухуйсан зүүг таслав.


Үүний дараа би arduino хавтанг хөдөлгөөн мэдрэгч болон RF дамжуулагчтай холбогч ашиглан холбосон.


Дараа нь зохиогч дамжуулагчийн орон сууц хийж эхлэв.

Эхлээд тэр хайчилж авлаа: шилжүүлэгчийн нүх, ба дугуй нүххөдөлгөөн мэдрэгчийн хувьд, дараа нь биед наасан.




Дараа нь зохиогч гар хийцийн бүтээгдэхүүний дотоод хэсгийг нуухын тулд өнгөт цаасыг өнхрүүлэн, урд талын нүүрэнд наасан байна.


Үүний дараа зохиогч хоёр талт соронзон хальсны тусламжтайгаар хайрцагны дотор электрон дүүргэлт хийж эхлэв.



Хүлээн авагчийн эцсийн угсралт
Зохиогч нь холбогдохоор шийдсэн Arduino самбаррезинэн тууз бүхий бэхэлгээний хавтантай, мөн RF хүлээн авагч суурилуулна.


Дараа нь зохиогч нөгөө хайрцаг дээр хоёр нүхийг зүсэж, нэг нь дуугарч, нөгөө нь унтраалга юм.


Тэгээд нааж байна.


Үүний дараа зохиогч бүх хэсэгт холбогчийг суулгадаг.




Дараа нь зохиогч бэлэн хавтанг хайрцагт хийж, хоёр талт цавуугаар засна.

Сайн байцгаана уу, өнөөдөр бид хөдөлгөөн мэдрэгч хэмээх төхөөрөмжийг үзэх гэж байна. Бидний олонх нь энэ зүйлийн талаар сонссон, хэн нэгэн энэ төхөөрөмжтэй харьцаж байсан. Хөдөлгөөн мэдрэгч гэж юу вэ? Үүнийг ойлгохыг хичээцгээе, тэгэхээр:

Хөдөлгөөн мэдрэгч эсвэл шилжилт мэдрэгч - аливаа объектын хөдөлгөөнийг илрүүлэх төхөөрөмж (төхөөрөмж). Ихэнхдээ эдгээр төхөөрөмжийг аюулгүй байдал, дохиолол, хяналтын системд ашигладаг. Эдгээр мэдрэгчийн хүчин зүйлсийн олон хэлбэр байдаг боловч бид самбарт холбох хөдөлгөөн мэдрэгч модулийг нарийвчлан авч үзэх болно. Arduino,мөн энэ нь пүүсээс юм RobotDyn. Яагаад яг энэ компани гэж? Би энэ дэлгүүр болон түүний бараа бүтээгдэхүүнийг сурталчлахыг хүсэхгүй байгаа ч эцсийн хэрэглэгчдэд бүтээгдэхүүнээ чанартай танилцуулж, лабораторийн дээжээр сонгосон нь энэ дэлгүүрийн бүтээгдэхүүн юм. Тиймээс бид уулздаг - хөдөлгөөн мэдрэгч(PIR мэдрэгч) RobotDyn-ээс:


Эдгээр мэдрэгчүүд нь жижиг хэмжээтэй, бага эрчим хүч хэрэглэдэг, хэрэглэхэд хялбар байдаг. Нэмж дурдахад RobotDyn-ийн хөдөлгөөн мэдрэгчүүд нь торгон дэлгэцээр тэмдэглэгдсэн контактуудтай бөгөөд энэ нь мэдээжийн хэрэг өчүүхэн боловч маш тааламжтай юм. За, ижил мэдрэгч ашигладаг, гэхдээ зөвхөн бусад компаниудын хувьд санаа зовох хэрэггүй - тэд бүгд ижил функцтэй бөгөөд контактууд тэмдэглэгдээгүй байсан ч ийм мэдрэгчийн зүүг интернетээс олоход хялбар байдаг.

Үндсэн техникийн үзүүлэлтүүдхөдөлгөөн мэдрэгч (PIR мэдрэгч):

Мэдрэгчийн ажлын талбай: 3-аас 7 метр хүртэл

Хяналтын өнцөг: 110 o хүртэл

Ажлын хүчдэл: 4.5 ... 6 вольт

Хэрэглээний гүйдэл: 50μA хүртэл

Жич:Мэдрэгчийн стандарт функцийг гэрлийн мэдрэгчийг IN болон GND зүүтэй холбосноор өргөтгөх боломжтой бөгөөд дараа нь хөдөлгөөн мэдрэгч нь зөвхөн харанхуйд ажиллах болно.

Төхөөрөмжийг эхлүүлэх.

Асаах үед мэдрэгчийг эхлүүлэхэд бараг нэг минут зарцуулдаг. Энэ хугацаанд мэдрэгч нь худал дохио өгч болзошгүй тул микроконтроллерийг түүнд холбогдсон мэдрэгч эсвэл хэлхээнд програмчлахдаа үүнийг анхаарч үзэх хэрэгтэй. гүйцэтгэх төхөөрөмжүүдхэрэв холболтыг микроконтроллер ашиглахгүйгээр хийсэн бол.

Илрүүлэх өнцөг ба талбай.

Илрүүлэх (хөшөөх) өнцөг нь 110 градус, илрүүлэх зай нь 3-7 метр, доорх зурагт энэ бүхнийг харуулав.

Мэдрэмжийн тохируулга (илрүүлэх зай) болон цаг хугацааны саатал.

Доорх хүснэгтэд хөдөлгөөн мэдрэгчийн үндсэн тохируулгуудыг харуулсан бөгөөд зүүн талд нь цаг хугацааны саатлын зохицуулагч, зүүн баганад боломжит тохиргооны тайлбарыг оруулсан болно. Баруун баганад илрүүлэх зайны тохируулгыг тайлбарласан болно.


Мэдрэгчийн холболт:

  • PIR мэдрэгч - Arduino Nano
  • PIR мэдрэгч - Arduino Nano
  • PIR мэдрэгч - Arduino Nano
  • PIR мэдрэгч - гэрэл мэдрэгч
  • PIR мэдрэгч - гэрэл мэдрэгч

Ердийн холболтын диаграммыг доорх диаграммд өгсөн болно, манай тохиолдолд мэдрэгчийг ар талаас нь уламжлалт байдлаар харуулсан бөгөөд Arduino Nano самбарт холбогдсон байна.

Хөдөлгөөн мэдрэгчийн ажиллагааг харуулсан ноорог зураг (програмыг ашиглана уу):

/ * * PIR мэдрэгч -> Arduino Nano * PIR мэдрэгч -> Arduino Nano * PIR мэдрэгч -> Arduino Nano * / хүчингүй тохиргоо () (// Цуваа порт monitor.begin (9600);) холболтыг хүчингүй болгох () ) ( // A0 портоос босго утгыг уншина уу // дохио байвал ихэвчлэн 500-аас их байдаг (analogRead (A0)> 500) (// Хөдөлгөөн мэдрэгчээс ирсэн дохио Serial.println ("Хөдөлгөөн байна ! !!");) else (/ / Ямар ч дохио байхгүй Serial.println ("Бүх зүйл чимээгүй байна ...");))

Ноорог нь хөдөлгөөн мэдрэгчийн ердийн туршилт бөгөөд олон сул талуудтай, тухайлбал:

  1. Хуурамч дохиолол гарч болзошгүй тул мэдрэгчийг нэг минутын дотор өөрөө эхлүүлэх шаардлагатай.
  2. Портын дэлгэцтэй хатуу холболт, гаралтын гүйцэтгэх төхөөрөмж байхгүй (реле, дохиолол, гэрлийн дохио)
  3. Мэдрэгчийн гаралтын дохионы хугацаа хэт богино, хөдөлгөөн илэрсэн тохиолдолд дохиог программ ёсоор удаан хугацаагаар хойшлуулах шаардлагатай.

Хэлхээг хүндрүүлж, мэдрэгчийн функцийг өргөжүүлснээр дээрх сул талуудаас зайлсхийх боломжтой. Үүнийг хийхийн тулд та хэлхээг реле модулиар нэмж, ердийн 220 вольтын чийдэнг энэ модулиар дамжуулан холбох хэрэгтэй. Релений модуль өөрөө Arduino Nano самбар дээрх 3-р зүүтэй холбогдоно. Тиймээс бүдүүвч диаграмм:

Хөдөлгөөн мэдрэгчийг туршихад ашигласан ноорог илүү боловсронгуй болгох цаг болжээ. Хөдөлгөөн мэдрэгч өөрөө асаалттай үед гаралтын дохионы хугацаа хэт богино байдаг тул реле унтраах саатлыг хэрэгжүүлэх болно гэж зурагт үзүүлэв. Хөтөлбөр нь мэдрэгчийг асаахад 10 секундын саатлыг хэрэгжүүлдэг. Хэрэв хүсвэл хувьсагчийн утгыг өөрчлөх замаар энэ хугацааг нэмэгдүүлж эсвэл багасгаж болно DelayValue... Бүхэл бүтэн угсарсан хэлхээний ноорог болон видеог доор харуулав.

/ * * PIR мэдрэгч -> Arduino Nano * PIR мэдрэгч -> Arduino Nano * PIR мэдрэгч -> Arduino Nano * Релений модуль -> Arduino Nano * / // релений модульд зориулсан зүү (гаралтын дохио) const int relout = 3 ; // prevMillis - өмнөх програмын скан хийх мөчлөгийн цагийг хадгалах хувьсагч // интервал - реле унтрах хүртэл тоолох секундын хугацааны интервал тэмдэггүй урт prevMillis = 0; int интервал = 1000; // DelayValue - реле асаалттай байдалд байх хугацаа int DelayValue = 10; // initSecond - Эхлүүлэх давталтын давталтын хувьсагч int initSecond = 60; // countDelayOff - хугацааны интервалын тоолуур статик int countDelayOff = 0; // гох - хөдөлгөөн мэдрэгчийн туг өдөөлт статик bool триггер = худал; хүчингүй тохиргоо () (// Релений модулийг холбосон портыг эхлүүлэх стандарт журам // ЧУХАЛ !!! - реле модулийг анх удаа унтарсан төлөвт // ажиллуулахын тулд эхлүүлэхгүй байхын тулд та Оролт гаралтын порт руу ӨНДӨР утгыг бичих шаардлагатай // , энэ нь худал "хувилах"-аас зайлсхийх бөгөөд // бүх хэлхээг pinMode асаахаас өмнөх релений төлөвийг хадгалах болно (дахин гаргах, OUTPUT) ); digitalWrite (relout, HIGH); // Энд бүх зүйл энгийн - бид 60 мөчлөгийн төгсгөл хүртэл хүлээнэ (initSecond хувьсагч) // 1 секунд үргэлжлэх бөгөөд энэ хугацаанд мэдрэгч (int i = 0) "өөрийгөө эхлүүлнэ" i< initSecond; i ++) { delay(1000); } } void loop() { //Считать значение с аналогового порта А0 //Если значение выше 500 if(analogRead(A0) >500) (// Хөдөлгөөн мэдрэгчийн гох тугийг тохируулна уу (! Trigger) (триггер = үнэн;)) // Хөдөлгөөн мэдрэгчийн гох тугийг (гох) (// Гүйцэтгэх үед тохируулна. зааврыг дагаж мөрдөнө// currMillis хувьсагчд хадгална // програм ажиллаж эхэлснээс хойш өнгөрсөн миллисекундын утга // unsigned long currMillis = millis (); // Өмнөх миллисекундын утгатай харьцуулах // хэрэв зөрүү нь заасан интервалаас их байвал: if (currMillis - prevMillis> интервал) (// Миллисекундын одоогийн утгыг prevMillis хувьсагч руу хадгалах prevMillis = currMillis; // Саатал тоологчийг реле асаалттай байх ёстой / / үеийн утгатай харьцуулж шалгана уу // хэрэв (countDelayOff> = DelayValue) төлөв (// Хэрэв утга тэнцүү бол: // хөдөлгөөний тугийг дахин тохируулна уу. мэдрэгчийн гох = худал; // саатал тоологчийг дахин тохируулах countDelayOff = 0; // digitalWrite реле унтраах (дахин, өндөр); // давталтын завсарлага;) өөрөөр (// Хэрэв утга бага байвал // Саатал тоологчийг нэгээр нэмэгдүүлнэ countDelayOff ++; // Релейг digitalWrite дээр байлга (relout, LOW);))))

Хөтөлбөр нь дараахь бүтцийг агуулна.

unsigned long prevMillis = 0;

int интервал = 1000;

...

тэмдэггүй урт currMillis = миллис ();

хэрэв (currMillis - prevMillis> интервал)

{

prevMillis = currMillis;

....

// Бидний үйл ажиллагаа нь бүтцийн биед хаалттай байдаг

....

}

Тодруулж хэлбэл, энэ барилгын талаар тусад нь тайлбар хийхээр шийдсэн. Тэгэхээр, энэ загварпрограмм дахь нэгэн төрлийн зэрэгцээ ажлыг гүйцэтгэх боломжийг танд олгоно. Бүтцийн бие нь секундэд ойролцоогоор нэг удаа өдөөгддөг бөгөөд үүнийг хувьсагчаар хөнгөвчилдөг интервал... Нэгдүгээрт, хувьсагч куррМиллисфункцийг дуудах үед буцаасан утгыг оноосон миллис ()... Чиг үүрэг миллис ()програм эхэлснээс хойшхи миллисекундын тоог буцаана. Хэрэв ялгаа бол currMillis - өмнөх Миллисхувьсагчийн утгаас их интервалЭнэ нь програмыг ажиллуулж эхэлснээс хойш нэг секундээс илүү хугацаа өнгөрсөн гэсэн үг бөгөөд та хувьсагчийн утгыг хадгалах хэрэгтэй. куррМиллисхувьсагч руу өмнөх Миллисдараа нь бүтцийн биед хаалттай үйлдлүүдийг гүйцэтгэнэ. Хэрэв ялгаа бол currMillis - өмнөх Миллисхувьсагчийн утгаас бага интервал, дараа нь програмын скан хийх мөчлөгийн хооронд нэг секунд хараахан өнгөрөөгүй байгаа бөгөөд бүтцийн биед хавсаргасан үйлдлүүд алгассан байна.

За, нийтлэлийн төгсгөлд зохиогчийн видео:

Сэтгэгдэл ажиллахын тулд javascript-г идэвхжүүлнэ үү.

Хэт улаан туяаны (IR, IR) мэдрэгчийг ихэвчлэн зайг хэмжихэд ашигладаг боловч объектыг илрүүлэхэд ашиглаж болно. Олон тооны IR мэдрэгчийг Arduino-д холбосноор та үүсгэж болно хулгайн дохиолол.

Тойм

Хэт улаан туяаны (IR, IR) мэдрэгчийг ихэвчлэн зайг хэмжихэд ашигладаг боловч объектыг илрүүлэхэд ашиглаж болно. IR мэдрэгч нь хэт улаан туяаны дамжуулагч ба хэт улаан туяаны хүлээн авагчаас бүрдэнэ. Хүлээн авагч нь тусгалыг илрүүлэх үед дамжуулагч нь хэт улаан туяаны импульс ялгаруулдаг. Хэрэв хүлээн авагч тусгалыг илрүүлсэн бол энэ нь мэдрэгчийн өмнө тодорхой зайд объект байгаа гэсэн үг юм. Хэрэв тусгал байхгүй бол объект бас байхгүй.

Энэ төсөлд бидний ашиглах IR мэдрэгч нь тодорхой хүрээнд тусгалыг илрүүлдэг. Эдгээр мэдрэгчүүд нь IR цацраг мэдрэгч рүү буцаж ирэх өнцгийг илрүүлдэг жижиг шугаман цэнэгтэй төхөөрөмжтэй (CCD). Доорх зурагт үзүүлснээр мэдрэгч нь хэт улаан туяаны импульсийг сансар огторгуйд дамжуулдаг бөгөөд мэдрэгчийн өмнө объект гарч ирэхэд импульс нь тухайн объект болон мэдрэгчийн хоорондох зайтай пропорциональ өнцгөөр мэдрэгч рүү буцаж тусдаг. Мэдрэгч хүлээн авагч нь өнцгийг илрүүлж, гаргадаг бөгөөд энэ утгыг ашиглан та зайг тооцоолж болно.

Arduino-д хэд хэдэн IR мэдрэгчийг холбосноор бид энгийн хулгайн дохиолол хийх боломжтой. Бид хаалганы хүрээн дээр мэдрэгч суурилуулах бөгөөд мэдрэгчийг зөв тохируулснаар хэн нэгэн хаалгаар орж ирэхийг илрүүлэх боломжтой. Ийм зүйл тохиолдоход IR мэдрэгчийн гаралт дээрх дохио өөрчлөгдөх бөгөөд бид Arduino ашиглан мэдрэгчийн гаралтыг байнга уншиж энэ өөрчлөлтийг илрүүлэх болно. В энэ жишээ IR мэдрэгчийн гаралтын уншилт 400-аас хэтэрсэн үед хаалгаар объект дамждаг гэдгийг бид мэднэ. Энэ тохиолдолд Arduino дохиолол өгөх болно. Сэрүүлгийг дахин тохируулахын тулд хэрэглэгч товчлуурыг дарж болно.

Бүрэлдэхүүн хэсгүүд

  • 2 x IR зайны мэдрэгч;
  • 1 x Arduino Mega 2560;
  • 1 x дуут дохио;
  • 1 х товчлуур;
  • 1 x 470 ом эсэргүүцэл;
  • 1 x NPN транзистор;
  • үсрэгчид.

Холболтын диаграм

Энэ төслийн диаграммыг доорх зурагт үзүүлэв. Хоёр IR мэдрэгчийн гаралт нь A0 ба A1 зүүтэй холбогдсон байна. Нөгөө хоёр зүү нь 5V ба GND-д холбогдсон. 12 вольтын дуугаралт нь транзистороор дамжуулан 3-р зүү рүү холбогдсон бөгөөд дохиололыг унтраах товчлуур нь 4-р зүүтэй холбогдсон байна.


Доорх зурган дээр бид энэхүү туршилтанд мэдрэгчийг хаалганы хүрээ рүү хэрхэн наасан болохыг харуулж байна. Мэдээжийн хэрэг, байнгын ашиглалтын тохиолдолд та мэдрэгчийг өөрөөр суурилуулах болно.


Суурилуулалт

  1. Arduino хавтангийн 5V ба GND зүүг мэдрэгчүүдийн тэжээлийн болон GND зүүтэй холбоно. Мөн та тэдгээрийг гаднаас эрчим хүчээр хангах боломжтой.
  2. Мэдрэгчийн гаралтын утсыг Arduino хавтангийн A0 ба A1 зүү рүү холбоно.
  3. Arduino-ийн 3-р зүүг транзисторын сууринд 1К резистороор холбоно.
  4. Транзисторын коллекторт 12 В хүчдэл өгнө.
  5. 12V дуут дохионы эерэг утсыг ялгаруулагчтай, сөрөг утсыг газрын төмөр замд холбоно.
  6. 4-р зүүг 5V-д товчлуураар холбоно уу. Аюулгүй байдлын үүднээс өндөр гүйдлийн урсгалаас зайлсхийхийн тулд нэмэлт жижиг резистороор дамжуулан үүнийг хийх нь хамгийн сайн арга юм.
  7. USB кабелиар дамжуулан Arduino хавтанг компьютерт холбож, Arduino IDE ашиглан програмыг микроконтроллерт байршуулна уу.
  8. Arduino хавтанг цахилгаан тэжээл, зай эсвэл USB кабель ашиглан асаана уу.

Код

const int дуугаралт = 3; // 3-р зүү нь дуугаралтын гаралт const int товчлуур = 4; // 4-р зүү нь товчлуурыг хүчингүй болгох оролт юм () (pinMode (дуугаралт, OUTPUT); // pinMode (товчлуур, INPUT); // pin 4-ийг оролтод тохируулна) хүчингүй хүрд () (/ / хоёр мэдрэгчийн гаралтыг уншиж, үр дүнг босготой харьцуулна уу int sensor1_value = analogRead (A0); int sensor2_value = analogRead (A1); if (sensor1_value> 400 || sensor2_value> 400) (white (үнэн)) (digitalWrite (buzzer)) , HIGH) ; // сэрүүлгийг идэвхжүүлэх (digitalRead (товчлуур) == HIGH) тасрах;)) өөр (digitalWrite (дуугаралт, LOW); // сэрүүлгийг идэвхгүй болгох))

Видео