Мазмуну:

Гаражыңыздын эшигин бузуңуз: 5 кадам
Гаражыңыздын эшигин бузуңуз: 5 кадам

Video: Гаражыңыздын эшигин бузуңуз: 5 кадам

Video: Гаражыңыздын эшигин бузуңуз: 5 кадам
Video: 5 BEST GADGETS for YOUR GARAGE 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 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.7V lipo батареясы, балким осциллограф жана/же мүчүлүштүктөрдү оңдоо үчүн логикалык анализатор жана кокусунан смартфон …

Программалык камсыздоого талаптар:

- MATLAB/Simulink: маалыматтарды басып алуу үчүн. Берилиштерди визуалдаштыруу үчүн Audacity сыяктуу башка акысыз альтернативдүү программаларды колдонсо болот. (лицензия)

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

- esp-idf инструменти: бул esp32ди программалоо үчүн колдонулат. Arduino идеи да колдонулушу мүмкүн, бирок биз колдоно тургандай эркиндикке жол бербейт. (бекер)

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

- TI SmartRF Studio: бул бизге спецификациябызга ылайык cc1101 регистрлерин конфигурациялоого жардам берет. (бекер)

www.ti.com/tool/SMARTRFTM-STUDIO

- Иондук: колдонмону куруу үчүн. Сиз жергиликтүү колдонмолорду түзүүнү тандай аласыз, бирок Ионик биздин колдонмону Android жана IOS түзмөктөрүндө бир гана код менен иштетүүгө мүмкүндүк берет. Спектакль биздин учурда изделбейт. (бекер)

ionicframework.com/

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

2 -кадам: Алыстан башкарууну шпиондук кылыңыз

Алыстан башкарууну шпиондук кылуу
Алыстан башкарууну шпиондук кылуу
Алыстан башкарууну шпиондук кылуу
Алыстан башкарууну шпиондук кылуу
Алыстан башкарууну шпиондук кылуу
Алыстан башкарууну шпиондук кылуу

Алыстан башкаруунун буйруктары чыгарган маалыматтарды байкоо менен баштайбыз. Бул үчүн биз rtl-sdr dongle жана антеннаны колдонобуз:

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

Бул шилтеме аркылуу, сиз MATLAB пакетин, ошондой эле алардын түшүндүрмөсү менен бардык приздерди түшүндүргөн бекер китепти таба аласыз. Бизди тынчсыздандырган нерселерди жалпылаштыруу үчүн, транзиттик маалыматтар IQ сигналы түрүндө болот: "Q" квадратурасы менен айкалышкан "I" фазадагы маалыматтар. Бул ыкма телекоммуникацияны жеңилдетет. Биз сигналды этапта гана алууга кызыкдар болобуз. Биз азыр алыстан башкаруудагы физикалык жана санариптик маалыматты чогултабыз, эгерде сиз бул боюнча кандайдыр бир документтерди таба алсаңыз, бул оңой болот. Мен тапкан жокмун Сигналды убактылуу байкай билүү үчүн, алгач чыгарылган сигналдын жыштык ташуучусу эмне экенин билишибиз керек. Биз "RTL-SDR радиосунун спектралдык анализи" пакеттик документтери менен берилген мисалды колдонобуз, биз буйрук жөнөткөндө эң жогорку чыңалууну кайсы жыштыкта байкайбыз. Менин учурда бул 868.22 MHz. Мындай колдонмолор үчүн "стандарттык" жыштыктар 868 МГц тегерегинде.

Бул көрсөткүчтөр менен биз маалыматтарды калыбына келтирүү үчүн MATLAB кодун жаза алабыз. Бул сүрөттө тиркелет жана комментарийленет. Натыйжа модуляциянын түрүн табууга мүмкүндүк берет: чийки маалыматты алуу менен, сигналдын чыныгы бөлүгүн калыбына келтиргенден кийин эле натыйжаны көрсөтүү менен, биз бул ASK / OOK экенин аныктай алабыз. модуляция. Чынында эле, биз жыштык инвариант экенин байкайбыз, бирок сигналдын эки гана амплитудасы бар: нөл жана туруктуу. Калган коду бизге келген сигналдын конвертин калыбына келтирүүгө мүмкүндүк берет, трамвайды билүү үчүн окууну жеңилдетет. Көрсөтүлгөндөн кийин, биз базалык тилкенин модуляциясын аныктай алабыз: бул Манчестер коддоосу (тиркелген сүрөттү караңыз). Биз ошондой эле baud ылдамдыгын (секундуна символдор) чыгарсак болот. Бул маалыматтын баары чогултулуп, биз маалымат алкагын биле алабыз. Менин учурда, табылган байттар: 249, 39, 75, 178, 45, 200 жана буйруктун жакшы кабыл алынышын камсыз кылуу үчүн бир нече жолу кайталанган. Бактыга жараша, код жылдырылбайт, маалымат алкагы дайыма бирдей.

3 -кадам: Ошол эле маалымат алкактарын жөнөтүү

Ошол эле маалымат алкактарын жөнөтүңүз
Ошол эле маалымат алкактарын жөнөтүңүз
Ошол эле маалымат алкактарын жөнөтүңүз
Ошол эле маалымат алкактарын жөнөтүңүз
Ошол эле маалымат алкактарын жөнөтүңүз
Ошол эле маалымат алкактарын жөнөтүңүз

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

Бул шилтемеде сиз мисал катары Лобористин бул модулду колдонуп функцияларды куруу боюнча ишин таба аласыз:

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

Биз Espp3 үчүн кодубузду esp-idf куралы менен жазабыз (биринчи кадамдын шилтемелерин караңыз). Шилтеменин файлдарын долбооруңуздун компоненттеринин субдиректориясына кошо аласыз. Cc1101ди туура конфигурациялоо үчүн, биз анын регистрлерин оңдошубуз керек. Texas Instruments бизге конфигурациябызга ылайык регистрлердин маанисин берген программалык камсыздоону берет: SmartRF Studio.

Мен жөнүндө, мен программалык камсыздоого Манчестер коддоону каалаарымды, менин алып жүрүүчүмдүн жыштыгы 868.22 МГц экенин, менин модуляция түрүм ASK / OOK экенин билдирем … Мен сизге параметрлерди киргизүүгө уруксат бердим. Негизги тилкелүү коддоо жеткиликтүү эмес болгон учурда, сиз NRZ коддоону карап чыгсаңыз болот, бул үчүн ылдамдыкты туура жогорулатуу жана маалыматтарды ыңгайлаштыруу.

Сиз өзүңүздүн баалуулуктарыңызды аныктагандан кийин, сизде модулду колдонууга байланыштуу бир нече тандоо бар: мен сиз менен байланыштырган функцияларды колдоно аласыз, же мен эмне кылдым, баарын конфигурациялоо үчүн ушул коддон илхам алыңыз. катаал жол (тиркелген сүрөттөрдү караңыз), жана бизге керектүү нерсени гана колдонуңуз.

Cc1101 чипи SPI аркылуу байланышып турганда, сиз мисал кодунун шилтемесинен "spi_master_lobo.h" аталыш файлын таба аласыз, аны SPI колдонуу үчүн жөнөкөй инструменттер чынжыры менен колдонууга караганда жеңилирээк функцияларды камтыйт. Мен сизге 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…

Сиз бул файлдарды компоненттердин субдиректориясына сала аласыз. Болбосо, esp-idf инструменти менен BLEди кантип колдонууну түшүнүү үчүн сизге көбүрөөк убакыт керек болот.

Коддо эмнени көрө турганыңыздын кыскача мазмуну, биз UUID менен байланышкан Серверди, Кызматты жана Характеристиканы түзөбүз, жана кайра жазуунун байланышкан методу менен кайра аныкталган класска кошобуз: биз "О" алганда тамга, биз cc1101ге жазуу буйругун жөнөтөбүз.

Албетте, Menuconfigтин компонент конфигурациясында Bluetooth иштетүүнү унутпаңыз.

Колдонмонун бөлүгү жөнүндө биз Framework Ionic колдонобуз. Бул тууралуу көбүрөөк маалыматты биринчи кадамда берилген шилтемеден жана BLE'ди Ionic менен кантип колдонуу керектиги жөнүндө көбүрөөк маалымат ала аласыз:

ionicframework.com/docs/native/ble/

Жана мисалдар, Don тарабынан жазылган:

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

Сиз, мисалы, "Туташуу" мисалын түзөтө аласыз. Биз түзмөктөрдү биринчи бетте сканерлеп, эгерде биз өзүбүздүн түзмөктү тандап алсак, экинчи бетке жетебиз. Андан кийин биз интерфейске киребиз, анда сиз сүрөттө көрсөтүлгөн ыкма менен баскычты кошо аласыз: ал биздин "O" буйругун тиешелүү UUID менен жөнөтөт. Сиз ошондой эле биринчи беттин конструкторуна колдонмонун башында bluetoothду иштетүүнү суранып, "иштетүү" ыкмасын кошо аласыз.

Мен сизге Иондук веб -сайтты изилдөөнү жана колдонмоңузду жакшыртуу үчүн бардык компоненттерди (баскычтарды, эскертүүлөрдү, белгилөө кутучаларын …) табууну сунуштайм:

ionicframework.com/docs/components/#overvi…

5 -кадам: Электр керектөөнү оптималдаштыруу

Электр керектөөнү оптималдаштыруу
Электр керектөөнү оптималдаштыруу
Электр керектөөнү оптималдаштыруу
Электр керектөөнү оптималдаштыруу

Биз аз керектөөнүн үстүндө иштей баштадык, андыктан иштейли.

Esp-idf инструменти бизге GUI конфигурациясын колдонууга мүмкүндүк берет, менуконфиг: көптөгөн параметрлер esp32 керектөөнү төмөндөтүшү мүмкүн. Биринчиден, бизге Wifi кереги жок болгондуктан, аны Компоненттин конфигурациясында өчүрө алабыз. Ошол эле папкада, FreeRTOSто "FreeRTOSту биринчи ядродо гана иштетиңиз. Андан кийин, ESP-спецификасында, CPU жыштыгын 80 МГцке түшүрө аласыз. Бардык функциялар дагы ушул саат ылдамдыгында иштейт. Акыры, сиз текшерүү "Ultra Low Power (ULP) копроцессорун иштетүү. Бул конфигурация учурдагы керектөөнү жүз мАдан отуз мАга чейин жеткирет. Бул дагы өтө көп…

ESP32 терең уйкуну башкара алат. Болгону аз энергиялуу ядро күйүп турат жана ойгонууну күтөт.

Көбүрөөк маалымат алуу үчүн төмөнкү шилтемени караңыз:

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

Тилекке каршы, esp-idf инструментинин (3.0) акыркы жеткиликтүү версиясында, таймерлер жана GPIOдордун үзгүлтүктөрү гана ойгонот. Бактыга жараша, Espressif бизге BLE кийинки версияда ойгонууну убада кылат (3.1).

Сиз CCI101ди уктоо режимине койсоңуз болот, SPIде түзмөктү өчүрүү үчүн тиешелүү буйрукту жөнөтүү менен (cc1101 маалымат барагын, SPWD буйругун, 51 -бетти караңыз). Түзмөктү уктоо режимине коюу үчүн же ойготуу үчүн, SPI пинлеринин Chip Select пинин төмөн, андан кийин жогору коюңуз (маалымат барагында көбүрөөк маалымат).

Бул акыркы конфигурациялар тутумдун керектөөсү милли-амперден төмөн болушу керек …

Акыр-аягы, тутумду мүмкүн болушунча кайра заряддабастан, же бир ай автономияга жетүү үчүн, саатына эң көп милли-амперлик 3.7V батареяны тандаңыз. Системаңыздын электр керектөөсүн өлчөө менен, генератордун же амперметрдин дисплейи менен системаңыздын + полюсуна чейин, сиз системаңыздын иштөө убактысын баалай аласыз!

Сунушталууда: