Ардуино дэлгэцээр дохиоллын хяналт. Гэрийн дохиолол эсвэл хөдөлгөөн мэдрэгч, LCD дэлгэц ашиглан Arduino. Arduino модуль гэж юу вэ

Өнөөдөр бид хэрхэн ашиглах талаар ярих болно Arduinoцуглуулах хамгаалалтын систем... Манай "хамгаалагч" нэг хэлхээ хамгаалж, нэг дуут дохиог удирдана.

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

Хялбаршуулсан, төхөөрөмжийн үйл ажиллагааны зарчим дараах байдалтай байна (Зураг 1). Цахилгааныг асаасны дараа төхөөрөмж ажиллах горимд орж, зэвсэглэхийг хүлээнэ. Зэвсэглэх, зэвсэглэх ажлыг нэг товчлуураар гүйцэтгэдэг. Аюулгүй байдлыг нэмэгдүүлэхийн тулд энэ товчлуурыг хамгаалалттай газар (сейф эсвэл хайрцаг) дотор байрлуулах нь дээр. Хамгаалалтын горимыг асаахаас өмнө хаалгыг бага зэрэг онгойлгох ёстой. Хамгаалалтын горим асаалттай үед (товчлуураар) электрон хэлхээтаныг өрөөний хаалгыг хаах хүртэл хүлээнэ (аюулгүй хаалга, хайрцагны таг гэх мэт).

Ямар ч төрлийн хязгаарлагчийг хаалган дээр (эсвэл хаалга) суурилуулсан байх ёстой, дараа нь илүү дэлгэрэнгүй. Хаах (эсвэл нээх) замаар хязгаарын унтраалга нь хамгаалагдсан хэлхээг хаасан тухай төхөөрөмжид мэдэгдэх бөгөөд төхөөрөмж зэвсэгт горимд шилжих болно. Систем нь зэвсэгт горимд шилжсэн тухай хоёр хүнээр мэдэгдэнэ богино дохио(машины дохиололтой адил). Энэ горимд төхөөрөмж нь хаалганы нээлхийг "барьдаг". Хаалгыг онгойлгосны дараа систем хэдхэн секундын турш (энэ нь тохируулж болох утга, өрөөнүүдийн хувьд арав орчим секунд, нэг эсвэл хоёр хайрцагт) хүлээнэ, хэрэв ийм зүйл болохгүй бол дохиолол асна. Алгоритм ба хэлхээ нь зөвхөн гэрийг бүрэн задалж, цахилгааныг унтрааснаар дуут дохиог унтрааж болохуйцаар хийгдсэн болно.

Төхөөрөмж хамгаалалтын систем маш энгийн (зураг 2). Төлбөрийн төвд Arduino... Хязгаарлалтын унтраалга нь татах резистороор дамжуулан ердийн товчлуур шиг холбогддог. Би хязгаарын унтраалга дээр тусад нь ярих болно. Тэд ихэвчлэн хаалттай, ихэвчлэн нээлттэй байдаг. Та ердийн товчлуурыг хязгаарлагч болгон асааж болно, зөвхөн энгийн товчлуурын хөдөлгөөн маш том, хаалганы тоглох чадвар ихэвчлэн их байдаг. Тиймээс хаалгатай товчлуурыг эвдэхгүйн тулд ямар нэгэн товчлуур дарагчийг гаргаж ирэх шаардлагатай. За, залхуурал биш бол, дараа нь та дэлгүүрт алхаж, соронзон унтраалга (зэгс шилжүүлэгч) худалдан авч болно (Зураг. 3), энэ нь тоос шороо, шороо айдаггүй.

Машины дохиоллын хязгаарын унтраалга нь бас тохиромжтой (Зураг 4). Програм нь зэгсэн шилжүүлэгчийн хувьд бичигдсэн гэдгийг тэмдэглэх нь зүйтэй. Хаалга хаагдсан үед түүний контакт хаалттай байна. Хэрэв та машины дохиоллын унтраалга ашигладаг бол хаалга хаагдах үед нээлттэй байх магадлалтай бөгөөд кодын зохих газруудад 0-ээс 1-ээс эсрэгээр өөрчлөх шаардлагатай болно.

Дуут дохионы хувьд би Беларусийн үйлдвэрлэлийн PKI-1 IVOLGA дуу чимээг ашиглахыг санал болгож байна (Зураг 5). Нийлүүлэлтийн хүчдэл 9 - 15 В, ажиллах гүйдэл 20 - 30 мА. Энэ нь үүнийг батерейны хүчээр ашиглах боломжийг олгодог. Үүний зэрэгцээ энэ нь 95 - 105 дБ-ийг "өгдөг".

Крона батерейны ийм шинж чанаруудтай бол хэдэн арван минутын турш дуугарах болно. Би үүнийг интернетээс 110 рублиэр олсон. Тэнд соронзтой зэгс унтраалга нь 30 орчим рублийн үнэтэй байдаг. Автомашины сэлбэг хэрэгслийн дохиоллын унтраалгыг 28 рубльд худалдаж авсан. KT315 транзисторыг ямар ч үсгээр авах эсвэл зохих дамжуулалттай орчин үеийн бага чадлын цахиурын транзистороор сольж болно. Хэрэв нэг дуут дохионы хэмжээ хангалтгүй байвал (хэн мэдэх вэ, магадгүй та олон километрийн турш сонсохыг хүсч магадгүй) та хэд хэдэн сиренаг зэрэгцүүлэн холбож эсвэл илүү хүчирхэг дохиог авч болно, зөвхөн энэ тохиолдолд транзисторыг илүү олон дохиогоор солих шаардлагатай. хүчирхэг нэг (жишээлбэл, танил транзисторын угсралт ULN2003). Зэгсэн унтраалга ба дуут дохиог холбох холбогчийн хувьд би аудио / видео төхөөрөмжийн хамгийн энгийн холбогчийг ашигласан - радио зах зээл дээрх үнэ 5 рубль байна. хосын хувьд.

Төхөөрөмжийн биеийг хуванцар эсвэл фанераас нааж болно; хэрэв ноцтой объект хамгаалагдсан бол түүнийг металлаар хийсэн нь дээр. Найдвартай байдал, аюулгүй байдлыг нэмэгдүүлэхийн тулд батерей эсвэл аккумляторыг хайрцагны дотор байрлуулах хэрэгтэй.

Хөтөлбөрийн кодыг хялбарчлахын тулд эрчим хүч хэмнэх элемент ашиглаагүй бөгөөд батерей нь удаан хугацаанд хангалттай биш юм. Та кодыг оновчтой болгох, эсвэл бүр илүү сайн бол тасалдлын үйл явдлыг зохицуулах, MK ичээнд оруулах замаар үүнийг эрс өөрчилж болно. Энэ тохиолдолд цуврал (9 В) холбосон хоёр квадрат батерейгаас цахилгаан тэжээл хэдэн сарын турш үргэлжлэх ёстой.

Одоо код

// тогтмолууд
const int товчлуур = 12; // товчлуурын зүү
const int gerkon = 3; // зэгсэн шилжүүлэгчийн зүү
const int sirena = 2; // дуут дохионы хяналтын зүү
const int led = 13; // заагч зүү
// хувьсагч
int товчлуурState = 0; // товчлуурын төлөв
int gerkonState = 0; // зэгсэн шилжүүлэгчийн төлөв
int N = 0; // идэвхгүй болгох товчлуурын тоолуур
хүчингүй тохиргоо () (
// дуут дохио ба заагч удирдлага - гарах
pinMode (сирена, OUTPUT);
pinMode (led, OUTPUT); // товчлуур болон зэгсэн шилжүүлэгч нь оролт юм
pinMode (гэркон, INPUT);
pinMode (товчлуур, INPUT);
}
хүчингүй давталт () (
digitalWrite (led, HIGH);
while (buttonState = = 0) (// товчлуурыг дарах хүртэл хүлээнэ үү
buttonState = digitalRead (товчлуур); // аюулгүй байдлын горимд шилжих
}
digitalWrite (led, LOW);
товчлуурын төлөв = 0; // товчлуурын утгыг дахин тохируулна
while (gerkonState = = 0) (// бид хаалгыг хаах хүртэл гогцоо

}
саатал (500); // :-)
digitalWrite (sirena, HIGH); // Код
саатал (100); // заалтууд
digitalWrite (sirena, LOW); // оруулах
саатал (70); // горим
digitalWrite (sirena, HIGH); // харуул
саатал (100); // сэрэмжлүүлэг
digitalWrite (sirena, LOW); // дуу
байхад (gerkonState = = 1) (// хаалгыг онгойлгохыг хүлээнэ үү
gerkonState = digitalRead (gerkon);
}
хувьд (int i = 0; i<= 5; i++){ // 7,5 секунды на нажатие
buttonState = digitalRead (товчлуур); // нууц товч
if (buttonState = = HIGH) (// keep track of our own - stranger
N = N + 1;
}
саатал (1500); // нууц функц :-)))
}
хэрэв (N> 0) (// хамгийн чухал
digitalWrite (sirena, LOW); // дуут дохиог бүү асаа
}
өөр (
digitalWrite (sirena, HIGH); // эсвэл дуут дохиог асаана уу
}
digitalWrite (led, HIGH); // заагчийг асаах N = 0;
товчлуурын төлөв = 0;
саатал (15000); // дуртай "дамми" нарт сануулга
digitalWrite (led, LOW); // товчлууруудыг сааталгүйгээр дарах (1000);

Сайхан өдөр! Дахин хэлэхэд, Хятадын электрон эд ангиудын олон тойм, ердийнх шиг бүх зүйлийн талаар бага зэрэг, би богино байхыг хичээх болно, гэхдээ энэ нь ажиллах болов уу? Тиймээс тавтай морил GSM дохиолол 700 рубль хүртэл үнэтэй. Сонирхолтой юу? Би "тайрах" гэж гуйж байна!

Эхэлцгээе! Эхлэхээсээ өмнө би үүнийг нэг, цөөн бүрэлдэхүүн хэсэг, илүү бие даасан байдлыг судлахыг зөвлөж байна. Тиймээс, "техникийн даалгавар", дохиололд тавигдах үндсэн шаардлага:

1) Мэдрэгч ажиллах үед мэдэгдэх.
2) Цахилгаан тасарсан тохиолдолд зарим бие даасан байдлыг хангах ёстой.
3) SMS болон дуудлагаар дамжуулан дохиоллын удирдлага.

Сэрүүлэг үүсгэх үйл явц хэдэн сарын турш сунжирч, зарим худалдагчид тэднээс худалдаж авсан эд ангиудыг зарахаа больсон тул хамгийн их буюу хамгийн их тоотой ойролцоо байгаа бусад борлуулагчдын бүтээгдэхүүний холбоосыг шинэчлэх болно. бүтээгдэхүүний борлуулалт болон хамгийн сайн үнэ... Шүүмжийн үнэ нь бичсэн огнооны байдлаар байна.

Танд хэрэгтэй зүйлсийн жагсаалт:

Өөрчлөлтүүдийн жагсаалт

GSM_03_12_2016-14-38.hex- M590 модемтой төхөөрөмжийн тогтмол ажиллагаа.
GSM_05_12_2016-13-45.hex- memtest консол командыг нэмсэн, RAM ашиглалтыг оновчтой болгох.
GSM_2016_12_06-15-43.hex- командын үр дүнгийн гаралтыг консол дээр нэмсэн, санах ойн оновчлол. Агуулга: 49% SRAM.
GSM_2016_12_07-10-59.hex- одоо утасны дугааруудыг зөв нэмж, хассан. Ашигласан: 49% SRAM, 74% Flash санах ой.
GSM_2016_12_07-15-38.hex- A0 зүүтэй холбогдсон хөдөлгөөн мэдрэгчийг холбох чадварыг нэмсэн (энэ тохиолдолд A0 зүүг дижитал болгон ашигладаг). SMS - тушаалуудыг нэмсэн Пирон, PIROff... Ашигласан: 48% SRAM, 76% Flash санах ой.
GSM_2016_12_08-13-53.hex- Одоо хариуд нь SMS мессеж илгээдэггүй командыг амжилттай гүйцэтгэсний дараа төхөөрөмж цэнхэр LED-ээр нэг удаа анивчдаг. Одоо хариуд нь SMS мессеж илгээдэггүй тушаалыг буруу хэрэгжүүлсний дараа төхөөрөмж цэнхэр LED-ээр хоёр удаа анивчдаг. Одоо төхөөрөмжийн параметрүүдийг эхлүүлсний дараа "чимээгүй" горим идэвхжсэн бол (SendSms = 0) төхөөрөмж цэнхэр LED 2 секундын турш хурдан анивчих болно. DeletePhone командын тусламжтайгаар дугаар санах ойноос үргэлж устгагддаггүй байсан алдааг зассан. Ашигласан: 48% SRAM, 78% флаш санах ой.
GSM_2016_12_11-09-12.hex- AddPhone болон DeletePhone консолын командуудыг нэмсэн бөгөөд синтакс нь SMS командтай төстэй. Санах ойг оновчтой болгох. Ашигласан: 43% SRAM, 79% Flash санах ой.
GSM_2017_01_03-22-51.hex- PCF8574 чип дээрх ижил төстэй оролт / гаралтын порт өргөтгөгч, нэмэлт 8 мэдрэгч, түүний дотор зэгсэн унтраалга холбоход зориулсан дэмжлэгийг хэрэгжүүлсэн. Автомат хаяг хайх, автомат модулийн тохиргоо. Мэдрэгчийн стандарт нэр ба тэдгээрийн гох логик түвшинг EditSensor командыг ашиглан өөрчилдөг. Үндсэн мэдрэгчийн (D0 зүү) дохиоллын мессежийн агуулгыг өөрчилсөн "Сэрүүлэг! Үндсэн мэдрэгч!" болон хөдөлгөөн мэдрэгч (зүү A0) “Сэрүүлэг! PIR мэдрэгч!". EditSensor болон I2CScan тушаалуудыг нэмсэн. Ашигласан: 66% SRAM, 92% флаш санах ой.
GSM_2017_01_15-23-26.hex- A6_Mini модемийн дэмжлэг. Гаднах тэжээлийн хангамжийн хяналт (pin D7). WatchPowerOn, WatchPowerOff гэсэн SMS командуудыг нэмсэн. ListConfig, ListSensor консол командуудыг нэмсэн. Одоо SMS команд EditSensor зөв ажиллаж байна. Портын мониторын дибаг хийх гаралт бага зэрэг "буцарсан". Ашигласан: 66% SRAM, 95% Flash санах ой.
GSM_2017_01_16-23-54.hex- Одоо "Мэдээлэл" гэсэн SMS командын хариу зурваст хөдөлгөөн мэдрэгчийн төлөвийг мөн мэдээлж байна. Заримдаа хоосон SMS мессеж илгээдэг алдааг зассан. Одоо төхөөрөмж нь зөвхөн салгах тухай төдийгүй гаднах цахилгаан хангамжийг сэргээх талаар мэдэгддэг. Бүх модемууд "бага чатлаж" эхэлсэн бөгөөд одоо портын дэлгэц нь бага зэрэг цэвэр болсон. Ашигласан: 66% SRAM, 95% Flash санах ой.
GSM_2017_02_04-20-23.hex- "Асаалттай байхыг харах" алдаа зассан. Одоо зэвсгийг унтраасны дараа "сэрүүлгийн зүү" унтарсан байна. Одоо дугаарыг устгасны дараа консол дээр зөв мэдээлэл гарч ирнэ. Заримдаа хоосон SMS мессеж илгээдэг алдааг зассан байх. Ашигласан: 66% SRAM, 90% флаш санах ой.
GSM_2017_02_14-00-03.hex- Одоо SMS мессежийг анхдагч байдлаар илгээж байгаа бөгөөд SendSms параметр нь дахин 1-тэй тэнцүү байна. Одоо үндсэн залгуурын контактууд хаагдах үед (хаалга хаалттай) төхөөрөмж цэнхэр LED 2 секундын турш анивчиж, дохио өгдөг. хэвийн ажилмэдрэгч. Ашигласан: 66% SRAM, 90% флаш санах ой.
GSM_2017_03_01-23-37.hex- WatchPowerOn командыг устгасан. SMS командтай адилхан WatchPowerOff консол командыг нэмсэн. WatchPowerOn1, WatchPowerOn2 командуудыг нэмсэн. WatchPowerOn1 - сэрүүлэг асаалттай бол гадаад тэжээлийн хяналт идэвхждэг, WatchPowerOn2 - гадаад тэжээлийн хяналтыг үргэлж идэвхжүүлдэг. Гадны төхөөрөмжөөр зэвсэглэх, зэвсэглэх функцийг хэрэгжүүлсэн бөгөөд үүний тулд A1 (D15) ба A2 (D16) зүүг ашигладаг. A1 (D15) зүү дээр гарч ирэх үед дохиоллын гар / зэвсгийг унтраа. өндөр түвшин+ 5V эсвэл A2 (D16) зүү дээр бага түвшний GND. A1 (D15) зүүг GND руу, A2 (D16) зүүг + 5V-ээс 20 (10) кОм эсэргүүцэл хүртэл татна. GuardButtonOn болон GuardButtonOff командуудыг нэмсэн. Одоо, зэвсэглэсний дараа улаан LED нь гол зэгс мэдрэгчийн хэлхээний бүрэн бүтэн байдлыг шалгах хүртэл анивчдаг. Хэрэв хэлхээ бүрэн бүтэн байвал улаан LED асна. Ашигласан: 66% SRAM, 95% Flash санах ой.
GSM_2017_03_12-20-04.hex- Одоо консол илүү цэвэр болсон боловч "TestOn" туршилтын горим идэвхжсэн тохиолдолд консол дээр нэмэлт мэдээлэл гарч ирнэ. "Илгээсэн!" Алдааг зассан. Одоо мессеж илгээх тухай мессеж консол дээр зөв харагдаж байна. "Давтан худал дуудлага" гэсэн алдааг зассан. Үлдэгдэл хүсэлт одоо бүх модем дээр зөв ажиллах ёстой. Ашигласан: 67% SRAM, 95% флаш санах ой.
GSM_2017_04_16-12-00.hex- Зассан. Одоо Info болон Money багууд үргэлж хариу SMS илгээх болно. GuardButtonOn командыг GuardButtonOn1 болон GuardButtonOn2 командуудаар сольсон. Ашигласан: 67% SRAM, 99% флаш санах ой.
GSM_2017_04_21-09-43.hex - ашиглахыг зөвлөдөггүй, зөвхөн туршилтын хувьд, тодорхойлсон алдаануудад баярлалаа :) - Одоо sendsms параметр нь цахилгаан сүлжээг хянах SMS мессеж илгээхэд нөлөөлөхгүй. Зэвсэглэх үед саатлыг хариуцдаг DelayBeforeGuard SMS командыг нэмсэн бөгөөд утга нь 255 секундээс хэтрэхгүй. Мэдэгдэл илгээх саатал, мэдрэгч асаалттай үед "сэрүүлгийн зүү"-ийг идэвхжүүлэх үүрэгтэй DelayBeforeAlarm SMS командыг нэмсэн бөгөөд утга нь 255 секундээс хэтрэхгүй. ClearSMS командуудыг устгасан, одоо мессежийг хүлээн авмагц автоматаар устгадаг. Ашигласан: 68% SRAM, 100% флаш санах ой.
GSM_2017_04_22-20-42.hex- Олон алдааг зассан. ClearSMS командууд програм хангамжид дахин байна. Санах ойг оновчтой болгох. Ашигласан: 68% SRAM, 98% флаш санах ой.
GSM_2017_04_23-17-50.hex- Одоо балансын хүсэлт бүх модем дээр зөв ажиллах ёстой. Гадны төхөөрөмжөөр зэвсэглэх, унтраах нь одоо зөв ажиллаж байна. Мэдээллийн командын SMS хариу мессеж хоосон байж болохгүй. Санах ойг оновчтой болгох. Ашигласан: 68% SRAM, 98% флаш санах ой.
GSM_2017_04_24-13-22.hex- Одоо консолын командуудыг шилжүүлж байна GSM модультуршилтын горим идэвхжсэн тохиолдолд л хийгдэнэ. Одоо SMS командууд болон консолын командуудад хуваагдах зүйл байхгүй, одоо байгаа бүх командыг SMS болон консолоор дамжуулан илгээх боломжтой. Info командын алдааг зассан байх. Санах ойг оновчтой болгох. Ашигласан: 68% SRAM, 94% флаш санах ой.
GSM_2017_04_25-20-54.hex- ListConfig команд нь сүүлийн үйл явдлын утгыг өөрчилсөн алдааг зассан. Одоо косолоор команд оруулахад шаардлагагүй SMS мессеж илгээгдэхгүй. Info командын алдааг зассан байх. Санах ойг оновчтой болгох. Ашигласан: 66% SRAM, 94% флаш санах ой.
GSM_2017_04_30-12-57.hex- SMS мессеж илгээх, Info командын хариуг бүрдүүлэх үед консол руу нэмэлт мэдээллийн гаралтыг түр идэвхжүүлсэн. Info командын алдааг зассан байх. Санах ойг оновчтой болгох. Ашигласан: 66% SRAM, 92% флаш санах ой.
GSM_2017_05_06-11-52.hex- DelayBeforeAlarm функцээр зассан. Ашигласан: 66% SRAM, 93% флаш санах ой.
GSM_2017_05_23-21-27.hex- Консолын мэдээллийн гаралтыг бага зэрэг өөрчилсөн. 0x38-аас 0x3f хүртэлх хаяг бүхий PCF8574A дээрх порт өргөтгөлийн модулиудын дэмжлэгийг нэмсэн. Алдаа зассан c. Одоо FullReset, ResetConfig, ResetPhone командууд болон MemTest командыг амжилттай гүйцэтгэсний дараа төхөөрөмж автоматаар дахин ачаалагдана. WatchPowerTime командыг нэмсэн. Одоо салгах SMS илгээх цагийг тохируулах боломжтой гадаад эх үүсвэртэжээл. Ашигласан: 67% SRAM, 94% флаш санах ой.
GSM_2017_05_26-20-22.hex- Өргөтгөх самбарын мэдрэгчийн санах ойг тогтмол эхлүүлэх. AddPhone командын синтакс өөрчлөгдсөн. EditMainPhone командыг нэмсэн. Мэдэгдлийн системийн ажиллах зарчим өөрчлөгдсөн бөгөөд мэдрэгч асаалттай үед эхлээд sms мессеж илгээгдэх бөгөөд үүний дараа дуут дуудлага хийх болно. "S" тэмдэг (SMS) бүхий утасны дугаарууд руу түгшүүрийн мессеж илгээгдэнэ. Дуут дуудлага "R" (Ring) тэмдэгтэй дугаарт хийгдэнэ. Гаднах тэжээлийн хангамжийг унтраах / асаах тухай мессежийг "P" (Power) тэмдэг бүхий утасны дугаар руу илгээнэ. RingTime командыг нэмсэн. Одоо дохиоллын дуут дуудлагын үргэлжлэх хугацааг тохируулах боломжтой, параметр нь 10-аас 255 секундын утгатай байж болно. Одоо RingOn / RingOff команд нь дуут дуудлагын мэдэгдлийг дэлхий даяар идэвхжүүлж / идэвхгүй болгодог. ResetSensor командыг нэмсэн. Ашигласан: 68% SRAM, 99% флаш санах ой.
GSM_2017_06_02-17-43.hex- "I" (Мэдээлэл) параметрийг AddPhone болон EditMainPhone командуудад нэмсэн бөгөөд энэ нь төхөөрөмжийг зэвсэглэх эсвэл идэвхгүй болгох тухай SMS мэдэгдлийг хариуцдаг. Одоо үндсэн дугаарыг нэмсний дараа төхөөрөмж автоматаар дахин ачаалагдана. Одоо та ижил дугааруудыг төхөөрөмжийн санах ойд нэмж болно. Хоёр дахь болон дараагийн давхардсан тоонуудыг нэмэх үед "M", "S", "P", "I" гэсэн шинж чанарууд нь тэдгээрээс автоматаар устгагдана. Мэдрэгчид асаалттай үед эдгээр дугаарыг дахин дахин дуут дуудлага хийхэд ашиглана. AddPhone командыг гүйцэтгэсний дараа консол руу муруй гаралттай алдаа зассан, одоо тоо нэмсний дараа мэдээлэл автоматаар харагдахгүй. Дахин ачаалах командыг нэмсэн. Ашигласан: 69% SRAM, 99% флаш санах ой.
GSM_2017_06_11-00-07.hex- Одоо дахин, гол зэгсэн шилжүүлэгчийн контактууд хаагдсан үед (хаалга хаалттай) төхөөрөмж нь 2 секундын турш цэнхэр LED анивчдаг бөгөөд энэ нь төхөөрөмж зэвсэглээгүй эсвэл зэвсэглээгүй байхад мэдрэгч хэвийн ажиллаж байгааг илтгэнэ. RingOn / RingOff командуудыг устгасан. Одоо төхөөрөмжийг дохиоллын дуудлагын үеэр унтраах боломжтой, одоо тэдгээрийг арын дэвсгэр дээр гүйцэтгэдэг. Ашигласан: 69% SRAM, 99% флаш санах ой.
GSM_2017_07_04-21-52.hex- Одоо Pause команд нь хариу SMS илгээдэггүй. TestOn болон TestOff командуудыг устгасан. Удирдлагын туг бүх дугаараас хасагдсан. Ашигласан: 68% SRAM, 96% флаш санах ой.
GSM_2017_07_24-12-02.hex- Үндсэн зэгс мэдрэгчийг хянахын тулд ReedSwitchOn / ReedSwitchOff командуудыг нэмсэн бөгөөд одоо үүнийг хөдөлгөөн мэдрэгчтэй адил идэвхжүүлэх / идэвхгүй болгох боломжтой. Info командын алдаа зассан. TestOn болон TestOff командууд програм хангамжид дахин байна. Ашигласан: 68% SRAM, 96% флаш санах ой.
GSM_2017_07_26-10-03.hex- ModemID командыг нэмсэн. Модемийг автоматаар илрүүлэх нь зөвхөн энэ параметрийн утга 0 байвал хийгдэнэ. Параметрийн утгыг 0 болгож тохируулсны дараа төхөөрөмж автоматаар дахин ачаалагдана. Ашигласан: 68% SRAM, 98% флаш санах ой.
GSM_2017_08_03-22-03.hex- Одоо дохиолол нь гадаад төхөөрөмжийг удирдах боломжтой. Аналог гаралт A3 (D17 - дижитал болгон ашигладаг) нь хяналтанд ашиглагддаг. Гаралтын логик түвшинг (+ 5V эсвэл GND) өөрчлөх боломжтой бөгөөд тохиргооны командын тусламжтайгаар түвшинг өөрчилсний дараа төхөөрөмж автоматаар дахин асах болно. Гадаад төхөөрөмжийн хяналтын дохионы үргэлжлэх хугацааг өөрчилж болно. ExtDeviceLevelLow, ExtDeviceLevelHigh, ExtDeviceTime, Нээлттэй командуудыг нэмсэн. Хяналтын командуудын логикийн зарим өөрчлөлт. Санах ойг оновчтой болгох. Ашигласан: 68% SRAM, 99% флаш санах ой.
GSM_2017_08_10-12-17.hex- SmsOn / SmsOff, ReedSwitchOn / ReedSwitchOff, PIROn / PIROff болон тэдгээртэй холбоотой бүх командуудыг устгасан. DelayBeforeAlarm командыг өргөтгөсөн командуудаар сольсон. Мэдээллийн командын гаралт өөрчлөгдсөн. ListConfig командын гаралтыг консолд оновчтой болгосон. Одоо өндөр эсвэл бага хариу үйлдэл бүхий аливаа дижитал мэдрэгч, түүний дотор зэгсэн унтраалга D6 ба A0 зүүтэй холбогдож болно. D6 ба A0 зүү нь 10 (20) кОм эсэргүүцэлээр газард (GND) холбогдсон байх ёстой. Хэрэв мэдрэгчийг бага гох түвшинд тохируулсан бол (зэгсэн унтраалга горимд идэвхжүүлсэн) хэлхээний тасралтгүй байдлыг шалгана. D6 ба A0 (+ 5V эсвэл GND) оролтууд дээр асаах логик түвшинг өөрчлөх боломжтой бөгөөд логик түвшинг өөрчилсний дараа төхөөрөмж автоматаар дахин асах болно. Мэдрэгч тус бүрийн хувьд (үндсэн, хоёр дахь, PCF өргөтгөлийн картууд) асаалттай үед өөрийн цагийг тохируулах боломжтой бөгөөд үүний дараа мэдэгдэл (SMS ба / эсвэл дуут дуудлага) хийх болно. "PIR мэдрэгч"-ийн нэрийг "Хоёр дахь мэдрэгч" болгон өөрчилсөн. Өргөтгөх самбарын ажиллагааг зассан бөгөөд энэ нь төхөөрөмж зэвсэглэсэн эсэхээс үл хамааран мэдрэгчийг асаах талаар үргэлж мэдэгддэг байсан алдаа юм. Одоо та төхөөрөмж зэвсэгт горимд (GuardOn) болон идэвхгүй горимд (GuardOff) өргөтгөх самбарын мэдрэгчийг хянах боломжтой үйлдлийн горимыг сонгох боломжтой. PCFForceOn / PCFForceOff, MainSensorLevelHigh / MainSensorLevelLow / MainSensorLevelOff, SecondSensorLevelHigh / SecondSensorLevelLow / SecondSensorLevelOff, MainDelayBeforeAlarm, SecondDelayBeFAforeAlay, PCFForceOff командуудыг нэмсэн. Ашигласан: 68% SRAM, 99% флаш санах ой.

* Програм хангамжийн дараагийн хувилбаруудад өмнөх хувилбаруудын өөрчлөлтүүд багтсан болно.


Arduino Nano v3-ийн ашигласан портууд

D4- "сэрүүлгийн" зүү гаралт, мэдрэгч асаалттай үед энэ зүү дээр өндөр түвшний дохио тавигддаг.
D5- "сэрүүлгийн" зүүний урвуу гаралт, мэдрэгч асаалттай үед энэ зүү дээр бага түвшний дохио тавигддаг.

D6- зэгс шилжүүлэгч. GSM_2017_08_10-12-17.hex хувилбараас эхлэн өндөр эсвэл бага гох түвшний аливаа дижитал мэдрэгч, түүний дотор зэгсэн унтраалга зэргийг D6 зүү рүү холбож болно. D6 зүүг 10 (20) кОм эсэргүүцэлээр дамжуулан газар (GND) руу татах ёстой.
D7- гадаад тэжээлийн эх үүсвэрээс хүчдэл хуваагчтай холбогдсон + 5V. Дээд гар 2.2 кОм, доод тал нь 3.3 кОм.

Хүчдэл хуваагч


D8- TX модем
D9- RX модем

D10- улаан LED
D11- цэнхэр LED
D12- ногоон LED

Захын холболт:
A0- Хөдөлгөөн мэдрэгч. GSM_2017_08_10-12-17.hex хувилбараас эхлэн өндөр эсвэл бага гох түвшний аливаа дижитал мэдрэгч, түүний дотор зэгсэн унтраалга зэргийг A0 зүү рүү холбож болно. A0 зүүг 10 (20) кОм эсэргүүцэлээр дамжуулан газар (GND) руу татах ёстой.

A1- Гадны хяналтын оролт. Оролцоонд өндөр + 5V түвшин гарч ирэх үед дохиолол нь системийг асаах / идэвхгүй болгох болно.
А2- Гадны хяналтын урвуу оролт. Доод түвшний GND оролт дээр гарч ирэх үед дохиолол асаах / идэвхгүй болгох болно.

A3- Гадны төхөөрөмжийг удирдахын тулд тохируулж болох (+ 5V эсвэл GND) гаралт. Хяналтын командыг хүлээн авах үед энэ гаралтын утга нь аль нэгийг нь тогтоосон хугацаанд тохируулснаас хамаарч өөрчлөгддөг.

А4- SDA I2C
А5- SLC I2C
, нэмэлт 8 мэдрэгчийг холбох зориулалттай.


Hex програмыг удирдах командууд

Анхаар!Зориулалтын тушаалууд тод үсгээрТэд төхөөрөмжийн тохиргоог хариуцдаг тул зөвхөн үндсэн дугаараас гүйцэтгэж болно. Үлдсэн командуудыг "Удирдлага" тэмдэг бүхий тоонуудаас гүйцэтгэж болно.

SMS - хяналтын командууд нь том жижиг үсгээр ялгагддаггүй:
Утас нэмэх- Утасны дугаар нэмнэ үү. Нийтдээ 9-өөс илүүгүй дугаар + 1 үндсэн дугаарыг нэмж оруулах боломжгүй бөгөөд командын тусламжтайгаар үйлдвэрийн тохиргоонд шилжүүлсний дараа төхөөрөмж рүү анх залгахад автоматаар санах ойд хадгалагдана. Утсаа дахин тохируулахэсвэл Бүрэн дахин тохируулах... Тэдгээр. Төхөөрөмжийг үйлдвэрийн тохиргоонд нь оруулсны дараа анх залгасан хүн "үндсэн" дугаар юм, энэ дугаар нь санах ойн эхний үүрэнд орсон бөгөөд SMS-ээр өөрчлөх, устгах боломжгүй. Хоёр ижил тоог нэмэх боломжгүй.
Жишээ команд:



Тушаалын синтакс:

Утас нэмэх- тушаал
: - хязгаарлагч
5 - санах ойн тав дахь нүд рүү бичнэ үү
+71234567890 - утасны дугаар
GSM_2017_05_26-20-22.hex хувилбараас өмнө:
a - "Сэрүүлэг" параметр - Энэ параметртэй дугаарууд руу SMS илгээгдэх болно - дохиолол идэвхжсэн тухай мессеж, зэвсэглэх эсвэл зэвсэглэх тухай мессеж.
GSM_2017_05_26-20-22.hex хувилбараас:
m - "Менежмент" параметр - дохиоллын менежментийг идэвхжүүлсэн
s - "SMS" параметр - мэдрэгчийг ажиллуулах үед SMS мессеж илгээгдэх болно
r - "Ring" параметр - мэдрэгчийг асаах үед дуут дуудлага хийгдэнэ
p - "Эрчим хүч" параметр - гаднах хүчийг асаах / унтраах үед SMS мессеж илгээгдэх болно
i - "Мэдээлэл" параметр - зэвсэглэх эсвэл зэвсэглэх үед SMS мессеж илгээгдэх болно
"m", "s", "r", "p", "i" параметрүүд байхгүй тохиолдолд утас нь санах ойд хадгалагддаг боловч ямар ч байдлаар ашиглагдахгүй.


Утсыг устгах- Утасны дугаарыг устгах.
Жишээ команд:

Тушаалын синтакс:

Утсыг устгах - команд
: - хязгаарлагч
+71234567891 - утасны дугаар


Үндсэн утсыг засварлах- Үндсэн утасны "s", "r", "p", "i" параметрүүдийг өөрчлөх, энэ дугаарыг санах ойн эхний үүрэнд оруулна.
Жишээ команд:

Тушаалын синтакс:

EditMainPhone - тушаал
: - хязгаарлагч
srpi - параметрүүд


BalanceNum- Үлдэгдэл хүсэлтийн дугаарыг өөрчлөх, хүсэлтийн хариу өгөх хугацааг боловсруулах. Beeline-ийн өгөгдмөл утга: # 100 # L22.
Жишээ команд:

Тушаалын синтакс:

BalanceNum - тушаал
: - хязгаарлагч
# 103 # - үлдэгдлийн хүсэлтийн дугаар
L24 - Илгээсэн хариултын урт (len) нь 24 тэмдэгт бөгөөд бид үлдэгдлийн хүсэлтээс спамыг таслав.


Засварлах мэдрэгч- Мэдрэгчийн нэр болон үйлдлийн логик түвшинг өөрчлөх. Нийтдээ 8-аас илүүгүй нэмэлт мэдрэгч байж болохгүй. Параметрүүдийг өөрчилсний дараа төхөөрөмжийг дахин ачаалах шаардлагатай.
Жишээ команд:
EditSensor: 1 + Datchik dvizheniya v koridore # h

Тушаалын синтакс:

EditSensor - тушаал
: - хязгаарлагч
1 - санах ойн эхний байршилд бичнэ үү
+ - тусгаарлагч
Datchik dvizheniya v koridore - мэдрэгчийн нэр, зайг оруулаад 36 тэмдэгтээс хэтрэхгүй.
#h - Мэдрэгчээс өндөр логик түвшний шинж тэмдэг, үүнийг хүлээн авсны дараа дохиолол асах болно. Хэрэв "#h" байхгүй бол мэдрэгчээс логик түвшин бага байх үед дохиолол асах болно.


Унтах цаг- SMS хүлээн авах үед дохиоллын "унтах" цаг - "Түр зогсоох" командыг минутаар зааж өгнө. Өгөгдмөл утга: 15, 1-ээс бага, 60-аас их байж болохгүй.
Жишээ команд:

Тушаалын синтакс:

SleepTime - тушаал
: - хязгаарлагч
20-20 минут "унтах".


AlarmPinTime- Сэрүүлэг / урвуу зүү асаах / унтраах хугацааг секундээр зааж өгнө. Өгөгдмөл утга: 60, 1 секундээс багагүй, 43200 секундээс (12 цаг) илүү байж болохгүй.
Жишээ команд:

Тушаалын синтакс:

AlarmPinTime команд
: - хязгаарлагч
30 - 30 секундын асаах / унтраах дохиоллын зүү.


DelayBeforeGuard- Тохирох командыг хүлээн авсны дараа төхөөрөмжийг зэвсэглэхээс өмнөх хугацаа.
Жишээ команд:

Тушаалын синтакс:

DelayBeforeGuard - Баг
: - хязгаарлагч
Зэвсэхээс 25-25 секундын өмнө


Сэрүүлгийн өмнөх саатал- Энэ хугацаанд сэрүүлгийг унтраагаагүй бол "сэрэмжлүүлэг" SMS мэдэгдэл илгээх хугацаа. GSM_2017_08_10-12-17.hex хувилбараас эхлэн өргөтгөсөн тушаалуудаар сольсон.
Жишээ команд:

Тушаалын синтакс:

DelayBeforeAlarm - команд
: - хязгаарлагч
"Сэрүүлэг" мэдэгдэл илгээхээс 40 - 40 секундын өмнө


WatchPowerTime- Гадны тэжээлийн эх үүсвэрийг салгах тухай SMS мессеж илгээгдэх цаг минутаар хэмжигдэнэ. Тогтоосон хугацаа дуусахаас өмнө гадны тэжээлийн хангамжийг сэргээсэн тохиолдолд мессеж илгээгдэхгүй.
Жишээ команд:

Тушаалын синтакс:

WatchPowerTime - Баг
: - хязгаарлагч
SMS мессеж илгээхээс 5-5 минутын өмнө


RingTime- Сэрүүлгийн дуут дуудлагын үргэлжлэх хугацаа, параметр нь 10-аас 255 секундын утгатай байж болно.
Жишээ команд:

Тушаалын синтакс:

RingTime - тушаал
: - хязгаарлагч
40 - 40 дуудлагын үргэлжлэх хугацаа нь 40 секунд байх бөгөөд дараа нь дараагийн захиалагч руу залгах болно.


Модем ID- Ашигласан модемийн загварыг албадан суулгах. Боломжит утгууд: 0 - модемийн автомат илрүүлэлт, 1 - M590, 2 - SIM800l, 3 - A6_Mini.
Жишээ команд:

Тушаалын синтакс:

ModemID - тушаал
: - хязгаарлагч
2 - модемийн ID.


ExtDeviceTime- Гадаад төхөөрөмжийн удирдлагын гаралтын дохионы түвшин өөрчлөгдөх секундын тоо.
Жишээ команд:

Тушаалын синтакс:

ExtDeviceTime- команд
: - хязгаарлагч
5-5 секунд


ExtDeviceLevelLow- А3 гаралттай холбогдсон гадаад төхөөрөмж нь дохионы доод түвшний (GND) -ээр удирддаг. Анхдагч байдлаар, гадаад төхөөрөмжийг удирдах командыг хүлээн авах хүртэл гаралт өндөр + 5V байх болно.
ExtDeviceLevelHigh- A3 гаралттай холбогдсон гадаад төхөөрөмжийг дохионы өндөр түвшинд (+ 5V) удирддаг. Гадны төхөөрөмжийг удирдах командыг хүлээн авах хүртэл гаралт нь GND-ийн бага түвшинд өгөгдмөл болно.

Мэдрэгчийг дахин тохируулах- порт өргөтгөгч мэдрэгчийн параметрүүдийг дахин тохируулах

ResetConfig- тохиргоог үйлдвэрийн тохиргоонд дахин тохируулах

Утсаа дахин тохируулах- бүгдийг санах ойноос устгах утасны дугаарууд

Бүрэн дахин тохируулах- тохиргоог дахин тохируулах, бүх утасны дугаарыг санах ойноос устгах, BalanceNum командын үндсэн утгыг сэргээх.

RingOn- мэдрэгч асаалттай үед санах ойн эхний нүдэнд бичигдсэн "үндсэн" дугаар руу залгах замаар мэдэгдлийг идэвхжүүлнэ. GSM_2017_06_11-00-07.hex хувилбараас хасагдсан
RingOff- мэдрэгч асаалттай үед дуудлагын мэдэгдлийг унтраа. GSM_2017_06_11-00-07.hex хувилбараас хасагдсан

SmsOn- мэдрэгч асаалттай үед SMS мэдэгдлийг идэвхжүүлнэ. GSM_2017_08_10-12-17.hex хувилбараас хасагдсан
SmsOff- мэдрэгч асаалттай үед SMS мэдэгдлийг унтраа. GSM_2017_08_10-12-17.hex хувилбараас хасагдсан

Пирон- хөдөлгөөн мэдрэгч боловсруулалтыг идэвхжүүлнэ
PIROff- хөдөлгөөн мэдрэгч боловсруулалтыг идэвхгүй болгох

ReedSwitchOn- гол зэгс мэдрэгчийн боловсруулалтыг идэвхжүүлнэ
ReedSwitchOff- гол зэгс мэдрэгчийн боловсруулалтыг унтраа

WatchPowerOn- гадаад тэжээлийн хангамжийн хяналтыг идэвхжүүлэх, дохиолол асаалттай байх тохиолдолд гадаад тэжээлийн хангамжийг салгах тухай SMS мессеж илгээгдэнэ. GSM_2017_03_01-23-37 хувилбараас хойш хасагдсан.

WatchPowerOn1- гадаад тэжээлийн хангамжийн хяналтыг идэвхжүүлэх, дохиолол асаалттай байх тохиолдолд гадаад тэжээлийн хангамжийг салгах тухай SMS мессеж илгээгдэнэ.
WatchPowerOn2- гадаад тэжээлийн хангамжийн хяналтыг идэвхжүүлэх, ямар ч тохиолдолд гадаад цахилгаан тэжээлийг салгах тухай SMS мессеж илгээгдэх болно

WatchPowerOff- гадаад тэжээлийн хангамжийн хяналтыг идэвхгүй болгох

GuardButtonOn- гадаад төхөөрөмж эсвэл товчлуураар дохиоллын хяналтыг идэвхжүүлсэн. GSM_2017_04_16-12-00 хувилбараас хасагдсан.
GuardButtonOn1- функц зэвсэглэх эсвэл зэвсэглэхгадны төхөөрөмжөөс хамгаалах эсвэл товчлуур асаалттай байна
GuardButtonOn2- функц зөвхөн үйлдвэрлэлгадаад төхөөрөмжөөр зэвсэглэсэн эсвэл товчлуурыг идэвхжүүлсэн бол зэвсгийг төхөөрөмж рүү залгах эсвэл SMS команд ашиглан гүйцэтгэдэг.
GuardButtonOff- гадаад төхөөрөмж эсвэл товчлуураар дохиоллын хяналтыг идэвхгүй болгосон

PCFForceOn- тэлэгчийн бүх мэдрэгчийн бүлгийг тасралтгүй хянах
PCFForceOff- төхөөрөмжийг зэвсэглэсэн үед л бүх тэлэгч мэдрэгчийн бүлгийг хянах

Main SensorLevel High- мэдрэгчийн оролт (D6) дээр өндөр түвшний дохио (+5 В) гарч ирэх үед дохиоллын мэдэгдэл илгээгдэх болно.
Үндсэн мэдрэгчийн түвшин бага- мэдрэгчийн оролт (D6) дээр бага түвшний дохио (GND) гарч ирэх үед дохиоллын мэдэгдэл илгээгдэх болно.
MainSensorLevelOff- оролтын мэдрэгч боловсруулах (D6) идэвхгүй болсон

SecondSensorLevelHigh- мэдрэгчийн оролт (A0) дээр өндөр түвшний дохио (+5 В) гарч ирэх үед дохиоллын мэдэгдэл илгээгдэх болно.
SecondSensor Level Low- мэдрэгчийн оролт (A0) дээр бага түвшний дохио (GND) гарч ирэх үед дохиоллын мэдэгдэл илгээгдэх болно.
SecondSensorLevelOff- оролт (A0) дээрх мэдрэгчийн боловсруулалтыг идэвхгүй болгосон

Сэрүүлгийн өмнөх үндсэн саатал- Хэрэв энэ хугацаанд сэрүүлгийг унтраагаагүй бол үндсэн мэдрэгч (D6) асаалттай үед "сэрүүлгийн" SMS мэдэгдэл илгээгдэх хугацаа. Синтакс нь DelayBeforeAlarm командтай ижил байна.
Сэрүүлгийн өмнөх секундын саатал- Хэрэв энэ хугацаанд сэрүүлгийг унтраагаагүй бол нэмэлт мэдрэгч (A0) асаалттай үед "сэрүүлэг" SMS мэдэгдэл илгээх хугацаа. Синтакс нь DelayBeforeAlarm командтай ижил байна.
Сэрүүлгээс өмнө PCFDelay- Хэрэв энэ хугацаанд дохиолол идэвхгүй болоогүй бол өргөтгөх самбарын мэдрэгч (PCF8574) асаалттай байх үед "сэрэмжлүүлсэн" SMS мэдэгдэл ирэх хугацаа. Синтакс нь DelayBeforeAlarm командтай ижил байна.

GuardOn - гар
GuardOff - хамгаалалтыг арилгана

Нээлттэй - гадаад төхөөрөмжийг удирдах команд

Мэдээлэл - статусаа шалгана уу, энэ мессежийн хариуд нууцлалыг асаасан / унтраасан дугаарын талаарх мэдээллийг SMS илгээх болно.

Түр зогсоох - унтах цагийн командаар тогтоосон хугацаанд системийг хэдэн минутаар түр зогсоодог бөгөөд систем мэдрэгчийг асаахад хариу өгөхгүй.

TestOn - туршилтын горим идэвхжсэн, цэнхэр LED анивчдаг.
TestOff - туршилтын горим унтарсан.

LedOff - зогсолтын LED-ийг унтраана.
LedOn - зогсолтын LED-ийг асаана.

Мөнгө - тэнцлийн хүсэлт.

ClearSms - Санах ойноос бүх мессежийг устгана

Консолын командууд (GSM_2017_04_24-13-22.hex хувилбар хүртэл) - Arduino IDE портын дэлгэцэнд оруулсан:

AddPhone - SMS-ийн AddPhone тушаалтай төстэй

Устгах утас - SMS командын адил утсыг устгах

EditSensor - EditSensor SMS командтай төстэй

ListPhone - санах ойд хадгалагдсан утаснуудын жагсаалтыг портын дэлгэц рүү гаргана

ResetConfig - ResetConfig sms командтай төстэй

ResetPhone - ResetPhone sms командтай төстэй

FullReset - FullReset sms командтай төстэй

ClearSms - ClearSms sms командтай төстэй

WatchPowerOn1 - WatchPowerOn1 sms командтай төстэй
WatchPowerOn2 - WatchPowerOn2 sms командтай төстэй
WatchPowerOff - WatchPowerOff sms командтай төстэй

GuardButtonOn - GuardButtonOn sms командтай төстэй. GSM_2017_04_16-12-00 хувилбараас хасагдсан
GuardButtonOn1 - GuardButtonOn1 sms командтай төстэй
GuardButtonOn2 - GuardButtonOn2 sms командтай төстэй
GuardButtonOff - GuardButtonOff sms командтай төстэй

Memtest - төхөөрөмжийн тогтворгүй санах ойг шалгах, төхөөрөмжийн бүх тохиргоог FullReset командтай адил дахин тохируулах болно.

I2CScan - I2C автобусанд дэмжигдсэн төхөөрөмжүүдийг хайж, эхлүүлэх.

ListConfig - одоогийн төхөөрөмжийн тохиргоог портын дэлгэц рүү гаргана.

ListSensor - одоогийн мэдрэгчийн тохиргоог портын дэлгэц рүү гаргана.

UPD. Хөдөлгөөн мэдрэгч ашиглах үед, модем ажиллаж байх үед худал эерэг гарахаас зайлсхийхийн тулд энэ нь зайлшгүй шаардлагатай хоорондзүү GNDболон A0 Arduino эсэргүүцэл үзүүлэх, бид найздаа баярлалаа гэж хэлдэг
AllowPhone = ("70001234501", "70001234502", "70001234503", "70001234504", "70001234505") - Хамгаалалтад хяналт тавихыг зөвшөөрсөн дугаарууд.
AlarmPhone = ("70001234501", "70001234502") - Мэдрэгч асаалттай үед SMS мэдэгдэл, зэвсгийг унтраах, зэвсэглэх тухай мэдэгдэл илгээх дугаарууд. RingOn командыг гүйцэтгэсэн тохиолдолд мэдрэгчийг асаахад жагсаалтын эхний дугаар дуудагдах бөгөөд анхдагчаар энэ сонголт идэвхжсэн байна. SMS мессежүүд сааталтай ирдэг ч дуудлага нэн даруй дамжих ёстой тул үүнийг хийж байна.

Хэрэв дуудлага хүлээн зөвшөөрөгдсөн дугаараас эсвэл GuardOn / GuardOff командтай SMS мессеж ирвэл хамгаалалтын одоогийн байдлаас хамааран AlarmPhone массив дээр жагсаасан дугаарууд руу зэвсэглэх, зэвсгийг арилгах тухай SMS мессеж илгээгдэх болно. Мөн дуудлага ирсэн дугаар руу мессеж илгээгдэх болно.

Мэдрэгчийг асаах үед AlarmPhone массиваас (жагсаалт) бүх дугаар руу SMS мессеж илгээгдэх бөгөөд энэ массивын эхний дугаар руу дуут дуудлага хийх болно.

Гэрэл дохио:
Улаан LED - зэвсэглэсэн.
LED асаалттай байна ногоон- LedOn / LedOff sms тушаалаар зэвсэглэсэн, идэвхжүүлсэн / идэвхгүй болгосон.
LED байнга цэнхэр анивчдаг - энэ нь Arduino-д бүх зүйл эмх цэгцтэй байгаа, самбар нь хөлдөөгүй, зөвхөн дибаг хийхэд ашиглагддаг, TestOn / TestOff sms командын тусламжтайгаар асаах / унтраах дохио өгдөг.
* Код нь LedTest () функцийг агуулсан бөгөөд цэнхэр LED-ээр анивчдаг, зөвхөн Arduino-г хянах зорилгоор хийгдсэн, анивчих нь ажиллаж байна гэсэн үг, анивчихгүй - хөлдсөн байна. Одоохондоо хөлдөөгүй байна :)

Хамааралгүй!

Нээлттэй програм хангамжийн 2 ба түүнээс дээш мэдрэгчийг холбох (зөвхөн энэ програмын sketch_02_12_2016.ino-д хамаарна)
Нэмэлт зэгсэн шилжүүлэгчийг холбохын тулд бид D2, D3, D5 эсвэл D7 үнэгүй дижитал зүү ашигладаг. D7 дээр нэмэлт мэдрэгч бүхий холболтын диаграмм.

Шаардлагатай програм хангамжийн өөрчлөлт
... #define DoorPin 6 // Үндсэн мэдрэгчтэй холбогдсон оролтын тоо int8_t DoorState = 0; // Үндсэн мэдрэгчийн төлөвийг хадгалах хувьсагч int8_t DoorFlag = 1; // Үндсэн мэдрэгчийн төлөвийг хадгалах хувьсагч #define BackDoorPin 7 // Нэмэлт мэдрэгчтэй холбогдсон оролтын тоо int8_t BackDoorState = 0; // Нэмэлт мэдрэгчийн төлөвийг хадгалах хувьсагч int8_t BackDoorFlag = 1; // Нэмэлт мэдрэгчийн төлөвийг хадгалах хувьсагч ...
хүчингүй тохиргоо () (... pinMode (DoorPin, INPUT); pinMode (BackDoorPin, INPUT); ...
... хүчингүйг илрүүлэх () (// мэдрэгчээс утгыг унших DoorState = digitalRead (DoorPin); BackDoorState = digitalRead (BackDoorPin); // Хэрэв үндсэн мэдрэгчийг боловсруулж байна (DoorState == LOW && DoorFlag == 0) (DoorFlag) = 1; саатал (100); хэрэв (LedOn == 1) digitalWrite (GLed, LOW); Сэрүүлэг ();) хэрэв (DoorState == HIGH && DoorFlag == 1) (DoorFlag = 0; саатал (100);) // Хэрэв нэмэлт мэдрэгчийг боловсруулж байна (BackDoorState == LOW && BackDoorFlag == 0) (BackDoorFlag = 1; саатал (100); if (LedOn == 1) digitalWrite (GLed, LOW); Сэрүүлэг ();) хэрэв (BackDoorState =) = HIGH && BackDoorFlag == 1) (BackDoorFlag = 0; саатал (100);)) ...

Бас өөр зүйл:
1. Модуль нь 1 А гүйдлээр халдварладаг тул бид Arduino болон модемийг ямар нэгэн зүйлээр тэжээх шаардлагатай байгаа тул 2 А гүйдэлд зориулагдсан диод ашиглах нь дээр. Энэ тохиолдолд 1N4007 диодыг ашигладаг бөгөөд хэрэв амжилтгүй болвол 2 А-аар солино.
2. Шөнийн цагаар коридорыг бүхэлд нь гэрэлтүүлэхгүйн тулд би LED-ийн бүх резисторыг 20 кОм-д ашигласан.
3. Би мөн GND зүү болон D6 зүү хооронд зэгсэн унтраалга дээр 20 кОм эсэргүүцэл өлгөв.

Одоохондоо ийм л байна. Анхаарал тавьсанд баярлалаа! :)

Би +207 худалдаж авахаар төлөвлөж байна Дуртай зүйлд нэмнэ үү Шүүмж надад таалагдсан +112 +243

Та бүхний мэдэж байгаагаар хавар янз бүрийн хурцадмал байдал дагалддаг бөгөөд гол "хурцалт" нь өөрт хамааралгүй зүйлийг өөртөө тохируулахын тулд нүхнээсээ гудамжинд авирч гардаг. Энэ нь таны өмчийг хамгаалах сэдэв урьд өмнөхөөсөө илүү хамааралтай болж байна гэсэн үг юм.
Энэ сайт нь гар хийцийн талаар хэд хэдэн тоймтой байдаг. Тэд мэдээжийн хэрэг ажиллагаатай, гэхдээ бүгд байдаг нийтлэг шинж чанар- залгуураас хамаарах хамаарал. Энэ нь үл хөдлөх хөрөнгөтэй холбоотой асуудал биш юм бол аль хэдийн цахилгаан эрчим хүч нь хангагдсан байгаа бол залгуур нь алслагдсан эсвэл эргэн тойрон нь бүрэн цахилгаангүй болсон өмчийг яах вэ? Би өөр замаар явахаар шийдсэн - урт наслалттай, хамгийн энгийн бөгөөд цахилгаан тэжээлээс хамааралгүй, байнгын унтдаг төхөөрөмжийг угсарч, дээрэмчид нэвтэрч ороход эзэнтэй нь утсаар дохио өгч дохио өгдөг. энгийн дохиоллын дуудлага.

Зүйлүүдийг хянан үзэх

Худалдан авсан:
1. Талхны хавтаннэг талт 5х7 см: getinax- эсвэл шилэн
* - шилэн утас нь getinax-аас хамаагүй дээр.
2. Neoway M590 модуль -, ПХБ антентай -
3. Arduino Pro Mini "RobotDyn" ATmega168PA 8MHz 3.3V -
4. Литийн цэнэг гүйдлийн хяналтын самбар -

Соёл иргэншлийн балгасаас олборлосон:
1. Багажны хайрцагнаас зүссэн самбарт зориулсан тавиурууд - 6 ширхэг.
2. Литиум батерей 1300 мАч
3. Кабелийг хананд бэхлэхэд ашигладаг хаалт
4. Бичиг хэргийн баллуур
5. 1.5 мм зузаантай зэс утас
6. Орон нутгийн радио зах зээлээс авсан багажийн хайрцаг - 1.5$
7. Хос LED өөр өнгө(VHS тоглуулагчаас авсан)
8. Антен ба тагтай товчлуур (Wi-Fi чиглүүлэгчээс авсан)
9. 4 зүү терминал блок (димерээс авсан)
10. Цахилгаан холбогч (хуучин 18650 цэнэглэгчээс авсан)
11. 6 зүү холбогч (DVD хөтчөөс авсан)
12. Цагаан тугалга (жишээ нь кофены хувьд)

Arduino Pro Mini "RobotDyn" Atmega 168PA 3.3V 8MHz

Үзүүлэлтүүд:
Микроконтроллер: ATmega168PA
Шууд ажиллах хүчдэл:.8 - 5.5 В
LE33 тогтворжуулагчаар дамжих хүчдэл: 3.3V эсвэл 5V (загвараас хамаарч)
Ажлын температур:-40 ° C ... 105 ° C
Оролтын хүчдэл: 3.35-12V (3.3V загвар) эсвэл 5-12V (5V загвар)
Дижитал оролт / гаралт: 14 (үүнээс 6-г нь PWM гаралт болгон ашиглаж болно: 3, 5, 6, 9, 10, 11)
Аналог оролтууд: 6
Таймер-тоолуур:хоёр 8 бит, нэг 16 бит
Эрчим хүч хэмнэх горимууд: 6
Оролт / гаралтын шууд гүйдэл: 40 мА
Түргэн санах ой: 16 KB (2 нь ачаалагчийн хувьд ашиглагддаг)
RAM: 1 Kb
EEPROM: 512 байт
Санах ой бичих / устгах нөөц: 10,000 Flash / 100,000 EEPROM
Цагийн давтамж: 8 MHz (3.3V загвар) эсвэл 16 MHz (5V загвар)
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
I2C: A4 (SDA) ба A5 (SCL)
UART TTL: 0 (RX) ба 1 (TX)
Мэдээллийн хуудас:

Сонголт нь энэ атмега дээр санамсаргүйгээр унасан. Эрчим хүчний хэмнэлттэй төслүүдийн талаар ярилцаж байсан нэг форум дээр би 168 дахь атмега ашиглах зөвлөгөөг өгсөн.
Гэсэн хэдий ч би ийм самбар олохын тулд эргэлзэх шаардлагатай болсон, учир нь бүх багцууд 5V-ээс ажилладаг 16 МГц давтамжтай 328 атмегээр дүүрдэг байв. Миний төслийн хувьд ийм шинж чанарууд нь эхнээсээ шаардлагагүй, тохиромжгүй байсан тул хайлт нь илүү төвөгтэй болсон.
Үүний үр дүнд би eBay дээрх Atmega 168PA дээр Pro Mini-ийн 3.3 вольтын хувилбартай тааралдсан бөгөөд энгийн хятад биш, харин Оросын хөгжүүлэгчийн RobotDyn брэндийн доор байдаг. Тийм ээ, би ч гэсэн эхэндээ чам шиг эргэлзэж байсан. Гэхдээ дэмий л. Төслийг аль хэдийн угсарч, AliExpress хямд барааг заавал төлбөртэй хүргэх үйлчилгээг нэвтрүүлсэн (дараа нь илгээмжүүд илүү их алдагддаг), дараа нь би ердийн Pro Mini Atmega168 (PA-гүй) 3.3V 8MHz захиалсан. Би хоёр самбар дээр эрчим хүч хэмнэх горимуудыг бага зэрэг туршиж үзсэн бөгөөд тус бүр дээр тусгай ноорог зурж, микроконтроллерыг эрчим хүч хэмнэх хамгийн дээд горимд оруулаад ийм зүйл болсон.
1) Arduino Pro Mini "RobotDyn": ~ 250μA
2) Arduino Pro Mini "NoName":хүчдэлийн зохицуулагч (RAW гаралт) -д тэжээл өгч, LED-ийг салгах үед одоогийн хэрэглээ ~ 3.92 мА




- Таны ойлгож байгаагаар эрчим хүчний хэрэглээний ялгаа бараг 16 дахин их байгаа нь NoName "Pro Mini нь олон тооны Atmega168 + ашигладаг бөгөөд үүнээс MK өөрөө л иддэгтэй холбоотой юм. 20 мкАгүйдэл (би үүнийг тусад нь шалгасан), бусад бүх шуналт нь AMS1117 шугаман хүчдэл хувиргагч дээр унадаг - мэдээллийн хуудас нь зөвхөн үүнийг баталж байна:


RobotDyn хавтангийн хувьд багц нь арай өөр юм - энэ бол Atmega168PA + - энд бид өөр LDO тогтворжуулагчийг ашигласан бөгөөд эрчим хүч хэмнэх шинж чанар нь илүү тааламжтай болсон.


Би үүнийг гагнаагүй тул одоогийн Atmega168PA нь цэвэр хэлбэрээр хэр их хэрэглэдэгийг хэлж чадахгүй. Энэ тохиолдолд надад хангалттай байсан ~ 250μA Nokia-гийн лити батерейгаар ажиллах үед. Гэсэн хэдий ч, хэрэв та эх хавтангийн NoName "аас AMS1117-г гагнах юм бол ATmega168 нь энгийн зүйл бөгөөд цэвэр хэлбэрээрээ, дээр дурдсанчлан энэ нь зарцуулдаг. 20 мкА.
Эрчим хүчний LED-ийг хурц зүйлээр таслах боломжтой. Энэ бол асуудал биш. Тогтворжуулагчийг үс хатаагчаар гагнасан. Гэсэн хэдий ч хүн бүр үс хатаагчтай, түүнтэй ажиллах ур чадвартай байдаггүй тул дээрх хоёр сонголт хоёулаа байх эрхтэй.

Neoway M590E модуль

Үзүүлэлтүүд:
Давтамж: EGSM900 / DCS1800 Хос зурвас, эсвэл GSM850 / 1900 эсвэл Дөрвөн зурвас
Мэдрэмж:-107 дБм
Хамгийн их дамжуулах хүч: EGSM900 Class4 (2W), DCS1800 Class1 (1W)
Оргил гүйдэл:
Ажиллаж байгаа гүйдэл: 210 мА
Унтах гүйдэл: 2.5 мА
Ажлын температур:-40 ° C ... + 85 ° C
Ажлын хүчдэл: 3.3V ... 4.5V (3.9V санал болгож байна)
Протоколууд: GSM / GPRS Phase2 / 2 +, TCP / IP, FTP, UDP гэх мэт.
Интернет: GPRS АНГИ 10
Мэдээллийн хуудас:

Зах зээл дээр олддог хамгийн хямд GSM модуль нь ихэвчлэн ашиглагддаг, үргэлж ухаалаг гагнаж байдаггүй. Хятад гартоног төхөөрөмжөөс. Яагаад үргэлж авхаалжтай байдаггүй юм бэ? Тийм ээ, бүгд үс хатаагчаар гагнаж байгаатай холбоотой - ихэнхдээ эдгээр модулиуд нь богино холболттой нэмэх ба хасахтай хүмүүст ирдэг бөгөөд энэ нь ажиллахгүй байх нэг шалтгаан болдог. Тиймээс эхний алхам бол богино залгааны цахилгааны контактуудыг дуугаргах явдал юм.

Анхаарна уу.Миний бодлоор тусдаа нэг чухал зүйлийг тэмдэглэхийг хүсч байна - эдгээр модулиуд нь антенны дугуй коаксиаль холбогчтой хамт ирдэг бөгөөд энэ нь танд илүү ноцтой антенныг тусад нь захиалж, хэнгэрэгээр бүжиглэхгүйгээр модульд холбох боломжийг олгодог. Мөн тэд энэ холбогчгүйгээр ирж болно. Энэ бол хамгийн хямд багцын тухай ярих явдал юм. Хэрэв та гэнэтийн зүйлд найдахыг хүсэхгүй байгаа бол арай илүү үнэтэй багцууд байдаг бөгөөд үүнд энэ холбогч байдаг + текстолит хавтан дээрх гадаад антен нь иж бүрдэлд багтсан болно.

Энэ модуль нь эрчим хүчний хангамжийн өмнө бас сонирхолтой байдаг, учир нь оргил үедээ 2А хүртэл гүйдэл зарцуулдаг бөгөөд иж бүрдэлд багтсан диод нь хүчдэлийг 5V-ээс бууруулах зорилготой юм шиг санагддаг (тиймээс үүнийг 5V самбар дээр бичсэн байдаг. ) 4.2V хүртэл, харин иргэдийн гомдлоор дүгнэхэд сайнаас илүү гай тарьж байна.
Та энэ модулийг аль хэдийн угсарсан гэж бодъё, диодын оронд холбогчийг гагнаж байна, учир нь бид үүнийг 5V хүчдэлээр хангахгүй, гэхдээ бид үүнийг литийн батерейгаас шууд тэжээх болно. 3.3-4.2V-ийн зөвшөөрөгдөх хүчдэл.
Үүнийг ямар нэгэн байдлаар компьютерт холбож, ажиллах боломжтой эсэхийг шалгах шаардлагатай болно. Энэ тохиолдолд өөрийгөө урьдчилан худалдаж авах нь дээр - үүгээр дамжуулан бид модультай харилцах болно Arduino самбарууд UART (USART) цуваа интерфэйсээр дамжуулан.
Холболтыг зураг дээр доор харуулав (би үүнийг чадах чинээгээрээ зурсан):
TX модем >>> RX хөрвүүлэгч
RX модем<<< TX конвертера
Battery Plus - Modem Plus
Лити батерейны хасах нь модемийн GND ба хөрвүүлэгчийн GND-тэй нийлдэг.
Модемийг эхлүүлэхийн тулд BOOT зүүг 4.7 кОм резистороор GND-д хэрэглэнэ.


Үүний зэрэгцээ програмыг компьютер дээр ажиллуул. Тохиргоонд анхаарлаа хандуулаарай:
1) TTL хөрвүүлэгч холбогдсон COM портыг сонгоно уу, миний хувьд энэ нь COM4, ​​танд өөр порт байж болно.
2) Дамжуулах хурдыг сонгоно уу. (Энд нэг нюанс бий, учир нь модулиудыг өөр өөр хурдаар тохируулах боломжтой, ихэвчлэн 9600 бауд эсвэл 115200 бад. Энд та эмпирик байдлаар сонгож, зарим хурдыг сонгож, холбож, AT командыг илгээх хэрэгтэй. , энэ нь унтарч, өөр хурдыг сонгоод тушаалыг давтах гэх мэт OK хариулт авах хүртэл үргэлжилнэ).
3) Пакетийн уртыг сонгоно уу (энэ тохиолдолд 8 бит), паритет бит идэвхгүй (байхгүй), зогсоох бит (1).
4) Хайрцагыг шалгахаа мартуузай + CR, дараа нь төгсгөлд нь модуль руу илгээсэн команд бүрт тэрэгний буцах тэмдэгт автоматаар нэмэгдэх болно - модуль нь зөвхөн төгсгөлд байгаа энэ тэмдэгттэй командуудыг ойлгодог.
5) Холболт, энд бүх зүйл тодорхой байна, бид дарж, модультай ажиллах боломжтой.

Хэрэв та "Холбох" дээр товшоод модулийг 4.7К резистороор BOOT-ыг газар дээр нь суулгаж эхлэх юм бол терминал эхлээд "MODEM: STARTUP" гэсэн бичээсийг харуулах болно, дараа нь хэсэг хугацааны дараа "+ PBREADY" гэсэн бичээс гарч ирнэ. , энэ нь утасны дэвтэр хоосон байж болох ч гэсэн:

Энэ хорлон сүйтгэгч дор жишээнүүдийн хамт AT тушаал

Бид AT командыг хэвлэдэг - хариуд нь модуль нь бидний командыг илгээдэг, учир нь цуурай горим идэвхжсэн бөгөөд OK:

AT + CPAS командын тусламжтайгаар модемийн статусыг шалгацгаая - хариуд нь бидний тушаал дахин + CPAS: 0 ба OK байна.
0 - модуль ажиллахад бэлэн байна гэсэн үг боловч нөхцөл байдлаас хамааран өөр дугаар байж болно, жишээлбэл 3 - ирж буй дуудлага, 4 - холболтын горим, 5 - унтах горим. Би 1 ба 2-ын талаар мэдээлэл олсонгүй.

UART дээр өгөгдөл дамжуулах хурдыг өөрчлөх нь AT + IPR = 9600 тушаалаар хийгддэг - хэрэв хурд нь 9600 бол энэ нь AT + IPR = 19200 эсвэл AT + IPR = 115200-тай төстэй юм.

Сүлжээний дохиог шалгацгаая. AT + CSQ, хариулт ирдэг + CSQ: 22.1 - аравтын бутархай хүртэлх утга нь 0 ... 31 (115 ... 52dBl) байна - энэ бол дохионы түвшин, илүү их байх тусмаа сайн. Харин 99 гэдэг нь түүнийг байхгүй гэсэн үг. Аравтын бутархайны дараах утга нь дохионы чанар 0 ... 7 - энд аль хэдийн эсрэгээрээ, тоо бага байх тусмаа сайн.

Давхардсан тушаалууд саад болохгүйн тулд ATE0 командыг илгээж цуурай горимыг идэвхгүй болго. Үүний эсрэгээр энэ горимыг ATE1 тушаалаар асаана.

AT + GETVERS програмын хувилбарыг үзэх



Эдгээр болон бусад олон тушаалуудыг үзэх боломжтой

Самбаруудыг тэгшлэх

Pro Mini нь талхны самбарт гагнахад хялбар боловч GSM модулийн нөхцөл байдал арай илүү төвөгтэй байдаг. түүний контакт сам нь зөвхөн нэг талдаа байрладаг бөгөөд хэрэв та зөвхөн үүнийг гагнах юм бол самбарын нөгөө тал нь зүгээр л агаарт өлгөгдөнө. Дараа нь дахин нүдээр би самбар дээрх гурван булангийн ойролцоо 3 нэмэлт цооног өрөмдөх шаардлагатай болсон. Дараа нь нүх тус бүрийн эргэн тойрон дахь маскыг хуулж авав. Тохиромжтой болгохын тулд би самнаас салгагдсан утсыг гагнуургүй талхны самбар дээр (цагаан) байрлуулж, GSM модулийн хавтанг суулгасны дараа ихэвчлэн гагнаж байна.

Дараа нь самбарын ирмэг дээр "Хятадад үйлдвэрлэв" гэсэн бичигтэй "I" үсэг дээр өөр нүх гаргах хэрэгтэй болсон.


Үндсэндээ GND болох нэмэлт контакт нь Pro Mini хавтангийн GND-ийн хажууд байрлаж, GSM модуль ба Pro Mini-ийн гадаргууг гагнуурын дусал (урт) хослуулах боломжтой болсон. Дунд болон баруун талд нь Pro Mini зүү) - Би тэдгээрийг сумаар тэмдэглэв. Мэдээжийн хэрэг энэ нь бага зэрэг муруй болсон, гэхдээ одоо найдвартай барьж байна:



Самбаруудын хооронд бага зэрэг зай үлдсэн - дотор нь би урьдчилан гагнасан microUSB холбогч, гагнасан утас бүхий литийн цэнэгийн цэнэгийн хяналтын самбар байрлуулсан.

Ороолт нь тэнд маш нягт таарч, хажуугийн LED гэрлүүд нь хайрцагны жижиг нүхээр тодорхой харагдах болно.



ПХБ-ын тавиурууд

