Arduino asosidagi RGB kitobi. Fotorezistorni arduino va robotga yorug'lik sensori Robimo "aqlli chiroq" bilan ulash

Albatta, bolaning terisi tush ko'rdi (va bitta emas). Siz bu his-tuyg'ularni taxmin qilishga urinib ko'rishingiz mumkin, go'yo kechasi tunda bolaning ruhini qaytarib olmoqchisiz, chunki ko'zlardagi o'sha uzoq, tanish porlash ...

Hozir men BDUIRning 4-kursida o'qiyman va agar ular bizga sxema bo'yicha kurs loyihasini qog'ozda emas, balki lazyakuda bajarish mumkinligini aytishganida, men uchun juda issiq bo'lgan kitob paydo bo'ldi. bola, buni o'zingiz qilishingiz mumkin. Bundan tashqari, bu shunchaki qorong'i vaqtda xonani yoritadigan ob'ekt emas, balki har qanday kayfiyat uchun osongina boshqarilishi mumkin bo'lgan biriktirma. Nega yo'q? Men qo'llarning yordami uchun ranglarni o'zgartirish imkoniyatini qo'shishga harakat qildim: qo'l yotoqxona stoliga qanchalik yaqin bo'lsa, ranglardan biri (RGB) shunchalik yorqinroq yonadi. Va men ham uni masofadan boshqarish pultining yordami uchun usta bilan ko'rishni xohladim.

Men bu fikrni cxem.net saytida ko'rganimni bilaman. Qisqacha aytganda, RGB-matritsaning qaysi qismida ultratovushli sensorlar o'rnatilgan bo'lsa, u tovushning qo'shimcha registrini o'rnatgan. Ale, men matritsa bir tumshuqda butun yo'lni porlashi kerak deb o'yladim, men kitobning har tomondan yorug'ligini xohlardim.

Sxema elementini astarlash


Men Arduino mikrokontrolleriga hurmatimni qaytardim. UNO mening fikrim uchun eng mos variant, chunki platforma eng ommabop va pinlar soni unchalik katta emas, Mega tepasida, boshqa yo'l bilan siz unga hayot qo'ng'irog'ini ulashingiz mumkin, mening navbatimda vinolar 12V, chiziqning tepasida. Nano, uchinchi yo'l bilan ... yaxshi, menimcha, siz ikki nuqtada zupinit qilishingiz mumkin. Platforma dasturlashning soddaligi va qulayligi, shuningdek, arxitektura va dasturiy kodni tanib olishi bilan butun dunyoda mashhurligi bilan mashhur.

Ushbu to'lov haqida batafsil ma'lumotni Internetda osongina topish mumkin, shuning uchun maqola ortiqcha baholanmaydi.

Otzhe, tizimga asosiy yordam. Majburiy:
- datchiklar, yaky vídstezhuvatimut vídstan' tizim tomonidan keruvannya uchun o'tish;
- masofadan boshqarish pultidan signallarni o'qish uchun sensor;
– svitlodiody, yaki zabezpechuvatimu nebhídnu funksionalligi svyllennya;
- Keruyuchiy blok, butun tizim bilan keruvatime kabi.

Datchiklar loyiha uchun mos bo'lganligi sababli, zarur uzoq olamlar, har qanday qo'shiq rangi uchun terilar: qizil, yashil, ko'k. Datchiklar qo'lni tungi yorug'likka yaqinlashtiradi, qo'l qo'shiq sensoriga qanchalik yaqin bo'lsa, rang qanchalik kuchli bo'lsa, dunyo shunchalik uzoqroq bo'ladi. Avvalo, agar siz qo'l bersangiz, unda rangga kamroq kuchlanish qo'llaniladi, bu sensorni ko'rsatadi.

Hozirgi vaqtda eng mashhur uzoq dunyo Sharp GP2Y0A21YK va HC-SR04 hisoblanadi. Sharp GP2Y0A21YK Vín jihozlash ík-vipromínjuvachem va ík-priymachem: birinchisi men uchun dzherelom bo'lib, u boshqasini ushlash uchun ishlatiladi. Sensorning bu IR-o'zgarishi bilan u inson ko'ziga ko'rinmaydi va bunday intensivlik uchun u qisqa muddatli emas.

HC-SR04 ultratovush sensoriga o'xshab, bu sensor ham haddan tashqari o'sish va kamchilikka ega bo'lishi mumkin. G'alabadan oldin betaraflik va titramaslikni ko'rish mumkin. Va nedoliki - di va zalezhít vyd zvníshnyh o'tishlari kichikroq radiusi, ular orasida - yoritish ayrim turlari.

Yak sensorlari vikoristan ultratovushli masofaviy HC-SR04 loyihasi uchun ishlatiladi.
Díí̈ HC-SR04 printsipi aksolokatsiya hodisasining yaxshiligiga asoslanadi. Ushbu tebranish vibratori akustik signalni hosil qilganda, u o'tishga kirgandan so'ng sensorga aylanadi va qabul qilgichda ro'yxatdan o'tadi. Daladagi ultratovush kengligining kengligini (taxminan 340 m / s) bilib, signal va qabul qilingan signal o'rtasidagi kechikish soati, akustik o'tishni ochish oson.

TRIG kirishi mikrokontrollerning chiqishiga ulangan. Ushbu visnovokga davomiyligi 10 mks bo'lgan impulsli raqamli signalni qo'llash kerak. TRIG kirishidagi signalda sensor ultratovushli impulslar to'plamini yuboradi. Qabul qilingan signalni qabul qilgandan so'ng, sensor ECHO chiqishida impuls signalini hosil qiladi, uning chastotasi o'tishga mutanosibdir.

IQ sensori. Men tushunaman, bu sensordan signal o'qiladi va dekodlanadi, bu masofadan zondlash uchun zarurdir. TSOP18 faqat chastota uchun o'zaro tebranadi. Loyiha uchun VS1838B TSOP1838 sensori tanlangan.

Loyiha 3 ta asosiy rangga muhtoj bo'lganlar haqida gapiradigan bo'lsak, u rang bo'lsin, dasturni yoritish g'oyasiga asoslangan edi: qizil, yashil, ko'k. Shuning uchun SMD 5050RGB yorug'lik diyotlarining modeli tanlangan, bu mo''jizaviy tarzda belgilangan vazifalarga mos keladi.

Teri nuriga qo'llaniladigan kuchlanishning kattaligiga qarab, hid bu yorug'likning intensivligini o'zgartiradi. Svitlodiod rezistor orqali buti ulanishlarida aybdor, aks holda nafaqat yoga, balki Arduinodan ham foydalanish xavfli. Rezistor yorug'lik diodidagi strumni o'rtacha qiymatga o'rab olish uchun kerak. O'ng tomonda, yorug'lik diyotining ichki opirasi allaqachon past bo'lganligi sababli, qarshilikni buzmaslik uchun, bunday strum shunchaki yorug'likni yoqib yuboradigan yorug'lik diyotidan va boshqaruvchidan o'tadi.

Loyihada g'olib bo'lgan yorug'lik chiqaradigan diodli taxtalar 12V da yashaydi.

Ulanishda "simli" yorug'lik diodlaridagi kuchlanish 6V ga ko'tariladi va xizmat muddatini 5V ni harakatga keltirgandek tartibga solish kerak, kalit rejimida kontaktlarning zanglashiga olib keladigan tranzistorlarni qo'shish kerak. Míy vibrír BC547c modeliga tushadi.

Keling, n-p-n tranzistorining ishlash printsipini unutganlar uchun qisqacha ko'rib chiqaylik. Shunday qilib, kuchlanish bermang, lekin shunchaki tayanch va emitentning simlarini oling va yoping, uni o'chirmang va qisqa emas, balki Om novdasidagi rezistor orqali, ko'ryapsizmi, bazaning kuchlanishi- emitent nolga teng. Ota, hech qanday asos yo'q. Tranzistor yopiq, kollektor trubkasi ahamiyatsiz darajada kichik, bir xil kob trubkasi. Va bu erda stansiyada tranzistor o'zgartirilayotganga o'xshaydi. Oldingi tegirmon nasichennya deb ataladi: agar tranzistor yana buzilib qolsa, u boshqa joyda portlaydi. Bunday bosqichda kollektorning ishlashi, pol qoplamasining emitenti kichikdir, shuning uchun kollektor nayzasida navantajsiz tranzistorni yoqishning iloji yo'q, u bir zumda yonib ketadi. Bu juda yuqori bo'lsa, kollektordagi kuchlanish 0,3 ... 0,5V dan kam bo'lishi mumkin.

Bu ikkita stantsiya eng muhim va eng muhimi, ular tranzistor o'rni birinchi kontakti bilan bir vaqtning o'zida kalit rejimida ishlayotgan bo'lsa, u holda g'alaba qozonadi. Bunday rejimning asosiy hissiyoti shundan iboratki, kichik tayanch trubkasi asosiy kollektordan o'nlab marta kattaroq bo'lgan katta kollektor tizmasini boshqaradi. Kollektorning katta shovqini energiyaning tashqi dzherelining rahunokidan tashqariga chiqadi, lekin hamma narsa ê deb ataladigan shovqindan kuchliroqdir. Bizning qurilmamiz 5V kuchlanishli mikrosxemaga ega, shu jumladan 12V da ishlaydigan yorug'lik diodli 3 ta chiziq.

Kalit kaskadining ishlash rejimi buzilgan. Yorug'lik diyotining to'liq intensivligida yonishi uchun taglik qoziqidagi rezistorning qiymatini bo'shatish kerak. Rozrahunka paytida aqlga ega bo'lish kerak, shunda strumning mustahkamlik koeffitsienti bazaning minimal mumkin bo'lgan strumasi bo'yicha kollektorning maksimal mumkin bo'lgan rozpodilning xususiy turiga ko'proq yoki yaxshiroq bo'ladi:

Shuning uchun barlarni 220V ish kuchlanishi bilan ishlatish mumkin va tayanch relsni 5V kuchlanishli mikrosxema orqali boshqarish mumkin. Agar tranzistor kollektorda bunday kuchlanish bilan himoyalangan bo'lsa, u holda yorug'lik muammosiz yonadi.
Baza-emitterga o'tishda kuchlanishning pasayishi har bir fikrda 0,77V, asosiy strum - 5mA, kollektor trubkasi - 0,1A.
Asosiy rezistor zaxirasidagi kuchlanish:

Ohm qonuni uchun:

Standart tayanch qatori uchun 8,2 kOhm qarshilik tanlanadi. Kimga rozrahunok tugadi.

Men e'tiborimni qoqilib qolgan bitta muammoga qaratmoqchiman. IRremote Arduino kutubxonasidan foydalanganda, ko'k rangni sozlash bir soat davomida osilgan. Internetda uzoq vaqt qidiruvdan so'ng, kutubxona Arduino modeli uchun taymer 2ni qulflash uchun g'alaba qozondi. PWM chiqishlari bilan keruvannya uchun taymerlar kaltaklanadi.

Taymer 0 (tizim soati, PWM 5 va 6);
Taymer 1 (PWM 9 va 10);
Taymer 2 (PWM 3 va 11).

Qo'limning orqa tomonida ko'k rangni sozlash uchun PWM 11 dan foydalandim. Shuning uchun, PWM, taymerlar va uchinchi tomon kutubxonalari bilan ishlashda ehtiyot bo'ling, chunki ular ularni mag'lub etishlari mumkin. Ajablanarlisi shundaki, github-ning asosiy sahifasida bu nuance haqida hech narsa aytilmagan. Siz 1-taymer bilan qatorga sharh berishingiz va 2-ga izoh berishingiz mumkin.

Non panelidagi ulash elementlari quyidagicha ko'rinadi:

Tartib bo'yicha sinovdan o'tkazilgandan so'ng, "Elementlarni taxtaga joylashtirish" va "Lehimli temir bilan robot" bosqichlari boshlandi. Tugallangan to'lovning birinchi sinovidan so'ng, bir fikr paydo bo'ladi: nimadir noto'g'ri ketdi. Va bu erda taniqli boy bosqich "Tester bilan bir oz ish" boshlanadi. Biroq, nosozliklar (bir-biriga lehimli kontaktlarning zanglashiga olib borilgan) tezda bartaraf etildi va oxirgi oynaning tomirlarining o'qi beshketli lampochka edi.

O'ngdagi Dali faqat korpusning orqasida turardi. Birinchi diskdan kontrplak datchiklarimiz uchun teshiklar bilan qilingan. Orqa qopqoq maxsus znymnoy edi, shuning uchun siz bazhannya uchun, o'rta ko'rinishidan bahramand bo'lishingiz mumkin, shuning uchun uni ishlab chiqishingiz mumkin. Bundan tashqari, qayta dasturlash uchun ochiq, bu ovqatni to'lash.

Tana ikki komponentli epoksi yopishtiruvchi bilan yopishtirilgan. Varto bu elimning o'ziga xosligini ilgari o'rganmaganlar uchun ko'rsatadi. Bu o'rtoq zmíshuvanní vístu yakyh vídbuvaíê mittêva khímíchna rektsíya bilan, ikki okremikh êmnosti bilan ta'minlanadi. zmíshuvannya díyati tez olib keyin, ko'pi 3-4 whilins. Eng uzoq g'alaba uchun biz yangi qism qo'shishimiz kerak. Xo'sh, qanday qilib uni takrorlashga harakat qilyapsiz, sizga xursand bo'ldim, kichik qismlarga zmíshuvat va díyati tezroq, bu haqda o'ylash uchun bir soat juda boy bo'lmaydi. Bu vartoga, tanani qanday qilib yopishtirish va yopishtirish haqida o'ylash juda kech. Bundan tashqari, bir vaqtning o'zida siz uni o'ldira olmaysiz.

Yorug'lik diodlari bilan taxtalarni mahkamlash uchun toshning yuqori qopqog'iga trubka o'rnatildi, barcha dart mo''jizaviy tarzda yakdan o'tdi.

Agar ovqat shamchiroq orqasida mast bo'lsa, men bolaligimda uni qanday qilib oddiy ipdan o'g'irlaganimni, ishqalangan sumkani yopishtirib, asos bo'lib xizmat qilganimni taxmin qildim. Abajur uchun printsipi bir xil, prote o'rash bagatohedron ko'proq yig'iladigan, pastki sumkasi edi. Raxunokning orqasida, konstruktsiyadagi iplar bilan kurashishga urinayotgan vise yonib ketdi, u ovoz chiqara boshladi va iplar tusha boshladi. Shoshilinch ravishda, qo'llar elim bilan, hayvonning dizayni qilish mumkin edi. Men bu erda CD yordamga keldim. Viishovning natijasi quyidagi taxallusga ega:

Natijada nima demoqchisiz

Nega men loyihani o'zgartirdim? Stansiyadagi sensorlarga TRIG signalini qo'llash uchun uchta o'rniga bitta Arduino chiqishini tanlashingiz mumkin. Shunday qilib, men o'zim IR sensori uchun teshikni o'zgartirgan bo'lardim (qaysi biri haqida unutdim), bu, afsuski, hali ham tanada, albatta, masofadan boshqarish pultidan signallarni o'qish mumkin emas. Biroq, siz hech narsani lehimlay olmaysiz va burg'ulay olmaysiz deb kim aytdi?

Men bu keyingi semestr ekanligini bilishni istardim va qog'ozda emas, balki ishlashga harakat qilishning mo''jizaviy imkoniyati, nega men tushdagi bolaning nuqtasiga yana bitta belgi qo'yishim mumkin. Va qanday qilib yangi narsalarni muammosiz sinab ko'rishni qanday bilasiz va bizning oldimizda nima qilishni bilmayapsiz, bu haqda tashvishlanmang. Bagatlarning boshida bir fikr suzadi: nima uchun bu erdan boshlaysiz va qanday qilib ishlashni boshlashingiz mumkin? Buning uchun hayotning ko'p aybi bor, buning uchun siz uni buzishingiz mumkin, lekin siz buni sinab ko'rishingiz shart emas, chunki ko'zlaringizdagi olov bilan siz yoqishingiz mumkinligini eslaysiz, kimdir sinab ko'rishiga imkon bering.

Kelgusi loyiha uchun biz fotorezistordan foydalanamiz. Va keling, yotoqxonada tungi stolning amalga oshirilishini ko'rib chiqaylik, u qorong'i bo'lganda avtomatik ravishda yoqiladi va yorug'lik paytida o'chadi.

Fotorezistorning Opiri xuddi yangisiga sarflangandek, yorug'likda yotadi. Vykoristovuyuchi fotorezistor 4,7 kOhm katta qarshilik bilan bog'lanishda, biz kuchlanishni kengaytiruvchi vositani olamiz, shunday qilib fotorezistordan o'tadigan kuchlanish yorug'lik darajasiga qarab o'zgaradi.

Dilnikdan kuchlanish, biz Arduino ADC ning kirishiga beriladi. U erda biz qo'shiq ostonasining ahamiyatini taqlid qilamiz va chiroqni vmikaemo yoki vimikaemo qilamiz.

Dilnikning asosiy diagrammasi quyida ko'rsatilgan. Agar yorug'lik kuchaysa, fotorezistor opir tushadi va dilnikning chiqishida kuchlanish kuchayadi (i ADC kirish). Yengillik tushsa, hamma narsa navpak.

Quyidagi fotosuratda non panelidagi tanlangan sxema ko'rsatilgan. 0V va 5V kuchlanishlar Arduinodan olingan. ADC ning kirishi sifatida pastki A0 tanlangan.

Quyida Arduino eskizi keltirilgan. Ushbu darsda shunchaki miltillovchi LED bor, bu Arduino platasida mavjud. Kattaroq yorqin LED-chiroq, siz 13-oyoqqa (~220 Ohm rezistor orqali) ulanishingiz mumkin. Agar siz kalitni qizg'inroq ulasangiz, masalan, isitish lampasi, keyin uni o'rni yoki tiristor orqali ulashingiz kerak.

Dastur kodlari boyitish uchun xizmat qilgani uchun fayllarni izohlab berdi. ADC qiymatini boshqarishingiz mumkin (0 dan 1024 gacha). Shunday qilib, yorug'likni o'zgartirib, aniq yo'lni tanlaganingizda, koddagi 500 qiymatini (yoqish va o'chirish chegarasi) o'zgartirishingiz kerak.

/* ** Kitob ** ** www.hobbytronics.co.uk */ int sensorPin = A0; // ADC uchun kirish oyog'ini o'rnating unsigned int sensorValue = 0; // fotorezistorning raqamli qiymati void setup() ( pinMode(13, OUTPUT); Serial.begin(9600); // ma'lumotlarni ketma-ket o'qishni boshlash (sinov uchun) ) void loop() (sensorValue = analogRead(sensorPin); // o'qilishi mumkin bo'lgan fotorezistor qiymati, agar (sensorValue<500) digitalWrite(13, HIGH); // включаем else digitalWrite(13, LOW); // выключаем // Для отладки раскомментируйте нижеследующие строки //Serial.print(sensorValue, DEC); // вывод данных с фоторезистора (0-1024) //Serial.println(""); // возврат каретки //delay(500); }

Qo'shimcha uchun

    Yana 1 ta svetlodiod

    Nominal qiymati 220 Ohm bo'lgan yana 1 qarshilik

    yana 2 ta dart

Sxematik diagramma

Non taxtasidagi sxema

Hurmatni qaytaring

    Barcha tajribalar uchun biz jonli va analog kirish o'rtasida fotorezistorni o'rnatamiz, tobto. kuchlanish dilator pallasida R1 holatida. Bu biz uchun kerak, shunda yorug'lik o'zgarishi bilan biz analog kirishda kamroq kuchlanishni olib tashladik.

    Yorug'lik fotorezistorni yoqmasligi uchun komponentlarni yoyishga harakat qiling.

Eskiz

p050_night_light.ino #define LED_PIN 13 #define LDR_PIN A0 #define POT_PIN A1 void setup() ( pinMode(LED_PIN, OUTPUT) ; ) void loop() () // Ríven yorug'ligini o'qish. Nutqdan oldin, kar // siz bir vaqtning o'zida ushbu qiymatni o'zgartirishingiz va qo'llashingiz mumkin int yengilligi = analogRead(LDR_PIN) ; // sozlanishi mumkin bo'lgan potentsiometrdan qiymatni o'qing // aqlli qorong'u va yorug'lik o'rtasidagi chegara qiymati int chegarasi = analogRead(POT_PIN) ; // Uning qiymatiga tayinlangan kar bo'ladigan mantiqiy o'zgarish // "hozir qorong'i". Vidminuda mantiqiy o'zgarishlar // tsyl_snyh, faqat bitta yoki ikkita qiymatdan qasos olishi mumkin: // Haqiqat (ing. rost) yoki bema'nilik (o'z. yolg'on). Bunday ma'no // Boolean deb ham ataladi. mantiqiy hamDark = (engillik< threshold) ; // vikoristovuemo dasturni o'chirish: protsessor vikonaê biri // koddagi ikkita blok kelajakda eskirgan. // Yakshcho (inglizcha "if") juda qorong'i ... agar (tooDark) ( // ...yoritishni yoqing digitalWrite (LED_PIN, YUQORI); ) boshqa ( // ...va endi yorug'lik kerak emas - vimikaêmo yogo digitalWrite (LED_PIN, PAST); )

Kod uchun tushuntirish

    Biz o'zgarishlarning yangi turida g'alaba qozonamiz - mantiqiy, u faqat haqiqiy (to'g'ri, 1) yoki noto'g'ri (bema'nilik, 0) qiymatlarini saqlaydi. Qi qiymati mantiqiy viruslarni hisoblash natijasidir. Kimning qo'llanilishi mantiqiy viraz - tse yengilligi< threshold . На человеческом языке это звучит как: «освещенность ниже порогового уровня». Такое высказывание будет истинным, когда освещенность ниже порогового уровня. Микроконтроллер может сравнить значения переменных lightness и threshold , которые, в свою очередь, являются результатами измерений, и вычислить истинность логического выражения.

    Biz bu mantiqiy virazni kamonda faqat aniqlik uchun oldik. Ko'proq o'qilishi mumkin bo'lgan kod yozishni unutmang. Boshqa turlarda arklar zvichaynyy arifmetikadagi kabi kattalik tartibiga qo'shilishi mumkin.

    Bizning tajribamizda mantiqiy ifoda to'g'ri bo'ladi, agar yorug'lik qiymati chegara qiymatidan kichik bo'lsa, u holda operator< . Мы можем использовать операторы > , <= , >= , == , != , bu "ko'proq", "birdan kam", "birdan ortiq", "teng", "yaxshi emas" degan ma'noni anglatadi.

    Ayniqsa, mantiqiy == operatoridan ehtiyot bo'ling va = tayinlash operatori bilan adashtiring. Birinchi tur uchun qarama-qarshilikning qiymati bir xil darajada muhim va boshqa tur uchun mantiqiy qiymat (to'g'ri yoki bema'nilik) bir xil darajada muhimdir, chap operandga o'ng operandning qiymati biriktiriladi. Tuzuvchi bizning ismlarimizni bilmaydi va biz kechirimni ko'ra olmaymiz, lekin biz beixtiyor o'zgartirishning ma'nosini o'zgartirishimiz mumkin va keyin biz uzoq vaqt kechiramiz.

    Aqlli if bayonoti (“yakscho”) dasturlashning eng muhim usullaridan biridir. Bu yordam bilan, biz harakatlar ketma-ketligini berilgan qanday zhorstko vikonuvat mumkin, va keyin algoritm borish kerak, eskirgan aqli, bir qaror qabul qilish.

    Mantiqiy ifoda yengillikka ega< threshold есть значение: true или false . Мы вычислили его и поместили в булеву переменную tooDark («слишком темно»). Таким образом мы как бы говорим «если слишком темно, то включить светодиод»

    Ushbu muvaffaqiyat bilan biz "agar yorug'lik chegara darajasidan past bo'lsa, chiroqni yoqing" deyishimiz mumkin. butun mantiqiy ifodani quyidagiga o'tkazing:

agar (engillik< threshold) { // ... }

    Aqlli if iborasidan keyin blok kodi keladi, bu mantiqiy ifodaning haqiqatidan farq qiladi. Jingalak kamarlarga zarar etkazishni unutmang ()!

    Haqiqat vaqtlariga kelsak, bizga ko'proq vikonati kerak bitta ko'rsatma, uni jingalak yoylarsiz if (...) dan keyin darhol yozishingiz mumkin:

agar (engillik< threshold) digitalWrite(LED_PIN, HIGH) ;

    If iborasi else ("keyingi") konstruktsiyasi bilan kengaytirilishi mumkin. Kod bloki yoki undan keyingi bitta ko'rsatma bo'lib, agar noto'g'ri bo'lishi mumkin bo'lsa, "bema'nilik" uchun mantiqiy ifoda sifatida terish endi bo'lmaydi. Jingalak kamonlarni ushlab turadigan qoidalar bir xil. Tajribamizda biz "juda qorong'i, yorug'likni yoqing, aks holda yorug'likni o'chiring" deb yozdik.

Hammaga salom! Men Artem Luzhetskiyman va men "Aqlli uy" va IoT (narsalar interneti, nutq Interneti) ga bag'ishlangan bir qator maqolalar yozyapman. Biz turli xil uy-joylar bilan uy tarmog'ini yaratishning ajoyib usullari bilan tanishmiz, go'yo ular avtonom ishlaydi, lekin yordam beruvchining orqasida. Xo'sh, nima? Keling buni bajaramiz!

Birinchi maqola muhim, men ko'proq odamlar IoT sotuvchilarni sinab ko'rishlari uchun men eng keng taxtalar va modullar bilan ishlayotganimni tushunishingizni xohlayman.

Otzhe, kob uchun bizga ikkita mikrokontroller kerak, shuning uchun biz g'alaba qozonamiz: ya'ni.

Arduino UNO

Menimcha, sizni haq evaziga bilish shart emas, u allaqachon birinchi marta va DIY chanelers orasida mashhur. Men faqat https protokoli bilan ishlay olmaydiganlarga aytaman, ATmega328P mikrokontrolleriga ishonmang, agar biz mikrokontroller va https protokoli bilan ishlayotgan bo'lsak, biz ESP8266 ni dasturlaymiz.

ESP8266

Men Troyka-Moduli ESP8266 VID Kompanííí "Ampeka" bilan Pricewatimman, Ale Schockino Vicerovyvati Í Zvitch ESP moduli 8266, Vonya belgisini yutib yuborishga imkon bermaydi, yangiliklar boshida bosh. 5 volt orqali ulanish yoki kuchlanish stabilizatorini kontaktlarning zanglashiga olib ulanishi kerak yoki pinni 3,3 volt kuchlanish bilan burish oson.

Daniya mikrokontrolleri jahon bozoridagi Espressif seriyalari orasida eng kuchlisi emas, lekin u eng mashhur va keng tarqalganlaridan biri hisoblanadi. Vín bizning IoT ishlanmalarimiz asosi bo'ladi.

Qo'shimcha tafsilotlar

Shuningdek, biz barcha doslidivlarni yaratishimiz kerak:

  1. Svitlodiodiya
  2. fotorezistor
  3. Termistor
  4. ultratovushli uzoq dunyo
  5. P'ezodinamik
  6. Mini Servodrive
  7. IC - sensor
  8. ICh - masofadan boshqarish pulti

Bu modullarning barchasini onalik qilish, IoT bilan ishlash shart emas, lekin kelajakdagi barcha loyihalarni qurish uchun biz ularni o'ylab topishimiz kerak.

Dasturlar va kutubxonalar

Birinchidan - kutubxonani oling, bu sizga Arduino IDE-da ishlashni osonlashtirishga yordam beradi, shuning uchun siz ESP8266 yutib olishingiz mumkin - http://wiki.amperka.ru/_media/iot-m:iot-m- libs.zip

Boshqa tomondan, IoT haqida qisqacha ma'lumot olish uchun bizga veb-saytlar ular bo'yicha ma'lumotlarni zaryad qilish imkoniyatini berishi kerak.

  1. www.dweet.io
  2. maker.iftt.com
  3. narodmon.ru
  4. va boshqalar.

Uchinchidan, qo'shimcha telefon uchun smartfonni boshqarishimiz uchun bizga Android-da turli xil dasturlar kerak.

  1. ochiq markaz
  2. Miltillash
  3. va boshqalar.

Bu odatiy usullarda, dasturlarda va saytlarda xabar qilinadi, biz buni eng yaqin loyihalarda allaqachon bilamiz.

2. Robimo "Men chiroq haqida o'ylayman"

Men allaqachon siz nudguvati zmusiv? Men oddiy chiroqdan maksimal darajada foydalanaman, go'yo u ichkariga kirsa, xonada qorong'i.

Aslida, bunday navigatsiya uchun UNO kerak emas, siz sozlashingiz mumkin bo'lgan raqamli foto sensorni sozlashingiz mumkin, ammo kelajakda biz ushbu loyihani tanib bo'lmaydigan darajada o'zgartiramiz, bu ba'zi sabablarga ko'ra sodir bo'ladi.

Agar siz 220 voltni elektr bilan ishlatishga tayyor ekanligingizga ishonchingiz komil bo'lmasa, zajigalkani eng katta yorug'lik bilan uring. Men eski TLI-204 chiroqni oldim, shuning uchun u har qanday do'konda (shu jumladan eshikning orqa tomonida) amaliydir.

Chiroqda ikki turdagi ish bor (porlash / porlamaslik), men yoqmoqchiman, uning funksionalligini oshirishni xohlayman, uni yana yoqish va yana o'chirish imkoniyatidan mahrum qilaman.

Fotorezistorni boshqa o'tish moslamasidan foydalanmasdan lansyugga parallel ravishda o'rni bilan ulang, shuning uchun men uch pozitsiyali o'tish tugmasi bilan ikki pozitsiyali o'tish moslamasini almashtirmoqchiman.

To'liq elektr zanjiri quyidagicha ko'rinishi mumkin:

Agar hamma narsa to'g'ri bo'lsa, u holda jumperning uchinchi holatida siz mikrokontrollerdan o'rni uchun reaktivni etkazib, chiroqni yoqishingiz mumkin.

Arduino fotorezistoriga ulaning. Diagramma quyidagicha ko'rinadi:

3. "Aqlli chiroq" kodi

Keling, xona yaqinida qorong'i bo'lishi uchun releyga oqim yuboradigan kod yozaylik.

#define SHINE 5 //FOTORESISTORGA PIN KIRISH #REL 13 ni aniqlang //RELAYGA PIN KIRISH bekor o‘rnatish()( pinMode(SHINE, INPUT); pinMode(REL, OUTPUT); Serial.begin(9600); ) void loop()() agar (analogRead(SHINE)<600) // Если света в комнате мало, то включаем лампу { digitalWrite(REL, HIGH) } else // если много, то выключаем { digitalWrite(REL, LOW); } Serial.printIn(analogRead(SHINE)); selay(500); }

Agar siz hamma narsani ulayotgan bo'lsangiz, foto datchikni chiroqlar bilan olib qo'yishni unutmang, aks holda siz yorug'lik bor-yo'qligini tekshirasiz. Hamma narsa pul topish mumkin.

Keyingi safar biz kodni soddalashtirishga va bir nechta funktsiyalarni qo'shishga harakat qilamiz. Ko'rishguncha!

Amaliyot qilmang