ARDUINADA ARDUINO-dagi ARDUINA SAQIDA - Bluetooth-da ishlaydi - kirish eshigi o'rgimchakka o'xshaydi. Arduino Boladagi Arduino Kodeksi qal'asida elektron qal'a

Shunday qilib, biz ish joyingizda eshikni qulfini o'rnatishga qaror qildik, chunki biz doimo ishlayotganimiz uchun, biz aholining yo'qligida doimiy ravishda yopilishi kerak. Kalitlar ko'pincha tashqarida unutilishga aylanadi. Umuman olganda, ular kodni blokirovka qilish juda yaxshi ekanligiga qaror qilishdi.

Men xitoy va burma bozorlari va eBay men arzonroq va sezilarli darajada jiddiy narsani topmadim va uni o'z qo'llarim qilishga qaror qildim. Men o'zimning mikrokontroller bilan aloqa tajribasi uchun tanlanganligi sababli, men darhol bron qilaman, chunki mikrokontrollerlar bilan aloqa tajribasi umuman yo'q edi.

G'oya

Eshikning tashqi tomonida parol kiritilgan klaviatura bo'lishi kerak, uning ichiga kiritilgan klaviatura bo'lishi kerak, dizaynning qolgan qismi ichki tomonga o'rnatiladi. Eshikning to'liq yopilishini boshqarish Geron tomonidan ishlatiladi. Klaviatura klaviaturasini bosasiz va eshikni yoping, eshik yopilganda, Geron yopilganda, Geron yopilganda uning ishlariga borishni kutmasdan. Eshik 4X raqamli parolni kiritish va "#" ni bosish bilan ochiladi.

Aksessuarlar

Arduino Uno \u003d $ 18
Arduino Protoshild + Bo'sh joyboard \u003d $ 6
L293d \u003d $ 1
BradDatrad uchun 30 dona simlarning zarbasi \u003d $ 4
2 ta eshak rj45 \u003d $ 4
2 pluglar RJ45 \u003d $ 0.5
Markaziy qulflash aktuator \u003d 250 rubl.
Geron \u003d eski derazadan bepul muzlatib qo'yish.
Metall gigant o'lchamlari \u003d bepul tikish
Bir yarim million temirdan olingan eski XUB D-Linkidan
Xuddi shu D-Link Hubdan 12 va 5v \u003d bepul
Bularning barchasini uy-joy uchun mahkamlash uchun bir nechta vintlardir va chelaklar \u003d 100 rubl.
Xavfsizlik signalizatsiyasining boshqaruv paneli \u003d bepul.

Jami: 33,5 va 350 rubl.

Juda oz emas, siz aytasiz, siz albatta haqsiz, lekin siz to'lashingiz kerak! Va siz har doim nimanidir to'plash juda yoqimli. Agar siz yalang'och Mk-dan Arduinosiz ishlatsangiz, dizayn sekinlashishi mumkin.

Majlisga tayyorgarlik

Aktuator dizaynining asosiy elementini sotib olish haqida bir necha so'z aytmoqchiman. Mahalliy avtoulov do'konida menga ikkita turdagi aktyorlar: "ikkita sim va beshta". Sotuvchi ayolning so'zlariga ko'ra, ular mutlaqo bir xil edi va simlar sonining farqi umuman hech narsa anglatmaydi. Biroq, keyinchalik chiqayotganda, unday emas! Men ikkita sim bilan qurilmani tanladim, u 12V dan berilanadi. Besh sim bilan dizaynda cheklovlar o'rnatiladi, bu sizga dastakning harakatini boshqarishga imkon beradi. Men uni ajratib qo'yganimda uni faqat sotib olmaganimni angladim. To'lqinning kursi odatda lentani odatiy holga surish uchun juda qisqa bo'lib chiqdi, shuning uchun uni biroz o'zgartirish kerak edi, ya'ni aktuator dastasini qisqartirish kerak edi. Buning uchun tana odatdagi Hackshyw bilan kesilishi kerak edi, chunki ikkinchi yuvish mashinasi ichkarida edi. Moviy lentamiz bizni har doimgidek yig'ishimizga yordam berganidek.
Aktuatorning dvigatelini to'xtatish paytida L293d Motors kompaniyasini boshqarish uchun L293D Motors foydalanildi, bu ishlov beruvchi dvigatel 600 mln.
Klaviaturadan boshqarish vositalari, dinamik va ikki oqim nazoratni boshqarish panelidan olib tashlandi. Konsol va asosiy qurilma buralgan juftlik va RJ45 ulagich yordamida ulangan bo'lishi kerak edi

Dasturlash.

Shunday qilib, Arduino dasturlash tajribasi kabi men hozirgacha bo'lmaganman. Men Arduino.cc saytidan boshqa odamlarning ishi va maqolalaridan foydalandim. Kim qiziqadi, bu chirkin kodiga qaray oladi :)

Foto va video



Arduino va aktuator


Quvvatlantirish manbai


Klaviatura


Tikingalış (Aktuatorga metall igna bilan ulangan va issiqlik uchun isitish)

Qurilmaning video ishlashi:

Bugungi kunda oddiy bloking tizimini yaratish uchun Arduino bilan RFID o'quvchidan qanday foydalanish kerakligi haqida darsdir - Oddiy so'zlar - RFID qulfi.

RFID (ingliz tilida radio chastotani aniqlash, radio chastota identifikatsiyasi) - elektron chenderlarda yoki RFID yorliqlarida saqlanadigan ob'ektlarni avtomatik identifikatsiyalash usuli radio signallari orqali o'qiladi. Har qanday RFID tizimi o'quvchi (o'quvchi, o'quvchi yoki so'roq qiluvchi) va transponderdan iborat (shuningdek, RFID yorlig'i, RFID yorlig'i atamasi ham qo'llaniladi).

Darsonda Arduino bilan RFID yorlig'i qo'llaniladi. Qurilma har bir RFID yorlig'ining noyob identifikatorini (UID) o'qiydi, ular o'quvchi yonida joylashtirilgan va uni OLED displeyda namoyish etamiz. Agar UID yorlig'i Arduino xotirasida saqlanadigan oldindan belgilangan qiymatga teng bo'lsa, unda biz displeyda "qulflanmagan" xabarini ko'ramiz. Agar noyob identifikator oldindan belgilangan qiymatga teng bo'lmasa, "qulfdan chiqarilgan" xabar ko'rinmaydi - quyidagi fotosuratni ko'ring.

Qasr yopiq

Qasr ochiq

Ushbu loyihani yaratish uchun ma'lumotlar:

  • RFID RC522 RFID
  • OLED displey
  • Non taxta
  • Simlar

Qo'shimcha ma'lumotlar:

  • Batareya (Powerbank)

Komponent loyihalarining umumiy qiymati taxminan 15 dollarni tashkil etdi.

2-qadam: RFID o'quvchisi RC522

Har bir RFID yorlig'i kichik chipga ega (oq kartaning fotosurati). Agar siz ushbu RFID kartasida chiroq yuborsangiz, siz uni o'rab turgan kichik chip va o'ralgan palanani ko'rishingiz mumkin. Ushbu chipda quvvat ishlab chiqarish uchun batareya yo'q. O'quvchidan bu katta palan yordamida simsiz ovqatlanadi. Siz shunga o'xshash RFID kartasini 20 mm gacha bo'lgan masofada o'qishingiz mumkin.

Xuddi shu chip RFID teglarida mavjud.

Har bir RFID yorlig'i uni aniqlaydigan noyob raqamga ega. Bu UID, u OLED displeyda ko'rsatilgan. UID-dan tashqari, har bir yorliq ma'lumotlarni saqlashi mumkin. Ushbu turdagi kartalarda siz 1 ming ma'lumotni saqlashingiz mumkin. Ta'sirchan, shunday emasmi? Ushbu xususiyat bugun foydalanilmaydi. Bugungi kunda qiziqadigan hamma narsa - bu UID uchun o'ziga xos kartani aniqlash. RFID o'quvchisining narxi va ushbu ikki RFID kartalari 4 AQSh dollarini tashkil etadi.

3-qadam: OLED displey

Dars OLED monitorida 0.96 "128x64 I2C ishlatiladi.

Bu Arduino bilan foydalanish uchun juda yaxshi namoyish. Bu OLED displeyi va bu uning kam energiya sarflanganligini anglatadi. Ushbu displeyning quvvat sarfi taxminan 10-20 mln, va u piksellar soniga bog'liq.

Displeyda 128 dan 64 piksel va mayda o'lchamga ega. Ikkita displey variantlari mavjud. Ulardan biri monoxrom, ikkinchisi, darsda ishlatilganidek, ikkita rangni ko'rsatishi mumkin: sariq va ko'k. Ekranning yuqori qismi faqat sariq bo'lishi mumkin va pastki qismi ko'k.

Ushbu OLED displeyi juda yorqin va uning ajoyib va \u200b\u200byoqimli kutubxonasi, bu ushbu displue uchun Adafuit tomonidan ishlab chiqilgan. Ushbu displeyga qo'shimcha ravishda I2C interfeysidan foydalanadi, shuning uchun Arduino bilan bog'liqlik juda sodda.

VCC va GND-dan tashqari ikkita simni ulashingiz kerak. Agar siz Arduino uchun yangi bo'lsangiz va loyihangizda arzon va oddiy displeydan foydalanmoqchi bo'lsangiz, bundan boshlang.

4-qadam: Barcha ma'lumotlarni ulang

Arduino BMT kengashi bilan aloqa juda oddiy. Avval biz quvvatni o'quvchiga va displeyga ulaymiz.

Ehtiyot bo'ling, RFID o'quvchisi ARDUININ BEO dan 3.3 V ning 3.3 Vilishi bilan ulangan bo'lishi kerak yoki u buzilmaydi.

Displey 3.3 v tomonidan ishlashi mumkin bo'lganligi sababli, biz ikkala modulni ham moduldan ijobiy avtobus tartibiga ulaymiz. Keyin ushbu avtobus ARDUININ BEO dan 3,3 Vt natijasi bilan bog'liq. Shundan so'ng biz ikkala erni (GND) masxara qiluvchi avtobus bilan bog'laymiz. Keyin GND avtobus makoni Arduino GND bilan bog'laymiz.

OLED displey → Arduino

Scl → analog PIN 5

SDA → Analog 4

RFID Reader → Arduino

RST → Digital PIN 9

IRQ → ulanmagan

Miso → Digmal PIN 12

MOO → Digmal PIN 11

Sck → Raqamli PIN 13

SDA → Raqamli PIN 10

RFID o'quvchi moduli Arduino bilan muloqot qilish uchun SpiP interfeysidan foydalanadi. Shuning uchun biz Arduino BMT-dan SPI apparat pinlaridan foydalanishimiz kerak.

RST chiqish raqamli kontakt 9. Raqamli kontaktga kiradi. Miso aloqasi raqamli chiqish bilan bog'liq 12. MOOYIN PIN raqamli raqamli raqamli. SADK Raqamli 1 raqamli kontakt 13 Raqamli chiqish uchun SDA chiqish raqamiga to'g'ri keladi.

RFID o'quvchisi ulangan. Endi biz I2C interfeysi yordamida OLED displeyini Arduino-ga ulashimiz kerak. Shunday qilib, displeyda 5-analogdan Analogning 5 va SDA chiqishi bo'yicha SCL chiqishi. .

5-qadam: Loyiha kodi

Shunday qilib, loyiha kodi tuzilganligi sababli, biz ba'zi kutubxonalarni o'z ichiga olishimiz kerak. Avvalo, bizda RFID kutubxonasi kerak.

Uni o'rnatish uchun boring Eskiz -\u003e Kutubxonalar kiradi -\u003e Bosh kutubxonalar (Kutubni boshqarish). MFR522 ni toping va o'rnating.

Shuningdek, bizda Adafiy SSD11306 kutubxonasi va Adafiy Adafiy Adafiy Adafiy Adafiy Adafiy Adafud kutubxonasi kerak.

Ikkala kutubxonani ham joylashtiring. SSAFRU SSD1306 kutubxonasi kichik modifikatsiyaga muhtoj. Papkaga o'ting Arduino -\u003e KutubxonalarAdafiy SSD1306 papkasini oching va kutubxonani tahrirlang AdaFRuitric_sSDD1306.H.. 60-qatorni bajaring va 69-ni bajaring, chunki Displeyda 128x64 qarori bor.

Birinchidan, biz Arduino tani olishi kerak bo'lgan RFID yorlig'ini e'lon qilamiz. Bu butun sonlar qatori:

Int kod \u003d (69,141,866); // uid

Keyin RFID o'quvchini va displeyni boshlaymiz:

Rfid.pcd_init (); disby.begin (SSD1306_SDSWINPVCC, 0x3C);

Shundan so'ng, tsikl funktsiyasida biz har 100 msni o'quvchiga tekshiramiz.

Agar o'quvchiga yorliq bo'lsa, biz uni usit va displeyda chop etamiz. Keyin biz hozirgina o'qigan UID yorlig'ini taqqoslaymiz, bu kod o'zgaruvchisida saqlanadi. Agar qiymatlar bir xil bo'lsa, biz qulfni ochish xabarini ko'rsatamiz, aks holda biz ushbu xabarni ko'rsatmaymiz.

Agar (Match) (Serial.println) ("\\ ni ushbu kartani bilsa!");) Boshqa (Serial.println ("\\ nunnphintln (" \\ Nunktnewn Card "););););

Albatta, siz 1 ta UID qiymatlarini tejash uchun ushbu kodni o'zgartirishingiz uchun siz ushbu kodni o'zgartirishingiz mumkin, shunda loyiha RFID yorliqlarini tani. Bu shunchaki misol.

Loyiha kodi:

#Include. #Include. #Include. #Include. #Defin OLED_RET 4 AdaFrut_ssddddddddddddddddddddsdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd) displey (oled_rreet); #Defin SS_PIN 10 #Defin RST_PIN 9 MFRC522 RFID (SS_PIN, RSTIN); // Sinf MRFR522 :: Mifare_key kaliti; Int kod \u003d (69,141,866); // Bu STR STR Codead \u003d 0; Simpsting; VOLD sozlash (Serial.begin (9600); // Prots RFID.pcd_init (SSD1306_SDMITCCCC, 0x3c); // i2c-addr3d bilan boshlang'ich. (128x64 uchun) // buferni tozalash uchun. Displey.display (); Oq); // qora); displey.settextsuece (2); Displey.secursor (10.0); displey.print ("RFID qulfi"); displey.display (); ) Nisf Loop () (rfid.pccccewcardpresent ()) (Readrfid ();) Nisf (100);) Hol () Hol) Hol () Hol) Hol () Hol) Hol () Hol) Voce Readrfid () (RFID.CCC_RACARDERVALLAL ('\\ nPinc turi: ») )) && polictype! \u003d MFRC5222 :: picc_type_mifare_mic && picctype! \u003d MFRC5222 :: picc_thepe_mifare_mifare_4k) ('Sizning tegingiz) klassik ().) Re'lofiy (). Serial.println (" "S uid: RFIDEC.UID.UIDTYTBYTH, RFID.UID.SIZE, RFID.UID.SIZED;" Satr (RFID.UID.UIDTYTYTY) + "" Satr (RFID.UID.UIDTYTETBYTE + '' + satr (RFID.UID.UIDTET); printuid (); int i \u003d 0; Boolean Match \u003d Haqiqat; i

6-qadam: yakuniy natija

Darsdan ko'rinib turibdiki, siz RFID o'quvchisini loyihalaringiz uchun kichik pul evaziga qo'shishingiz mumkin. Siz ushbu o'quvchi yordamida xavfsizlik tizimini osongina yaratishingiz yoki yanada qiziqarli loyihalarni yaratishingiz mumkin, masalan, USB diskdagi ma'lumotlar faqat qulfdan so'ng o'qiladi.

YouTube etakchi kanal "Alexgyver" o'z qo'llari bilan elektron qulfni berishni so'radi. Arduino elektron qulflari haqida video tsikliga xush kelibsiz. Umuman olganda, usta g'oyani tushuntiradi.

Elektron blokirovka tizimini yaratish uchun bir nechta variant mavjud. Ko'pincha eshik va qutilarni, kabinetlarni qulflash uchun ishlatiladi. Shuningdek, keshlar va yashirin Safarlarni yaratish. Shuning uchun siz ishlash uchun qulay bo'lgan va qurilma tizimini ichki va tashqarisidan batafsil ko'rsatilishi mumkin bo'lgan tartibni amalga oshirishingiz kerak. Shuning uchun men eshik bilan ramka yasashga qaror qildim. Buning uchun sizga 30 x 30 uzunlik kerak bo'ladi. Fonjwher 10 mm. Eshik urishlari. Dastlab, men kontrplak quti yasashni xohlardim, ammo hamma narsa ehtiyot qismlar bilan o'ralganligini esladim. Bunday quti qo'yilmaydi. Shuning uchun tartib tuzatiladi. Agar kimdir elektron qulfni qo'yishni xohlasa, unda siz hamma narsani osonlikcha takrorlashingiz mumkin.

Ushbu xitoy do'konida qasrni topishingiz kerak bo'lgan narsalarning barchasi topiladi.

Maqsad - elektron qulflar uchun eng samarali sxemalar va dasturiy ta'minotni ishlab chiqish. Ushbu tizimlarni eshiklaringiz, qutilar, kabinetlar va keshlarga o'rnatishda ushbu natijalardan foydalanishingiz mumkin.


Eshik tayyor. Endi siz elektron tarzda ochilishi va yaqinlashish kerak. Ushbu maqsadlar uchun AliExpress-ga ega bo'lgan kuchli solenidli pike (yuqoridagi do'konga havola). Agar siz ish kuchlanishli xulosalarga topshirgan bo'lsangiz, u ochiladi. Kuilning qarshiligi deyarli 12 ohm bo'lib, bu 12 voltning kuchlanishida, paly 1 amperni iste'mol qiladi. Lityum batareyasi va modulning ko'payishi bunday vazifani bajaradi. Tegishli kuchlanishni sozlang. Garchi siz va biroz ko'proq bo'lsa ham. Maydonning ichki qismiga masofada ushlab turilib, olisni yopishib ololmayman. Shekold metall qutisi shaklida qasoskor qism bo'lishi kerak. Uni undan tashqarida foydalanish noqulay. Hech bo'lmaganda normal ishlashning paydo bo'lishini biz bir qadam qo'yishimiz kerak.

Bo'sh rejimda kerak, agar eshik oldida tutqich bo'lsa, biz pulsni qo'llasak, dastgoh uchun eshikni ochamiz. Ammo agar siz sakrab chiqsangiz, bu usul endi mos kelmaydi. Kattalashtirish konvertori yukni engishga qodir emas. Spring-eshigini ochish uchun siz katta batareyalar va yanada kuchli konvertordan foydalanishingiz kerak bo'ladi. Tarmoq elektr ta'minoti va tizimning avtonomligiga ball to'plang. Xitoy do'konlarida katta o'lchamlar mavjud. Ular qutilarga mos keladi. Oziqlanish Yolg'on yoki tranzistor Mospheore yoki o'sha tranzistordagi quvvat kaliti yordamida ta'minlanishi mumkin. Qizig'i shundaki, kamroq qimmat va kamroq variant - bu qulflash elementi - bezatadigan element - bezatilgan yoki yanada jiddiy valf. Shuningdek, u biriktiruvchi novda rolini bajaradigan po'latdan yasalgan ignalarga kerak bo'lishi mumkin. Bunday tizim yuqori darajada kerak emas. Ammo bu ko'proq joy va yanada murakkabroq menejment mantig'ini oladi.

Savdo drayverlarining ikki turi mavjud. Kichik zaif va katta kuchli, bu jiddiy metall pinlardagi teshiklarga osoyishta bo'lishi mumkin. Ikkalasi ham ko'rsatilgan variantlar eshiklarda va tortmalarda ishlaydi. Quticham bilan tinker bo'lishi kerak, tiniq devorga teshikni tortadi.

Ikkinchi qismi

Taraqqiyot hali ham turmaydi va "Aqlli qal'alar" kvartiralar, garajlar va uylar eshigilarda tobora ko'proq paydo bo'ladi.

Smartfondagi tugmachani bosganingizda shunga o'xshash qulf ochiladi. Yaxshiyamki, smartfonlar va planshetlar bizning foydalanishimizga kirishdi. Ba'zi hollarda, "aqlli qulflar" Google Disk kabi "bulutli xizmat" ga ulangan va masofadan turib ochadi. Bundan tashqari, ushbu parametr boshqa odamlarga eshikning ochilishiga kirish imkoniyatini beradi.

Ushbu loyiha ARDUINA-dagi ARDUININING ARDUINA-dagi ARDUINA-da amalga oshiriladi, uni yerning har qanday nuqtasidan masofadan boshqarish mumkin.

Bundan tashqari, loyihada barmoq izlarini identifikatsiyalangandan so'ng qulfni ochish qobiliyatini qo'shdi. Buning uchun barmoq izi sensori birlashtirilgan bo'ladi. Eshiklarni ochish uchun ikkala variantlar Adafiy IO platformasi asosida ishlaydi.

Shunga o'xshash qasr Smart uyingiz loyihasidagi birinchi qadam bo'lishi mumkin.

Barmoq izi sensori

Barmoq izlari sensori bilan ishlash uchun ARDUOINA UChUN ARDUOINA UChUN ARGUL kutubxonasi mavjud bo'lib, ular sensorni sozlash jarayoniga katta yordam beradi. Ushbu loyihada ARDUININ BEO ishlatiladi. AGAFRU CC3000 Internetga ulanish uchun ishlatiladi.

Keling, elektr energiyasini ulay boshlaylik:

  • 5V-kontaktni ARDUINO Kengashidan qizil relikka ulang;
  • Arduino bilan GND aloqasi yo'qolgani yo'qolgan ko'k temir yo'lni bog'laydi.

Barmoq izlari sensori bilan bog'lanish:

  • Avval hokimiyatni ulang. Buning uchun qizil sim temir yo'l bilan temir yo'l-transport vositasi bilan temir yo'l bilan bog'liq;
  • Oq sensor simi ARDUOIN uchun 4 ga bog'lanadi.
  • Yashil sim mikrokontrolerga 3 ga murojaat qiladi.

Endi biz CC3000 modul bilan shug'ullanamiz:

  • CC3000 kartalaridan IRQ bilan bog'laning Arduino-da 2-ga ulaning.
  • Vbat - 5 ga bog'lanish
  • CS - 10 bilan bog'lanish uchun.
  • Shundan so'ng, siz SPI kontaktlarini Arduinoga ulashingiz kerak: Mozi, Miso va Calk mos ravishda 11, 12 va 13-ga aloqada.

Xo'sh, oxirida ovqat berish kerak: Vin - Arduino 5V (O'rnatish kengashingizda qizil relikka) va GND (LAPPE-dagi ko'k temir yo'l).

To'liq yig'ilgan loyihaning fotosurati quyida keltirilgan:

AdaFRuit IO-da ma'lumotlarni yuklaydigan eskizni rivojlantirishdan oldin, barmoq izingiz sensori haqida ma'lumot uzatishingiz kerak. Aks holda, kelajakda u sizni tanimaydi;). Biz ARDUININA-dan foydalanib barmoq izingizni tuyg'usini o'zgartiramiz. Agar siz ushbu sensor bilan birinchi marta ishlayotgan bo'lsangiz, biz kalibrlash jarayonini o'qishni tavsiya etamiz va barmoq izi sensori bilan ishlash uchun batafsil ko'rsatmalar.

Agar siz buni hali qilmagan bo'lsangiz, siz AdaFRue IO hisobini boshlaysiz.

Shundan so'ng, Arduino-dagi "aqlli qulf" ni rivojlantirishning keyingi bosqichiga o'tishimiz mumkin: ya'ni eskizning rivojlanishi, bu ma'lumotlarni AdaFRue IO-da uzatadigan eskizni rivojlantirish. Dastur juda katta bo'lganligi sababli, biz uning asosiy qismlarini ta'kidlaymiz va keling, to'liq eskizni yuklab olishingiz mumkin bo'lgan Githubga havolani bildiramiz.

Skepatch barcha kerakli kutubxonalarni yuklash bilan boshlanadi:

#Include.

#Include.

#Include.

# "AdaFruit_mqtt.h"

#Include "AdaFruit_mqtt_cc3000.h"

#Include.

#Include. >

Shundan so'ng, siz SSID va parolni (parol) ko'rsatadigan WiFi tarmog'ingiz parametrlarini kiritib, eskizni to'g'ri tuzatishingiz kerak:

#Defin WLAN_SECE WLAN_SEC_WPA2\u003e

Bundan tashqari, AdaFrushi IO hisob qaydnomangizni kiritish uchun siz ism va Aio tugmachasini (tugmachasini) kiritishingiz kerak:

#Defin aio_serverport 1883.

#Defin aio_usname "AGAFRUATUIK"

#Defin aio_key "AdaFruite_io_Key"\u003e

Barmoq izlari sensori tomonidan o'zaro ta'sir va ma'lumotlarni qayta ishlash uchun quyidagi satrlar javobgardir. Agar sensor faollashtirilgan bo'lsa (to'g'ri kelganlar izi), "1" bo'ladi:

const char barmoq izi_feed progmem \u003d aio_username "/ ozuqa / barmoq izi";

AdaFRuit_mqtt_pTTT_Publaning barmoq izi \u003d AdaFruit_mqtt_pumlish (& mqtt, barmoq izi_fid);

Bundan tashqari, sening sensorimiz uchun yumshoq ob'ektiv ob'ektni yaratish kerak:

Softwarearyial MySerial (3, 4);

Shundan so'ng, biz sensorimiz uchun ob'ektni yaratamiz:

AdaFruit_ferprint pleer \u003d AdaFruit_ferprint (va MySerial);

Eskiz ichida, kelajakda qaysi barmog'ingizni yoqish kerakligini aniqlaymiz. Ushbu misol sensor tomonidan ishlatiladigan birinchi barmoq izi identifikatoriga mos keladigan 0 dan foydalanadi:

sT barmoq \u003d 0;

Shundan so'ng, bizning loyihamizda hisoblagich va kechikish (kechikish). Aslida, ochilgandan keyin qulf avtomatik ravishda ishlashini xohlaymiz. Ushbu misol 10 soniya kechikishdan foydalanadi, ammo siz ushbu qiymatni o'z ehtiyojlaringiz uchun o'zgartirishingiz mumkin:

int ForityCounter \u003d 0;

iNT etishtirish \u003d 0;

int FitnTime \u003d 10 * 1000;

O'rnatish () funktsiyasining organida barmoq izlarini topamiz va CC3000 chipining Wi-Fi tarmog'iga ulanishni ta'minlaymiz.

Loop tanasida () funktsiya Adafuit IO ga ulanadi. Buning uchun quyidagi chiziq javobgar:

AGAFRUE IO platformasiga ulangandan so'ng, oxirgi barmoq izlarini tekshiring. Agar u to'g'ri bo'lsa va qulf yoqilmagan bo'lsa, biz AdafRuit IO-da qayta ishlash uchun "1" ni yuboramiz:

agar (barmoq izid \u003d\u003d basingiz && lockstate \u003d\u003d noto'g'ri) (

Serial.println (f ("Ochiq ta'minlangan!");

lockState \u003d haqiqat;

Seriya.println (f ("muvaffaqiyatsiz");

Seriya.println (f ("OK!");

filial \u003d millis ();

Agar pastadir () funktsiyasida () funktsiyada qulf yoqilgan bo'lsa va yuqorida ko'rsatilgan, "0" yuborish uchun kechiktirilgan qiymatga erishdik:

agar ((FaollashtirishCopter - Faollash vaqti\u003e Faollashtirish vaqti) && Lockstate \u003d\u003d TRUE) (

qulflatchat \u003d noto'g'ri;

if (! barmoq izi.pumlish (holat)) (

Seriya.println (f ("muvaffaqiyatsiz");

Seriya.println (f ("OK!");

Siz Github-dagi kodning so'nggi versiyasini yuklab olishingiz mumkin.

Bizning loyihamizni sinab ko'rish vaqti keldi! Arduino uchun barcha kerakli kutubxonalarni yuklab olish va o'rnatish uchun unutmang!

Ko'rsatib turing va eskizga barcha kerakli o'zgarishlarni kiritganingizga ishonch hosil qiling va uni Arduino-ga yuklab oling. Shundan so'ng, seriyali monitor oynasini oching.

Arduino Wi-Fi tarmog'iga ulanganda barmoq izi sensori qizil rangda bo'ladi. Barmog'ingizni sensorga afsonaviy afsonaviy. Serial monitor oynasi ID raqami ko'rinishi kerak. Agar bu to'g'ri bo'lsa, xabar paydo bo'ladi, "OK!". Bu shuni anglatadiki, ma'lumotlar IFRUAT IO serverlariga yuborilgan.

LED misolida yanada blokirovka qilish sxemasi va eskizi

Endi biz eshikni blokirovka qilish uchun bevosita javobgar bo'lgan loyihaning bir qismi bilan shug'ullanamiz. Simsiz tarmoqqa ulanish va qulfni faollashtirish / o'chirish uchun siz ESP8266 moduli (ESP8266 modulingiz Adafuritdan bo'lishi shart emas). Biz quyida ko'rib chiqamiz, siz AdaFRuit IO yordamida ikkita platformalar (Arduino va ESP8266) o'rtasida ma'lumot almashish qanchalik osonligini baholay olasiz.

Ushbu bo'limda biz to'g'ridan-to'g'ri qulf bilan ishlamaymiz. Buning o'rniga, biz shunchaki LED kontaktga ulanamiz, bu erda qulflangan qulf ulanadi. Bu, qasr dizayni xususiyatlarini chuqurlashtirmasdan kodimizni sinash imkoniyatini beradi.

Sxema juda oddiy: birinchi navbatda ESP8266-ni non taxtasida o'rnating. Shundan so'ng, LEDni o'rnatdi. Rahbarning uzun (ijobiy) oyog'i rezistor orqali ulanganligini unutmang. Ikkinchi rezistorta oyoq 5-ilovaning ESP8266 modulida 5 ga ulangan. LED ning ikkinchi (katod) ESP8266-da GND PIN-ga ulangan.

To'liq yig'ilgan sxema quyidagi fotosuratda ko'rsatilgan.


Endi keling, ushbu loyihada foydalanadigan eskiz bilan tanishamiz. Yana, kod juda katta va murakkab va murakkab, shuning uchun biz faqat asosiy qismini ko'rib chiqamiz:

Biz kerakli kutubxonalarni ulashni boshlaymiz:

#Include.

# "AdaFruit_mqtt.h"

# "AdaFruit_mqtt_cent.h"

WiFi-ni sozlash:

#Defin WLAN_SSID "O'zligingiz_wifi_sid"

#Defin WLAN_Pass "Sizning_wifi_pall"

#Defin WLAN_SESTON WLAN_SEC_WPA2.

Shuningdek, AGAFRU IO parametrlarini sozlang. Xuddi avvalgi bo'limda bo'lgani kabi:

#Defin aio_server "io.adafrit.com"

#Defin aio_serverport 1883.

#Defin aio_username "AdaFruit_io_" foydalanuvchi "

#Defin aio_key "AdaFruite_io_key"

Biz qaysi qarag'ayni men bilan bog'laganimizni ko'rsatamiz (kelajakda bizning qulfimiz yoki estayxo bizning eri):

int relaypin \u003d 5;

Oldingi qismdagi kabi barmoq izi sensori bilan o'zaro ta'sir:

const charc_fed progmem \u003d aio_username "/ Ozuqa / qulf";

AdaFRuit_mqtt_subs. Lock \u003d AdaFRuite_mqtt_subsbass (& Mqtt, Lock_Fed);

O'rnatish () funktsiyasining organida biz LED ulangan PIN-kod chiqish rejimida ishlashi kerakligini ko'rsatamiz:

pinmode (Relastpin, chiqtirish);

Loop () tsikl ichida, birinchi marta Adafuit IO ga ulanganligini tekshiring:

Shundan so'ng, qaysi signal keladi. Agar "1" uzatilgan bo'lsa, biz ilgari bizning LED ulanganligi haqida xabar bergan kontaktni faollashtiring. Agar biz "0" ga ega bo'lsak, biz "POL" holatiga kontaktni tarjima qilamiz:

AdaFruit_mqtt_subektsiya * Obunani obuna bo'lish;

vaqt ((Obuna \u003d Mqtt.readseUrsriatrication (1000)))) (

if (Obuna \u003d\u003d & qulflash) (

Seriya.print (f ("GoD:"));

Seriya.println ((char *) qulflangan.

// Buyruqni ma'lumot turiga o'zgartirish

Satr buyrug'i \u003d string (char *) Lock.Lastread);

agar (buyruq \u003d\u003d 0 ») (

digitalwrite (Rulpin, past);

agar (buyruq \u003d\u003d 1 ») (

digitalWrite (Rulpin, yuqori);

Github-dagi eskizning so'nggi versiyasini topishingiz mumkin.

Bizning loyihamizni sinab ko'rish vaqti keldi. Arduino uchun barcha kerakli kutubxonalarni yuklab olishni va eskizga o'zgartirish kiritganingizni tekshiring.

ESP8266 chipini dasturlash uchun siz oddiy USB-FTDI konvertoridan foydalanishingiz mumkin.

Arduino-dagi sketni yuklang va serial monitor oynasini oching. Ushbu bosqichda biz AdaFruti IO ga ulanishni tekshirib ko'ramiz: arzon funktsiyalar uchun biz bundan keyin ham qarashamiz.

Sinov loyihasi

Endi sinovga o'ting! AGAFRUE I foydalanuvchi menyusiga, ozuqa menyusida boring. Barmoq izi va qulflash uchun yaratilgan yoki hech qanday kanallarni tekshiring (bosma ekranda quyidagi satrlar barmoq izi va qulflangan):


Agar yo'q bo'lsa, qo'lda yaratishingiz kerak.

Endi biz barmoq izlari va qulflangan kanallar o'rtasida ma'lumotlarni almashishimiz kerak. Qulf kanali barmoq izi kanalini "1" qiymatini va aksincha olishini va vitse-ni qabul qilganda "1" qiymatini amalga oshirishi kerak.

Buning uchun AGAFRU IO: Triggers juda kuchli vositasidan foydalaning: Triggerlar. Triggerlar sizning konfiguratsiyalangan kanallarga murojaat qilishingiz mumkin. Ya'ni, ular ikkita kanalni o'zaro bog'lanish uchun ishlatilishi mumkin.

AGAFRUE IO-da Trigers bo'limidan yangi reaktiv tegger yarating. Bu barmoq izlari sensori kanallari va qasrlar o'rtasidagi ma'lumotlarni almashish qobiliyatini ta'minlaydi:


Ikkala urg'u berilganda, bu shunday ko'rinishi kerak:

Hamma narsa! Endi biz haqiqatan ham bizning loyihamizni sinab ko'rishimiz mumkin! Barmog'ingizni sensorga qo'llang va ARDUINO LED tomonidan ma'lumot uzatishiga to'g'ri kelmoqda. Shundan so'ng, LED ESP8266 modulida yonib-o'chib turadi. Bu shuni anglatadiki, u MQTT orqali ma'lumotlarni qabul qila boshladi. Ushbu vaqtda tuman taxtadagi LED ham yoqilishi kerak.

Siz oxirgi marta eskizga o'rnatganingizdan so'ng (sukut bo'yicha, bu qiymat 10 soniya), LED o'chadi. Tabriklaymiz! Siz dunyoning istalgan nuqtasida bo'lgan barmoq izi bilan boshni boshqarishingiz mumkin!

Elektron qasrni sozlang

Biz Loyihaning so'nggi qismiga bordik: Arduino va barmoq izi sensori yordamida elektron qulfni to'g'ridan-to'g'ri ulanish va boshqarish. Loyiha oson emas, siz barcha manbalardan yuqori bo'lgan shaklda foydalanishingiz mumkin, ammo u erni ulash uchun LED o'rniga.

Qulfni to'g'ridan-to'g'ri bog'lash uchun sizga qo'shimcha komponentlar kerak bo'ladi: elektr ta'minoti uchun 12 V va Maseter, lekin siz IRLB8721pbf Masete ishlatiladi, masalan, Bipolar tranzistoridan foydalaning. Bipomar tranzistoridan foydalaning, sizga rezistorni qo'shish kerak bo'ladi.

Quyida ESP8266 moduliga barcha tarkibiy qismlarni ulashning elektr pallasi:


Shuni esda tutingki, agar siz MOOFET Transtistoridan foydalanayotgan bo'lsangiz, siz ESP8266 modulining 5-PIN-kodlari va tranzistorning 5-PIN-kodlari o'rtasida rezistor kerak bo'lmaydi.

To'liq yig'ilgan loyiha quyidagi fotosuratda keltirilgan:


FTDI modulidan foydalanib, ESP8266 modulini FTDI modulidan foydalanib, 12 V quvvatni Jekni ulang. Agar siz ulanish uchun tavsiya etilgan pinlardan foydalangan bo'lsangiz, eskizda hech narsani o'zgartirishingiz shart emas.

Endi siz barmog'ingizni sensorga suyanishingiz mumkin: qulf barmoq izlariga javob berishingiz kerak. Quyidagi video ta'sirda avtomatik "aqlli" qasr loyihasini ko'rsatadi:

"Smart Castle" loyihasini yanada rivojlantirish

Bizning loyihamizda barmoq izidan foydalanib eshik qulfini bo'shatish uchun masofadan boshqarish pultini chiqardi.

Siz xavfsiz tajriba qilishingiz, eskiz va belgini o'zgartirishingiz mumkin. Masalan, siz 3D printer, manipulyator yoki to'rtburchaklaringizni boshqarish uchun eshigi elektron qulfini almashtirishingiz mumkin ...

Siz aqlli uyingizni rivojlantirishingiz mumkin. Masalan, Arduxada sug'orish tizimini masofadan faollashtirish yoki xonadagi chiroqni kiriting ... Siz bir vaqtning o'zida AdafRuit IO-dan foydalanib, deyarli cheksiz sonli qurilmalarni faollashtirishingiz mumkin.

O'zingizning sharhlaringizni, savollaringizni qoldiring va quyida shaxsiy tajribangizni baham ko'ring. Munozarada yangi g'oyalar va loyihalar tug'iladi!