Хэргийн доторх самбарыг найдвартай засахын тулд би үүнийг хэрхэн хэрэгжүүлэх талаар бодоход хэдэн өдөр зарцуулсан. Халуун хайлмал цавуу бүхий сонголтыг хэд хэдэн шалтгааны улмаас авч үзээгүй - энэ нь унах, деформаци хийх, хамгийн чухал нь бүтцийг задлахад хэцүү байх болно.
Энд байгаа хамгийн энгийн бөгөөд зөв сонголт бол тавиур ашиглах явдал юм гэж би бодож байсан бөгөөд энэ нь мэдээжийн хэрэг надад байгаагүй. Гэсэн хэдий ч хэд хэдэн ажиллахгүй цэнэглэгч байсан бөгөөд тэндээс өөрөө түншдэг эрэгний утас бүхий нэг урт тавиурыг таслав. Тавиур бүрийг хагасаар хөрөөдөж, ойролцоогоор 9.5 мм хэмжээтэй файлаар дуусгасан - энэ өндөрт хавтангийн доор байрлах батерейны зай нь 2 мм орчим байдаг - энэ нь хавтангийн гагнасан контактууд хүрэхгүй байхын тулд хийгддэг. үүнийг зөвлөмжүүдээр нь холбож, тэдгээрийн хооронд бэхэлгээний зориулалттай хөөс резинийг оруулах боломжтой.
Самбарыг шууд хайрцагт бэхлэхийн тулд энд би кофены лаазнаас дөрвөн тууз хайчилж, төгсгөлд нь нүх өрөмдөж, тавиур дээр бэхэлсэн ижил эрэг дээр бэхлэв. Доорх зурган дээрээс хэрхэн харагдахыг харна уу.
Дараагийн алхам бол хавтангийн нөгөө талд, өөрөөр хэлбэл дээрээс нь хэд хэдэн тавиурыг шургана, ингэснээр хайрцаг хаагдах үед таг нь эдгээр тавиур дээр бага зэрэг наалдаж, нэмэлт бэхэлгээг бий болгоно. Хэсэг хугацааны дараа би энэ хэргийн дор Зөвлөлтийн суртал ухуулгын радиогийн доороос нэгэн цогцос (хэрэв эрт олдсон бол би эндээс бүх тавиурыг авах байсан) тааралдсан бөгөөд тэндээс өндөр багатай хосуудыг олж харав. гэхдээ эхлээд би тэдгээрийг өөрөө түншдэг эрэгний доорх өрөмдлөгөөр голд нь өрөмдсөн. Дараа нь тэр тэдгээрийг огтолж, илүүдлийг нь арилгаж, файлаар дуусгав. Энд би нэг нарийн ширийн зүйлийг олж авлаа - зурган дээр нэг цагаан тавиур нь getinax хавтангийн ирмэгээс, нөгөө цагаан нь модулийн самбарт шууд бэхлэгдсэн байгааг харж болно. модемийн самбарын нэг ирмэгээс доод самбарыг бүрэн бүрхэж, эсрэг талын ирмэгээс доод хэсэг нь гадагш харагдана. Үүний зэрэгцээ, өөрөө түншдэг эрэгний таг чөлөөтэй өнгөрөхийн тулд хоёр самбар дээр нэмэлт цооног өрөмдөх шаардлагатай байв.
Эцэст нь хэлэхэд, самбар нь хайрцагтай үргэлж параллель байх ёстой - хананд утас, кабелийг бэхлэхэд ашигладаг хаалт нь энэ тохиолдолд төгс тохирох тул би өмнө нь хадаасыг нь салгаж авсан. Хаалтууд нь ямар ч нэмэлт төхөөрөмжгүйгээр хонхойсон талтай самбарт сайн наалддаг, цорын ганц зүйл бол SIM картны баруун талд байгаа бөгөөд хаалтны өргөн нь хэт их болж, мөн зүлгүүр хийх шаардлагатай болсон.
Бүх нарийн ширийн зүйлийг дээрх бүх зургийн доор нүдээр болон эмпирик байдлаар тохируулсан.



Холбогч. LED. Товчлуур.

Самнаа дуусаад би DVD хөтчийн самбараас 6 зүү холбогчийг салгах шаардлагатай болсон бөгөөд дараа нь би Pro Mini-д гагнаж, самбарыг анивчуулахад тохиромжтой. Ойролцоох би литийг цэнэглэх дугуй холбогчийг (Nokia 3.5мм) гагнасан.

6 зүү холбогчийн их биеийг файлаар бага зэрэг дуусгасан, учир нь түүний ирмэг нь биеийн дээгүүр бага зэрэг цухуйсан байв. Цэнэглэх залгуур нь хайрцагны хананд бүрэн нийцдэг.

Самбарын нөгөө талд би төхөөрөмжийг дахин ачаалах товчлуур болон програм хангамжийг дибаг хийхэд зориулсан хоёр LED-ийг гагнасан - улаан LED нь GSM модульд холбогдсон, хоёр дахь ногоон LED нь Pro Mini-ийн 10-р зүү - энэ нь надад илүү хялбар юм. програмыг ашиглан дибаг хийх.

Батерейг боловсронгуй болгох

Nokia гар утаснуудын Nokia-гийн хавтгай батерей нь 18650-аас багагүй түгээмэл байдаг ч олонхи нь зайнд суулгасан контактуудыг холбоход тохиромжгүй тул үүнийг ашиглахаас татгалздаг. Тэдгээрийг гагнах нь зохисгүй тул эдгээрийн санал болгож буй аргыг ашиглахаар шийдсэн, тухайлбал бичгийн хэрэгслийн баллуур ба зэс утаснаас (1.5 мм зузаантай) терминал блок хийхээр шийдсэн.
Эхлээд би баллуурыг хоёр утастай үзүүрийг нь цоолж, зайны контактууд дээр байрлуулж, тэдгээрийн хоорондох зайг давхцуулж,
Би зөвлөмжийг нугалж, гагнуурын төмрөөр боож, тэдгээрийг урт үзүүрээр нь бага зэрэг татсан бөгөөд ингэснээр үүссэн контактууд нь баллуур руу шингээв.



Батерей дээр суурилуулах:

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

Ассемблей.

Ажлын гол хэсэг нь хийгдсэн, бүгдийг нь цуглуулж, засах хэвээр байна.
Батерей болон хавтангийн хооронд би хэсэг хөөсөөр резинэн хэсэг тавьсан бөгөөд ингэснээр дараа нь хайрцаг дотор мөлхөхгүй. Би модулийг тэжээхийн тулд 2200 мФ конденсаторыг нэмж гагнасан.

Цэнэглэх үед:

Хүрээ. Гадаад терминал блок.

Би уг хэргийг орон нутгийн радиогийн зах зээл дээр доллараар хөрвүүлбэл 95х60х25мм, бараг хайрцаг тамхины хэмжээтэй тэнцэхүйц 1.5 доллараар авсан. Би түүнд хэд хэдэн нүх өрөмдсөн. Нэгдүгээрт, ажиллахгүй бүдэгрүүлэгчээс авсан 4 зүү терминал блокийн хувьд.
Би хоёр туйлын контактыг жийргэвч бүхий боолтноос бүрэн чөлөөлж, урт боолтыг өрөмдсөн нүхнүүд, терминалын блок бүхэлдээ биед наалддаг. Кейс дээр мэдээжийн хэрэг, хоёр туйлын нүх нь том байх ба голд байгаа хоёр нүх нь жижиг байх болно - тэдгээрийн дундуур тээглүүр байх бөгөөд тэдгээрийн нэг нь VCC Pro Mini, хоёр дахь зүү нь 2-т холбогдсон байна. .

Цооног өрөмдөх нь эхлээд харахад энгийн боловч цаг хугацаа их шаарддаггүй, алдахад маш хялбар байдаг тул би үүнийг эхлээд жижиг өрөмдлөгөөр, дараа нь томоор хийсэн.

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

USB-TTL хөрвүүлэгчийн гогцоо холбогдсон хайрцагт самбар:

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

За, холбогдсон цэнэглэгчээр бүрэн угсарсан нь дараах байдалтай байна.

Туршилт. Хэрхэн ажилладаг:

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

Үйл ажиллагааны зарчмыг гадны тасалдлаар зохион байгуулдаг бөгөөд эхлээд 2-р зүү нь VCC-д хаагдсан тул тээглүүр дээр логик 1-ийг дэмждэг бөгөөд хянагч унтдаг. Контакт тасарч, 2-р зүү дээр 0 гарч ирмэгц микроконтроллер сэрж, 3-р зүүг (модем BOOT нь резистороор холбодог) газар руу буулгана - модуль асч, MC үе үе модулийг шалгадаг. бэлэн байдлыг хангахын тулд сүлжээнд холбогдсон даруйд кодонд заасан эзэмшигчийн утасны дугаар руу шууд дуудлага илгээдэг. Дуудлагаас татгалзсаны дараа төхөөрөмж нь Хятадын олон дохиоллын буруугаас илүү төгсгөлгүй дуудлага илгээхгүйгээр унтардаг.

Нэмэлт мэдээлэл

#оруулна #оруулна // UART SoftwareSerial gsm програм хангамжийн номын сан (7, 6); // RX (7), TX (6) void wakeUp () () // хоосон тасалдал зохицуулагч //////////////////////////// ////////////// хүчингүй gsmOFF () (// PORTD | = (1)<<3); // ВЫКЛЮЧЕНИЕ МОДУЛЯ _delay_ms(10); // gsm.println("AT+CPWROFF"); // ПЕЧАТАЕМ КОМАНДУ OFF PORTB &=~ (1<<2); // выключить LED 10 } // //========================================= void gsmON(){ // PORTD|=(1<<6); // 6-му порту (TX) назначить 1 PORTD &= ~(1<<3); // ЗАПУСК МОДУЛЯ _delay_ms(10); // while(!gsm.find("+PBREADY")); // ждём прочтения тел. книги PORTB |= (1<<2); // включить LED 10 _delay_ms(100); // while(1){ // gsm.println("AT+CREG?"); // проверяем в сети ли модуль if (gsm.find("0,1")) break; // если сеть есть, выходим из цикла _delay_ms(400); // проверка раз в 0,4 сек } // } // /////////////////////////////////////////// // void sleepNow(){ // функция засыпания ADCSRA = 0x00; // отключить подсистему АЦП (экономия 140 мкА) PORTD&=~(1<<6); // в вывод TX поставить 0 _delay_ms(100); // set_sleep_mode(SLEEP_MODE_PWR_DOWN); // режим сна PWR_DOWN sleep_enable(); // включение сна attachInterrupt(0, wakeUp, LOW); // включить прерывания sleep_mode(); // sleep_disable(); // detachInterrupt(0); // отключить прерывания } void setup(){ gsm.begin(9600); // скорость работы UART DDRD = B01001000; // 3-й и 6-й выводы на выход DDRB |= (1<<2); // вывод 10 на выход gsmON(); // запуск модуля для теста gsmOFF(); // выключаем модуль } void loop(){ if (!(PIND&(1<<2))){ // если на 0-ом прерывании появился 0 gsmON(); gsm.println("ATD+79xxxxxxxxx;"); // отзваниваемся, в ответ приходит OK и CONNECT _delay_ms(100); if (gsm.find("OK")) while(1){ // ожидание сброса вызова gsm.println("AT+CPAS"); // при каждой итерации опрашиваем модуль if (gsm.find("0")) break; // если 0, то выходим из цикла while _delay_ms(100); // проверка раз в 0,1 сек } for (char i=0; i<14; i++){ PORTB|=(1<<2); // LED 10 ON _delay_ms(200); PORTB&=~(1<<2); // LED 10 OFF _delay_ms(200); } gsmOFF(); // выключить модуль _delay_ms(10); while(1); // блокируем программу } else { sleepNow(); // укладываем контроллер спать } }

Хэлхээ (цэнэг цэнэглэх хяналтын самбаргүй)



Дүгнэлт, бодол. Төлөвлөгөө.

Сэрүүлгийг тус улсад ашигладаг, би ажилдаа сэтгэл хангалуун байна, гэхдээ AVR-ийг цаашид судлах тусам түүнийг өөрчлөх санаа улам бүр нэмэгдэж байна. Ардуино псевдо хэлтэй Wiring нь намайг маш их бухимдуулсан, учир нь ажилд нэг таагүй мөч байсан. Би digitalWrite портуудтай ажиллах функцуудыг ашиглах үед (); эсвэл pinMode (); - дараа нь GSM модуль ямар нэг шалтгааны улмаас ихэвчлэн унтардаг. Гэхдээ тэднийг DDRB | = (1<Зөвхөн портууд руу шууд нэвтрэх ажиллагаа нь төхөөрөмжийг зориулалтын дагуу ажиллуулах боломжийг олгосон.

Эрчим хүч хэмнэх ...
Угсарсан төхөөрөмж бүтэн дөрвөн сарын турш цэнэглэхгүйгээр ажилласан бөгөөд "унтах" гэж хэлэх нь илүү зөв байх болно. Үүнийг цагаан товчлуураар дамжуулан энгийн дахин ачаалах замаар баталгаажуулна. 250 мкА эрчим хүчний хэрэглээ (LE33 тогтворжуулагчаар дамжуулан) ба ~ 1430 мАч батерейтай ч гэсэн батерейны шинэлэг бус байдлаас шалтгаалан бид 1000 мА цаг хүртэл дугуйрдаг тул төхөөрөмж 5.5 орчим унтдаг болох нь харагдаж байна. цэнэглэхгүйгээр сар. Хэрэв та тогтворжуулагчийг ууршуулж байвал ашиглалтын хугацааг 10 дахин үржүүлж болно. Гэхдээ миний хувьд үүнийг хийх шаардлагагүй, учир нь та гурван сар тутамд SIM картын үлдэгдлийг зарцуулах шаардлагатай бөгөөд тэр үед төхөөрөмжийг шалгаж, цэнэглэх боломжтой.
Шүүмжид өгсөн эрчим хүч хэмнэх жишээ нь хязгаараас хол байна Мэдээллийн хуудасны мэдээллээс харахад та микроконтроллерийн цагийн давтамжийг (мөн үүнийг гал хамгаалагч суурилуулах замаар хийдэг) 1 МГц хүртэл бууруулж болох бөгөөд хэрэв та 1.8V хүчдэл хэрэглэвэл идэвхтэй горимд хэрэглээ 1μA бараас доош унах болно. . Муу биш! Гэхдээ хэрэв MC нь дотоод RC генератороос ажилладаг бол өөр нэг асуудал гарч ирнэ - UART эфир нь хог хаягдал, алдаагаар бөглөрөх болно, ялангуяа хянагч халааж эсвэл хөргөсөн бол.

Дуусах үед ...
1) Цоорхой дээр суурилуулсан энгийн утас нь тийм ч тохиромжтой биш тул би Холл мэдрэгч ба зэгсэн унтраалгатай туршилт хийхээр төлөвлөж байгаа боловч сүүлийнх нь энэ нь тийм ч найдвартай биш гэж хэлдэг, учир нь доторх контактууд нь наалддаг.
2) Компьютерийн оролцоогүйгээр, анивчихгүйгээр "мастер дугаар" -ыг өөрчлөх чадварыг нэмбэл сайхан байх болно. Энэ нь аль хэдийн EEPROM-тай ажиллах ёстой.
3) Харуулын таймераас тасалдуулж үзээрэй, гэхдээ зөвхөн сониуч зан гаргахын тулд биш, харин микроконтроллер үе үе өөрөө сэрж, зайны хүчдэлийг хэмжиж, зайны цэнэгийг мэдэхийн тулд хүлээн авсан утгыг SMS-ээр илгээдэг. чөлөөлөгдөнө.
4) Нарны хавтан нь төхөөрөмжийг дахин цэнэглэх хэрэгцээг бүрэн арилгах боломжтой бөгөөд энэ нь ялангуяа бага хүчин чадалтай батерейнд хамааралтай болно.
5) Удаан хугацааны турш би LiFePo4 батерейг худалдаж авахыг хүсч байсан бөгөөд энэ нь шүүмжлэлийн дагуу хярууг хэвийн хэмжээнд хүртэл тэсвэрлэдэг, гэхдээ би тохиромжтой газар хайж байх хооронд хавар аль хэдийн тодорхойгүй ирсэн байв.
6) Гоо зүйн бүрэлдэхүүн хэсэг дээр ажиллах

Та ямар Pro Mini худалдаж авах ёстой вэ?
Хэрэв үс хатаагч байхгүй бол Pro Mini "RobotDyn" Atmega168PA 3.3V, LED-ийг хурц ямар нэг зүйлээр аваад ~ 250μA байна.
Хэрэв та үс хатаагчтай бол ямар ч самбар, тогтворжуулагч ба цахилгаан LED-ийг гагнах - та одоогийн хэрэглээний ~ 20μA авах болно.

Энэ бол одоохондоо, тойм сонирхолтой, хэрэгтэй байсан гэж найдаж байна.

Би +174 худалдаж авахаар төлөвлөж байна Дуртай зүйлд нэмнэ үү Шүүмж надад таалагдсан +143 +278

Хэт улаан туяаны (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); // сэрүүлгийг идэвхгүй болгох))

Видео

Өдрийн сайхан цаг 🙂 Өнөөдөр бид сэрүүлгийн тухай ярих болно. Үйлчилгээний зах зээл нь хамгаалалтын системийг суурилуулах, засвар үйлчилгээ эрхэлдэг компаниуд, байгууллагуудаар дүүрэн байдаг. Эдгээр пүүсүүд худалдан авагчдад олон төрлийн дохиоллын системийг санал болгодог. Гэсэн хэдий ч тэдний өртөг хямд биш юм. Гэтэл тийм их хувийн хөрөнгөгүй хүн хулгайн дохиололд зарцуулахын тулд яах ёстой вэ? Дүгнэлт нь өөрийгөө харуулж байна гэж би бодож байна - хийхдохиолол тэднийхээр гараар... Энэ нийтлэлд Arduino uno самбар болон хэд хэдэн соронзон мэдрэгч ашиглан өөрийн кодлогдсон хамгаалалтын системийг хэрхэн хийх жишээг үзүүлэв.

Товчлуураас нууц үгээ оруулаад ' товчийг дарснаар системийг идэвхгүй болгож болно. * '. Хэрэв та одоогийн нууц үгээ өөрчлөхийг хүсвэл ' товчийг дарж үүнийг хийж болно. Б', Хэрэв та үйлдлийг алгасах эсвэл зогсоохыг хүсвэл товчлуур дээр дарж үүнийг хийж болно ‘#’. Систем нь тодорхой үйлдлийг гүйцэтгэх үед янз бүрийн дуу чимээг тоглуулах дохиотой байдаг.

"A" товчийг дарснаар систем идэвхждэг. Систем нь байрнаас гарахад 10 секунд өгдөг. 10 секундын дараа дохиолол идэвхжинэ. Соронзон мэдрэгчийн тоо нь таны хүслээс хамаарна. Төсөл нь 3 мэдрэгчтэй (хоёр цонх, хаалганы хувьд). Цонх нээгдэх үед систем идэвхжиж, дохиолол дуугардаг. Нууц үг оруулах замаар системийг идэвхгүй болгож болно. Хаалга онгойлгоход дохиолол нь зочдод нууц үг оруулах 20 секунд өгдөг. Систем нь хөдөлгөөнийг илрүүлэх хэт авианы мэдрэгчийг ашигладаг.

Төхөөрөмжийн ажиллагааны видео

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

Эхэлцгээе!

Алхам 1: бидэнд хэрэгтэй зүйл

  • Arduino uno самбар;
  • өндөр тодосгогч LCD дэлгэц 16 × 2;
  • 4 × 4 гар;
  • 10 ~ 20кОм потенциометр;
  • 3 соронзон мэдрэгч (тэдгээр нь мөн зэгс унтраалга);
  • 3 2 зүү шураг терминал;
  • HC-SR04 хэт авианы мэдрэгч;

Хэрэв та Arduino ашиглахгүйгээр систем бүтээхийг хүсвэл дараахь зүйлс хэрэгтэй болно.

  • atmega328 + atmega328 микроконтроллерийн DIP холбогч;
  • 16 МГц болор резонатор;
  • 2 ширхэг. 22pF керамик, 2 ширхэг. 0.22 мкФ электролитийн конденсатор;
  • 1 PC. 10 к ом эсэргүүцэл;
  • цахилгаан залгуур (Тогтмол гүйдлийн цахилгаан залгуур);
  • талхны хавтан;
  • 5V цахилгаан хангамж;

Мөн бүгдийг нь савлах нэг хайрцаг!

Багаж хэрэгсэл:

  • Хуванцар хайрцгийг огтолж чадах зүйл;
  • Халуун цавуу буу;
  • Өрөмдлөг / халив.

Алхам 2: Сэрүүлгийн хэлхээ

Холболтын схем нь маш энгийн.

Жижиг тодруулга:

Өндөр тодосгогч LCD:

  • Pin1 - Vdd-ээс GND хүртэл;
  • Pin2 - Vss-ээс 5V хүртэл;
  • Pin3 - Vo (потенциометрийн төв зүү хүртэл);
  • Pin4 - RS нь Arduino-ийн 8-р зүү;
  • Pin5 - RW-ээс GND хүртэл;
  • Pin6 - EN нь Arduino-ийн 7-р зүү;
  • Pin11 - D4-ээс Arduino-ийн 6-р зүү;
  • Pin12 - D5-аас Arduino-ийн 5-р зүү;
  • Pin13 - D6-аас Arduino-ийн 4-р зүү;
  • Pin14 - D7 нь Arduino-ийн 3-р зүү;
  • Pin15 - Vee (потенциометрийн баруун эсвэл зүүн зүү рүү).

4 × 4 гар:

Зүүнээс баруун тийш:

  • Arduino-ийн Pin1-ээс A5 зүү;
  • Arduino-ийн Pin2-аас A4 зүү;
  • Arduino-ийн Pin3-аас A3 зүү;
  • Arduino-ийн Pin4-ээс A2 зүү;
  • Pin5-аас Arduino-ийн 13-р зүү;
  • Pin6-аас Arduino-ийн 12-р зүү;
  • Pin7-аас Arduino-ийн 11-р зүү;
  • Pin8-ыг Arduino-ийн 10-д зүү.

Алхам 3: Програм хангамж

Энэ алхам нь суулгасан програмын ашигладаг кодыг харуулж байна!

Codebender залгаасыг татаж авна уу. Arduino дээрх "Run" товчийг дараад энэ програмын тусламжтайгаар самбараа гялалзуулна уу. Тэгээд л болоо. Та дөнгөж сая Arduino программчилсан! Хэрэв та кодонд өөрчлөлт оруулахыг хүсвэл "Засварлах" товчийг дарна уу.

Тайлбар: Хэрэв та Arduino самбараа програмчлахдаа Codebender IDE ашиглахгүй бол Arduino IDE-д нэмэлт санг суулгах шаардлагатай болно.

Алхам 4: Өөрөө хяналтын самбар хийх

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

Хийсэн ажлыг илүү амжилттай дуусгах хэд хэдэн зөвлөгөө:

  • Atmega328 микроконтроллерийн 1 (дахин тохируулах) ба 7 (Vcc) зүү хооронд 10К резистор холбогдсон байх ёстой.
  • 16MHz болорыг XTAL1 ба XTAL2 гэсэн шошготой 9 ба 10-р холбосон байх ёстой.
  • Резонаторын утас бүрийг 22pF конденсаторт холбоно. Хар тугалгагүй конденсатор нь микроконтроллерийн 8-р зүү (GND) руу хүргэдэг.
  • Хоёрдахь ATmega328 цахилгааны шугамыг тэжээлийн эх үүсвэр, 20-Vcc ба 22-GND зүүтэй холбохоо бүү мартаарай.
  • Та хоёр дахь зурган дээрх микроконтроллерийн тээглүүрүүдийн талаарх дэлгэрэнгүй мэдээллийг авах боломжтой.
  • Хэрэв та 6 В-оос дээш хүчдэлтэй цахилгаан хангамжийг ашиглахаар төлөвлөж байгаа бол зохицуулагчийн оролт, гаралтын хэсэгт суурилуулсан LM7805 шугаман зохицуулагч ба 0.22 мФ-ийн хоёр электролитийн конденсаторыг ашиглах ёстой. Энэ нь чухал юм! Самбар дээр 6V-оос илүү хүчдэлийг бүү хэрэглэ !!! Үгүй бол та Atmega микроконтроллер болон LCD дэлгэцээ шатаах болно.

Алхам 5: Хэлхээг хайрцагт байрлуул