Mundarija:

Bluetooth (BLE) ni ESP32 bilan qanday ishlatish kerak: 3 qadam
Bluetooth (BLE) ni ESP32 bilan qanday ishlatish kerak: 3 qadam

Video: Bluetooth (BLE) ni ESP32 bilan qanday ishlatish kerak: 3 qadam

Video: Bluetooth (BLE) ni ESP32 bilan qanday ishlatish kerak: 3 qadam
Video: Makeblock Untimate Robot Kit Part 2 : Robtic Arm Explaine, Software, Code App and Having Fun demo 2024, Iyun
Anonim

#####ESLATMA#####

Bu yo'riqnomada ko'rsatilgan usul eski va eskirgan. Eng yangi usul uchun ushbu videoni tomosha qiling.

###############

ESP32-da keng ko'lamli xususiyatlar ro'yxati (Vikipediya) mavjud bo'lsa-da, ko'zni o'ziga tortadigan eng katta xususiyat bu BLE qo'llab-quvvatlanadigan bluetooth v4.2. Ammo bu bayonot chalg'ituvchi bo'lishi mumkin, lekin uskuna mavjud bo'lsa -da, Bluetooth -dan foydalanish uchun dasturiy ta'minot yo'q. (Rivojlanmoqda)

BLE nima ekanligini bilmaganlar uchun bu Bluetooth past energiyani anglatadi. Bu Bluetooth protokoli bo'lib, u "Klassik" Bluetooth -ga qaraganda quvvat sarfini ancha kamaytiradi.

Bu yo'riqnomada sizga ESP32 kartasidan ma'lumotlarni telefoningizga BLE orqali yuborish uchun sizning ixtiyoringizdagi cheklangan (dasturiy) resurslardan qanday foydalanish kerakligini ko'rsataman.

Bir nechta ogohlantirishlar …

Ushbu qo'llanmani davom ettirishdan oldin, ba'zi bir e'tiborga molik narsalarni aytib o'tishim kerak.

Eslatma 1: Bluetooth qo'llab -quvvatlashi hali mavjud emasligini aytganimda, men arduino ishlab chiqish muhitini nazarda tutyapman.

Qo'llab -quvvatlash rasmiy SDK va IDF -da juda yaxshi bo'lishi mumkin, lekin men ular uchun hech qanday malakali ko'rsatma topa olmadim.

Eslatma 2: Men ishlatadigan usul BLE qanday ishlashi kerakligi emas, balki vaqtinchalik echimdir. Kutubxona BLE -da xizmatlar yaratishni qo'llab -quvvatlaydi, bu erda arduino muhiti uchun emas.

Ishonchli qilishingiz mumkin bo'lgan yagona narsa - bu uning nomini e'lon qiladigan mayoq yaratish. YouTube sharhida juda oqlangan: "LOL, shafqatsiz hack. Lekin nima qila olasiz?"

Eslatma 3: Siz yuborishingiz mumkin bo'lgan yagona ma'lumot - bu string.

Siz boshqa turdagi ma'lumotlarni mag'lubiyatga kodlash va dekodlashga qaror qilishingiz mumkin, lekin bu qo'llanmaning doirasidan tashqarida.

1 -qadam: Namuna tuzish

Image
Image
Misol tuzish
Misol tuzish
Misol tuzish
Misol tuzish
Misol tuzish
Misol tuzish

Agar siz faqat tushuntirish uchun shu erda bo'lsangiz, unda siz bu bosqichni o'tkazib yuborishingiz mumkin, lekin uni bosib o'tish sizga biroz aniqlik berishi mumkin.

Birinchidan, men misol loyihasini qurmoqchiman, keyin uning qanday ishlashini va Bluetooth aloqasini qanday takrorlash mumkinligini tushuntirishga harakat qilaman. Biz portativ harorat sensori quramiz, u sizning smartfoningizga jonli uzatma yuboradi. Qurilish bir necha kun davomida bitta li-poda ishlashi mumkin va BLE-ning afzalliklarini osongina namoyish etadi.

Siz ichimlikni izolyatsiyalash uchun modulni qirg'oq sifatida ishlatishingiz va ichimlikingiz optimal haroratga yetishi bilan xabar olishingiz mumkin. Chunki 40 darajadan yuqori bo'lgan choyni ichish kerak bo'lsa, bu yomon ish bo'ladi.

Sizga kerak bo'lgan yagona apparat - bu ESP32 kartasi va raqamli harorat sensori. Mening taxtam tashqi batareyani qo'llab-quvvatlaydi, shuning uchun men ushbu loyihani ko'chma qilish uchun eski qurilmadan qutqargan 3.7v li-po ishlataman.

Uskuna

Harorat sensori ulanishlari oddiy. Qizil sim 3.3v ga, qora yerga (gnd), sariq GPIO 2 ga ulanadi, u mening taxtamda D9 deb belgilangan. Qizil va sariq simlar orasidagi 4.7k ohmli rezistorni ulang. Men rezistorni ishlatmayman, buning o'rniga men sensori bilan kelgan 3 pinli ulanadigan terminaldan foydalanaman. U o'rnatilgan tortishish qarshiligiga ega.

Li-po haqiqatan ham JST ulagichi yordamida ulanishi kerak edi, lekin men uni sotib olishdan bezovta bo'lolmadim, shuning uchun ulagichga bir nechta (urg'ochi-ayol) o'tish kabellarini tikib qo'ydim va akkumulyator terminallariga boshqa juftni lehimladim. Bu ishonchli ulanishni va quvvatni o'chirishni ta'minlaydi.

Endi loyiha muhiti sifatida men katta varaqdan kesilgan Strafor diskidan foydalanayapman. Bu ajoyib izolyatorni yaratadi. Yana kichikroq disk tepada, lekin biroz yon tomonda. Bu simlarning qo'shimcha uzunligini o'rash uchun, ular hamma joyda osilib qolmaydi. Yopishqoqlik va sensorli prob uchun kichik teshikdan so'ng, siz dasturiy ta'minotga o'tishga tayyormiz.

Dasturiy ta'minot

Agar sizda arduino IDE o'rnatilmagan bo'lsa, uni yuklab olish uchun ushbu havolaga o'ting. Arduino dasturiy ta'minoti har xil ESP32 platalari uchun anakart ta'riflari bilan ta'minlanmagan. Ularni ushbu havolaga o'ting va fayllarni zip formatida yuklab oling. Siz ularni bu joyga ochishingiz kerak:

C:/Foydalanuvchilar // Hujjatlar/Arduino/apparat/espserrif/ESP32

Kompyuteringizda foydalanuvchi nomingiz qayerda. Turli xil fayllar ESP32 papkasida mavjudligiga va boshqa papkada emasligiga ishonch hosil qiling.

Endi agar siz arduino dasturini ishga tushirsangiz va asboblar-> taxtalarga o'tsangiz, pastga aylanayotganda siz turli ESP32 platalarini ko'rishingiz kerak.

Raqamli harorat sensorlarining ko'pchiligi OneWire protokoli yordamida mikrokontrolderlar bilan aloqa o'rnatadi, shuning uchun kutubxonani olishimiz kerak. Eskiz-> kutubxonani o'z ichiga oladi-> kutubxonalarni boshqaring va bitta simni qidiring va juda ko'p muallif bo'lgan kutubxonani o'rnating. Sizga bitta simli markaz kerak emas. E'tibor bermang.

Endi siz ushbu bosqichga biriktirilgan kodni yuklab olishingiz va ochishingiz mumkin (temperatur-example.ino).

Agar siz mendan boshqa sensorni ishlatayotgan bo'lsangiz, kodni mos ravishda o'zgartirishingiz kerak bo'ladi. GetTemp () ostidagi kodni almashtiring. Faqat oxirgi haroratni formada qaytaring

Qaytish;

Haroratni o'z ichiga olgan suzuvchi qayerda.

Kengashni ulang, asboblar ostidan to'g'ri taxta va portni tanlang va yuklashni bosing.

Agar kod yuklashdan bosh tortsa, sensorni uzing va GPIO 0 ni erga ulang. Yuklashdan keyin ulanishlarni tiklang.

Sizning ESP endi butun dunyoga qahvaning harorati haqida baqirishi kerak, lekin sizga buni tushunadigan odam kerak.

Android ilovasi

Kechirasiz iPhone foydalanuvchilari (… aslida emas).

Apk -ni bu erdan yuklab oling va o'rnating. Dasturni ishga tushirganingizda sizni juda oddiy interfeys kutib oladi.

Agar sizda "reklama qo'llab -quvvatlanmaydi" degan xato xabari paydo bo'lsa, "OK" tugmasini bosing va uni e'tiborsiz qoldiring, lekin "BLE qo'llab -quvvatlanmaydi" degan xabar kelsa, telefoningizda Bluetooth 4.0 yoki undan yuqori versiyasi yo'q va u ishlamaydi. ilova.

Telefoningizdagi Bluetooth yoqilganligiga ishonch hosil qiling va "Skanerlashni boshla" tugmasini bosing, agar esp diapazonida bo'lsa va u yoqilgan bo'lsa, siz harorat ko'rsatkichini olasiz.

Mumkin bo'lgan xatolar:

  • -1000:: Bu shuni anglatadiki, sizning qurilmangiz ESPni topa olmadi. Bluetooth yoqilganligiga ishonch hosil qiling va ESPni qayta ishga tushiring.
  • SNA:: Bu shuni anglatadiki, sizning telefoningiz ESP ma'lumotlarini oladi, lekin ESP o'zi GPIO 2 da harorat sensori topa olmadi. Ulanishlar ishonchli ekanligiga ishonch hosil qiling, agar siz to'g'ri rezistordan foydalanayotgan bo'lsangiz. O'zingizning sxemalaringiz bilan GPIO 2 ga ulanganligingizni ikki marta tekshiring, D2 sifatida belgilangan pin emas.

2 -qadam: tushuntirish

BLE odatda qanday ishlaydi, qurilma o'z nomini mayoq kabi e'lon qiladi, bu nomni hamma ko'rishi mumkin va qurilmani aniqlash uchun ishlatiladi. Keyin qurilma turli xil xizmatlarni yaratishi mumkin, ular unga ulanganida boshqalar ko'radi. Ushbu xizmatlar turli xil ma'lumotlar oqimiga ega bo'lishi mumkin.

Masalan. "Ob -havo stantsiyasi" nomli qurilma uning ostida "Harorat", "Namlik" va "Shamol" kabi xizmat ko'rsatishi mumkin. Agar sizning smartfoningiz kabi boshqa BLE qurilmasi qurilmalarni qidirsa, u Ob -havo stantsiyasini ko'radi va unga ulanganda, u turli xizmatlarga mos keladigan ma'lumotlar oqimini qabul qila oladi.

Hozirda bizda mavjud bo'lgan kutubxonalar (ESP32 uchun) bizga boshqalar kashf eta oladigan mayoq yaratishga imkon beradi, lekin bu uning miqyosi. Biz xizmatlarni yarata olmaymiz va unga hech qanday qurilma ulana olmaydi.

Ma'lumotlarni qanday qilib xizmatlarsiz yuborishim - bu Beacon Stuffing deb nomlangan WiFi protokoliga o'xshash usul. Bu shuni anglatadiki, men mayoq nomining o'zida yuboriladigan ma'lumotlarni o'z ichiga olaman. Bu menga boshqa qurilmalarni mayoqqa ulanishni talab qilmasdan ma'lumotlarni reklama qilish imkoniyatini beradi.

ble.begin (beaconMsg); // beaconMsg - e'lon qilingan ism

Biz SimpleBLE kutubxonasidan ESP formatida o'z nomini ko'rsatadigan mayoq yaratish uchun foydalanmoqdamiz. Bu erda "ESP" har doim ismning boshida o'zgarishsiz qoladi va har 100 millisekundda getValue () funktsiyasi tomonidan qaytarilgan so'nggi ma'lumotlar bilan almashtiriladi.

float getValue () {return sensorValue;}

Android ilovasi "ESP" bilan boshlanadigan BLE qurilmalari nomlarini qidiradi, bir marta topilsa, u nomni ajratadi va faqat oxirigacha ma'lumotlarni ko'rsatadi.

Aloqa faqat bitta usuldir, ilova hech narsani qaytarmaydi.

3 -qadam: Xulosa

Kun oxirida, bu usul to'g'ri BLE kutubxonasini o'rnini bosa olmaydi, lekin Arduino -ga BLE -ni to'liq qo'llab -quvvatlamaguncha, ba'zi loyihalarni to'xtatish kifoya. Umid qilamanki, bu ko'rsatma sizga yordam berdi.

Menga ushbu mahsulotlarni yuborgani uchun DFRobot.com saytiga katta rahmat:

  • ESP32 FireBeetle taxtasi
  • FireBeetle kengayish qalqoni
  • DS18B20 harorat sensori

Men yaqinda bu kutubxonani topdim. ReadME ma'lumot olish uchun boshqa BLE qurilmalariga ulanishingiz mumkinligini da'vo qiladi (o'zingizni reklama qila olmaysiz). Men sinab ko'rmadim, lekin agar qiziqsangiz, tekshirib ko'rishingiz mumkin.

Loyiha videosini bu erda ko'rishingiz mumkin: YouTube

Tavsiya: