Mundarija:

Garaj eshigini buzish: 5 qadam
Garaj eshigini buzish: 5 qadam

Video: Garaj eshigini buzish: 5 qadam

Video: Garaj eshigini buzish: 5 qadam
Video: BİR O'ZİNGİZ KO'RİNG / DUNYODAGİ ENG G'ALATİ ER-XOTİNLAR / Buni Bilasizmi? 2024, Noyabr
Anonim
Garaj eshigingizni buzing
Garaj eshigingizni buzing
Garaj eshigingizni buzing
Garaj eshigingizni buzing
Garaj eshigingizni buzing
Garaj eshigingizni buzing

Kim uyiga telefon ilovasi bilan borishni yoki tramvaylarni tinglash va nusxalashni orzu qilmagan? Men siz bilan nimani tushunganimni va qanday yurganimni aytib berishdan baxtiyorman. Men bu loyihani ikkinchi marta boshlaganimdan keyin boshladim …

Albatta, kodlash, modulyatsiya turi, tashuvchining chastotasi, bluetooth ulanishi haqidagi ma'lumotlar va men ko'rsatmoqchi bo'lgan ma'lumotlar asl nusxa emas, men tashrif buyuruvchilar bo'lmasligini afzal ko'raman;-).

Bu ilova elektromagnit to'lqinlar yordamida raqamli ma'lumotlarni qabul qila oladigan har qanday ob'ektga tegishli (garaj eshigi, mashina, ba'zi panjurlar …). Butun tizim telefonga bluetooth orqali ulangan ob'ektdan iborat bo'lib, bu ob'ekt biz buzmoqchi bo'lgan narsalar bilan bog'liq bo'lgan masofadan boshqarish pulti bilan bir xil freymlarni yuborishi mumkin. Men bu ob'ektni garajimga qo'ydim va unga tashqi tomondan ulanishim mumkin.

1 -qadam: uskunalar

Uskunalar
Uskunalar
Uskunalar
Uskunalar

Ishlatiladigan tillar: C ++, MATLAB, Typescript, C, html.

Raqamli elektronika va telekommunikatsiya/signallarni qayta ishlash bo'yicha asosiy bilimlar.

Narxi: 35 dollardan kam.

Uskuna talablari:

- NooELEC NESDR: ma'lumotlarni yozib olish uchun. Bu juda arzon modul raqamli demodulyatsiyani amalga oshiradi, shuning uchun uning yuqori portativligi. Ushbu model MATLAB bilan mos keladi. ($ 18.95)

www.nooelec.com/store/sdr/sdr-receivers/nes…

- Wemos Lolin32 lite: bu esp32 - Wi -Fi va Bluetooth bilan jihozlangan arzon mikrokontroller. Biz ushbu ilovada Wi -Fi -dan foydalanmaymiz, lekin bu ko'p jihatdan mumkin. (4,74 dollar)

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

- CDSENET cc1101: bu radio uzatuvchi bizga tanlangan tashuvchi chastotasidan modulyatsiya turiga qadar juda moslashuvchanlikni beradi. (2,63 dollar)

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

- Simlar, sarlavhalar, payvandlash uskunalari, avtonomiya uchun 3.7V lipo batareyasi, ehtimol osiloskop va/yoki disk raskadrovka uchun mantiq analizatori va tasodifan smartfon …

Dasturiy ta'minot talablari:

- MATLAB/Simulink: ma'lumotlarni yozib olish uchun. Ma'lumotlarni vizualizatsiya qilish uchun Audacity kabi boshqa bepul muqobil dasturlardan foydalanish mumkin. (litsenziya)

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

- esp-idf asboblar zanjiri: bu esp32 dasturlash uchun ishlatiladi. Arduino ideasidan ham foydalanish mumkin, lekin bu biz foydalanadigan erkinlikka imkon bermaydi. (ozod)

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

- TI SmartRF Studio: bu bizga texnik xususiyatlarga muvofiq cc1101 registrlarini sozlashda yordam beradi. (ozod)

www.ti.com/tool/SMARTRFTM-STUDIO

- Ionik: ilovani yaratish uchun. Siz mahalliy ilovalarni yaratishni tanlashingiz mumkin, lekin Ionic bizga ilovamizni Android va IOS qurilmalarida, faqat kod bilan ishlatish imkonini beradi. Bizning holatimizda spektakl qidirilmaydi. (ozod)

ionicframework.com/

- Sizning sevimli g'oyangiz …

2 -qadam: Masofadan boshqarish pultini tekshirish

Masofadan boshqarish pultini tekshirish
Masofadan boshqarish pultini tekshirish
Masofadan boshqarish pultini tekshirish
Masofadan boshqarish pultini tekshirish
Masofadan boshqarish pultini tekshirish
Masofadan boshqarish pultini tekshirish

Biz masofadan boshqarish pultining buyruqlarini ishlab chiqaradigan ma'lumotlarni kuzatishdan boshlaymiz. Buning uchun biz rtl-sdr dongle va antennadan foydalanamiz:

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

Ushbu havolani bosib, siz MATLAB to'plamini, shuningdek, barcha taxminlarni tushuntirgan holda bepul kitobni topasiz. Bizni nima qiziqtirayotganini umumlashtirish uchun tranzit ma'lumotlari IQ signali ko'rinishida bo'ladi: "Q" to'rtburchaklar ma'lumotlari bilan birlashtirilgan "I" fazali ma'lumotlar. Bu usul telekommunikatsiyani osonlashtiradi. Biz faqat signalni bosqichma -bosqich qabul qilishdan manfaatdormiz. Endi biz masofadan boshqarish pultidagi jismoniy va raqamli ma'lumotlarni to'playmiz, agar sizda ba'zi hujjatlarni topsangiz, bu osonroq bo'ladi. Hech birini topmadim. Vaqtinchalik signalni kuzatish imkoniyatiga ega bo'lish uchun, avvalo, chiqarilgan signalning chastota tashuvchisi nima ekanligini bilishimiz kerak. Biz "RTL-SDR radioli spektral tahlil" paketli hujjatlar bilan ta'minlangan misolni ishlatamiz, biz buyruq yuborganimizda qaysi chastotada eng yuqori quvvatni kuzatayotganimizni aniq bilamiz. Mening holatimda bu 868,22 MGts. Bunday dasturlar uchun "standart" chastotalar 868 MGts atrofida.

Ushbu ko'rsatkichlar yordamida biz ma'lumotlarni tiklash uchun MATLAB kodini yozishimiz mumkin bo'ladi. Bu rasmga ilova qilingan va sharhlangan, natija modulyatsiya turini topishga imkon beradi: xom ma'lumotni olish, signalning haqiqiy qismini tiklagandan so'ng natijani ko'rsatish orqali biz bu ASK / OOK ekanligini aniqlashimiz mumkin. modulyatsiya. Darhaqiqat, biz chastota o'zgarmasligini kuzatamiz, lekin signal faqat ikkita amplitudaga ega: null va sobit. Qolgan kodlar bizga qabul qilingan signal konvertini tiklashga imkon beradi, bu esa trameni bilish uchun o'qishni osonlashtiradi. Ko'rsatilganidan so'ng, biz asosiy tarmoqli modulyatsiyasini aniqlashimiz mumkin: bu Manchester kodi (ilova qilingan rasmga qarang). Bundan tashqari, biz bod tezligini (sekundiga belgilar) aniqlashimiz mumkin. Bu ma'lumotlarning hammasi yig'ilib, biz ma'lumotlar doirasini bilishimiz mumkin. Mening holatimda, topilgan baytlar: 249, 39, 75, 178, 45, 200 va buyruq yaxshi qabul qilinishini ta'minlash uchun bir necha marta takrorlangan. Yaxshiyamki, kod aylanmaydi, ma'lumotlar doirasi har doim bir xil.

3 -qadam: Bir xil ma'lumotlar ramkalarini yuboring

Xuddi shu ma'lumotlar ramkalarini yuboring
Xuddi shu ma'lumotlar ramkalarini yuboring
Xuddi shu ma'lumotlar ramkalarini yuboring
Xuddi shu ma'lumotlar ramkalarini yuboring
Xuddi shu ma'lumotlar ramkalarini yuboring
Xuddi shu ma'lumotlar ramkalarini yuboring

Texas Instruments cc1101 shu qadar moslashuvchanki, siz oldingi maqsadda topgan sozlamalaringiz menikidan mutlaqo farq qilsa ham, siz maqsadingizga erishasiz. Haqiqatan ham, siz hujjatning 2 -betida (https://www.ti.com/lit/ds/symlink/cc1101.pdf) NRZ, Manchester, FSK, ASK/OOK modulyatsiyasini bajarishga ruxsat berishini ko'rasiz. 433 MGts yoki 868 MGts atrofidagi chastotalar va boshqa ko'p narsalar. Men sizga ushbu modul bilan tanishish uchun hujjatlarni o'qishni maslahat beraman.

Ushbu havola orqali siz Loborisning ushbu modul yordamida funktsiyalar tuzishga oid ishini misol sifatida topasiz:

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

Biz esp32 uchun o'z kodimizni esp-idf asboblar zanjiri bilan yozamiz (birinchi qadam havolalariga qarang). Loyihaning komponentlarini pastki katalogiga havola fayllarini qo'shishingiz mumkin. CC1101 -ni to'g'ri sozlash uchun biz uning registrlarini tuzatishimiz kerak bo'ladi. Texas Instruments bizga konfiguratsiyamiz bo'yicha registrlarning qiymatini beradigan dasturlarni taqdim etadi: SmartRF Studio.

Menga kelsak, men dasturiy ta'minotni Manchesterda kodlashni xohlayotganimni, tashuvchimning chastotasi 868,22 MGts, mening modulyatsiya turim ASK / OOK ekanligini bildiraman … men sizga parametrlarni kiritishga ruxsat beraman. Agar siz tarmoqli tasmasini kodlash imkoniga ega bo'lmasangiz, siz NRZ kodlashini, tezlikni to'g'ri oshirish va ma'lumotlarni moslashtirish orqali ko'rib chiqishingiz mumkin.

O'z qadriyatlaringizni aniqlagandan so'ng, sizda modulni ishlatishga oid bir qancha tanlovlar bor: siz men bog'lagan funktsiyalarni ishlatishingiz mumkin, yoki men nima qilgan bo'lsam, hamma narsani konfiguratsiya qilish uchun faqat shu koddan ilhom oling. shafqatsiz yo'l (ilova qilingan rasmlarga qarang) va faqat bizga kerak bo'lgan narsadan foydalaning.

CC1101 chipi SPI bilan aloqa o'rnatganida, siz misol kodining havolasida "spi_master_lobo.h" sarlavhali faylni topasiz, u faqat asboblar zanjiri bilan ishlatishingiz kerak bo'lgandan ko'ra, SPIdan foydalanish uchun osonroq funktsiyalarni o'z ichiga oladi. Men sizga fotosuratda SPI -dagi CC1101 aloqa sxemasi, CC1101 ma'lumotlar sahifasining 30 -sahifasidan olingan fotosurat bilan qo'shilaman. Taqdim etilgan to'rtta simlar: CS (Chip Select yoki SS: Slave Select yoki CSn), CLK (yoki SCLK, soat, usta tomonidan ta'minlangan), MISO (yoki SO, Master In Slave Out) va MOSI (yoki SI, Master Out Slave In). Bizning holatda, usta - ESP32, qul - CC1101. Umuman olganda, CS pin past bo'lganda aloqa boshlanadi.

Menyu konfiguratsiyasining kompilyator variantlarida kompilyatsiya uchun C ++ istisnolarini yoqishni unutmang.

4 -qadam: Tizimga ulaning

Tizimga ulanish
Tizimga ulanish
Tizimga ulanish
Tizimga ulanish
Tizimga ulanish
Tizimga ulanish

Agar sizning kodingiz ishlayotgan bo'lsa, siz asosiy narsani qildingiz. Ushbu bo'limda biz tizimga ulangan telefon ilovasini qanday yaratishni ko'rib chiqamiz. Eng qiziqarli yechim bluetooth orqali ulanishdir, chunki u kam quvvatli protokoldan foydalanishga imkon beradi: Bluetooth Low Energy (BLE). Ierarxiya profili ilova qilingan rasmda ko'rsatilgan: biz buyruqni xizmat tavsifida o'qiymiz va yozamiz. Va, albatta, bizning esp32 va smartfonimiz bluetooth bilan jihozlangan.

Bu qadam ikki qismga bo'linadi: esp32 qismi va ilova qismi. Fotosuratda kodlarning asosiy qismlari ko'rsatilgan va tushuntirilgan.

Siz UUID -laringizni quyidagi havola orqali yaratishingiz mumkin:

www.uuidgenerator.net/

Bu bizning BLE profilimizning xizmatlari va xususiyatlariga kirishni ta'minlaydigan identifikatorlar.

Esp32 BLE kodi haqida Kolban bu yuqori darajadagi C ++ funktsiyalarining barchasini moslashtiradigan ajoyib ish qildi:

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

Siz ushbu fayllarni tarkibiy qismlar katalogiga qo'yishingiz mumkin. Aks holda, esp-idf asboblar zanjiri bilan BLE-dan qanday foydalanishni tushunish uchun sizga ko'proq vaqt kerak bo'ladi.

Xulosa qilib aytganda, siz kodda nimani ko'rasiz, biz UUID -lari bilan Server, xizmat va xarakteristikani yaratamiz va yozish usuli bilan qayta aniqlangan qayta qo'ng'iroq qilish sinfini qo'shamiz: biz "O" harfini olamiz. belgi, biz cc1101 ga yozish buyrug'ini yuboramiz.

Albatta, Menuconfig -ning komponentlar konfiguratsiyasida Bluetooth -ni yoqishni unutmang.

Ilova qismi haqida biz Framework Ionic -dan foydalanamiz. Siz bu haqda ko'proq ma'lumotni birinchi bosqichda ko'rsatilgan havolada va BLE -ni Ionic bilan qanday ishlatish haqida batafsil ma'lumotni topishingiz mumkin:

ionicframework.com/docs/native/ble/

Don tomonidan yozilgan misollar:

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

Siz, masalan, "Ulanish" misolini tahrir qilishingiz mumkin. Biz qurilmalarni birinchi sahifada skanerlaymiz va agar biz o'z qurilmamizni tanlasak, ikkinchi sahifaga o'tamiz. Keyin biz rasmda ko'rsatilgan usul bilan tugmani qo'shishingiz mumkin bo'lgan interfeysga kiramiz: u tegishli UUID -lar bilan "O" buyrug'imizni yuboradi. Shuningdek, siz birinchi sahifaning konstruktoriga bluetooth -ni dastur boshida faollashtirishni so'ragan "yoqish" usulini qo'shishingiz mumkin.

Sizga Ionic veb -saytini o'rganishingizni va ilovangizni yaxshilash uchun barcha komponentlarni (tugmalar, ogohlantirishlar, katakchalar …) topishingizni tavsiya qilaman.

ionicframework.com/docs/components/#overvi…

5 -qadam: Quvvat sarfini optimallashtirish

Quvvat sarfini optimallashtirish
Quvvat sarfini optimallashtirish
Quvvat sarfini optimallashtirish
Quvvat sarfini optimallashtirish

Biz kam iste'mol ustida ishlay boshladik, shuning uchun ishlaylik.

Esp-idf asboblar zanjiri menyu konfiguratsiyasi GUI konfiguratsiyasidan foydalanishga imkon beradi: ko'p parametrlar esp32 sarfini kamaytirishi mumkin. Birinchidan, bizga Wi -Fi kerak bo'lmagani uchun uni Komponent konfiguratsiyasida o'chirib qo'yishimiz mumkin. Xuddi shu papkada, FreeRTOS-da "FreeRTOS-ni faqat birinchi yadroda ishga tushirish" -ni tanlashingiz mumkin. Keyin, ESP-ga xos protsessor chastotasini 80 MGts ga tushirishingiz mumkin. Barcha funktsiyalar hali ham shu soat tezligida ishlaydi. Nihoyat, siz "Ultra past quvvatli (ULP) protsessorini yoqish" -ni belgilang. Ushbu konfiguratsiya joriy iste'molni taxminan yuz mA dan o'ttiz mA gacha oshiradi. Bu hali juda ko'p …

ESP32 chuqur uyquni boshqarishi mumkin. Faqat kam quvvatli yadro yoqilgan va uyg'onishni kutadi.

Batafsil ma'lumot uchun quyidagi havolaga qarang:

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

Afsuski, esp-idf asboblar zanjirining (3.0) so'nggi versiyasida faqat uyg'onish taymerlar va GPIO-larning uzilishlari bilan amalga oshiriladi. Yaxshiyamki, Espressif bizga keyingi versiyada BLE uyg'onishini va'da qiladi (3.1).

Siz CCI101 -ni uyqu rejimiga qo'yishingiz mumkin, SPI -da qurilmani o'chirish uchun tegishli buyruq yuboriladi (cc1101 ma'lumotlar jadvaliga qarang, SPWD buyrug'i, 51 -bet). Qurilmani uyqu holatiga o'tkazish yoki uni uyg'otish uchun siz SPI pinlarining Chip Select pinini pastdan balandga qo'yishingiz mumkin (ma'lumotlar sahifasida qo'shimcha ma'lumotlar).

Bu oxirgi konfiguratsiyalar tizim iste'moli milliamperdan past bo'lishi kerak edi …

Nihoyat, tizimni qayta zaryad qilmasdan iloji boricha uzoqroq ishlashini ta'minlash yoki hatto bir oylik avtonomiyaga erishish uchun soatiga eng ko'p milli-amperli 3.7V batareyani tanlang. Tizimingiz + qutbidan oldin ketma -ket ulangan generator yoki ampermetrni ko'rsatib, tizimingizning quvvat sarfini o'lchab, siz tizimingiz qancha vaqt ishlashini taxmin qilishingiz mumkin!

Tavsiya: