Мазмұны:

Бар сенсорларды қолданатын Arduino сымсыз дабыл жүйесі: 9 қадам (суреттермен)
Бар сенсорларды қолданатын Arduino сымсыз дабыл жүйесі: 9 қадам (суреттермен)

Бейне: Бар сенсорларды қолданатын Arduino сымсыз дабыл жүйесі: 9 қадам (суреттермен)

Бейне: Бар сенсорларды қолданатын Arduino сымсыз дабыл жүйесі: 9 қадам (суреттермен)
Бейне: Robojax Arduino Step By Step Course, Lesson 14: Using Vibration Sensor Module 2024, Шілде
Anonim
Бар сенсорларды қолданатын Arduino сымсыз дабыл жүйесі
Бар сенсорларды қолданатын Arduino сымсыз дабыл жүйесі
Бар сенсорларды қолданатын Arduino сымсыз дабыл жүйесі
Бар сенсорларды қолданатын Arduino сымсыз дабыл жүйесі
Бар сенсорларды қолданатын Arduino сымсыз дабыл жүйесі
Бар сенсорларды қолданатын Arduino сымсыз дабыл жүйесі
Бар сенсорларды қолданатын Arduino сымсыз дабыл жүйесі
Бар сенсорларды қолданатын Arduino сымсыз дабыл жүйесі

Егер сізде 433 МГц немесе 315 МГц сымсыз дабыл датчиктері болса, бұл жобаны шамамен 20.00 доллар тұратын жарты сағат ішінде салуға болады.

Бұл сондай -ақ инфрақызыл қозғалыс детекторлары мен қамыс қосқыштары сияқты сымсыз дабыл датчиктері бар онлайнда оңай және арзан қол жетімді жаңа жоба болуы мүмкін. PT2262 немесе EV1527 кодтауын қолданатын 433 МГц немесе 315 МГц сенсорларды іздеңіз.

Мен сияқты сымсыз сенсорлармен GSM/2G дабыл жүйесін сатып алған және оған риза болған көптеген адамдар бар екеніне сенімдімін, бірақ мен тұратын жерде 2G/GSM желісі өшірілгенде менде дабыл жүйесі қалды. енді бағдарлама жасамайды немесе оған уақытты орнатпайды. Бір күні мен дабылды қайтадан іске қосу үшін не істеуге болатынын білмей жатып, Arduino сенсорлардан сигнал қабылдай алатынын тексеру керек болды. Мен тұрақсыз https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ кездесіп қалдым және бірнеше эксперименттерден кейін мен сенсорлардан сигналдарды қабылдай алатынымды анықтадым. Мен қолданыстағы дабылды алмастыратын, сонымен қатар функционалдығын арттыратын дабыл жүйесін құру процесін бастадым. Ескі дабылдағы мәселелердің бірі 25 датчиктердің қайсысы сөнгенін білмеу болды, жаңа дабыл қондырғыма СКД экранын қосу арқылы мен қазір СКД -де қай сенсор іске қосылғанын көрсететін мәтінді аламын. Жаңа дабылды әлі де қолда бар сымсыз кілттермен қолмен қаруландыруға болады және ол тәуліктің белгіленген уақытында автоматты түрде қарулануға және қарусыздануға мүмкіндік беретін нақты уақыт сағаты бар.

Жабдықтар

Бұл бөліктердің дұрыс нұсқасын қолданғаныңызға көз жеткізу үшін қосымша жазбаларды қараңыз.

Arduino Uno немесе ұқсас

Arduino үшін 433 немесе 315 МГц қабылдағыш модулі

DS3231 Arduino үшін нақты уақыт сағаты модулі

Arduino үшін I2C 16x2 LDC модулі

Қажет болса, сымсыз дабыл құралы қосқыштары, қозғалыс сенсорлары және қашықтан басқару түймелері

Пьезо дыбысы

Жарықдиодты және 220 Ом резисторы

Нан тақтасы (міндетті емес, бірақ ұсынылады)

Arduino үшін қолайлы қуат көзі

Өткізгіш сымдар және т

Arduino IDE орнатылған компьютер

Arduino туралы негізгі білім

1 -қадам: Жабдықтар

Жабдықтар
Жабдықтар
Жабдықтар
Жабдықтар
Жабдықтар
Жабдықтар

Бұл жобаға қажет жабдықтардың кейбір суреттері

2 -қадам: Ardunio мен модульдерді суретте көрсетілгендей қосыңыз

