Мазмұны:

Гараж есігін бұзыңыз: 5 қадам
Гараж есігін бұзыңыз: 5 қадам

Бейне: Гараж есігін бұзыңыз: 5 қадам

Бейне: Гараж есігін бұзыңыз: 5 қадам
Бейне: Строим гараж мечты своими руками! / Устройство гаража и основные ошибки при строительстве гаража 2024, Шілде
Anonim
Гараж есігіңізді бұзыңыз
Гараж есігіңізді бұзыңыз
Гараж есігіңізді бұзыңыз
Гараж есігіңізді бұзыңыз
Гараж есігіңізді бұзыңыз
Гараж есігіңізді бұзыңыз

Кім үйге тек телефон қосымшасы арқылы баруды немесе трамвайларды тыңдауды және көшіруді армандаған емес? Мен сіздермен өзімнің түсінгенімді және қалай жүріп өткенімді бөлісуге қуаныштымын. Мен бұл жобаны екінші рет кілттерді ұмытып кеткеннен кейін бастадым …

Әрине, кодтау, модуляция түрі, тасымалдаушы жиілігі, 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 - арзан микроконтроллер, Wi -Fi мен Bluetooth қосылған. Біз бұл қосымшада Wi -Fi қолданбаймыз, бірақ бұл көп жағдайда мүмкін. ($ 4.74)

wiki.wemos.cc/products:lolin32:lolin32_lit…

- CDSENET cc1101: бұл радио таратқыш таңдалған тасымалдаушы жиілігінен модуляция түріне дейін өте икемділік береді. ($ 2.63)

www.aliexpress.com/item/2PC-Lot-E07-868MS1…

- Сымдар, тақырыптар, дәнекерлеу қондырғылары, автономияға арналған 3.7В липо батареясы, мүмкін осциллограф және/немесе жөндеуге арналған логикалық анализатор және кездейсоқ смартфон …

Бағдарламалық қамтамасыз етуге қойылатын талаптар:

- MATLAB/Simulink: мәліметтерді түсіруге арналған. Деректерді визуализациялау үшін Audacity сияқты басқа ақысыз баламалы бағдарламаларды қолдануға болады. (лицензия)

fr.mathworks.com/products.html?s_tid=gn_ps

- esp-idf құралдар тізбегі: бұл esp32 бағдарламалау үшін қолданылады. Arduino идеалын да қолдануға болады, бірақ ол біз қолданатындай еркіндікке жол бермейді. (Тегін)

esp-idf.readthedocs.io/kz/latest/get-starte…

- TI SmartRF Studio: бұл бізге техникалық сипаттамаларға сәйкес cc1101 регистрлерін конфигурациялауға көмектеседі. (Тегін)

www.ti.com/tool/SMARTRFTM-STUDIO

- Ионикалық: қосымшаны құруға арналған. Сіз жергілікті қосымшаларды құруды таңдай аласыз, бірақ Ionic бізге қосымшаны Android -те де, IOS -та да тек кодпен іске қосуға мүмкіндік береді. Біздің жағдайда спектакль ізделмейді. (Тегін)

ionicframework.com/

- Сіздің сүйікті идеяңыз …

2 -қадам: Қашықтан басқару құралын шпиондау

Қашықтан басқару құралын шпиондау
Қашықтан басқару құралын шпиондау
Қашықтан басқару құралын шпиондау
Қашықтан басқару құралын шпиондау
Қашықтан басқару құралын шпиондау
Қашықтан басқару құралын шпиондау

Біз қашықтан басқару пультінің командалары шығаратын деректерді бақылаудан бастаймыз. Ол үшін rtl-sdr кілті мен антеннаны қолданамыз:

fr.mathworks.com/hardware-support/rtl-sdr….

Осы сілтеме бойынша сіз MATLAB пакетін, сондай -ақ барлық болжамдарды түсіндіретін ақысыз кітапты таба аласыз. Бізді мазалайтын нәрсені қорытындылау үшін транзиттік деректер IQ сигналы түрінде болады: «Q» квадратуралық деректермен біріктірілген «I» фазалық деректер. Бұл әдіс телекоммуникацияны жеңілдетеді. Біз сигналды тек фазалық түрде алуға мүдделіміз. Біз енді қашықтан басқару пультіндегі физикалық және цифрлық ақпаратты жинайтын боламыз. Мен ешнәрсе таппадым. Сигналды уақытша байқай білу үшін алдымен шығарылатын сигналдың жиілік тасымалдаушысы қандай екенін білуіміз керек. Біз «RTL-SDR радиосымен спектрлік талдау» пакеттік құжаттамасында берілген мысалды қолдана отырып, пәрмен жібергенде максималды қуатты қай жиілікте байқайтынымызды нақты білеміз. Менің жағдайда бұл 868,22 МГц. Мұндай қосымшалар үшін «стандартты» жиіліктер шамамен 868 МГц құрайды.

Осы көрсеткіштердің көмегімен біз деректерді қалпына келтіру үшін MATLAB кодын жаза аламыз. Бұл фотосуретке бекітілген және түсініктеме берілген. Нәтиже модуляция түрін табуға мүмкіндік береді: бастапқы ақпаратты алу арқылы, сигналдың нақты бөлігін қалпына келтіргеннен кейін нәтижені көрсету арқылы біз бұл сұрау / OOK екенін анықтай аламыз. модуляция. Шынында да, біз жиіліктің инвариантты екенін байқаймыз, алайда сигналдың тек екі амплитудасы бар: нөлдік және тұрақты. Қалған код бізге сигналдың конвертін қалпына келтіруге мүмкіндік береді, бұл трамвайды білу үшін оқуды жеңілдетеді. Көрсетілгеннен кейін біз негізгі жолақты модуляцияны анықтай аламыз: бұл Манчестер кодтау (қосымшадағы суретті қараңыз). Сондай -ақ, жіберу жылдамдығын шығаруға болады (секундына символдар). Барлық осы ақпарат жиналған кезде біз деректер шеңберін біле аламыз. Менің жағдайда табылған байттар: 249, 39, 75, 178, 45, 200 және команданың жақсы қабылданғанына көз жеткізу үшін бірнеше рет қайталанады. Бақытымызға орай, код жылжымайды, деректер шеңбері әрқашан бірдей.

3 -қадам: Деректердің бірдей кадрларын жіберіңіз

Бірдей деректер кадрларын жіберіңіз
Бірдей деректер кадрларын жіберіңіз
Бірдей деректер кадрларын жіберіңіз
Бірдей деректер кадрларын жіберіңіз
Бірдей деректер кадрларын жіберіңіз
Бірдей деректер кадрларын жіберіңіз

Texas Instruments cc1101 соншалықты икемді, сіз алдыңғы қадамда тапқан параметрлер менікінен мүлдем өзгеше болса да, сіз мақсатыңызға жете аласыз. Шынында да, сіз NRZ, Манчестер, ФСК, ASK/OOK модуляциясын орындауға мүмкіндік беретін 2 -беттегі (https://www.ti.com/lit/ds/symlink/cc1101.pdf) құжаттамада көресіз. 433 МГц немесе 868 МГц айналасындағы жиіліктер және тағы басқалар. Мен сізге осы модульмен танысу үшін құжаттаманы оқуға кеңес беремін.

Бұл сілтемеде сіз Loboris -тің осы модульдің көмегімен функцияларды құруға қатысты жұмысын таба аласыз:

github.com/loboris/ESP32_CC1101/tree/maste…

Біз esp32 кодын esp-idf құралдар тізбегімен жазамыз (бірінші қадам сілтемелерін қараңыз). Сілтеме файлдарын жобаңыздың компоненттерінің ішкі каталогына қосуға болады. Cc1101 -ді дұрыс конфигурациялау үшін бізге оның регистрлерін түзету қажет болады. Texas Instruments бізге конфигурацияға сәйкес регистрлердің мәнін беретін бағдарламалық қамтамасыз етуді ұсынады: SmartRF Studio.

Мен туралы, мен бағдарламалық жасақтамаға Манчестер кодтауын алғым келетінін, тасымалдаушы жиілігім 868,22 МГц екенін, менің модуляция түрім ASK / OOK екенін көрсетемін … мен сізге параметрлерді енгізуге рұқсат бердім. Егер сіздің базалық жолақты кодтау қол жетімді болмаса, сіз NRZ кодтауын беру жылдамдығын дұрыс арттыру және деректерді бейімдеу арқылы қарастыра аласыз.

Сіз өзіңіздің құндылықтарыңызды анықтағаннан кейін, сізде модульді қолдануға қатысты бірнеше таңдау болады: сіз мен байланыстырған функцияларды қолдана аласыз, немесе мен не істедім, тек осы кодтан шабыт алып, бәрін конфигурациялауға болады. қатыгездікпен (қоса берілген фотоларды қараңыз) және тек бізге қажет нәрсені қолданыңыз.

Cc1101 микросхемасы SPI арқылы хабарласа отырып, сіз мысал кодының сілтемесінде SPI -ді қолдану үшін қарапайым құралдар тізбегінен гөрі оңайырақ функциялары бар «spi_master_lobo.h» тақырып файлын таба аласыз. Мен сізге SPI -де CC1101 байланыс схемасын фотосуретте қосамын, фотосурет CC1101 мәліметтер парағының 30 -бетінен алынды. Ұсынылған төрт сым: CS (Chip Select немесе SS: Slave Select немесе CSn), CLK (немесе SCLK, мастер ұсынған сағат), MISO (немесе SO, Master In Slave Out) және MOSI (немесе SI, Master Out Slave In). Біздің жағдайда шебер - ESP32, ал құл - CC1101. Байланыс CS түйреуіші төмен болған кезде басталады, жалпы.

Меню конфигурациясының компилятор опцияларында компиляцияға арналған C ++ ерекшеліктерін қосуды ұмытпаңыз.

4 -қадам: Жүйеге қосылыңыз

Жүйеге қосылыңыз
Жүйеге қосылыңыз
Жүйеге қосылыңыз
Жүйеге қосылыңыз
Жүйеге қосылыңыз
Жүйеге қосылыңыз

Егер сіздің кодыңыз жұмыс істесе, сіз маңызды нәрсені жасадыңыз. Бұл бөлімде біз жүйеге қосылған телефон қосымшасын қалай жасауға болатынын қарастырамыз. Ең қызықты шешім-Bluetooth арқылы қосылу, себебі ол төмен қуатты протоколды қолдануға мүмкіндік береді: Bluetooth Low Energy (BLE). Иерархия профилі қоса берілген сызбада көрсетілген: біз қызметтің сипаттамасында пәрменді оқимыз және жазамыз. Әрине, біздің esp32 мен смартфонымыз bluetooth -мен жабдықталған.

Бұл қадам екі бөлікке бөлінеді: esp32 бөлігі және қолданба бөлігі. Фотосуретте кодтардың негізгі бөліктері көрсетілген және түсіндірілген.

Сіз UUID -ті мына сілтеме бойынша жасай аласыз:

www.uuidgenerator.net/

Бұл біздің BLE профилінің қызметтері мен мүмкіндіктеріне қол жеткізуді қамтамасыз ететін идентификаторлар.

Esp32 BLE коды туралы Колбан жоғары деңгейдегі барлық C ++ функцияларын үйлесімді етіп керемет жұмыс жасады:

github.com/nkolban/esp32-snippets/tree/mas…

Бұл файлдарды компоненттердің ішкі каталогына қоюға болады. Әйтпесе, BLE-ді esp-idf құралдар тізбегімен қалай қолдану керектігін түсіну үшін сізге көбірек уақыт қажет болады.

Сіз кодта не көретіндігіңізді қорытындылай келе, біз байланысқан UUID -пен бірге Серверді, Қызметті және Сипаттаманы жасаймыз, және біз «O» белгісін алған кезде байланысты жазылу әдісімен қайта анықталған кері шақыру класын қосамыз. таңба, біз cc1101 -ге жазу пәрменін жібереміз.

Әрине, Menuconfig компоненттерінің конфигурациясында Bluetooth қосуды ұмытпаңыз.

Қолданба бөлігі туралы біз Framework Ionic қолданамыз. Сіз бұл туралы толығырақ ақпаратты бірінші қадамда берілген сілтемеде және BLE -ді Ионикамен қалай пайдалану туралы толығырақ біле аласыз:

ionicframework.com/docs/native/ble/

Дон жазған мысалдар:

github.com/don/ionic-ble-examples/tree/mas…

Сіз, мысалы, «Қосылу» мысалын өңдей аласыз. Біз құрылғыларды бірінші бетте қарап шығамыз, ал егер біз құрылғыны таңдасақ, екінші бетке жетеміз. Содан кейін біз суретте көрсетілген әдіспен түймені қосуға болатын интерфейске кіреміз: ол сәйкес UUID көмегімен біздің «O» командасын жібереді. Бірінші беттің конструкторына қосымшаның басында bluetooth қосуды сұрайтын «қосу» әдісін қосуға болады.

Мен сізге қосымшаны жақсарту үшін Ionic веб -сайтын зерттеуге және барлық компоненттерді (түймелер, ескертулер, құсбелгілер …) ашуды ұсынамын:

ionicframework.com/docs/components/#overvi…

5 -қадам: Қуатты тұтынуды оңтайландыру

Қуатты тұтынуды оңтайландыру
Қуатты тұтынуды оңтайландыру
Қуатты тұтынуды оңтайландыру
Қуатты тұтынуды оңтайландыру

Біз төмен тұтыну бойынша жұмыс жасай бастадық, сондықтан жұмыс жасайық.

Esp-idf құралдар тізбегі GUI конфигурациясын пайдалануға мүмкіндік береді, menuconfig: көптеген параметрлер esp32 шығынын төмендетуі мүмкін. Біріншіден, бізге Wi -Fi қажет емес болғандықтан, оны компоненттер конфигурациясында өшіре аламыз. Сол қалтада, FreeRTOS-та «FreeRTOS-ты тек бірінші ядрода іске қосуды таңдауға болады. Содан кейін, ESP-ге тән, процессор жиілігін 80 МГц-ке дейін төмендетуге болады. Барлық функциялар әлі де осы сағат жылдамдығында жұмыс істейді. Соңында, сіз «Ультра төмен қуатты (ULP) сопроцессорды қосу» құсбелгісін қойыңыз. Бұл конфигурация ағымдағы тұтынуды шамамен жүз мА -дан отыз мА -ға дейін жеткізеді. Бұл әлі де тым көп…

ESP32 терең ұйқыны басқара алады. Тек қуаты аз ядро қосылады және оятуды күтеді.

Толық ақпарат алу үшін төмендегі сілтемені қараңыз:

esp-idf.readthedocs.io/kz/latest/api-refere…

Өкінішке орай, esp-idf құралдар тізбегінің (3.0) соңғы қол жетімді нұсқасында таймер мен GPIO-дың бұзылуы ғана оянады. Бақытымызға орай, Espressif бізге келесі нұсқада BLE оянуға уәде береді (3.1).

Сондай -ақ, CC1101 -ді SPI -ге құрылғыны өшіру туралы тиісті пәрменді жіберу арқылы ұйқы режиміне қоюға болады (cc1101 деректер кестесін, SPWD пәрменін, 51 -бетті қараңыз). Құрылғыны ұйқы режиміне қою немесе ояту үшін сіз SPI түйреуіштерінің Chip Select түйреуішін төмен және жоғары қоюға болады (мәліметтер кестесінде қосымша ақпарат).

Бұл соңғы конфигурациялар жүйенің шығынын милли-амперден төмен өткізуі керек …

Ақырында, жүйені қайта зарядтамай мүмкіндігінше ұзақ қызмет ету үшін немесе тіпті бір ай автономияға жету үшін сағатына ең көп миллиампері бар 3,7В батареяны таңдаңыз. Жүйеңіздің + полюсінің алдында тізбектей қосылған генератордың немесе амперметрдің дисплейі арқылы жүйенің тұтынылатын қуатын өлшеу арқылы сіз жүйенің қанша уақыт жұмыс істейтінін бағалай аласыз!

Ұсынылған: