Բովանդակություն:
- Քայլ 1: Սարքավորում
- Քայլ 2: Հեռակառավարման վահանակի լրտեսում
- Քայլ 3: Ուղարկեք նույն տվյալների շրջանակները
- Քայլ 4: Միացեք համակարգին
- Քայլ 5: Օպտիմիզացրեք էներգիայի սպառումը
Video: Կոտրեք ձեր ավտոտնակի դուռը ՝ 5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
Ո՞վ երբեք չի երազել միայն հեռախոսի հավելվածով տուն գնալ, կամ կարողանալ լսել և վերարտադրել տվյալների տրամվայները: Ուրախ եմ, որ կարող եմ ձեզ հետ կիսվել այն, ինչ հասկացա և ինչպես վարվեցի: Ես սկսեցի այս նախագիծը երկրորդ անգամ մոռանալով բանալիներս…
Իհարկե, կոդավորումը, մոդուլյացիայի տեսակը, կրիչի հաճախականությունը, bluetooth միացման տեղեկատվությունը և տվյալները, որոնք ես պատրաստվում եմ ցույց տալ օրինակ, բնօրինակ չեն, նախընտրում եմ այցելուներ չունենալ;-):
Այս ծրագիրը կիրառվում է ցանկացած օբյեկտի վրա, որն ընդունակ է թվային տեղեկատվություն ստանալ էլեկտրամագնիսական ալիքների միջոցով (ավտոտնակի դուռ, մեքենա, որոշ փեղկեր…): Ամբողջ համակարգը բաղկացած է մի օբյեկտից, որը միացված է bluetooth- ով հեռախոսին: Այս օբյեկտը կարող է ուղարկել նույն շրջանակները, ինչ հեռակառավարիչը `կապված այն բանի հետ, ինչ մենք ցանկանում ենք կոտրել: Այս օբյեկտը տեղադրեցի իմ ավտոտնակում, և ես կարող եմ դրան միանալ դրսից:
Քայլ 1: Սարքավորում
Օգտագործված լեզուներ ՝ C ++, MATLAB, Typescript, C, html:
Թվային էլեկտրոնիկայի և հեռահաղորդակցության/ազդանշանների մշակման հիմնական գիտելիքներ:
Արժեքը `35 դոլարից պակաս:
Սարքավորման պահանջներ
- NooELEC NESDR. Տվյալները գրավելու համար: Այս շատ էժան մոդուլը կատարում է թվային ապամոդուլյացիա, հետևաբար դրա բարձր դյուրատարությունը: Այս մոդելը համատեղելի է MATLAB- ի հետ: ($ 18,95)
www.nooelec.com/store/sdr/sdr-receivers/nes…
- Wemos Lolin32 lite. Այս esp32- ը էժան միկրոկոնտրոլեր է ՝ հագեցած Wifi և Bluetooth համակարգերով: Այս ծրագրում մենք չենք օգտագործի Wifi, բայց դա մեծ մասամբ կարելի է պատկերացնել: (4,74 դոլար)
wiki.wemos.cc/products:lolin32:lolin32_lit…
- CDSENET cc1101. Այս ռադիոհաղորդիչը մեզ տալիս է ծայրահեղ ճկունություն ՝ ընտրված կրիչի հաճախականությունից մինչև մոդուլյացիայի տեսակը: ($ 2.63)
www.aliexpress.com/item/2PC-Lot-E07-868MS1…
- Հաղորդալարեր, վերնագրեր, եռակցման սարքավորում, 3.7 Վ լիպո մարտկոց ինքնավարության համար, հնարավոր է ՝ տատանումների համար և/կամ տրամաբանական անալիզատոր ՝ վրիպազերծման համար, և, ի դեպ, սմարթֆոն…
Softwareրագրային ապահովման պահանջներ
- MATLAB/Simulink. Տվյալները գրավելու համար: Կարող են օգտագործվել այլ անվճար այլընտրանքային ծրագրեր, ինչպիսիք են Audacity- ը տվյալների արտացոլման համար: (լիցենզիա)
fr.mathworks.com/products.html?s_tid=gn_ps
- esp-idf գործիքաշղթա. այն կօգտագործվի esp32- ի ծրագրավորման համար: Արդուինոյի գաղափարն էլ կարող է օգտագործվել, բայց դա թույլ չի տալիս այնքան ազատություն, որքան այն, ինչ մենք կօգտագործենք: (անվճար)
esp-idf.readthedocs.io/hy/latest/get-starte…
- TI SmartRF Studio. Սա կօգնի մեզ կարգավորել cc1101 գրանցամատյանները ՝ ըստ մեր բնութագրերի: (անվճար)
www.ti.com/tool/SMARTRFTM-STUDIO
- Իոնիկ `ծրագիրը կառուցելու համար: Դուք կարող եք ընտրել մայրենի ծրագրերի ստեղծման ընտրությունը, սակայն Ionic- ը թույլ է տալիս մեր ծրագիրը գործարկել ինչպես Android, այնպես էլ IOS սարքերի վրա ՝ միայն կոդով: Մեր դեպքում ներկայացումը չի փնտրվում: (անվճար)
ionicframework.com/
- Ձեր նախընտրած գաղափարը…
Քայլ 2: Հեռակառավարման վահանակի լրտեսում
Մենք կսկսենք դիտարկելով այն տվյալները, որոնք արտադրում են հեռակառավարման վահանակի հրամանները: Դա անելու համար մենք կօգտագործենք rtl-sdr dongle և ալեհավաք:
fr.mathworks.com/hardware-support/rtl-sdr….
Հետևելով այս հղմանը ՝ դուք կգտնեք MATLAB փաթեթը, ինչպես նաև անվճար գիրք, որը կբացատրի բոլոր գները դրանց բացատրությամբ: Մեզ հուզողն ամփոփելու համար տարանցման տվյալները IQ ազդանշանի տեսքով են ՝ «I» փուլային տվյալներ ՝ զուգորդված «Q» քառակուսային տվյալների հետ: Այս մեթոդը հեշտացնում է հեռահաղորդակցությունը: Մեզ միայն կհետաքրքրի ազդանշանի փուլային ընդունումը: Այժմ մենք կհավաքենք ֆիզիկական և թվային տեղեկությունները հեռակառավարման վահանակի վրա: Եթե դրա վրա կարող եք գտնել որոշ փաստաթղթեր, ապա դա ավելի հեշտ կլինի: Ես ոչ մեկը չգտա: Որպեսզի կարողանանք ժամանակավորապես դիտարկել ազդանշանը, մենք նախ պետք է իմանանք, թե որն է արտանետվող ազդանշանի հաճախականությունների կրողը: Մենք կօգտագործենք «Սպեկտրալ վերլուծություն RTL-SDR ռադիոյով» փաթեթային փաստաթղթերով տրամադրված օրինակը ՝ ճշգրիտ իմանալու համար, թե որ հաճախականությամբ ենք մենք դիտում գագաթնակետային հզորություն, երբ հրաման ենք ուղարկում: Իմ դեպքում դա 868.22 ՄՀց է: Այս տեսակի ծրագրերի «ստանդարտ» հաճախականությունները մոտ 868 ՄՀց են:
Այս ցուցումներով մենք կկարողանանք գրել MATLAB կոդ ՝ տվյալները վերականգնելու համար: Այս մեկը կցված է լուսանկարում և մեկնաբանված: Արդյունքը թույլ է տալիս գտնել մոդուլյացիայի տեսակը. Հում տեղեկատվությունը վերցնելով, արդյունքը ցուցադրելով ազդանշանի իրական մասը վերականգնելուց հետո, կարող ենք եզրակացնել, որ դա ASK / OOK է մոդուլյացիա Իրոք, մենք նկատում ենք, որ հաճախականությունը անփոփոխ է, այնուամենայնիվ, ազդանշանն ունի ընդամենը երկու ամպլիտուդ ՝ զրո և ֆիքսված: Մնացած ծածկագիրը թույլ է տալիս վերականգնել ստացված ազդանշանի ծրարը, որն ավելի դյուրընթեռնելի է դարձել տրամվայի իմացության համար: Displayedուցադրվելուց հետո մենք կարող ենք որոշել հիմնական կապի մոդուլյացիան. Սա Մանչեսթերի կոդավորումն է (տես կցված լուսանկարը): Մենք կարող ենք նաև եզրակացնել բաուդ արագությունը (նշաններ մեկ վայրկյանում): Այս ամբողջ տեղեկատվությունը հավաքվում է, մենք կարող ենք իմանալ տվյալների շրջանակը: Իմ դեպքում, հայտնաբերված բայթերն են ՝ 249, 39, 75, 178, 45, 200 և բազմիցս կրկնվել, որպեսզի ապահովվի, որ հրամանը լավ ընդունվի: Բարեբախտաբար, կոդը չի գլորվում, տվյալների շրջանակը միշտ նույնն է:
Քայլ 3: Ուղարկեք նույն տվյալների շրջանակները
Texas Instruments cc1101- ն այնքան ճկուն է, որ դուք դեռ կհասնեք ձեր նպատակին, նույնիսկ եթե նախորդ քայլում գտած պարամետրերը լիովին տարբերվում են իմից: Իրոք, փաստաթղթերում, էջ 2 (https://www.ti.com/lit/ds/symlink/cc1101.pdf), կտեսնեք, որ այն թույլ է տալիս կատարել NRZ, Manchester, FSK, ASK/OOK մոդուլյացիա, հասնել 433 ՄՀց կամ 868 ՄՀց հաճախականություններ և շատ այլ բաներ: Խորհուրդ եմ տալիս կարդալ փաստաթղթերը `այս մոդուլին ծանոթանալու համար:
Այս հղման վրա դուք կարող եք որպես օրինակ գտնել Լոբորիսի աշխատանքը ՝ կապված այս մոդուլով գործառույթների կառուցման հետ.
github.com/loboris/ESP32_CC1101/tree/maste…
Մենք պատրաստվում ենք գրել մեր esp32- ի ծածկագիրը esp-idf գործիքաշղթայով (տես առաջին քայլի հղումները): Դուք կարող եք ավելացնել հղման ֆայլերը ձեր նախագծի բաղադրիչների ենթա դիրեկտորիայում: Մեր cc1101- ը ճիշտ կազմաձևելու համար մենք պետք է ամրագրենք դրա գրանցամատյանները: Texas Instruments- ը մեզ տրամադրում է ծրագրակազմ, որը մեզ տալիս է գրանցամատյանների արժեքը ՝ ըստ մեր կազմաձևի ՝ SmartRF Studio:
Ինչ վերաբերում է ինձ, ես ծրագրակազմին նշում եմ, որ ցանկանում եմ Մանչեստրի կոդավորում, որ իմ կրիչի հաճախականությունը 868.22 ՄՀց է, որ իմ մոդուլյացիայի տեսակը ASK / OOK է … Ես թույլ եմ տալիս մուտքագրել ձեր պարամետրերը: Այն դեպքում, երբ ձեր բազային կապի կոդավորումը հասանելի չէ, կարող եք հաշվի առնել NRZ կոդավորումը `ճիշտ բարձրացնելով բաուդ արագությունը և հարմարեցնելով տվյալները:
Ձեր արժեքները սահմանելուց հետո դուք ունեք մի քանի ընտրություն `կապված մոդուլի օգտագործման հետ. Կարող եք օգտագործել այն գործառույթները, որոնք ես ձեզ կապել եմ, կամ այն, ինչ ես արել եմ, միայն ոգեշնչվել այս կոդից` ամեն ինչ ավելի ճշգրիտ կազմաձևելու համար: դաժան ճանապարհ (տես կից լուսանկարները) և օգտագործեք միայն այն, ինչ մեզ անհրաժեշտ է:
Քանի որ cc1101 չիպը հաղորդակցվում է SPI- ի միջոցով, դուք կգտնեք օրինակելի ծածկագրի «spi_master_lobo.h» վերնագրի ֆայլը, որը պարունակում է SPI- ի օգտագործման ավելի հեշտ գործառույթներ, քան եթե այն ստիպված լինեիք օգտագործել միայն գործիքների շղթայով: Ես ձեզ միանում եմ CC1101 հաղորդակցության սխեմայով SPI- ում, լուսանկարը վերցված է CC1101 տվյալների թերթի 30 -րդ էջից: Ներկայացված չորս լարերն են ՝ CS (Chip Select, կամ SS: Slave Select, կամ այստեղ CSn), CLK (կամ SCLK, Clock, տրամադրված վարպետի կողմից), MISO (կամ SO, Master In Slave Out) և MOSI (կամ SI, Master Out Slave In): Մեր դեպքում վարպետը ESP32- ն է, իսկ ստրուկը `CC1101- ը: Հաղորդակցությունները սկսվում են, երբ CS քորոցն ընդհանրապես ցածր է:
Մի մոռացեք, որ menuconfig- ի կազմողի ընտրանքներում միացրեք C ++ բացառությունները կազմելու համար:
Քայլ 4: Միացեք համակարգին
Եթե ձեր կոդը աշխատում է, դուք կատարել եք էականը: Այս մասում մենք կկենտրոնանանք այն մասին, թե ինչպես ստեղծել համակարգին միացված հեռախոսի ծրագիր: Ամենահետաքրքիր լուծումը bluetooth- ով միացումն է, քանի որ այն թույլ է տալիս օգտագործել ցածր էներգիայի արձանագրություն ՝ Bluetooth Low Energy (BLE): Հիերարխիայի բնութագիրը ցուցադրվում է կցված գծապատկերում. Մենք կկարդանք և կգրենք հրամանը Chaառայության բնութագրիչով: Եվ, իհարկե, մեր esp32- ը և մեր սմարթֆոնը հագեցած են bluetooth- ով:
Այս քայլը բաժանված է երկու մասի ՝ esp32 մասի և հավելվածի: Կցված լուսանկարը ցույց է տալիս և բացատրում ծածկագրերի հիմնական մասերը:
Դուք կարող եք ստեղծել ձեր UUID- ները ՝ հետևելով այս հղմանը.
www.uuidgenerator.net/
Սրանք նույնացուցիչներն են, որոնք կապահովեն մեր BLE պրոֆիլի ծառայությունների և գործառույթների հասանելիությունը:
Esp32 BLE կոդի մասին, Kolban- ը հիանալի աշխատանք կատարեց ՝ այս բոլոր բարձր մակարդակի C ++ գործառույթները համատեղելի դարձնելով.
github.com/nkolban/esp32-snippets/tree/mas…
Դուք կարող եք այս ֆայլերը տեղադրել բաղադրիչների ենթաօրենսդրական գրացուցակում: Հակառակ դեպքում, ձեզ ավելի շատ ժամանակ կպահանջվի հասկանալու համար, թե ինչպես օգտագործել BLE- ն esp-idf գործիքաշղթայի հետ:
Ամփոփելով այն, ինչ դուք կտեսնեք ծածկագրում, մենք ստեղծում ենք սերվեր, ծառայություն և բնութագիր ՝ կապված UUID- ների հետ, և ավելացնում ենք հետախուզման հետադարձ դաս, որը կապված է գրելու եղանակի հետ. Երբ մենք ստանում ենք «O» նիշ, մենք գրելու հրաման ենք ուղարկում cc1101- ին:
Իհարկե, մի մոռացեք միացնել Bluetooth- ը Menuconfig- ի բաղադրիչի կազմաձևում:
Appրագրի մասի մասին մենք կօգտագործենք Framework Ionic- ը: Դրա մասին ավելի շատ տեղեկատվություն կարող եք գտնել առաջին քայլին ներկայացված հղումում, և ավելի մանրամասն ՝ ինչպես օգտագործել BLE- ը Ionic- ի հետ.
ionicframework.com/docs/native/ble/
Եվ օրինակներ ՝ գրված դոնի կողմից.
github.com/don/ionic-ble-examples/tree/mas…
Դուք կարող եք խմբագրել, օրինակ, «Միացում» օրինակը: Մենք սարքերը սկանավորում ենք առաջին էջում, և հասնում երկրորդ էջի, եթե ընտրենք մեր սարքը: Այնուհետև մենք մուտք ենք գործում դեպի միջերես, որտեղ կարող եք ավելացնել կոճակ լուսանկարում ներկայացված մեթոդով. Այն ուղարկում է մեր «O» հրամանը համապատասխան UUID- ներով: Կարող եք նաև առաջին էջի կոնստրուկտորում ավելացնել «միացնել» մեթոդը ՝ խնդրելով ակտիվացնել bluetooth- ը ծրագրի սկզբում:
Խստորեն խորհուրդ եմ տալիս ուսումնասիրել Ionic կայքը և հայտնաբերել բոլոր բաղադրիչները (կոճակներ, ազդանշաններ, վանդակներ …) `ձեր դիմումը բարելավելու համար.
ionicframework.com/docs/components/#overvi…
Քայլ 5: Օպտիմիզացրեք էներգիայի սպառումը
Մենք սկսեցինք աշխատել ցածր սպառման վրա, ուստի եկեք աշխատենք:
Esp-idf գործիքակազմը թույլ է տալիս օգտագործել կոնֆիգուրացիայի GUI ՝ menuconfig. Շատ պարամետրեր կարող են նվազեցնել esp32- ի սպառումը: Նախ, քանի որ մեզ Wifi պետք չէ, մենք կարող ենք այն անջատել Component կոնֆիգուրացիայում: Նույն թղթապանակում ՝ FreeRTOS- ում, կարող եք ընտրել «Գործարկել FreeRTOS- ը միայն առաջին միջուկում: Այնուհետև, ESP- ի դեպքում, կարող եք պրոցեսորի հաճախականությունը իջեցնել մինչև 80 ՄՀց: Բոլոր գործառույթները դեռ աշխատում են այս ժամացույցի արագությամբ: Վերջապես, կարող եք ստուգեք «Միացնել ծայրահեղ ցածր էներգիայի (ULP) համամշակողը: Այս կոնֆիգուրացիան ստիպում է ընթացիկ սպառումը մոտ հարյուր մԱ -ից հասցնել մոտ երեսուն մԱ: Սա դեռ շատ է…
ESP32- ը կարող է կարգավորել խորը քուն: Միայն ցածր էներգիայի միջուկն է միացված և սպասում է արթնանալուն:
Լրացուցիչ մանրամասների համար տե՛ս ստորև բերված հղումը.
esp-idf.readthedocs.io/hy/latest/api-refere…
Fortավոք, esp-idf գործիքային շղթայի վերջին հասանելի տարբերակում (3.0) միակ արթնանալը հասանելի է ժամաչափերի և GPIO- ների խափանումների միջոցով: Բարեբախտաբար, Espressif- ը մեզ խոստանում է BLE արթնանալ հաջորդ տարբերակում (3.1):
Կարող եք նաև CC1101- ը տեղադրել քնած ռեժիմում ՝ SPI- ին ուղարկելով սարքը անջատելու համապատասխան հրաման (տես cc1101 տվյալների թերթ, SPWD հրաման, էջ 51): Սարքը քնելու ռեժիմի մեջ դնելու կամ այն արթնացնելու համար կարող եք ցածր, ապա բարձր տեղադրել SPI կապում Chip Select քորոցը (լրացուցիչ տեղեկություններ տվյալների թերթիկում):
Այս վերջին կազմաձևերը պետք է կարողանան ստիպել համակարգի սպառումը անցնել միլիարդ ամպերից ցածր…
Ի վերջո, որպեսզի համակարգը հնարավորինս երկար տևի առանց լիցքավորման, կամ նույնիսկ հասնի ինքնավարության մեկ ամսվա, ընտրեք 3.7 Վ մարտկոցը ՝ ժամում առավելագույն միլիո ամպեր: Չափելով ձեր համակարգի էներգիայի սպառումը, գեներատորի կամ սլաքի ցուցիչով, որը միացված է ձեր համակարգի + բևեռից առաջ, կարող եք գնահատել ձեր համակարգի գոյատևման ժամանակը:
Խորհուրդ ենք տալիս:
Alexa- ի վերահսկվող ավտոտնակի դուռը Arduino Esp8266: 6 քայլով
Alexa- ի կողմից վերահսկվող ավտոտնակի դուռ Arduino Esp8266- ով. Այս նախագծի գաղափարն ինձ ծագեց հին նախագծից, որի վրա ես աշխատել էի քիչ առաջ: Ես միացրել էի մի պարզ կոճակ, որը միացնում էր LED- ն, երբ կոճակը սեղմվում էր ավտոտնակի դռան մոտ: Այս մեթոդը անհուսալի է և ոչ այնքան օգտակար
Կոտրեք ձեր մեքենան Wio տերմինալով և CAN ավտոբուսով. 7 քայլ
Hack Your Car with Wio Terminal և CAN Bus. Եթե դուք ունեք որոշակի պատկերացում CAN Bus և Arduino ծրագրավորման մասին և ցանկանում եք կոտրել ձեր մեքենան, ապա այս հրահանգները կարող են ձեզ լուծում տալ: չգիտեմ, բայց սա իսկապես հետաքրքիր բան է: Այս հնարքը
Անլար տարբերակ Իմ ավտոտնակի դուռը բաց է, թե փակ: 7 քայլ
Անլար տարբերակ … Իմ ավտոտնակի դուռը բաց է, թե փակ. Կան բազմաթիվ " Իմ ավտոտնակի դուռը բաց է " նախագծերը: Այս նախագծերի մեծամասնությունը կոշտ լարված են: Իմ դեպքում վարած
Ավտոտնակի դուռը բացող ժամաչափ `4 քայլ
Ավտոտնակի դուռը բացող ժամաչափ. Ներածություն: Այսպիսով, պատմությունը սկսվում է այն բանից հետո, երբ ես բաց էի թողնում իմ ավտոտնակի դուռը, և որոշ տղաներ պարզապես ներս էին մտնում և խառնվում: Բարեբախտաբար, արժեքավոր անձնակազմ չի կորել: Այս վթարից հետո ես որոշում եմ պատրաստել " ժամաչափ փակելու " հատկություն իմ ավտոտնակի համար
Սառնարանի պահակ. Փակեք ձեր սառնարանի դուռը `6 քայլ
Սառնարանի պահակ. Փակեք դռան հիշեցումը ձեր սառնարանի համար. Երբեմն, երբ սառնարանից շատ բաներ եմ հանում, ես ազատ ձեռքը չունեմ դուռը փակելու համար, իսկ հետո դուռը բաց է մնում երկար ժամանակ: Երբեմն, երբ ես չափազանց շատ ուժ եմ օգտագործում սառնարանի դուռը փակելու համար, այն ցատկում է, բայց ես դա չեմ նկատում