Sisukord:

Bluetoothi (BLE) kasutamine koos ESP32 -ga: 3 sammu
Bluetoothi (BLE) kasutamine koos ESP32 -ga: 3 sammu

Video: Bluetoothi (BLE) kasutamine koos ESP32 -ga: 3 sammu

Video: Bluetoothi (BLE) kasutamine koos ESP32 -ga: 3 sammu
Video: Atom Hydrogen - универсальный контроллер умного дома, обзор, возможности, ESP Home, Home Assistant 2024, September
Anonim

#####MÄRGE#####

Selles juhendis näidatud meetod on vana ja aegunud. Vaadake sellest videost uusimat meetodit.

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

Kui ESP32-l on lai funktsioonide loend (Wikipedia), siis suurim tähelepanu köitev funktsioon on sisseehitatud BLE toega bluetooth v4.2. Kuid see väide võib olla eksitav, kui riistvara on olemas, puudub Bluetoothi tarkvara tugi. (See on väljatöötamisel)

Neile, kes ei tea, mis on BLE, tähistab see Bluetooth Low Energy. See on bluetooth -protokoll, mis suurendab tunduvalt väiksemat energiatarvet võrreldes "klassikalise" Bluetoothiga.

Selles juhendis näitan teile, kuidas saate kasutada oma käsutuses olevaid piiratud (tarkvara) ressursse andmete saatmiseks ESP32 tahvlilt telefoni kaudu BLE kaudu.

Mõned lahtiütlused…

Enne selle juhendiga jätkamist tuleks mainida mõnda asja.

Märkus 1: Kui ma ütlen, et Bluetoothi tugi pole veel saadaval, pean silmas arduino arenduskeskkonda.

Tugi võib olla saadaval nii ametlikus SDK -s kui ka IDF -is, kuid ma pole nende jaoks pädevaid juhiseid leidnud.

Märkus 2: Minu kasutatav meetod on väga palju lahendus ja mitte see, kuidas BLE ideaalis peaks töötama. Raamatukogu toetab teenuste loomist BLE -s ei ole siin arduino keskkonna jaoks.

Ainus, mida saate usaldusväärselt teha, on majaka loomine, mis reklaamib selle nime. YouTube'i kommentaar ütles selle väga elegantselt: "LOL, jõhker häkkimine. Aga mida sa saad teha?"

Märkus 3: Ainus liik, mida saate saata, on string.

Te võite väga hästi otsustada kodeerida ja dekodeerida muid andmeid stringist ja stringist, kuid see jääb selle juhendi raamest välja.

Samm: näite koostamine

Image
Image
Ehituse näide
Ehituse näide
Ehituse näide
Ehituse näide
Ehituse näide
Ehituse näide

Kui olete siin lihtsalt selgituse saamiseks, võite selle sammu vahele jätta, kuid selle läbimine võib teile natuke rohkem selgust anda.

Esiteks koostan näidisprojekti ja siis püüan selgitada, kuidas see toimib ja kuidas saate Bluetooth -ühendust kopeerida. Ehitame kaasaskantava temperatuurianduri, mis saadab otseülekande teie nutitelefonile. Ehitamine võib töötada ühe li-poga mitu päeva ja demonstreerib hõlpsalt BLE eeliseid.

Saate moodulit kasutada rannasõidulaevana jookide isoleerimiseks ja teate saamiseks kohe, kui jook saavutab optimaalse temperatuuri. Sest see oleks travestia, kui peaksite rüüpama teed, mis oli üle 40 kraadi.

Ainus riistvara, mida vajate, on ESP32 plaat ja digitaalne temperatuuriandur. Minu plaat toetab välist akut, nii et ma kasutan 3.7v li-po, mille päästsin mõnest vanast seadmest, et muuta see projekt kaasaskantavaks.

Riistvara

Temperatuurianduri ühendused on lihtsad. Punane juhe ühendub 3.3v, must ühendab maandusega (gnd), kollane ühendub GPIO 2 -ga, mis on minu plaadil tähistatud kui D9. Ühendage punase ja kollase juhtme vahele 4,7 kΩ takisti. Ma ei kasuta takistit, selle asemel kasutan anduriga kaasasolevat 3-kontaktilist pistikut. Sellel on sisseehitatud tõmbetakistus.

Li-po tuleks tõesti ühendada JST-pistiku abil, kuid ma ei viitsinud seda osta, nii et panin pistikupessa lihtsalt mõned (naissoost naissoost) hüppajakaablid ja jootsin teise paari aku klemmidele. See tagab usaldusväärse ühenduse ja ajutise toitelüliti.

Nüüd kasutan projekti korpusena vahtpolüstüroolketast, mis on suuremalt lehelt välja lõigatud. See teeb suurepärase isolaatori. Teine palju väiksem ketas on peal kinni, kuid natuke küljel. See on mõeldud juhtmete lisapikkuse mähkimiseks, nii et need ei rippuks kogu kohas. Pärast liimi heldet kasutamist ja väikest ava andurisondi jaoks olete valmis tarkvara juurde minema.

Tarkvara

Kui teil pole arduino IDE veel installitud, minge selle allalaadimiseks sellele lingile. Arduino tarkvara vaikimisi ei sisalda erinevate ESP32 tahvlite plaadimääratlusi. Nende linkide avamiseks ja failide zip -vormingus allalaadimiseks. Peate need sellesse asukohta lahti pakkima:

C:/Kasutajad // Dokumendid/Arduino/riistvara/espserrif/ESP32

Kus on teie kasutajanimi teie arvutis. Veenduge, et erinevad failid on saadaval kausta ESP32 all ja mitte teises kaustas.

Nüüd, kui käivitate arduino tarkvara ja lähete tööriistade-> tahvlite juurde, peaksite alla kerides nägema erinevaid ESP32 tahvleid.

Enamik digitaalseid temperatuuriandureid kasutab OneWire'i protokolli, et suhelda mikrokontrolleritega, seega peame hankima kogu. Minge visandile-> kaasake raamatukogu-> hallake teeke ja otsige onewire ning installige raamatukogu, mis on liiga palju autoreid. Te ei vaja onewire'i jaoturit. Ignoreeri seda.

Nüüd saate alla laadida ja avada sellele sammule lisatud koodi (temperatuur-example.ino).

Kui kasutate minust erinevat andurit, peate koodi vastavalt muutma. Asendage kood getTemp () all. Lihtsalt tagastage lõplik temperatuur kujul

Tagasi;

Kus on temperatuuri sisaldav ujuk.

Ühendage plaat, valige tööriistade alt õige plaat ja port ning klõpsake üleslaadimist.

Kui kood keeldub üleslaadimisest, ühendage andur lahti ja ühendage GPIO 0 maandusega. Taastage ühendused pärast üleslaadimist.

Teie ESP peaks nüüd maailmale karjuma teie kohvi temperatuuri, kuid teil on vaja kedagi, kes seda mõistaks.

Androidi rakendus

Vabandame iPhone'i kasutajate pärast (… mitte tegelikult).

Laadige apk siit alla ja installige see. Rakenduse käivitamisel tervitatakse teid väga lihtsa liidesega.

Kui kuvatakse veateade „Reklaami ei toetata”, klõpsake nuppu OK ja ignoreerige seda, kuid kui kuvatakse teade „BLE ei toeta”, pole teie telefonis Bluetooth 4.0 või uuem ja seda ei saa käivitada rakendus.

Veenduge, et teie telefonis on Bluetooth sisse lülitatud, ja klõpsake nuppu „Alusta skannimist”, kui esp on vahemikus ja sisse lülitatud, peaksite saama teatud temperatuuri väärtusi.

Võimalikud vead:

  • -1000:: See tähendab, et teie seade ei leidnud ESP -d. veenduge, et Bluetooth on sisse lülitatud, ja proovige ESP taaskäivitada.
  • SNA:: See tähendab, et teie telefon võtab ESP -lt andmeid vastu, kuid ESP ise ei leidnud GPIO 2 -st temperatuuriandurit. Veenduge, et ühendused oleksid turvalised, vaadake, kas kasutate õige väärtusega takistit. Kontrollige oma plaadiskeemidega, kas olete ühendatud GPIO 2 -ga ja mitte D2 -ga tähistatud tihvtiga.

2. samm: selgitus

BLE töötab tavaliselt nii, et seade reklaamib oma nime nagu majakat, seda nime näevad kõik ja seda kasutatakse seadme tuvastamiseks. Seejärel saab seade luua erinevaid teenuseid, mida teised näevad, kui nad sellega ühenduse loovad. Nendel teenustel võib olla erinevaid andmevooge.

Näiteks nt. Seadet nimega "Ilmajaam" saab selle all hooldada nagu "Temperatuur", "Niiskus" ja "Tuul". Kui mõni muu BLE -seade, näiteks teie nutitelefon, otsib seadmeid, näeks see ilmajaama ja sellega ühenduse loomisel saaks see vastu võtta erinevatele teenustele vastavaid andmevooge.

Praegu kättesaadavad teegid (ESP32 jaoks) võimaldavad meil luua majaka, mida teised saavad avastada, kuid see on selle ulatus. Me ei saa teenuseid luua ega ükski seade sellega ühenduse luua.

Nii et ma saadan andmeid teenuseid loomata, kasutades WiFi -protokolliga sarnast tehnikat nimega Beacon Stuffing. See tähendab, et lisan andmed, mis tuleb saata majaka nime enda sisse. See võimaldab mul andmeid reklaamida ilma, et peaksin teiste seadmetega majakaga ühenduse looma.

ble.begin (beaconMsg); // beaconMsg on reklaamitud nimi

Kasutame teeki SimpleBLE, et luua majakas selle nimega ESP -vormingus. Kui ESP jääb nime alguses alati muutumatuks ja asendatakse funktsiooniga getValue () iga 100 millisekundi tagastatud uusimate andmetega.

float getValue () {return sensorValue;}

Androidi rakendus otsib BLE -seadmete nimesid, mis algavad tähega „ESP”, kui see on leitud, jagab see nime pooleks ja kuvab andmed ainult lõpust.

Suhtlus on ainult üks viis, rakendus ei saada midagi tagasi.

3. samm: järeldus

Lõppkokkuvõttes ei asenda see meetod korralikult rakendatud BLE raamatukogu, kuid sellest võib piisata mõne projekti lõpetamiseks, kuni Arduino saab täieliku BLE toe. Loodetavasti oli sellest juhendist teile abi.

SUUR Aitäh DFRobot.com -le, et saatsite mulle need tooted:

  • ESP32 FireBeetle tahvel
  • FireBeetle'i laienduskilp
  • DS18B20 temperatuuriandur

Leidsin selle raamatukogu hiljuti. ReadME väidab, et saate andmete saamiseks ühenduse luua teiste BLE -seadmetega (ei saa ennast reklaamida). Ma pole seda proovinud, aga huvi korral saate järele vaadata.

Projekti videot saate vaadata aadressil: YouTube

Soovitan: