Ինչպես պատրաստել համակցված կողպեք arduino-ում: Arduino համակցված փական

DIY Arduino կոդով կողպեք


Նախապատմություն

Պարզապես պատահեց, որ մենք աշխատավայրում որոշեցինք կոմբինացված կողպեք տեղադրել մեր դռան վրա, քանի որ անընդհատ ներս ենք վազում, դուրս ենք վազում գրասենյակից, որի դուռը պետք է անընդհատ փակվի բնակիչների բացակայության դեպքում: Բանալիները հաճախ մոռացվում են ներսում: Ընդհանուր առմամբ, մենք որոշեցինք, որ համակցված կողպեքը հիանալի լուծում է:

Շրջելով չինական լու շուկաները և ebay-ը, ես ոչ մի էժան և քիչ թե շատ լուրջ բան չգտա և որոշեցի ինքս պատրաստել։ Անմիջապես վերապահում կանեմ, որ Arduino պլատֆորմն ընտրվել է իր պարզության համար, քանի որ միկրոկոնտրոլերների հետ շփվելու փորձ ընդհանրապես չկար։

Դռան վրա դրսումդուռը պետք է ունենա ստեղնաշար, որի վրա մուտքագրված է գաղտնաբառը՝ հետ ներսումկառուցվածքի մնացած մասը ամրացված է: Դռան ամբողջական փակումը վերահսկելու համար օգտագործվում է եղեգի անջատիչ: Դուրս գալով աշխատասենյակից՝ մարդը սեղմում է «*» ստեղնաշարի վրա և, չսպասելով, որ դուռը մոտով փակվի, գնում է իր գործին, երբ դուռը ամբողջովին փակվի, եղեգի անջատիչը կփակվի, և կողպեքը կփակվի։ Դուռը բացվում է՝ մուտքագրելով 4 նիշանոց գաղտնաբառը և սեղմելով «#»:

Բաղադրիչներ

Arduino UNO = 18 դոլար
Arduino protoshield + breadboard = $ 6
L293D = 1 դոլար
30 հատ հյուսի մետաղալարերի փաթեթ = 4 դոլար
2 RJ45 վարդակներ = 4 դոլար
2 RJ45 վարդակներ = 0,5 դոլար
մղիչ կենտրոնական փական= 250 ռուբլի
Reed switch = պոկվել է հին պատուհանից:
Հսկա չափսի մետաղական սողնակ = անվճար
Հին D-LINK հանգույց՝ պատրաստված 1,5 մմ երկաթից = անվճար
Նույն D-LINK հանգույցից սնուցումը 12 և 5v =-ի համար նույնպես անվճար է
Մի փունջ պտուտակներ և ընկույզներ՝ այս ամենը մարմնին կցելու համար = 100 ռուբլի:
Կառավարման վահանակից Հակաառեւանգման համակարգ= անվճար:

Ընդհանուր՝ 33,5 դոլար և 350 ռուբլի:

Ոչ այնքան քիչ, ասում եք, և հաստատ ճիշտ կլինեք, բայց հաճույքի համար պետք է վճարել։ Եվ միշտ հաճելի է ինչ-որ բան հավաքել սեփական ձեռքերով: Բացի այդ, դիզայնը կարող է զգալիորեն կրճատվել, եթե դուք օգտագործում եք մերկ MC առանց Arduino-ի:

Պատրաստվում է հավաքին

Ես կցանկանայի մի քանի խոսք ասել շարժիչի դիզայնի հիմնական տարրի գնման մասին: Տեղական մեքենաների խանութում ինձ առաջարկեցին երկու տեսակի շարժիչներ՝ «երկու լարով և հինգով»: Վաճառողուհու խոսքով՝ դրանք լրիվ նույնն էին, և լարերի քանակի տարբերությունը բացարձակապես ոչինչ չէր նշանակում։ Սակայն, ինչպես պարզվեց ավելի ուշ, դա այդպես չէ: Ընտրեցի երկու լարով սարք, սնուցվում էր 12 Վ-ով։ 5 մետաղալարով դիզայնը ներառում է սահմանային անջատիչներ՝ թեւի շարժումը վերահսկելու համար: Ես հասկացա, որ սխալը գնել եմ միայն այն ժամանակ, երբ այն քանդեցի, և արդեն ուշ էր այն փոխելու համար։ Լծակի ճամփորդությունը շատ կարճ էր սողնակը նորմալ տեղափոխելու համար, հետևաբար, անհրաժեշտ էր մի փոքր փոփոխել այն, մասնավորապես հեռացնել երկու ռետինե լվացքի մեքենաներ, որոնք կրճատում էին շարժիչի լծակի ճանապարհը: Դա անելու համար մարմինը պետք է կտրվեր երկայնքով սովորական սղոցքանի որ երկրորդ լվացքի մեքենան ներսում էր: Կապույտ էլեկտրական ժապավենը, ինչպես միշտ, օգնեց մեզ ապագայում այն ​​ետ հավաքելիս:

Շարժիչի շարժիչը կառավարելու համար օգտագործվել է L293D շարժիչի վարորդը, որը կարող է դիմակայել մինչև 1200 մԱ գագաթնակետային բեռի, երբ մենք դադարեցրինք մղիչի շարժիչը, գագաթնակետային բեռը բարձրացավ մինչև ընդամենը 600 մԱ:

Կողոպուտի ազդանշանից կառավարման վահանակից հանվել են ստեղնաշարի, բարձրախոսի և երկու լուսադիոդի կոնտակտները: Ենթադրվում էր, որ հեռակառավարման վահանակը և հիմնական սարքը պետք է միացվեին ոլորված զույգ և RJ45 միակցիչների միջոցով:

Ծրագրավորում.

Այսպիսով, ես մինչ այժմ Arduino ծրագրավորման փորձ չեմ ունեցել։ Ես օգտագործել եմ այլ մարդկանց մշակումներն ու հոդվածները arduino.cc կայքից: Ո՞ւմ է հետաքրքրում այս տգեղ ծածկագիրը :)

Լուսանկար և տեսանյութ

Այս դասում մենք կսովորենք, թե ինչպես դա անել պարզ համակարգ, որը կբացի կողպեքը էլեկտրոնային բանալիի միջոցով (Tag):

Ապագայում դուք կարող եք փոփոխել և ընդլայնել ֆունկցիոնալությունը: Օրինակ, ավելացրեք «ավելացնել նոր ստեղներ և հեռացնել դրանք հիշողությունից» գործառույթը: Հիմնական դեպքում դիտարկենք մի պարզ օրինակ, երբ ծրագրի կոդում նախադրված է եզակի բանալին նույնացուցիչ:

Այս ձեռնարկում մեզ անհրաժեշտ կլինի.

Նախագիծն իրականացնելու համար մեզ անհրաժեշտ է տեղադրել գրադարանները.

2) Այժմ դուք պետք է միացնեք Buzzer, որը ազդանշան կտա, եթե բանալին գործարկվի և կողպեքը բացվի, և երկրորդ ազդանշան, երբ կողպեքը փակ է:

Մենք միացնում ենք ազդանշանը հետևյալ հաջորդականությամբ.

Արդուինո Բուզեր
5 Վ VCC
GND GND
քորոց 5 IO

3) Սերվոն կօգտագործվի որպես ապակողպման մեխանիզմ: Ցանկացած սերվոն կարող է ընտրվել՝ կախված ձեր կողմից պահանջվող չափերից և ուժերից, որոնք ստեղծում է սերվոն: Սերվոն ունի 3 կապ.

Ավելի պարզ, դուք կարող եք տեսնել, թե ինչպես ենք մենք միացրել բոլոր մոդուլները ստորև նկարում.

Այժմ, եթե ամեն ինչ միացված է, ապա կարող եք անցնել ծրագրավորման:

Էսքիզ:

#ներառում #ներառում #ներառում // «RFID» գրադարան. #սահմանել SS_PIN 10 #սահմանել RST_PIN 9 MFRC522 mfrc522 (SS_PIN, RST_PIN); անստորագիր երկար uidDec, uidDecTemp; // պիտակի համարը տասնորդական ձևաչափով պահելու համար Servo servo; void setup () (Serial.begin (9600); Serial.println («Սպասում է քարտին ...»); SPI.begin (); // սկզբնավորում SPI / Init SPI bus.mfrc522.PCD_Init (); // սկզբնավորում MFRC522 / Մուտքագրեք MFRC522 card.servo.attach (6); servo.write (0); // դրեք servo-ն փակված) void loop () (// Գտեք նոր պիտակ, եթե (! Mfrc522.PICC_IsNewCardPresent ()) (վերադարձ ;) // Ընտրեք պիտակ, եթե (! Mfrc522.PICC_ReadCardSerial ()) (վերադարձ;) uidDec = 0; // Թողարկում սերիական համարպիտակները. համար (բայթ i = 0; i< mfrc522.uid.size; i++) { uidDecTemp = mfrc522.uid.uidByte[i]; uidDec = uidDec * 256 + uidDecTemp; } Serial.println("Card UID: "); Serial.println(uidDec); // Выводим UID метки в консоль. if (uidDec == 3763966293) // Сравниваем Uid метки, если он равен заданому то серва открывает. { tone(5, 200, 500); // Делаем звуковой сигнал, Открытие servo.write(90); // Поворациваем серву на угол 90 градусов(Отпираем какой либо механизм: задвижку, поворациваем ключ и т.д.) delay(3000); // пауза 3 сек и механизм запирается. tone(5, 500, 500); // Делаем звуковой сигнал, Закрытие } servo.write(0); // устанавливаем серву в закрытое сосотояние }

Եկեք մանրամասն նայենք էսքիզին.

Քարտի UID-ը (Tags) պարզելու համար դուք պետք է գրեք այս ուրվագիծը arduino-ում, հավաքեք վերը նկարագրված սխեման և բացեք Console-ը (Serial port monitoring): Երբ պիտակը բերում եք RFID-ին, վահանակում կցուցադրվի համար

Ստացված UID-ը պետք է մուտքագրվի հետևյալ տողում.

Եթե ​​(uidDec == 3763966293) // Համեմատե՛ք պիտակի Uid-ը, եթե այն հավասար է տրվածին, ապա սերվոն բացում է փականը։

Յուրաքանչյուր քարտ ունի եզակի նույնացուցիչ և չի կրկնվում: Այսպիսով, երբ դուք բերում եք քարտը, որի նույնացուցիչը դրել եք ծրագրում, համակարգը կբացի մուտքը սերվո դրայվի միջոցով:

Տեսանյութ.

Առաջընթացը չի կանգնում, և «խելացի կողպեքներ» գնալով ավելի են հայտնվում բնակարանների, ավտոտնակների և տների դռներին։

Նմանատիպ կողպեք է բացվում, երբ սեղմում եք սմարթֆոնի կոճակը: Բարեբախտաբար, սմարթֆոններն ու պլանշետներն արդեն մտել են մեր առօրյա կյանք։ Որոշ դեպքերում «խելացի կողպեքները» միանում են « ամպային ծառայություններ«Google Drive-ի նման և հեռակա բացելու համար: Բացի այդ, այս տարբերակը հնարավորություն է տալիս մուտքը բացել այլ մարդկանց:

Այս նախագծում կներդրվի Arduino-ի խելացի կողպեքի DIY տարբերակը, որը հնարավոր է հեռակառավարել երկրի ցանկացած կետից:

Բացի այդ, նախագիծն ավելացրել է մատնահետքի ճանաչումից հետո կողպեքը բացելու հնարավորությունը։ Դրա համար մատնահետքի սենսոր է ինտեգրվելու։ Դռների բացման երկու տարբերակներն էլ կաշխատեն Adafruit IO հարթակով:

Նման կողպեքը կարող է հիանալի առաջին քայլ լինել ձեր Smart Home նախագծի մեջ:

Մատնահետքի սենսորի կարգավորում

Մատնահետքի սենսորի հետ աշխատելու համար Arduino-ի համար կա հիանալի գրադարան, որը շատ ավելի հեշտ է դարձնում սենսորի տեղադրման գործընթացը: Այս նախագիծն օգտագործում է Arduino Uno-ն: Ինտերնետին միանալու համար օգտագործվում է Adafruit CC3000 տախտակ:

Սկսենք միացնելով հոսանքը.

  • Միացրեք 5 Վ լարումը Arduino տախտակից կարմիր հոսանքի ռելսին;
  • Arduino-ից GND քորոցը միանում է առանց զոդման տախտակի կապույտ ռելսին:

Եկեք անցնենք մատնահետքի սենսորի միացմանը.

  • Նախ միացրեք հոսանքը: Դա անելու համար կարմիր մետաղալարը միացված է +5 V ռելսին, իսկ սև մետաղալարը՝ GND երկաթուղային;
  • Սենսորի սպիտակ մետաղալարը միանում է Arduino-ի 4-րդ կապին:
  • Կանաչ մետաղալարն անցնում է միկրոկոնտրոլերի 3-րդ կետին:

Հիմա եկեք անդրադառնանք CC3000 մոդուլին.

  • CC3000 տախտակի IRQ փին միացված է Arduino-ի 2-րդ կապին:
  • VBAT - ամրացնել 5-ը:
  • CS - ամրացնել 10-ը:
  • Դրանից հետո դուք պետք է միացնեք SPI կապերը Arduino-ին. MOSI, MISO և CLK - համապատասխանաբար 11, 12 և 13 կապանքներին:

Վերջապես, դուք պետք է էլեկտրաէներգիա տրամադրեք. Vin-ը Arduino 5V-ին (կարմիր ռելս ձեր տպատախտակի վրա) և GND-ը GND-ին (կապույտ երկաթուղի հացատախտակի վրա):

Ամբողջությամբ հավաքված նախագծի լուսանկարը ներկայացված է ստորև.

Նախքան էսքիզ մշակելը, որը տվյալները կվերբեռնի Adafruit IO-ում, դուք պետք է ձեր մատնահետքի տվյալները փոխանցեք սենսորին: Հակառակ դեպքում նա ձեզ չի ճանաչի ապագայում;). Մենք խորհուրդ ենք տալիս մատնահետքի սենսորը չափորոշել՝ օգտագործելով Arduino-ն առանձին: Եթե ​​դուք առաջին անգամ եք աշխատում այս սենսորով, խորհուրդ ենք տալիս ծանոթանալ տրամաչափման գործընթացին և մատնահետքի սենսորի հետ աշխատելու մանրամասն հրահանգներին:

Եթե ​​դուք դա դեռ չեք արել, ապա ստեղծեք հաշիվ Adafruit IO-ում:

Դրանից հետո մենք կարող ենք գնալ հաջորդ փուլ Arduino-ում «խելացի կողպեքի» մշակում. մասնավորապես, էսքիզի մշակում, որը տվյալները կփոխանցի Adafruit IO-ին: Քանի որ ծրագիրը բավականին ծավալուն է, հոդվածում մենք կնշենք և կդիտարկենք միայն դրա հիմնական մասերը, այնուհետև հղում կտանք GitHub-ին, որտեղից կարող եք ներբեռնել ամբողջական էսքիզը:

Էսքիզը սկսվում է բոլոր անհրաժեշտ գրադարանները բեռնելով.

#ներառում

#ներառում

#ներառում

#include «Adafruit_MQTT.h»

#include «Adafruit_MQTT_CC3000.h»

#ներառում

#ներառում >

Դրանից հետո դուք պետք է մի փոքր շտկեք ուրվագիծը՝ տեղադրելով ձեր WiFi ցանցի պարամետրերը՝ նշելով SSID և գաղտնաբառը (գաղտնաբառ).

#define WLAN_SECURITY WLAN_SEC_WPA2>

Բացի այդ, դուք պետք է մուտքագրեք ձեր անունը և AIO բանալին (բանալին)՝ ձեր Adafruit IO հաշիվ մուտք գործելու համար.

#define AIO_SERVERPORT 1883

#define AIO_USERNAME «adafruit_io_name»

#define AIO_KEY «adafruit_io_key»>

Հետևյալ տողերը պատասխանատու են մատնահետքի սենսորից տվյալների փոխազդեցության և մշակման համար. Եթե ​​սենսորն ակտիվացված է (մատնահետքը համընկնում է), կլինի «1»:

const char FINGERPRINT_FEED PROGMEM = AIO_USERNAME «/ feeds / մատնահետք»;

Adafruit_MQTT_Publish մատնահետք = Adafruit_MQTT_Publish (& mqtt, FINGERPRINT_FEED);

Բացի այդ, մենք պետք է ստեղծենք SoftwareSerial օբյեկտի օրինակ մեր սենսորի համար.

SoftwareSerial mySerial (3, 4);

Դրանից հետո մենք կարող ենք ստեղծել օբյեկտ մեր սենսորի համար.

Adafruit_Fingerprint finger = Adafruit_Fingerprint (& mySerial);

Էսքիզի ներսում մենք նշում ենք, թե որ մատի ID-ն պետք է ապագայում ակտիվացնի կողպեքը: Այս օրինակում օգտագործվում է 0, որը համապատասխանում է սենսորի կողմից օգտագործվող առաջին մատնահետքի ID-ին.

int fingerID = 0;

Դրանից հետո մենք նախաստորագրում ենք հաշվիչը և հետաձգում ենք մեր նախագիծը: Հիմնականում մենք ցանկանում ենք, որ կողպեքը բացելուց հետո ավտոմատ աշխատի: Այս օրինակում օգտագործվում է 10 վայրկյան ուշացում, բայց դուք կարող եք հարմարեցնել այս արժեքը ձեր կարիքներին համապատասխան.

int activationCounter = 0;

int lastԱկտիվացում = 0;

int activationTime = 10 * 1000;

Setup () ֆունկցիայի մասում մենք նախաստորագրում ենք մատնահետքի սենսորը և միացնում ենք CC3000 չիպը ձեր WiFi ցանցին:

Loop () ֆունկցիայի մարմնում միացեք Adafruit IO-ին: Դրա համար պատասխանատու է հետևյալ տողը.

Adafruit IO հարթակին միանալուց հետո մենք ստուգում ենք վերջին մատնահետքը։ Եթե ​​այն համընկնում է, և կողպեքը ակտիվացված չէ, մենք ուղարկում ենք «1»՝ Adafruit IO-ում մշակման համար.

եթե (մատնահետքի ID == մատի ID && lockState == կեղծ) (

Serial.println (F («Մուտքը տրված է»));

lockState = ճշմարիտ;

Serial.println (F («Չհաջողվեց»));

Serial.println (F («OK!»));

վերջին Ակտիվացում = millis ();

Եթե ​​կողպեքն ակտիվացված է հանգույց () ֆունկցիայի շրջանակներում, և մենք հասել ենք վերևում նշված հետաձգման արժեքին, մենք ուղարկում ենք «0»:

եթե ((activationCounter - lastActivation> activationTime) && lockState == ճշմարիտ) (

lockState = կեղծ;

if (! fingerprint.publish (state)) (

Serial.println (F («Չհաջողվեց»));

Serial.println (F («OK!»));

Դուք կարող եք ներբեռնել կոդի վերջին տարբերակը GitHub-ում:

Ժամանակն է փորձարկել մեր նախագիծը: Մի մոռացեք ներբեռնել և տեղադրել Arduino-ի բոլոր անհրաժեշտ գրադարանները:

Համոզվեք, որ կատարել եք բոլոր անհրաժեշտ փոփոխությունները էսքիզում և վերբեռնել այն ձեր Arduino-ում: Այնուհետև բացեք սերիական մոնիտորի պատուհանը:

Երբ Arduino-ն միանում է WiFi ցանցեր, մատնահետքի սենսորը կթողնի կարմիր: Տեղադրեք ձեր մատը սենսորի վրա: Սերիական մոնիտորի պատուհանը պետք է ցուցադրի ID համարը: Եթե ​​համընկնում է, կհայտնվի «OK!» հաղորդագրությունը: Սա նշանակում է, որ տվյալները ուղարկվել են Adafruit IO սերվերներին:

Դիագրամ և ուրվագիծ՝ կողպեքի հետագա կազմաձևման համար՝ օգտագործելով LED-ի օրինակը

Այժմ անդրադառնանք նախագծի այն հատվածին, որն անմիջականորեն պատասխանատու է կառավարման համար դռան փական... Միանալու համար անլար ցանցև կողպեքն ակտիվացնելով/անջատելով՝ ձեզ անհրաժեշտ կլինի լրացուցիչ Adafruit ESP8266 մոդուլ (Պարտադիր չէ, որ ESP8266 մոդուլը լինի Adafruit-ից): Օգտագործելով ստորև բերված օրինակը, դուք կարող եք գնահատել, թե որքան հեշտ է տվյալների փոխանակումը երկու հարթակների միջև (Arduino և ESP8266), օգտագործելով Adafruit IO:

Այս բաժնում մենք ուղղակիորեն չենք աշխատի կողպեքի հետ: Փոխարենը, մենք պարզապես կմիացնենք լուսադիոդը այն փինին, որի վրա կողպեքը միացված կլինի ավելի ուշ: Սա հնարավորություն կտա փորձարկել մեր կոդը՝ առանց խորանալու կողպեքի դիզայնի մեջ:

Շղթան բավականին պարզ է. նախ տեղադրեք ESP8266-ը հացահատիկի վրա: Այնուհետեւ տեղադրեք LED- ը: Մի մոռացեք, որ LED-ի երկար (դրական) ոտքը միացված է ռեզիստորի միջոցով: Ռեզիստորի երկրորդ ոտքը միանում է ESP8266 մոդուլի 5-րդ կապին: LED-ի երկրորդ (կաթոդը) միացված է ESP8266-ի GND փին:

Լիովին հավաքված միացումցույց է տրված ստորև ներկայացված լուսանկարում:


Այժմ եկեք նայենք էսքիզին, որը մենք կօգտագործենք այս նախագծի համար: Կրկին, կոդը բավականին մեծ է և բարդ, ուստի մենք կանդրադառնանք միայն դրա հիմնական մասերին.

Մենք սկսում ենք միացնելով անհրաժեշտ գրադարանները.

#ներառում

#include «Adafruit_MQTT.h»

#include «Adafruit_MQTT_Client.h»

WiFi պարամետրերի կարգավորում.

#define WLAN_SSID «your_wifi_ssid»

#define WLAN_PASS «your_wifi_password»

#define WLAN_SECURITY WLAN_SEC_WPA2

Մենք նաև կարգավորում ենք Adafruit IO պարամետրերը: Նույնը, ինչ նախորդ բաժնում.

#define AIO_SERVER «io.adafruit.com»

#define AIO_SERVERPORT 1883

#define AIO_USERNAME «adafruit_io_username»

#define AIO_KEY «adafruit_io_key»

Մենք նշում ենք, թե որ կապին ենք միացրել LED-ը (ապագայում դա կլինի մեր կողպեքը կամ ռելեը).

int relayPin = 5;

Մատնահետքի սենսորի հետ փոխազդեցությունը նույնն է, ինչ նախորդ բաժնում.

const char LOCK_FEED PROGMEM = AIO_USERNAME «/ feeds / lock»;

Adafruit_MQTT_Subscribe կողպեք = Adafruit_MQTT_Subscribe (& mqtt, LOCK_FEED);

Setup () ֆունկցիայի մարմնում մենք նշում ենք, որ այն փին, որին միացված է LED-ը, պետք է աշխատի OUTPUT ռեժիմում.

pinMode (relayPin, OUTPUT);

Շրջանակի () շրջանակում մենք նախ ստուգում ենք՝ արդյոք միացված ենք Adafruit IO-ին.

Դրանից հետո մենք ստուգում ենք, թե ինչ ազդանշան է ստացվում։ Եթե ​​«1»-ը փոխանցվում է, մենք ակտիվացնում ենք այն կոնտակտը, որը մենք հայտարարել ենք ավելի վաղ, որին միացված է մեր LED-ը: Եթե ​​մենք ստանում ենք «0», մենք փոխանցում ենք կոնտակտը «ցածր» վիճակի.

Adafruit_MQTT_Subscribe * բաժանորդագրություն;

while ((բաժանորդագրություն = mqtt.readSubscription (1000))) (

եթե (բաժանորդագրություն == & կողպեք) (

Serial.print (F («Got:»));

Serial.println ((char *) lock.lastread);

// Պահպանեք հրամանը լարային տվյալների մեջ

String հրաման = String ((char *) lock.lastread);

եթե (հրաման == «0») (

digitalWrite (relayPin, LOW);

եթե (հրաման == «1») (

digitalWrite (relayPin, HIGH);

Գտեք Վերջին տարբերակըուրվագիծը կարող եք անել GitHub-ում:

Ժամանակն է փորձարկել մեր նախագիծը: Մի մոռացեք ներբեռնել ձեր Arduino-ի համար անհրաժեշտ բոլոր գրադարանները և ստուգել, ​​թե արդյոք ճիշտ փոփոխություններ եք կատարել էսքիզում:

Պարզ USB-FTDI փոխարկիչը կարող է օգտագործվել ESP8266 չիպը ծրագրավորելու համար:

Վերբեռնեք էսքիզը Arduino-ում և բացեք սերիական մոնիտորի պատուհանը: Այս փուլում մենք պարզապես ստուգեցինք, թե արդյոք կարողացանք միանալ Adafruit IO-ին. մենք հետագայում կքննարկենք առկա ֆունկցիոնալությունը:

Նախագծի փորձարկում

Հիմա եկեք սկսենք փորձարկումը: Գնացեք ձեր Adafruit IO-ի օգտագործողի ընտրացանկը, Feeds ցանկի տակ: Ստուգեք, արդյոք ստեղծվել են մատնահետքի և կողպեքի ալիքները (ներքևի տպագրության էկրանին սրանք են մատնահետքի և կողպման գծերը).


Եթե ​​դրանք չկան, ապա դուք պետք է այն ստեղծեք ձեռքով:

Այժմ մենք պետք է ապահովենք տվյալների փոխանակումը մատնահետքի և կողպեքի ալիքների միջև։ Կողպեքի ալիքը պետք է սահմանվի «1», երբ մատնահետքի ալիքը դրված է «1» և հակառակը:

Դա անելու համար մենք օգտագործում ենք Adafruit IO շատ հզոր գործիք՝ triggers: Գործարկիչները, ըստ էության, պայմաններ են, որոնք կարող եք կիրառել կազմաձևված ալիքների վրա: Այսինքն, դրանք կարող են օգտագործվել երկու ալիքների փոխկապակցման համար:

Ստեղծեք նոր ռեակտիվ ձգան Adafruit IO-ի Triggers բաժնից: Սա հնարավորություն կտա փոխանակել տվյալները մատնահետքի սենսորի և կողպման ալիքների միջև.


Ահա թե ինչպես պետք է տեսք ունենա, երբ երկու գործարկիչները կազմաձևված են.

Ամեն ինչ! Այժմ մենք իսկապես կարող ենք փորձարկել մեր նախագիծը: Մենք մեր մատը դրեցինք սենսորի վրա և տեսանք, թե ինչպես Arduino-ն սկսեց թարթել LED-ը, որը համապատասխանում է տվյալների փոխանցմանը: Դրանից հետո ESP8266 մոդուլի լուսադիոդը պետք է սկսի թարթել: Սա նշանակում է, որ նա սկսել է տվյալներ ստանալ MQTT-ի միջոցով։ Այս պահին պետք է միանա նաև սխեմայի տախտակի լուսադիոդը:

Էսքիզում ձեր սահմանած ուշացումից հետո (կանխադրվածը 10 վայրկյան է), լուսադիոդը կանջատվի: Շնորհավորում եմ: Դուք կարող եք կառավարել LED-ը ձեր մատնահետքով աշխարհի ցանկացած կետից:

Էլեկտրոնային կողպեքի տեղադրում

Հասանք նախագծի վերջին մասին՝ ուղիղ միացում և վերահսկում էլեկտրոնային փական Arduino-ով և մատնահետքի սենսորով։ Նախագիծը հեշտ չէ, դուք կարող եք օգտագործել բոլոր աղբյուրները այն տեսքով, որով դրանք ներկայացված են վերևում, բայց LED-ի փոխարեն միացրեք ռելե:

Կողպեքն ուղղակիորեն միացնելու համար ձեզ հարկավոր են լրացուցիչ բաղադրիչներ՝ 12 Վ սնուցման աղբյուր, հոսանքի վարդակ, տրանզիստոր այս օրինակըՕգտագործվում է IRLB8721PbF MOSFET, բայց կարող է օգտագործվել ևս մեկը, օրինակ՝ երկբևեռ տրանզիստոր TIP102: Եթե ​​դուք օգտագործում եք երկբևեռ տրանզիստոր, ապա ձեզ հարկավոր է ռեզիստոր ավելացնել:

Ստորև ներկայացված է էլեկտրական միացումմիացնելով բոլոր բաղադրիչները ESP8266 մոդուլին.


Նկատի ունեցեք, որ եթե դուք օգտագործում եք MOSFET տրանզիստոր, ձեզ հարկավոր չէ դիմադրություն ESP8266-ի 5-րդ կետի և տրանզիստորի միջև:

Ամբողջությամբ հավաքված նախագիծը ներկայացված է ստորև ներկայացված լուսանկարում.


Միացրեք ESP8266 մոդուլը FTDI մոդուլի միջոցով և միացրեք 12 Վ լարման սնուցման աղբյուրը վարդակից: Եթե ​​դուք օգտագործել եք վերևում առաջարկված կապի կապիչները, դուք ստիպված չեք լինի որևէ բան փոխել էսքիզում:

Այժմ դուք կարող եք ձեր մատը դնել սենսորի վրա. կողպեքը պետք է աշխատի՝ արձագանքելով ձեր մատնահետքին: Ստորև բերված տեսանյութը ցույց է տալիս ավտոմատ «խելացի» կողպեքի նախագիծը գործողության մեջ.

«Smart Lock» նախագծի հետագա զարգացումը

Մեր նախագծում մենք թողարկել ենք Հեռակառավարման վահանակդռան կողպեք՝ օգտագործելով ձեր մատնահետքը:

Ազատ զգալ փորձարկել, փոփոխել էսքիզը և ամրագոտիները: Օրինակ, դուք կարող եք փոխարինել դուռը էլեկտրոնային փականռելեի վրա՝ ձեր 3D տպիչի, մանիպուլյատորի կամ քառակոպտերի հզորությունը կառավարելու համար...

Դուք կարող եք զարգացնել ձեր « խելացի տունՕրինակ՝ հեռակա կարգով միացրեք ոռոգման համակարգը Arduino-ի վրա կամ միացրեք սենյակի լույսերը... Բայց մի մոռացեք, որ կարող եք միաժամանակ ակտիվացնել գրեթե անսահմանափակ թվով սարքեր՝ օգտագործելով Adafruit IO:

Թողեք ձեր մեկնաբանությունները, հարցերը և կիսվեք անձնական փորձստորև. Քննարկումներում հաճախ են ծնվում նոր գաղափարներ և նախագծեր։

Այսօրվա դասը, թե ինչպես օգտագործել RFID ընթերցողն Arduino-ով պարզ արգելափակման համակարգ ստեղծելու համար: պարզ բառերով- RFID կողպեք:

RFID-ը (անգլերեն ռադիոհաճախականության նույնականացում) օբյեկտների ավտոմատ նույնականացման մեթոդ է, որի դեպքում, այսպես կոչված, տրանսպոնդերներում կամ RFID պիտակներում պահվող տվյալները կարդացվում կամ գրվում են ռադիոազդանշանների միջոցով: Ցանկացած RFID համակարգ բաղկացած է ընթերցողից (ընթերցող, ընթերցող կամ հարցաքննող) և տրանսպոնդերից (նույնը` RFID պիտակ, երբեմն օգտագործվում է նաև RFID պիտակ տերմինը):

Այս ձեռնարկը կօգտագործի RFID պիտակ Arduino-ից: Սարքը կարդում է յուրաքանչյուր RFID թեգի եզակի նույնացուցիչը (UID), որը մենք տեղադրում ենք ընթերցողի կողքին և ցուցադրում այն ​​OLED էկրանի վրա: Եթե ​​պիտակի UID-ը հավասար է Arduino-ի հիշողության մեջ պահվող նախապես սահմանված արժեքին, ապա էկրանին կտեսնենք «Unlocked» հաղորդագրությունը: Եթե ​​եզակի նույնացուցիչը հավասար չէ նախապես սահմանված արժեքին, ապա «Unlocked» հաղորդագրությունը չի հայտնվի. տես ստորև ներկայացված լուսանկարը:

Կողպեքը փակ է

Կողպեքը բաց է

Այս նախագծի ստեղծման համար պահանջվող մանրամասները.

  • RFID ընթերցող RC522
  • OLED էկրան
  • Հացի տախտակ
  • Լարեր

Լրացուցիչ մանրամասներ.

  • Մարտկոց (Powerbank)

Ծրագրի բաղադրիչների ընդհանուր արժեքը կազմել է մոտավորապես 15 դոլար:

Քայլ 2. RFID ընթերցող RC522

Յուրաքանչյուր RFID թեգ ունի փոքր չիպ (սպիտակ քարտը պատկերված է): Եթե ​​լապտերն ուղղեք այս RFID քարտի վրա, կարող եք տեսնել մի փոքրիկ չիպ և կծիկ, որը շրջապատում է այն: Այս չիպը չունի մարտկոց՝ էներգիա արտադրելու համար: Այն ընթերցողից էներգիա է ստանում անլար՝ օգտագործելով այս մեծ կծիկը: Նման RFID քարտը կարելի է կարդալ մինչև 20 մմ հեռավորության վրա:

Նույն չիպը առկա է RFID հիմնական ֆոբի պիտակներում:

Յուրաքանչյուր RFID թեգ ունի եզակի համար, որը նույնականացնում է այն: Սա UID-ն է, որը ցուցադրվում է OLED էկրանին: Բացի այս UID-ից, յուրաքանչյուր պիտակ կարող է տվյալներ պահել: Այս տեսակի քարտը կարող է պահել մինչև 1000 տվյալ: Տպավորիչ է, այնպես չէ՞։ Այս ֆունկցիան այսօր չի օգտագործվի: Այսօր այդ միայն հետաքրքրությունը կոնկրետ քարտի նույնականացումն է իր UID-ի կողմից: RFID ընթերցողի և այս երկու RFID քարտերի արժեքը կազմում է մոտ 4 ԱՄՆ դոլար:

Քայլ 3. OLED էկրան

Այս ձեռնարկը օգտագործում է 0,96 «128x64 I2C OLED մոնիտոր:

Սա շատ լավ էկրան է Arduino-ի հետ օգտագործելու համար: Այն OLED էկրան է, և դա նշանակում է, որ այն ունի ցածր էներգիայի սպառում: Այս էկրանի էներգիայի սպառումը կազմում է մոտ 10-20 մԱ և դա կախված է պիքսելների քանակից:

Էկրանի թույլատրելիությունը 128 x 64 պիքսել է և փոքր է: Ցուցադրման երկու տարբերակ կա. Դրանցից մեկը մոնոխրոմ է, իսկ մյուսը, ինչպես ձեռնարկում օգտագործվածը, կարող է ցուցադրել երկու գույն՝ դեղին և կապույտ: Էկրանի վերին մասը կարող է լինել միայն դեղին, իսկ ներքևի մասը՝ կապույտ:

Այս OLED էկրանը շատ պայծառ է և ունի հիանալի և շատ գեղեցիկ գրադարան, որը Adafruit-ը մշակել է այս էկրանի համար: Բացի սրանից, էկրանն օգտագործում է I2C ինտերֆեյս, ուստի Arduino-ին միանալը աներևակայելի հեշտ է:

Ձեզ անհրաժեշտ է միայն երկու լար միացնել՝ բացառությամբ Vcc-ի և GND-ի: Եթե ​​դուք նոր եք Arduino-ում և ցանկանում եք ձեր նախագծում օգտագործել էժան և պարզ էկրան, սկսեք այստեղից:

Քայլ 4. միացրեք բոլոր մանրամասները

Պարզապես պատահեց, որ մենք աշխատավայրում որոշեցինք կոմբինացված կողպեք տեղադրել մեր դռան վրա, քանի որ անընդհատ ներս ենք վազում, դուրս ենք վազում գրասենյակից, որի դուռը պետք է անընդհատ փակվի բնակիչների բացակայության դեպքում: Բանալիները հաճախ մոռացվում են ներսում: Ընդհանուր առմամբ, մենք որոշեցինք, որ համակցված կողպեքը հիանալի լուծում է:

Շրջելով չինական լու շուկաները և ebay-ը, ես ոչ մի էժան և քիչ թե շատ լուրջ բան չգտա և որոշեցի ինքս պատրաստել։ Անմիջապես վերապահում կանեմ, որ Arduino պլատֆորմն ընտրվել է իր պարզության համար, քանի որ միկրոկոնտրոլերների հետ շփվելու փորձ ընդհանրապես չկար։

Գաղափար

Դռան վրա, դռան արտաքին մասում պետք է լինի ստեղնաշար, որի վրա մուտքագրված է գաղտնաբառը, ներսից ամրացված է մնացած կառուցվածքը։ Դռան ամբողջական փակումը վերահսկելու համար օգտագործվում է եղեգի անջատիչ: Դուրս գալով աշխատասենյակից՝ մարդը սեղմում է «*» ստեղնաշարի վրա և, չսպասելով, որ դուռը մոտով փակվի, գնում է իր գործին, երբ դուռը ամբողջովին փակվի, եղեգի անջատիչը կփակվի, և կողպեքը կփակվի։ Դուռը բացվում է՝ մուտքագրելով 4 նիշանոց գաղտնաբառը և սեղմելով «#»:

Բաղադրիչներ

Arduino UNO = 18 դոլար
Arduino protoshield + breadboard = $ 6
L293D = 1 դոլար
30 հատ հյուսի մետաղալարերի փաթեթ = 4 դոլար
2 RJ45 վարդակներ = 4 դոլար
2 RJ45 վարդակներ = 0,5 դոլար
կենտրոնական փական մղիչ = 250 ռուբլի:
Reed switch = պոկվել է հին պատուհանից:
Հսկա չափսի մետաղական սողնակ = անվճար
Հին D-LINK հանգույց՝ պատրաստված 1,5 մմ երկաթից = անվճար
Նույն D-LINK հանգույցից սնուցումը 12 և 5v =-ի համար նույնպես անվճար է
Մի փունջ պտուտակներ և ընկույզներ՝ այս ամենը մարմնին կցելու համար = 100 ռուբլի:
Զարթուցիչի կառավարման վահանակ = անվճար:

Ընդամենը: 33,5 դոլար և 350 ռուբլի:

Ոչ այնքան քիչ, ասում եք, և հաստատ ճիշտ կլինեք, բայց հաճույքի համար պետք է վճարել։ Եվ միշտ հաճելի է ինչ-որ բան հավաքել սեփական ձեռքերով: Բացի այդ, դիզայնը կարող է զգալիորեն կրճատվել, եթե դուք օգտագործում եք մերկ MC առանց Arduino-ի:

Պատրաստվում է հավաքին

Ես կցանկանայի մի քանի խոսք ասել շարժիչի դիզայնի հիմնական տարրի գնման մասին: Տեղական մեքենաների խանութում ինձ առաջարկեցին երկու տեսակի շարժիչներ՝ «երկու լարով և հինգով»: Վաճառողուհու խոսքով՝ դրանք լրիվ նույնն էին, և լարերի քանակի տարբերությունը բացարձակապես ոչինչ չէր նշանակում։ Սակայն, ինչպես պարզվեց ավելի ուշ, դա այդպես չէ: Ընտրեցի երկու լարով սարք, սնուցվում էր 12 Վ-ով։ 5 մետաղալարով դիզայնը ներառում է սահմանային անջատիչներ՝ թեւի շարժումը վերահսկելու համար: Ես հասկացա, որ սխալը գնել եմ միայն այն ժամանակ, երբ այն քանդեցի, և արդեն ուշ էր այն փոխելու համար։ Լծակի ճամփորդությունը շատ կարճ էր սողնակը նորմալ տեղափոխելու համար, հետևաբար, անհրաժեշտ էր մի փոքր փոփոխել այն, մասնավորապես հեռացնել երկու ռետինե լվացքի մեքենաներ, որոնք կրճատում էին շարժիչի լծակի ճանապարհը: Դա անելու համար մարմինը պետք է կտրվեր սովորական սղոցի հետ միասին, քանի որ երկրորդ լվացքի մեքենան ներսում էր։ Կապույտ էլեկտրական ժապավենը, ինչպես միշտ, օգնեց մեզ ապագայում այն ​​ետ հավաքելիս:
Շարժիչի շարժիչը կառավարելու համար օգտագործվել է L293D շարժիչի վարորդը, որը կարող է դիմակայել մինչև 1200 մԱ գագաթնակետային բեռի, երբ մենք դադարեցրինք մղիչի շարժիչը, գագաթնակետային բեռը բարձրացավ մինչև ընդամենը 600 մԱ:
Կողոպուտի ազդանշանից կառավարման վահանակից հանվել են ստեղնաշարի, բարձրախոսի և երկու լուսադիոդի կոնտակտները: Ենթադրվում էր, որ հեռակառավարման վահանակը և հիմնական սարքը պետք է միացվեին ոլորված զույգ և RJ45 միակցիչների միջոցով:

Ծրագրավորում.

Այսպիսով, ես մինչ այժմ Arduino ծրագրավորման փորձ չեմ ունեցել։ Ես օգտագործել եմ այլ մարդկանց մշակումներն ու հոդվածները arduino.cc կայքից: Ո՞ւմ է հետաքրքրում այս տգեղ ծածկագիրը :)

Լուսանկար և տեսանյութ



Arduino և ակտուատոր


Էլեկտրամատակարարում


Ստեղնաշար


Էսպանյոլետ (միացված է մղիչին մետաղական շղթայով և որի վրա գեղեցկության համար կրում են ջերմային կծկում)

Սարքի շահագործման գործընթացի տեսանյութ.