Суретте көрсетілгендей Ardunio мен модульдерді қосыңыз
Суретте көрсетілгендей Ardunio мен модульдерді қосыңыз

Ардуино мен жердің 5 түйреуіші арасындағы пьезо

Жарық диоды Arduino 8 штыры мен 220 Ом резисторға дейін жерге қосылады

433 немесе 315 МГц қабылдағыш, VCC 5V, GND жерге және Arduino pin2 үшін 2 деректер түйреуішінің бірі

I2C 16X2 СКД модулі 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» теріңіз, содан кейін «ri-switch by sui77» үшін орнатуды басыңыз.

Кітапханаларды қосу бойынша толық нұсқаулар

Біз осында болған кезде, сонымен қатар 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 -ны USB -кабель арқылы компьютерге 1 -қадамда бекітіңіз және Arduino IDE -ді ашыңыз. Содан кейін Arduino IDE -де «Файл» ашылмалы мәзіріне өтіңіз, содан кейін «Мысалдар» бөліміне өтіңіз, «RCSWITCH» табылмайынша мысал эскиздерінің тізімін төмен қарай айналдырыңыз, содан кейін «ReceiveDemo_Advanced» эскизін таңдап, оны Arduino -ға жүктеңіз. Эскиз сәтті жүктелгеннен кейін Arduino IDE сериялық мониторын ашады, ол компьютерге USB арқылы қосылады. Енді кодты алғыңыз келетін сенсорлардың біріншісін іске қосыңыз, RCSwitch шығысы монитордың сериялық терезесінде пайда болады. Бұл жоба үшін біз 2 -ші скриншотта көрсетілгендей ондық кодты іздейміз. Сенсорды ондық мәнді бірнеше рет іске қосу керек, ол кезде жиі кездесетін ондық мәнді іздейді, кейде әр түрлі мәндер шын мәнімен араласады. кездейсоқ радио толқындарының немесе сол жиілікте жұмыс істейтін басқа құрылғылардың кедергілерімен.

Келесі қадамда қолдану үшін сенсордың ондық кодына назар аударыңыз. Жобада қолданғыңыз келетін барлық сенсорлар мен қашықтағы кілттер үшін қайталаңыз, қай код қай сенсорға сәйкес келетінін қадағалаңыз. Егер дабылды қару -жарақпен қамтамасыз ету үшін кілттерді қолдансаңыз, қашықтан басқару пультінің түймесі мен қарусыздандыру түймесінің әр түрлі кодтарын ескеру қажет.

5 -қадам: Arduino кодының үлгісі

Төменде Wireless_Alarm деп аталатын.ino файлы ретінде менің Arduino кодының көшірмесі берілген. Сіз оны баса аласыз және ол Arduino IDE -де ашылуы керек. Мен бағдарламашы емеспін, менің кодым ішінара Arduino IDE -де табылған мысалдардан жинақталған, мүмкін бұл өте талғампаз емес, бірақ ол жұмыс істейді және ұзақ уақыт бойы сенімді болды.

Өз датчиктеріңіздің кодтарын қосу үшін өзгерістер енгізгеннен кейін эскизді қайта сақтауды ұмытпаңыз.

6 -қадам: 5 -қадамда алынған кодтарды Arduino эскизінің үлгісіне қойыңыз

Енді сіз қолданатын сенсорлар мен қашықтағы кілттердің кодын баптау қадамдары.

Егер 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.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 тақтасына жүктеңіз. Жүктеу сәтті аяқталғаннан кейін, СКД -де «Қарусыздану туралы дабыл» жазуы керек. Қашықтан басқару пультіндегі қол түймесін басыңыз, сонда СКД -де «Дабыл қосулы» жазуы болуы керек, ал жарық диодты оның қарулы екенін хабарлау үшін қосу керек, енді сенсорды қаруланған кезде іске қосыңыз, СКД «Дабыл» белгісінен кейін уақыт белгісін және сенсордың орналасқан жері, егер сіз қарусыздандыру түймесін баспасаңыз, сигнал 2 минут бойы естілуі керек. Егер сіз бұл нәтижеге қол жеткізе алмасаңыз, 5 -қадамда алынған кодтарды және алдыңғы қадамда кодқа енгізілген өзгерістерді қайта тексеріңіз, сонымен қатар барлық компоненттердің сымдарын қайта тексеріңіз. Егер СКД мүлде оқымаса, СКД модулінің артқы жағында контрастты реттеу бар. Егер СКД әлі де оқымаса, контраст дұрыс орнатылғаннан кейін эскиздің 12 -жолында СКД мекенжайын 0x3f -ден 0x27 -ге өзгертуге тырысыңыз. СКД ақаулықтарын жою мұнда I2C СК оқулық

8 -қадам: RTC модуліндегі уақытты орнату және қару мен қарусыздану уақытын өзгерту

Сіздің RTC дәл уақыт бойынша орнатылды деп үміттенеміз, бірақ егер IDE ашылмаса, «Файлды» таңдаңыз және ашылмалы тізімнен «Мысалдар» түймесін басып, «DS1307RTC» тармағына төмен жылжыңыз және «SetTime» эскизін таңдаңыз, эскизді өзіңізге жүктеңіз. Arduino және ол нақты уақытты дербес компьютерден орнатады, содан кейін Wireless_Alarm эскизін Arduino -ға қайта жүктеу қажет болады.

Мен ұсынған Wireless_Alarm.ino әдепкі бойынша дабылды автоматты түрде әр түнде 22.15 -те қосады және әр таңертең 6.00 -де қарусыздандырады. Бұл уақытты өзгерту үшін 71 және 72 -жолдардағы эскизді өзгертіңіз. Уақыт Alarm.alarmReat -тен кейін HH, MM, SS форматында жақшада. мұны сізге қолайлы уақытқа өзгертіңіз.

Дабыл. ДабылҚайталау (6, 00, 0, Таңертеңгі дабыл); // ҚҰРЫЛМАУ уақыты

Дабыл.aralarReat (22, 15, 0, EveningAlarm); // ARM уақыты

Қарусыздану уақытын 9.15 -ке, ал қолды 17.30 -ға ауыстыру үшін код келесідей болады

Дабыл. ДабылҚайталау (9, 15, 0, Таңғы Дабыл); // ҚҰРЫЛМАУ уақыты

Дабыл.aralarReat (17, 30, 0, EveningAlarm); // ARM уақыты

Егер сіз дабылдың қарулануын және қарусыздануын қаламасаңыз // автоматты түрде 2 жолдың алдына қойыңыз және олар қолданылмайды.

//Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // ҚҰРЫЛМАУ уақыты

//Alarm.alarmRepeat (22, 15, 0, EveningAlarm); // Қару уақыты

Дабыл сигналының дыбыс беру уақытын 22 -жолды өзгерту арқылы өзгертуге болады

const ұзақ аралығы = 120000; // дабыл дыбысының ұзақ уақытқа миллис кешігуі үшін

Интервал миллисекундтарда, сондықтан 120000 = 120 секунд, 120000 -ден 30000 -ге ауыстыру дабыл дыбысын 30 секунд шығарады.

Сиренаны, стробты, жоғары дыбыстық сигналды және т. Есіңізде болсын, Arduino түйреуішінің максималды жүктемесі 40 мА аспауы керек.

9 -қадам: Қосымша ескертулер

Arduino үшін 433 немесе 315 МГц қабылдағыш модулін таңдағанда, сіз қолданатын дабыл датчиктеріне сәйкес жиілікті таңдауыңыз керек. Мен ең жақсы өнімділік үшін шағын спиральды антеннасы бар модуль сатып алуды ұсынамын, немесе ұзындығы 17,3 мм түзу сымды антенна өнімділікті арттырады.

16x2 СКД модулінің көмегімен сіз мен берген нұсқаулар мен кодты пайдалану үшін 4 істікшелі I2C СК пайдалануыңыз керек, ол 16 істікшелі стандартты СКД көмегімен жасалуы мүмкін, бірақ бұл жерде сыммен немесе кодпен жұмыс істемейді.

Сымсыз дабыл қамысы қосқыштары, қозғалыс сенсорлары мен қашықтан басқару пульті 433 МГц немесе 315 МГц жиіліктерінде болуы керек және қабылдайтын қабылдағышпен сәйкес келуі керек және PT2262 немесе EV1527 кодтауын қолдану керек.

Дабыл кеңейтілетін және бейімделгіш, мен сенсорлар қосылған кезде жазу үшін SD картасын қостым, СКД түймесін басып тұрғанда ғана жанатын етіп өзгертті және 100 дБ сирена қосылды, бірақ мақаланы сақтап қалу үшін мұнда мәліметтерді қоспадым. мүмкіндігінше қысқа және қарапайым. Мен бұл дабыл бойынша жасаған жұмысыммен бөлісу басқаларға пайдалы болады деп үміттенемін.

Барлық сұрақтарға жауап беруге қуаныштымын.

Рахмет.

Ұсынылған: