Mündəricat:

Bluetooth (BLE) ESP32 ilə necə istifadə olunur: 3 addım
Bluetooth (BLE) ESP32 ilə necə istifadə olunur: 3 addım

Video: Bluetooth (BLE) ESP32 ilə necə istifadə olunur: 3 addım

Video: Bluetooth (BLE) ESP32 ilə necə istifadə olunur: 3 addım
Video: Как подключить встроенный Bluetooth ESP32 к смартфону 2024, Sentyabr
Anonim

#####QEYD#####

Bu Təlimatlarda göstərilən üsul köhnə və köhnəlmişdir. Ən son üsul üçün bu videoya baxın.

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

ESP32 geniş bir xüsusiyyət siyahısına (Wikipedia) sahib olsa da, diqqəti cəlb edən ən böyük xüsusiyyət BLE dəstəyi ilə quraşdırılmış bluetooth v4.2-dir. Ancaq bu açıqlama səhv ola bilər, amma cihaz mövcud olsa da, Bluetooth istifadə etmək üçün proqram dəstəyi yoxdur. (İnkişaf mərhələsindədir)

BLE'nin nə olduğunu bilməyənlər üçün Bluetooth Low Energy deməkdir. "Klassik" Bluetooth ilə müqayisədə xeyli aşağı enerji istehlakını artıran bir bluetooth protokolu.

Bu Təlimatlarda, ESP32 lövhəsindən BLE üzərindən telefonunuza məlumat göndərmək üçün sərəncamınızdakı məhdud (proqram təminatı) mənbələrdən necə istifadə edə biləcəyinizi sizə göstərəcəyəm.

Bir neçə İmtina…

Bu təlimata davam etməzdən əvvəl qeyd etməli olduğum bir neçə şey..

Qeyd 1: Bluetooth dəstəyinin hələ mövcud olmadığını söylədikdə arduino inkişaf mühitində nəzərdə tuturam.

Dəstək rəsmi SDK -da və IDF -də çox yaxşı ola bilər, amma bunun üçün heç bir səlahiyyətli təlimat tapmadım.

Qeyd 2: İstifadə etdiyim metod BLE -nin ideal şəkildə necə işləyəcəyi deyil, çox müvəqqəti bir həlldir. Kitabxanada BLE -də xidmət yaratmaq üçün dəstəklər arduino mühiti üçün burada yoxdur.

Etibarlı edə biləcəyiniz yeganə şey, adının reklam edildiyi bir Beacon yaratmaqdır. Bir YouTube şərhində çox zərif bir şəkildə yazılır: "LOL, qəddar bir hack. Amma nə edə bilərsən?"

Qeyd 3: Göndərə biləcəyiniz yeganə məlumat stringdir.

Stringə və digər növ məlumatları kodlaşdırmağa və deşifr etməyə çox yaxşı qərar verə bilərsiniz, lakin bu, bu təlimatın əhatə dairəsindən kənardır.

Addım 1: Nümunə Yarat

Image
Image
Nümunə Yaratma
Nümunə Yaratma
Nümunə Yaratma
Nümunə Yaratma
Nümunə Yaratma
Nümunə Yaratma

İzahat üçün buradasınızsa, bu addımı atlaya bilərsiniz, ancaq keçmək sizə bir az daha aydınlıq verə bilər.

Əvvəlcə bir nümunə layihə quracağam və sonra bunun necə işlədiyini və Bluetooth ünsiyyətini necə təkrarlaya biləcəyinizi izah etməyə çalışacağam. Smartfonunuza canlı yem göndərən portativ bir temperatur sensoru quracağıq. Tikinti bir li-po üzərində günlərlə işləyə bilər və BLE-nin faydalarını asanlıqla nümayiş etdirir.

İçkinizi izolyasiya etmək və içkinizin optimal temperatura çatması ilə əlaqədar bildiriş almaq üçün modulu sahil gəmisi kimi istifadə edə bilərsiniz. Çünki 40 dərəcədən yuxarı olan bir çayı yudumlamaq çox pis bir hərəkət olardı.

Lazım olan yeganə avadanlıq ESP32 lövhəsi və rəqəmsal bir temperatur sensoru. Lövhəm xarici batareyanı dəstəkləyir, buna görə də bu layihəni portativ etmək üçün köhnə bir cihazdan aldığım 3.7v li-po istifadə edirəm.

Avadanlıq

İstilik sensoru üçün bağlantılar sadədir. Qırmızı tel 3.3v -ə, qara yerə (gnd), sarı lövhəmdə D9 olaraq işarələnmiş GPIO 2 -yə bağlanır. Qırmızı və sarı tel arasında 4.7k ohm rezistor bağlayın. Rezistordan istifadə etmirəm, əvəzinə sensorumla birlikdə gələn 3 pinli fişli terminaldan istifadə edirəm. Daxili çəkmə rezistoru var.

Li-po həqiqətən bir JST konnektoru vasitəsi ilə bağlanmalıdır, amma satın almaqdan narahat ola bilmədim, buna görə konnektora bəzi (dişi-qadın) keçid kabelləri bağladım və başqa bir cütü akkumulyator terminallarına lehimlədim. Bu etibarlı bir əlaqə və müvəqqəti bir güc açarı yaradır.

İndi bir layihə korpusu olaraq daha böyük bir təbəqədən kəsilmiş bir Strafor diskindən istifadə edirəm. Bu, əla bir izolyator yaradır. Başqa çox kiçik bir disk yuxarıda, ancaq bir az yan tərəfə yapışdırılmışdır. Əlavə uzunluqdakı telləri sarmaq üçündür, beləliklə hər yerdə sarkmırlar. Yapışqanınızı səxavətli bir şəkildə işə saldıqdan və sensor zondu üçün kiçik bir çuxurdan sonra proqrama keçməyə hazırsınız.

Proqram təminatı

Arduino IDE -ni hələ yükləməmisinizsə, yükləmək üçün bu linkə daxil olun. Varsayılan olaraq arduino proqramı, müxtəlif ESP32 lövhələri üçün lövhə tərifləri ilə gəlmir. Onları bu linkə daxil etmək və faylları bir zipdə yükləmək üçün. Onları bu yerə açmalısınız:

C:/İstifadəçilər // Sənədlər/Arduino/hardware/espserrif/ESP32

Kompüterinizdə istifadəçi adınız haradadır. Müxtəlif faylların ESP32 qovluğunun altında olduğundan və başqa bir qovluğun altında olmadığından əmin olun.

İndi arduino proqramını işə salırsınızsa və alətlər-> lövhələrə daxil olursanız, aşağıya fırladığınızda müxtəlif ESP32 lövhələrini görürsünüz.

Əksər rəqəmsal temperatur sensörleri mikro nəzarətçilərlə ünsiyyət qurmaq üçün OneWire protokolundan istifadə edir, buna görə də kitabxananı əldə etməliyik. Eskizə keçin-> kitabxanaya daxil olun-kitabxanaları idarə edin və bir tel axtarın və çox müəllif olan kitabxananı quraşdırın. Onewire mərkəzinə ehtiyacınız yoxdur. Buna məhəl qoyma.

İndi bu addıma əlavə edilmiş kodu yükləyə və aça bilərsiniz (temperatur-example.ino).

Məndən fərqli bir sensor istifadə edirsinizsə, kodu buna uyğun olaraq dəyişdirməlisiniz. GetTemp () altındakı kodu dəyişdirin. Yalnız son temperaturu şəklində qaytarın

Qayıdış;

Temperaturu olan şamandıra haradadır.

Lövhəyə qoşun, alətlərin altından düzgün lövhəni və portu seçin və yükləməyə vurun.

Kod yükləməkdən imtina edərsə, sensoru ayırın və GPIO 0 -u yerə bağlayın. Yükləndikdən sonra əlaqələri bərpa edin.

ESP'iniz indi dünyaya qəhvənizin temperaturunu qışqırmalıdır, ancaq bunu anlayacaq birinə ehtiyacınız var.

Android Tətbiqi

Üzr istəyirik iPhone istifadəçiləri (… əslində deyil).

Apk -ı buradan yükləyin və quraşdırın. Tətbiqə başladığınız zaman sizi çox sadə bir interfeys qarşılayacaq.

'Reklam dəstəklənmir' deyən bir səhv mesajı alsanız, OK düyməsini vurun və buna məhəl qoymayın, ancaq 'BLE dəstəklənmir' mesajı alsanız telefonunuzda Bluetooth 4.0 və ya daha yüksək versiyası yoxdur və işləməyəcək. tətbiq.

Telefonunuzda Bluetooth -un yandığından əmin olun və "Taramaya Başla" düyməsini basın, esp -in əhatə dairəsində olduğu və işə salındığı müddətdə bir qədər temperatur dəyəri almalısınız.

Mümkün səhvlər:

  • -1000:: Bu o deməkdir ki, cihazınız ESP tapa bilməyib. Bluetooth -un aktiv olduğundan əmin olun və ESP -ni yenidən başladın.
  • SNA:: Bu o deməkdir ki, telefonunuz ESP -dən məlumat alır, lakin ESP özü GPIO 2 -də bir temperatur sensoru tapa bilmədi. Bağlantıların etibarlı olduğundan əmin olun, düzgün dəyərdə bir rezistor istifadə edirsiniz. Lövhə sxemləri ilə D2 olaraq işarələnmiş bir pin deyil, GPIO 2 -yə qoşulduğunuzu yoxlayın.

Addım 2: İzahat

BLE normal olaraq necə işləyir, bir cihaz bir mayak kimi adını tanıdır, bu ad hər kəs tərəfindən görülə bilər və cihazı tanımaq üçün istifadə olunur. Sonra cihaz, başqaları ona qoşulduqda gördükləri müxtəlif xidmətlər yarada bilər. Bu xidmətlər fərqli məlumat axınlarına malik ola bilər.

Məsələn. 'Hava İstasyonu' adlı bir cihaz, 'Temperatur', 'Rütubət' və 'Külək' kimi xidmət edə bilər. Smartfonunuz kimi başqa bir BLE cihazı cihazları axtardıqda Hava İstasyonunu görür və ona qoşulduqda fərqli xidmətlərə uyğun olan məlumat axınlarını ala bilər.

Hal -hazırda əlimizdə olan kitabxanalar (ESP32 üçün), başqalarının kəşf edə biləcəyi bir mayak yaratmağımıza imkan verir, lakin bu işin miqyası budur. Nə xidmət yarada bilərik, nə də heç bir cihaz ona qoşula bilmərik.

Xidmət yaratmadan məlumatları necə göndərdiyim, Beacon Stuffing adlı WiFi protokoluna bənzər bir texnikadan istifadə etməkdir. Bu, mayak adının daxilində göndəriləcək məlumatları daxil etdiyim deməkdir. Bu, digər cihazların mayaka qoşulmasını tələb etmədən məlumatları reklam etməyə imkan verir.

ble.begin (beaconMsg); // beaconMsg reklam edilən addır

ESP formatında adı olan bir mayak yaratmaq üçün SimpleBLE kitabxanasından istifadə edirik. 'ESP' hər zaman adın əvvəlində dəyişməz olaraq qalır və hər 100 millisaniyədə getValue () funksiyası tərəfindən geri qaytarılmış ən son məlumatlar ilə əvəz olunur.

float getValue () {return sensorValue;}

Android tətbiqi 'ESP' ilə başlayan BLE cihaz adlarını axtarır, tapıldıqda adı bölür və yalnız sondan məlumatları göstərir.

Əlaqə yalnız bir yoldur, tətbiq geri bir şey göndərmir.

Addım 3: Nəticə

Günün sonunda, bu üsul düzgün tətbiq olunan BLE kitabxanasının yerini tuta bilməz, ancaq Arduinoya tam BLE dəstəyi gələnə qədər bəzi layihələri gözdən keçirmək kifayətdir. Ümid edirəm bu Təlimatlar sizə bir az kömək etdi.

Mənə bu məhsulları göndərdiyinə görə DFRobot.com -a böyük bir təşəkkür:

  • ESP32 FireBeetle lövhəsi
  • FireBeetle Genişləndirici Qalxanı
  • DS18B20 Temperatur Sensoru

Bu yaxınlarda bu kitabxananı tapdım. ReadME, məlumat almaq üçün digər BLE cihazlarına qoşula biləcəyinizi iddia edir (Özünüzü reklam edə bilməzsiniz). Mən sınamamışam amma maraqlanırsınızsa yoxlaya bilərsiniz.

Layihənin videosunu buradan yoxlaya bilərsiniz: YouTube

Tövsiyə: