Мазмуну:

ESP32 менен Bluetooth (BLE) кантип колдонсо болот: 3 кадам
ESP32 менен Bluetooth (BLE) кантип колдонсо болот: 3 кадам

Video: ESP32 менен Bluetooth (BLE) кантип колдонсо болот: 3 кадам

Video: ESP32 менен Bluetooth (BLE) кантип колдонсо болот: 3 кадам
Video: ESP32 Tutorial 4 - Data types Define Variable Int, bool, char, Serial Monitor-ESP32 IoT Learnig kit 2024, Ноябрь
Anonim

#####ЭСКЕРТҮҮ#####

Бул Нускамада көрсөтүлгөн ыкма эски жана эскирген. Акыркы ыкманы көрүү үчүн бул видеону көрүңүз.

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

ESP32 кеңири мүмкүнчүлүктөр тизмесине (Wikipedia) ээ болсо да, көздү бурган эң чоң өзгөчөлүк BLE колдоосу менен камтылган bluetooth v4.2. Бирок бул билдирүү адаштыруучу болушу мүмкүн, ал эми аппараттык жабдыктар бар, Bluetoothду колдонуу үчүн программалык колдоо жок. (Бул иштелип жатат)

BLE деген эмне экенин билбегендер үчүн Bluetooth Low Energy дегенди билдирет. Бул Bluetooth протоколу, "Классикалык" Bluetoothга салыштырмалуу электр энергиясын керектөөнү кыйла жогорулатат.

Бул Нускамада мен сизге ESP32 тактасынан телефонуңузга BLE аркылуу маалыматтарды жөнөтүү үчүн колуңуздагы чектелген (программалык) ресурстарды кантип колдонсо болорун көрсөтөм.

Бир нече баш тартуу…

Бул колдонмону улантуудан мурун мен белгилей кетчү бир нече нерселер бар.

Эскертүү 1: Мен Bluetooth колдоосу азырынча жок экенин айтсам, arduino өнүктүрүү чөйрөсүндө.

Колдоо расмий SDKда жана IDFте абдан жакшы болушу мүмкүн, бирок мен алар үчүн компетенттүү көрсөтмөлөрдү тапкан жокмун.

Эскертүү 2: Мен колдонгон ыкма BLE идеалдуу иштеши керек эмес, өтө эле убактылуу чечим. Китепкана BLEде кызматтарды түзүүнү колдойт, бул жерде arduino чөйрөсү үчүн эмес.

Ишенимдүү кыла турган жалгыз нерсе - анын атын жарнак кылган маяк. YouTube комментарийи абдан жарашыктуу кылып койду: "LOL, ырайымсыз хакерлик. Бирок, сен эмне кыла аласың?"

Эскертүү 3: Сиз жөнөтө турган маалыматтын бир гана түрү - бул сап.

Сиз башка түрлөрдү коддон жана коддон чечүүнү чечсеңиз болот, бирок бул бул колдонмонун алкагына кирбейт.

1 -кадам: Мисал түзүү

Image
Image
Мисал куруу
Мисал куруу
Мисал куруу
Мисал куруу
Мисал куруу
Мисал куруу

Эгерде сиз түшүндүрүү үчүн бул жерде болсоңуз, анда сиз бул кадамды өткөрүп жибере аласыз, бирок ал аркылуу өтүү сизге бир аз түшүнүктүүрөөк болушу мүмкүн.

Биринчиден, мен үлгү долбоорун түзөйүн деп жатам, андан кийин анын кантип иштээрин жана Bluetooth байланышын кантип кайталоо керектигин түшүндүрүүгө аракет кылам. Биз смартфонуңузга жандуу жөнөтүүчү температура сенсорун түзөбүз. Курулуш бир нече күн бою иштей алат жана BLEдин артыкчылыктарын оңой көрсөтөт.

Сиз суусундукту оптималдуу температурага жеткенде эле суусундуктарыңызды изоляциялоо жана билдирме алуу үчүн модуль катары колдоно аласыз. Анткени 40тан жогору даражадагы чайды ичүү керек болсо, бул уят иш болмок.

Сизге керек болгон жалгыз жабдык - бул ESP32 платасы жана санарип температура сенсору. Менин тактайым тышкы батареяны колдойт, ошондуктан мен бул долбоорду портативдүү кылуу үчүн кээ бир эски түзмөктөн сактап калган 3.7v ли-пону колдонуп жатам.

Аппараттык

Температура сенсорунун туташуулары жөнөкөй. Кызыл зым 3.3v, кара жерге (gnd), сары менин GP9 D9 деп белгиленген GPIO 2ге туташат. Кызыл жана сары зымдардын ортосунда 4.7k ohm резисторун туташтырыңыз. Мен резисторду колдонбойм, тескерисинче, сенсорум менен келген 3 пин сайгычтуу терминалды колдонуп жатам. Бул орнотулган тартма каршылыгы бар.

Li-po чындыгында JST туташтыргычы аркылуу туташышы керек, бирок мен аны сатып ала албай убара боло алган жокмун, андыктан коннекторго кээ бир (аялдан аялга) секирүүчү кабелдерди байладым жана батарейканын терминалдарына дагы бир жупту коштоштурдум. Бул ишенимдүү байланышты жана убактылуу электр которууну түзөт.

Азыр долбоордун корпусу катары, мен чоңураак барактан кесилген Styrofoam дискин колдонуп жатам. Бул улуу изоляторду түзөт. Дагы бир кичинекей диск үстүндө, бирок бир аз капталында тыгылып турат. Бул зымдардын кошумча узундугун ороо үчүн, алар бардык жерде асылып кетпейт. Желимиңизди берешендик менен иштеткенден кийин жана сенсор зонду үчүн кичинекей тешиктен кийин, сиз программалык камсыздоого өтүүгө даярсыз.

Программалык камсыздоо

Эгерде сизде arduino IDE орнотула элек болсо, аны жүктөө үчүн бул шилтемеге өтүңүз. Arduino программалык камсыздоосу ар кандай ESP32 такталары үчүн такталар менен келбейт. Бул шилтемеге кирип, файлдарды zipке жүктөп алуу үчүн. Аларды бул жерге ачышыңыз керек:

C:/Колдонуучулар // Документтер/Arduino/аппараттык/espserrif/ESP32

Сиздин компьютериңизде колдонуучунун аты кайда. Ар кандай файлдар ESP32 папкасында бар экенин жана башка папкада жок экенин текшериңиз.

Эми эгер сиз arduino программасын баштасаңыз жана tools-> такталарына өтсөңүз, ылдый жылганда ар кандай ESP32 такталарын көрүшүңүз керек.

Көпчүлүк санарип температура сенсорлору OneWire протоколун микро контроллерлер менен байланышуу үчүн колдонушат, андыктан китепкананы алышыбыз керек. Эскизге өтүңүз-> китепкана-> китепканаларды башкарыңыз жана onewire издеңиз жана өтө көп авторлор бар китепкананы орнотуңуз. Сизге onewire hubтын кереги жок. Аны этибарга албаңыз.

Эми сиз бул кадамга тиркелген кодду жүктөп жана ача аласыз (temperatur-example.ino).

Эгерде сиз менден башка сенсорду колдонуп жатсаңыз, анда кодду ошого жараша өзгөртүүгө туура келет. GetTemp () астындагы кодду алмаштырыңыз. Жөн гана акыркы температураны түрүндө кайтарыңыз

Return;

Температураны камтыган сүзгүч кайда.

Тактага сайыңыз, шаймандардын астынан туура такта менен портту тандап, жүктөө баскычын басыңыз.

Эгерде код жүктөөдөн баш тартса, сенсорду ажыратып, GPIO 0ду жерге туташтырыңыз. Жүктөөлөрдөн кийин байланыштарды калыбына келтирүү.

Сиздин ESP азыр кофенин температурасын дүйнөгө кыйкырышы керек, бирок аны түшүнө турган адам керек.

Android колдонмосу

Кечиресиз iPhone колдонуучулары (… чынында эмес).

Бул жерден apkти жүктөп алып, орнотуңуз. Колдонмону баштаганда сизди абдан жөнөкөй интерфейс күтөт.

Эгерде сиз "жарнама колдоого алынбайт" деп ката билдирүүсүн алсаңыз, "ОК" баскычын чыкылдатып, аны этибарга албаңыз, бирок "BLE колдоого алынбайт" деген билдирүү келсе, телефонуңузда Bluetooth 4.0 же андан жогору версиясы жок жана иштей албайт. колдонмо.

Телефонуңуздагы Bluetooth күйгүзүлгөнүн текшериңиз жана "Сканерлөөнү баштоо" баскычын чыкылдатыңыз, эгер esp диапазондо жана күйгүзүлгөн болсо, сиз кандайдыр бир температуранын маанисин алышыңыз керек.

Мүмкүн болгон каталар:

  • -1000:: Бул сиздин түзмөк ESPти таба алган жок дегенди билдирет. Bluetooth күйгүзүлгөнүн текшериңиз жана ESPти кайра баштоого аракет кылыңыз.
  • SNA:: Бул сиздин телефонуңуз ESPтен маалыматтарды алып жатканын билдирет, бирок ESP өзү GPIO 2деги температура сенсорун таба алган жок. Байланыштар коопсуз экенин текшериңиз, туура мааниге ээ резисторду колдонуп жатканыңызды текшериңиз. Тактаңыздын схемасы менен GPIO 2ге туташып турганыңызды текшериңиз, D2 катары белгиленген пин эмес.

2 -кадам: Түшүндүрмө

Адатта BLE кандайча иштейт, бул түзмөк өзүнүн атын маяк сыяктуу жарнамалайт, бул ысымды ар ким көрө алат жана түзмөктү аныктоо үчүн колдонулат. Андан кийин, түзмөк башкалар ага туташканда көргөн башка кызматтарды түзө алат. Бул кызматтар ар кандай маалымат агымына ээ болушу мүмкүн.

Мисалы. "Аба ырайы бекети" аттуу түзмөк анын астында "Температура", "Нымдуулук" жана "Шамал" сыяктуу тейлене алат. Сиздин смартфонуңуз сыяктуу башка BLE түзмөгү түзмөктөрдү издегенде, ал Аба ырайы станциясын көрөт жана ага туташканда, ал ар кандай кызматтарга туура келген маалымат агымдарын ала алат.

Учурда биз үчүн жеткиликтүү болгон китепканалар (ESP32 үчүн) башкалар ачып бере турган маякты түзүүгө мүмкүндүк берет, бирок анын деңгээли ушундай. Биз кызматтарды түзө албайбыз жана ага эч бир түзмөк туташа албайт.

Ошентип, мен кызматтарды түзбөстөн маалыматтарды кантип жөнөтүп жатам, Beacon Stuffing деп аталган WiFi протоколуна окшош техниканы колдонуу. Бул мен маяктын атына жөнөтүлө турган маалыматтарды кошуп жатам дегенди билдирет. Бул мага башка түзмөктөрдүн маякка туташуусун талап кылбастан маалыматтарды жарнамалоого мүмкүндүк берет.

ble.begin (beaconMsg); // beaconMsg - жарнакталган ат

Биз SimpleBLE китепканасын ESP форматында өзүнүн маягы менен маяк түзүү үчүн колдонуп жатабыз. Бул жерде "ESP" дайыма аталыштын башында өзгөрүүсүз калат жана getValue () функциясы тарабынан ар бир 100 миллисекундта кайтарылган акыркы маалыматтар менен алмаштырылат.

float getValue () {return sensorValue;}

Android колдонмосу "ESP" менен башталган BLE түзмөктөрүнүн аттарын издейт, бир жолу табылганда, ал аталышты бөлүп, маалыматты аягынан баштап гана көрсөтөт.

Байланыш бир гана жол, колдонмо артка эч нерсе жөнөтпөйт.

3 -кадам: Жыйынтык

Күндүн акырында, бул ыкма туура ишке ашырылган BLE китепканасын алмаштыра албайт, бирок BLE колдоосу Arduinoго толук келгиче кээ бир долбоорлорду карап чыгуу жетиштүү болушу мүмкүн. Бул Instructables сизге кандайдыр бир жардам берди деп үмүттөнөбүз.

Мага чоң продуктыларды жөнөткөнү үчүн DFRobot.com:

  • ESP32 FireBeetle тактасы
  • FireBeetle Expantion Shield
  • DS18B20 температура сенсору

Мен жакында бул китепкананы таптым. ReadME маалымат алуу үчүн башка BLE түзмөктөрүнө туташа аласыз деп ырастайт (өзүңүздү жарнамалай албайсыз). Мен муну сынап көргөн жокмун, бирок эгер кызыктырса, текшерип көрсөң болот.

Долбоордун видеосун төмөнкү сайттан текшере аласыз: YouTube

Сунушталууда: