Агуулгын хүснэгт:

Одоо байгаа мэдрэгчийг ашигладаг Arduino утасгүй дохиоллын систем: 9 алхам (зурагтай)
Одоо байгаа мэдрэгчийг ашигладаг Arduino утасгүй дохиоллын систем: 9 алхам (зурагтай)

Видео: Одоо байгаа мэдрэгчийг ашигладаг Arduino утасгүй дохиоллын систем: 9 алхам (зурагтай)

Видео: Одоо байгаа мэдрэгчийг ашигладаг Arduino утасгүй дохиоллын систем: 9 алхам (зурагтай)
Видео: 2021 - 2022 ХАМГИЙН ШИНЭЧИЛЭГ ХУВИЙН 50 ТЭЭВР 2024, Долдугаар сарын
Anonim
Одоо байгаа мэдрэгчийг ашиглан Arduino утасгүй дохиоллын систем
Одоо байгаа мэдрэгчийг ашиглан Arduino утасгүй дохиоллын систем
Одоо байгаа мэдрэгчийг ашиглан Arduino утасгүй дохиоллын систем
Одоо байгаа мэдрэгчийг ашиглан Arduino утасгүй дохиоллын систем
Одоо байгаа мэдрэгчийг ашиглан Arduino утасгүй дохиоллын систем
Одоо байгаа мэдрэгчийг ашиглан Arduino утасгүй дохиоллын систем
Одоо байгаа мэдрэгчийг ашиглан Arduino утасгүй дохиоллын систем
Одоо байгаа мэдрэгчийг ашиглан Arduino утасгүй дохиоллын систем

Хэрэв танд одоо байгаа 433Mhz эсвэл 315Mhz утасгүй дохиоллын мэдрэгч байгаа бол энэ төслийг хагас цагийн дотор 20.00 долларын өртөгөөр барьж болно.

Энэ нь хэт ягаан туяаны хөдөлгөөн мэдрэгч, зэгс унтраалга гэх мэт утасгүй дохиоллын мэдрэгчтэй, онлайнаар хялбар, хямд зарагдах цоо шинэ төсөл байж болох юм. PT2262 эсвэл EV1527 кодчилол ашигладаг 433Mhz эсвэл 315Mhz мэдрэгчийг хайхад л болно.

Над шиг утасгүй мэдрэгч бүхий GSM/2G дохиоллын системийг худалдаж аваад сэтгэл хангалуун байсан олон хүмүүс байдаг гэдэгт би итгэлтэй байна, гэхдээ миний амьдарч буй газар 2G/GSM сүлжээг унтраахад надад хэрэгтэй дохиоллын систем үлдсэн. програм хийхээ больсон, тэр байтугай цагийг нь ч тогтоосонгүй. Нэг өдөр би сэрүүлгээ дахин ажиллуулахын тулд юу хийж чадах вэ гэж бодож байтал Arduino мэдрэгчээс дохио хүлээн авч чадах эсэхийг шалгах нь надад тохиолдсон юм. Би санаанд оромгүй https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ дээр бүдэрч, зарим туршилт хийсний дараа одоо байгаа мэдрэгчүүдээсээ дохио хүлээн авах боломжтой болохыг олж мэдэв. Би одоо байгаа сэрүүлгээ орлуулж чадахуйц дохиоллын системийг бий болгох процессыг эхлүүлсэн бөгөөд үүнээс гадна илүү их функцтэй болно. Хуучин сэрүүлэгтэй холбоотой асуудлуудын нэг нь 25 мэдрэгчийн аль нь унтарсныг яг таг мэддэггүй байсан бөгөөд миний шинэ дохиоллын төхөөрөмжид LCD дэлгэц нэмж оруулснаар одоо яг ямар мэдрэгч идэвхжсэнийг харуулсан текстийг LCD дээр авдаг. Шинэ сэрүүлгийг одоо байгаа утасгүй түлхүүр төхөөрөмжүүдээр гараар зэвсэглэж болох бөгөөд өдрийн цагаар автоматаар зэвсэглэх, зэвсэглэх боломжийг олгодог бодит цагтай.

Хангамж

Эдгээр хэсгүүдийн зөв хувилбарыг ашиглахын тулд нэмэлт тэмдэглэлийг үзнэ үү.

Arduino Uno эсвэл үүнтэй төстэй

Arduino -д зориулсан 433 эсвэл 315 МГц -ийн хүлээн авагч модуль

Arduino -д зориулсан DS3231 бодит цагийн цаг модуль

Arduino -д зориулсан I2C 16x2 LDC модуль

Утасгүй дохиоллын зэгс унтраалга, хөдөлгөөн мэдрэгч, алсын товчлуурыг хүссэнээрээ тохируулна

Пьезо дуугаруулагч

LED ба 220 ом эсэргүүцэл

Breadboard (заавал биш боловч санал болгож байна)

Arduino -ийн тохиромжтой цахилгаан хангамж

Холбогч утас гэх мэт

Arduino IDE суулгасан компьютер

Arduino -ийн үндсэн мэдлэг

Алхам 1: хангамж

Хангамж
Хангамж
Хангамж
Хангамж
Хангамж
Хангамж

Энэхүү төсөлд танд хэрэгтэй хангамжийн зарим зургууд

Алхам 2: Зурагт үзүүлсэн шиг Ardunio болон модулиудыг холбоно уу

Зурагт үзүүлсэн шиг Ardunio болон модулиудыг утсаар холбоно уу
Зурагт үзүүлсэн шиг Ardunio болон модулиудыг утсаар холбоно уу

Ардуино ба дэлхийн 5 -р зүү хооронд пьезо

LED нь Arduino -ийн 8 -р зүү ба 220 омын эсэргүүцэлтэй, дараа нь дэлхий рүү

433 эсвэл 315 МГц -ийн хүлээн авагч, VCC -ээс 5V хүртэл, GND -ийг газардуулж, Arduino -ийн pin2 -ийн 2 өгөгдлийн хавчаарын аль нэг нь

I2C 16X2 LCD модуль VCC 5V, GND газардуулгатай, SCL SDA зүү нь Arduino -ийн SCL SDA -тай (A5 зүү нь SCL, A4 зүү нь SDA)

DS3231 RTC модуль VCC 5V, GND газардуулгатай, SCL SDA зүү нь Arduino -ийн SCL SDA -тай холбогддог (ихэнх Arduino -ийн GND ба AREF тээглүүрүүдийн дээр байрладаг 2 -р багц байдаг)

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

Алхам 3: Шаардлагатай номын санг Arduino IDE -д нэмнэ үү

Arduino IDE -д шаардлагатай номын санг нэмнэ үү
Arduino IDE -д шаардлагатай номын санг нэмнэ үү
Arduino IDE -д шаардлагатай номын санг нэмнэ үү
Arduino IDE -д шаардлагатай номын санг нэмнэ үү
Arduino IDE -д шаардлагатай номын санг нэмнэ үү
Arduino IDE -д шаардлагатай номын санг нэмнэ үү

Сэрүүлгийг ажиллуулах Arduino Sketch нь Arduino IDE дээр анх суулгаагүй байгаа зарим номын санг ашигладаг.

RCSwitch номын санг Arduino IDE -д нэмэхийн тулд. Дээд цэснээс Arduino IDE -ийг нээгээд "Ноорог" -ыг сонгоод дараа нь доош нь уншаад "Номын сан оруулах" -ыг сонгоно уу, дараагийн уналтаас "Номын санг удирдах" -ыг сонгоно уу. Дараа нь "Хайлтаа шүүх" хайрцагт "RCSW" гэж бичээд дараа нь "rc-switch by sui77" -г суулгах дээр дарна уу.

Номын сан нэмэх талаархи дэлгэрэнгүй зааврыг https://www.arduino.cc/en/guide/libraries дээрээс авна уу.

Бид тэнд байх хугацаандаа Time, TimeAlarms, DS1307RTC, LiquidCrystal_I2C нэртэй номын сангуудыг дээр дурдсантай адилаар нэмж оруулах шаардлагатай боловч шинэ номын сан бүрийн нэрийг хайж, суулгаж өгөх хэрэгтэй. Аль номын санг ашиглахаа мэдэхгүй байгаа бол дээрх дэлгэцийн агшинг үзнэ үү.

DS3231 бодит цагийн цаг нь DS1307RTC номын сантай нийцдэг бөгөөд ашигладаг.

Алхам 4: Дараа нь бид таны мэдрэгчийн кодыг авах хэрэгтэй

Дараа нь бид таны мэдрэгчийн кодыг авах хэрэгтэй
Дараа нь бид таны мэдрэгчийн кодыг авах хэрэгтэй
Дараа нь бид таны мэдрэгчийн кодыг авах хэрэгтэй
Дараа нь бид таны мэдрэгчийн кодыг авах хэрэгтэй

Би доорхи Arduino кодын загварыг өгсөн боловч та мэдрэгч бүрийнхээ утгыг олж код руу буулгах хэрэгтэй болно.

Эдгээр хоёр сайт дээр эдгээр кодыг хэрхэн олж авах талаар өргөн мэдээлэл байдаг;

www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/

github.com/sui77/rc-switch/wiki

Гэсэн хэдий ч энд миний товчилсон хувилбар байна;

Таны мэдрэгч болон алсын товчлууруудын илгээж буй кодыг авахын тулд Arduino -г 1 -р алхамд угсарсан байдлаар USB кабелиар компьютерт холбож Arduino IDE -ийг нээнэ үү. Дараа нь Arduino IDE дээр "Файл" доош унах руу очоод "Жишээнүүд" рүү очоод "RCSWITCH" -ийг олтол үлгэр жишээ зургийн жагсаалтыг доош гүйлгээд "ReceiveDemo_Advanced" ноорогыг сонгоод Arduino руу байршуулна уу. Ноорогыг амжилттай байршуулсны дараа Arduino IDE -ийн цуваа дэлгэцийг нээж, компьютер дээрээ USB -ээр холбосон хэвээр байна. Код авахыг хүссэн мэдрэгчүүдийнхээ эхнийхийг асаагаарай, RCSwitch -ийн гаралт цуваа дэлгэцийн цонхонд гарч ирнэ. Энэ төслийн хувьд бид дэлгэцийн зураг 2 -д онцолсон аравтын бутархай кодыг хайж байна. Та мэдрэгчийг хамгийн олон удаа харуулдаг аравтын бутархай утгыг хайж олохын тулд олон удаа идэвхжүүлэх шаардлагатай болно, заримдаа өөр өөр утгууд жинхэнэ утгатай холилдох болно. санамсаргүй радио долгион эсвэл ижил давтамжтай ажилладаг бусад төхөөрөмжүүдийн хөндлөнгийн нөлөөгөөр.

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

Алхам 5: Arduino кодын загвар

Доорх нь миний Arduino кодын Wireless_Alarm нэртэй.ino файлын хуулбар юм. Та үүнийг дарж Arduino IDE дээр нээгдэх ёстой. Би програмист биш, миний кодыг Arduino IDE -ээс олж авсан жишээнүүдээс хэсэгчлэн цуглуулдаг, энэ нь тийм ч гоёмсог биш боловч удаан хугацаанд найдвартай ажилладаг.

Өөрийн мэдрэгчийн кодуудыг оруулахын тулд өөрчлөлт хийснийхээ дараа ноорогоо дахин хадгалахаа бүү мартаарай.

Алхам 6: 5 -р алхамаас авсан кодуудаа Arduino Sketch загвар дээр буулгана уу

Одоо таны ашиглаж буй мэдрэгч болон алсын түлхүүрийн кодыг тохируулах алхамууд.

Хэрэв та IDE дээрээ Wireless_Alarm ноорог нээвэл 111 -р мөрийг харах болно.

if (mySwitch.getReceivedValue () == 115166236) // Фоб гарын товчлуурын код

Одоо байгаа кодын 115166236 гэж бичсэн бол та энэ дугаарыг 5 -р алхам дээр бичсэн алсын түлхүүрийн гарын товчлуурын аравтын кодоор солих хэрэгтэй.

Жишээлбэл, хэрэв та 5 -р алхамд аравтын бутархай 1154321 авсан бол 111 -р мөрийг одоо уншихаар өөрчлөх болно;

if (mySwitch.getReceivedValue () == 1154321) // Фоб гарын товчлуурын код

125 -р мөрөнд ижил процедурыг дагана уу.

if (mySwitch.getReceivedValue () == 115166234) // Фоб зэвсэг хураах товчлуурын код

5 -р алхам дээр бичсэн алсын удирдлагын түлхүүр унтраах товчлуурын кодыг 115166234 гэж орлуулна уу.

Хэрэв та зэвсэглэх, зэвсэглэхийн тулд олон алсын удирдлагатай фоб ашиглахыг хүсч байвал 111 -ээс 136 хүртэлх мөрүүдийг шаардлагатай хэмжээгээр нь хуулж, буулгаж аваарай. ноорог ажиллаж байна.

Одоо 140 -р шугамын зурган дээрх дохиоллын мэдрэгчийг кодлох болно

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Сигнал илгээгчийн оффисын шүүгээний үйлдэл

1151640 -ийг гаргаж аваад дохиоллын мэдрэгчийнхээ аравтын бутархайг оруулна уу.

Дараа нь 158 мөрөнд.

lcd.print (F ("Оффисын шүүгээ")); // ямар мэдрэгч идэвхжсэнийг мэдэхийн тулд lcd руу мессеж хэвлэх (мөн очиж хулгайчийг олоорой:)

Оффисын шүүгээг энэ мэдрэгчийн LCD дээр харуулахыг хүссэн зүйл болгон өөрчил. Жишээлбэл, хэрэв та гал тогооны өрөөний хаалгыг уншихыг хүсвэл мөрийг ингэж харагдуулна уу;

lcd.print (F ("Kitchendoor")); // ямар мэдрэгч идэвхжсэнийг мэдэхийн тулд lcd руу мессеж хэвлэх (мөн очиж хулгайчийг олоорой:)

Нэр нь 16 тэмдэгтээс хэтрэхгүй байх ёстой.

165-187 -р мөрийн хооронд 187 -ийн доор байгаа мөрөнд шаардлагатай олон удаа хуулж буулгах загвар байна. MySwitch.getReceivedValue () == - ийн ард байгаа тоог 5 -р алхам дээр бичсэн бусад мэдрэгчийнхээ аравтын бутархайгаар солино. мөн lcd.print дахь "" доторх нэрийг өөрчлөх (F ("sensornamehere")); мэдрэгчээ өгөхийг хүссэн нэр рүү.

Хэрэв та дохиололоо зэвсэглэх, зэвсэглэхдээ алсын түлхүүрийг ашиглаагүй бол 111-136-р мөрийг үл тоомсорлож, эсвэл хүсээгүй мөр бүрийн эхэнд // тавьж болно, Arduino үүнийг уншихгүй.

Өөрчлөлт хийсний дараа файлыг хадгалахаа бүү мартаарай.

Алхам 7: Өөрчлөгдсөн.ino -г Arduino дээрээ татаж аваад туршиж үзээрэй

Өөрчлөгдсөн.ino -г Arduino дээрээ татаж аваад туршиж үзээрэй
Өөрчлөгдсөн.ino -г Arduino дээрээ татаж аваад туршиж үзээрэй
Өөрчлөгдсөн.ino -г Arduino дээрээ татаж аваад туршиж үзээрэй
Өөрчлөгдсөн.ino -г Arduino дээрээ татаж аваад туршиж үзээрэй
Өөрчлөгдсөн.ino -г Arduino дээрээ татаж аваад туршиж үзээрэй
Өөрчлөгдсөн.ino -г Arduino дээрээ татаж аваад туршиж үзээрэй

Arduino компьютерт USB -ээр холбогдсон хэвээр байгаа бол ноорогоо Arduino самбар дээр байршуулна уу. Байршуулалт амжилттай дууссаны дараа LCD дэлгэц дээр "Зэвсэггүй болсон тухай дохиолол" гэсэн үгийг унших ёстой. Алсын удирдлага дээрх гар товчлуурыг дарахад LCD дэлгэц дээр "Сэрүүлэг асаалттай байна" гэсэн бичигтэй байх ёстой бөгөөд LED нь асаалттай байх ёстой бөгөөд энэ нь зэвсэглэсэн гэдгийг танд мэдэгдэх болно, одоо мэдрэгчийг зэвсэглэж байхдаа асаагаарай, LCD дохиоллын дараа цагийн тэмдэгтэй байх ёстой. мэдрэгчийн байршил, хэрэв та зэвсэг хураах товчлуурыг дарахгүй бол дуут дохио 2 минутын турш дуугарах ёстой. Хэрэв та энэ үр дүнг авахгүй бол 5 -р алхам дээр авсан кодууд болон өмнөх алхамд оруулсан өөрчлөлтүүдээ дахин шалгаарай, мөн бүх бүрэлдэхүүн хэсгүүдийн утсыг дахин шалгана уу. Хэрэв LCD огт уншаагүй бол LCD модулийн ар талд тодосгогч тохируулга хийгддэг. Хэрэв LCD уншихгүй хэвээр байвал тодосгогчийг зөв тохируулсны дараа зургийн 12 -р мөрөнд LCD хаягийг 0x3f -ээс 0x27 болгон өөрчилж үзээрэй. LCD -ийн алдааг олж засварлах I2C LCD заавар

Алхам 8: RTC модулийн цагийг тохируулах, гар, зэвсэггүй болгох хугацааг өөрчлөх

Таны RTC -ийг аль хэдийн зөв цагтаа тохируулсан гэж найдаж байна, гэхдээ IDE -ийг нээгээгүй бол "Файл" -ыг сонгоод "Жишээ" дээр дарж "DS1307RTC" руу гүйлгээд "SetTime" эскизийг сонгоод ноорогоо татаж аваарай. Arduino ба энэ нь бодит цагийн цагийг таны компьютерээс авах цагийг тохируулах болно. Дараа нь та Wireless_Alarm -ийн ноорог зургийг Arduino дээрээ дахин ачаалах хэрэгтэй болно.

Миний өгсөн Wireless_Alarm.ino нь сэрүүлгийг анхдагчаар орой бүр 22.15 цагт автоматаар асааж, өглөө бүр 6.00 цагт зэвсэглэх болно. Эдгээр цагийг өөрчлөхийн тулд Sketch -ийг 71 ба 72 -р мөрөнд өөрчилнө үү. Цаг нь Alarm.alarmRHe, HH, MM, SS форматаар давтагдсаны дараа хаалтанд байна. үүнийг өөрт тохирсон цаг болгон өөрчил.

Сэрүүлэг.алх Дахин давтах (6, 00, 0, Өглөөний дохиолол); // АГААРГҮЙ болгох цаг

Сэрүүлэг.алх давтах (22, 15, 0, оройн дохиолол); // ARM цаг

Тиймээс зэвсэг хураах цагийг 9.15, гараа 17.30 болгож өөрчлөхөд код иймэрхүү харагдах болно

Сэрүүлэг.алх Дахин давтах (9, 15, 0, Өглөөний дохиолол); // АРГААРАХ цаг

Сэрүүлэг.аларм давтах (17, 30, 0, оройн дохиолол); // ARM цаг

Хэрэв та сэрүүлгийг зэвсэглэж, зэвсэггүй болгохыг хүсэхгүй байгаа бол 2 шугамын өмнө // -г автоматаар тавь.

//Alarm.alarmReat(6, 00, 0, Өглөөний дохиолол); // АРГААРАХ цаг

//Alarm.alarmReat(22, 15, 0, EveningAlarm); // зэвсгийн цаг

Сэрүүлэг дуугарах цагийг 22 -р мөрийг өөрчлөх замаар өөрчилж болно

const урт интервал = 120000; // дохиолол дуугарах урт хугацааны миллис саатал

Интервал нь миллисекунд байдаг тул 120000 = 120 секунд, 120000 -г 30000 болгож өөрчлөхөд дохиолол 30 секундын турш дуугарах болно.

Цахилгаан дохио, строб гэрэл, өндөр дуут дохио гэх мэт долгионыг 7 эсвэл 9 -р зүүгээр холбож, дээр дурдсанчлан "интервал" хүртэл ажиллах болно. Arduino зүү дээрх хамгийн их ачаалал 40 мА -аас хэтрэхгүй байх ёстой гэдгийг санаарай.

Алхам 9: Нэмэлт тэмдэглэл

Arduino -д 433 эсвэл 315 МГц -ийн хүлээн авагч модулийг сонгохдоо ашиглах гэж буй дохиоллын мэдрэгчийнхээ давтамжийг сонгох хэрэгтэй. Хамгийн сайн гүйцэтгэлтэй байхын тулд жижиг спираль антентай модулийг худалдаж авахыг санал болгож байна, өөрөөр хэлбэл 17.3 мм урт шулуун утастай антенн нь гүйцэтгэлийг нэмэгдүүлдэг.

16x2 LCD модулийн хувьд та энд өгсөн заавар, кодыг ашиглахын тулд 4 зүү I2C LCD ашиглах ёстой, үүнийг 16 зүү стандарт LCD -ээр хийх боломжтой боловч энд байгаа утас эсвэл кодтой ажиллахгүй болно.

Утасгүй дохиоллын унтраалга, хөдөлгөөн мэдрэгч, алсын товчлуур нь 433Mhz эсвэл 315Mhz байх ёстой бөгөөд энэ нь таны ашиглах гэж буй хүлээн авагчтай таарч байх ёстой бөгөөд PT2262 эсвэл EV1527 кодчиллыг ашиглах ёстой.

Сэрүүлгийг өргөтгөх боломжтой, дасан зохицох боломжтой, би мэдрэгчийг асаах үед бичлэг хийх SD картыг аль хэдийн нэмсэн, LCD товчлуурыг дарахад л асахаар тохируулж, 100 дБ -ийн дуут дохиог нэмж оруулсан боловч нийтлэлийг хадгалахын тулд энд дэлгэрэнгүй мэдээллийг оруулаагүй болно. аль болох богино бөгөөд энгийн. Энэхүү сэрүүлгийн талаар хийсэн ажлаа хуваалцах нь бусад хүмүүст ашигтай байх болно гэж найдаж байна.

Ямар ч асуултанд хариулахад баяртай байна.

Баярлалаа.

Зөвлөмж болгож буй: