INHOUDSOPGAWE:
Video: Hoe om Bluetooth (BLE) te gebruik met ESP32: 3 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
##### NOTA #####
Die metode wat in hierdie instruksies getoon word, is oud en verouderd. Kyk na hierdie video vir die nuutste metode.
###############
Terwyl die ESP32 spog met 'n uitgebreide funksielys (Wikipedia), is die ingeboude Bluetooth v4.2 met BLE-ondersteuning die grootste kenmerk. Maar die stelling kan misleidend wees, terwyl die hardeware daar is, ontbreek die sagteware -ondersteuning vir die gebruik van Bluetooth. (Dit is in ontwikkeling)
Vir diegene wat nie weet wat BLE is nie, staan dit vir Bluetooth Low Energy. Dit is 'n Bluetooth -protokol wat 'n aansienlik laer kragverbruik verhoog in vergelyking met 'klassieke' Bluetooth.
In hierdie instruksies sal ek u wys hoe u die beperkte (sagteware) hulpbronne tot u beskikking kan gebruik om data vanaf 'n ESP32 -bord oor BLE na u telefoon te stuur.
'N Paar vrywarings …
'N Paar opmerkings wat ek moet noem voordat u verder gaan met hierdie gids.
Opmerking 1: As ek sê dat Bluetooth -ondersteuning nog nie beskikbaar is nie, bedoel ek in die arduino -ontwikkelingsomgewing.
Die ondersteuning is heel moontlik beskikbaar in die amptelike SDK sowel as in die IDF, maar ek het geen bekwame instruksies daarvoor gekry nie.
Opmerking 2: Die metode wat ek gebruik, is in werklikheid 'n oplossing, en nie hoe BLE die ideaal is om te werk nie. Die biblioteekondersteuning vir die skep van dienste in BLE is nie hier vir die arduino -omgewing nie.
Die enigste ding wat u betroubaar kan doen, is om 'n baken te skep wat sy naam adverteer. 'N Opmerking op YouTube stel dit baie elegant: "LOL, 'n wrede hack. Maar wat kan jy doen?"
Nota 3: Die enigste soort data wat u kan stuur, is string.
U kan heel moontlik besluit om ander soorte data van en na string te kodeer en te ontsyfer, maar dit is buite die omvang van hierdie gids.
Stap 1: Die voorbeeld bou
As u net hier is vir die verduideliking, kan u hierdie stap oorslaan, maar as u daardeur gaan, kan u 'n bietjie meer duidelikheid gee..
Eers gaan ek 'n voorbeeldprojek bou, en dan sal ek probeer verduidelik hoe dit werk en hoe u die Bluetooth -kommunikasie kan herhaal. Ons bou 'n draagbare temperatuursensor wat 'n lewendige voer na u slimfoon stuur. Die opbou kan dae lank op 'n enkele li-po werk en toon maklik die voordele van BLE aan.
U kan die module as 'n onderlegger gebruik om u drankies te isoleer en 'n kennisgewing te ontvang sodra u drank die optimale temperatuur bereik. Omdat dit 'n travestie sou wees as u 'n tee moes drink wat 'n graad bo 40 was.
Die enigste hardeware wat u benodig, is 'n ESP32 -bord en 'n digitale temperatuursensor. My bord ondersteun 'n eksterne battery, en ek gebruik 'n 3.7v li-po wat ek van 'n ou toestel gered het om hierdie projek draagbaar te maak.
Hardeware
Die verbindings vir die temperatuursensor is eenvoudig. Die rooi draad sluit aan op 3.3v, swart verbind met grond (gnd), geel verbind met GPIO 2 wat op my bord gemerk is as D9. Koppel 'n weerstand van 4.7k ohm tussen die rooi en geel draad. Ek gebruik nie die weerstand nie, maar ek gebruik 'n 3-polige aansluiting wat by my sensor kom. Dit het 'n ingeboude optrekweerstand.
Die li-po moet regtig met 'n JST-aansluiting gekoppel word, maar ek kon nie die moeite doen om een te koop nie, en ek het net 'n paar (vroulike tot vroulike) springkabels in die aansluiting vasgemaak en nog 'n paar aan die batteryklemme gesoldeer. Dit sorg vir 'n betroubare verbinding en 'n tydelike skakelaar.
As 'n projekomhulsel gebruik ek 'n piepschuimskyf wat uit 'n groter vel gesny is. Dit sorg vir 'n uitstekende isolator. Nog 'n baie kleiner skyf sit bo -op vas, maar 'n bietjie aan die kant. Dit is bedoel om die ekstra lengte drade te draai sodat hulle nie oral hang nie. Na 'n ruim gebruik van u gom en 'n klein gaatjie vir die sensorsonde, is u gereed om na die sagteware te gaan.
Sagteware
As u nog nie die arduino IDE geïnstalleer het nie, gaan dan na hierdie skakel om dit af te laai. Die arduino -sagteware bevat standaard nie die borddefinisies vir die verskillende ESP32 -borde nie. Om hulle te laat gaan, laai hierdie skakel af en laai die lêers in 'n zip af. U moet dit na die volgende plek uitpak:
C:/Gebruikers // Dokumente/Arduino/hardware/espserrif/ESP32
Waar is u gebruikersnaam op u rekenaar. Maak seker dat die verskillende lêers onder die ESP32 -lêergids beskikbaar is en nie onder 'n ander gids nie.
As u nou die arduino-sagteware begin en na gereedskap-> borde gaan, moet u verskillende ESP32-borde sien as u afrol.
Die meeste digitale temperatuursensors gebruik die OneWire -protokol om met die mikrobeheerders te kommunikeer, sodat ons die biblioteek moet kry. Gaan na skets-> sluit biblioteek in-> bestuur biblioteke en soek na onewire en installeer die biblioteek wat te veel skrywers het. U het nie die onewire -hub nodig nie. Ignoreer dit.
Nou kan u die kode wat aan hierdie stap geheg is, aflaai en oopmaak (temperatuur-voorbeeld.ino).
As u 'n ander sensor as ek gebruik, moet u die kode dienooreenkomstig verander. Vervang die kode onder getTemp (). Gee net die finale temperatuur terug in die vorm van
Terugkeer;
Waar is die vlotter wat die temperatuur bevat?
Sluit die bord aan, kies die korrekte bord en poort onder die gereedskap en druk oplaai.
As die kode weier om op te laai, ontkoppel die sensor en koppel die GPIO 0 aan op die grond. Herstel die verbindings na die oplaai.
U ESP moet nou die temperatuur van u koffie na die wêreld skree, maar u het iemand nodig wat dit kan verstaan.
Die Android -app
Jammer iPhone -gebruikers (… nie regtig nie).
Laai die APK hier af en installeer dit. As u die app begin, word u begroet met 'n baie eenvoudige koppelvlak.
As u 'n foutboodskap kry wat sê 'advertensies word nie ondersteun nie', klik dan op OK en ignoreer dit, maar as u 'n boodskap kry dat 'BLE nie ondersteun word' nie, het u telefoon nie Bluetooth 4.0 of hoër nie en kan dit nie werk nie die app.
Maak seker dat Bluetooth op u telefoon aan is en klik op 'Begin skandering', solank die ESP binne bereik is en aangeskakel is, moet u 'n temperatuurwaarde kry.
Moontlike foute:
- -1000:: Dit beteken dat u toestel nie die ESP kon vind nie. maak seker dat Bluetooth aan is en probeer om die ESP weer te begin.
- SNA:: Dit beteken dat u telefoon data van die ESP ontvang, maar die ESP self kon nie 'n temperatuursensor op die GPIO vind nie 2. Maak seker dat die verbindings veilig is, kyk of u 'n weerstand van die korrekte waarde gebruik. Kontroleer met u bordskemas of u aan die GPIO 2 gekoppel is en nie 'n speld gemerk as D2 nie.
Stap 2: Die verduideliking
Hoe BLE normaalweg werk, is dat 'n toestel sy naam soos 'n baken adverteer; hierdie naam kan deur almal gesien word en word gebruik om die toestel te identifiseer. Dan kan die toestel verskillende dienste skep wat deur ander mense gesien word wanneer hulle daarby aansluit. Hierdie dienste kan verskillende datastrome hê.
Vir bv. 'N Toestel met die naam' Weerstasie 'kan daaronder gedien word soos' temperatuur ',' humiditeit 'en' wind '. As 'n ander BLE -toestel soos u slimfoon na toestelle soek, sien dit die weerstasie, en as dit daarby aansluit, kan dit die datastrome ontvang wat ooreenstem met die verskillende dienste.
Met die biblioteke (vir die ESP32) wat ons tans beskikbaar het, kan ons 'n baken skep wat ander kan ontdek, maar dit is die omvang daarvan. Ons kan nie dienste skep nie, en geen toestel kan daarmee aansluit nie.
Dus, hoe ek data stuur sonder om dienste te skep, is deur 'n tegniek te gebruik wat soortgelyk is aan die WiFi -protokol genaamd Beacon Stuffing. Dit beteken dat ek data insluit wat binne die bakennaam self gestuur moet word. Dit stel my in staat om data te adverteer sonder dat ander toestelle aan die baken moet koppel.
ble.begin (bakenMsg); // beaconMsg is die geadverteerde naam
Ons gebruik die SimpleBLE -biblioteek om 'n baken met sy naam in die formaat van ESP te skep. Waar 'ESP' altyd onveranderd bly aan die begin van die naam en word vervang met die nuutste data wat deur die getValue () -funksie elke 100 millisekondes teruggestuur word.
float getValue () {return sensorValue;}
Die Android -app soek na BLE -toestelname wat begin met 'ESP', sodra dit gevind is, verdeel dit die naam en word slegs die data van die einde af vertoon.
Die kommunikasie is slegs een manier; die app stuur niks terug nie.
Stap 3: Gevolgtrekking
Aan die einde van die dag kan hierdie metode nie 'n plaasvervanger vir 'n behoorlik geïmplementeerde BLE -biblioteek wees nie, maar dit kan genoeg wees om 'n paar projekte af te lê totdat die volledige BLE -ondersteuning na Arduino kom. Hopelik was hierdie instruksies vir u van hulp.
'N GROOT dankie aan DFRobot.com dat u hierdie produkte vir my gestuur het:
- ESP32 FireBeetle Board
- FireBeetle Expantion Shield
- DS18B20 Temperatuursensor
Ek het onlangs hierdie biblioteek gevind. Die ReadME beweer dat u met ander BLE -toestelle kan skakel om data te ontvang (kan nie self adverteer nie). Ek het dit nie probeer nie, maar as u belangstel, kan u dit besoek.
U kan die projekvideo kyk op: YouTube
Aanbeveel:
ESP32 Bluetooth -tutoriaal - Hoe om ingeboude Bluetooth van ESP32 te gebruik: 5 stappe
ESP32 Bluetooth -tutoriaal | Hoe om ingeboude Bluetooth van ESP32 te gebruik: Hallo ouens, aangesien die ESP32 -bord met WiFi & Bluetooth beide, maar vir ons meestal projekte gebruik ons gewoonlik slegs Wifi, ons gebruik nie Bluetooth nie. So in hierdie instruksies sal ek wys hoe maklik dit is om Bluetooth van ESP32 te gebruik & Vir u basiese projekte
Hoe om Wemos ESP-Wroom-02 D1 Mini WiFi-module ESP8266 + 18650 te gebruik deur Blynk te gebruik: 10 stappe
Hoe om Wemos ESP-Wroom-02 D1 Mini WiFi-module ESP8266 + 18650 te gebruik deur Blynk te gebruik: Spesifikasie: Versoenbaar met nodemcu 18650 laaistelselintegrasie aansluiting kan gebruik word vir slaapmodus · 1 voeg by
Hoe om Mac Terminal te gebruik en hoe om sleutelfunksies te gebruik: 4 stappe
Hoe om Mac Terminal te gebruik en hoe om belangrike funksies te gebruik: Ons sal u wys hoe u die MAC Terminal kan oopmaak. Ons sal u ook 'n paar funksies in die Terminal wys, soos ifconfig, veranderende gidse, toegang tot lêers en arp. Met Ifconfig kan u u IP -adres en u MAC -advertensie nagaan
Hoe om Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -versoenbare bord te gebruik deur Blynk te gebruik: 10 stappe
Hoe om Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -versoenbare bord te gebruik deur Blynk te gebruik: Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -versoenbare bord Beskrywing: WiFi ESP8266 Development Board WEMOS D1. WEMOS D1 is 'n WIFI -ontwikkelingsbord gebaseer op ESP8266 12E. Die funksionering is soortgelyk aan dié van NODEMCU, behalwe dat die hardeware gebou is
Hoe om ESP32 te gebruik om LED met Blynk via WiFi te beheer: 7 stappe (met foto's)
Hoe om ESP32 te gebruik om LED met Blynk via WiFi te beheer: Hierdie tutoriaal gaan die ESP32 -ontwikkelingsbord gebruik om LED met Blynk via WiFi te beheer. Blynk is 'n platform met iOS- en Android -programme om Arduino, Raspberry Pi en meer oor die internet te beheer. Dit is 'n digitale paneelbord waar u 'n