Агуулгын хүснэгт:

Bluetooth (BLE) -ийг ESP32 ашиглан хэрхэн ашиглах вэ: 3 алхам
Bluetooth (BLE) -ийг ESP32 ашиглан хэрхэн ашиглах вэ: 3 алхам

Видео: Bluetooth (BLE) -ийг ESP32 ашиглан хэрхэн ашиглах вэ: 3 алхам

Видео: Bluetooth (BLE) -ийг ESP32 ашиглан хэрхэн ашиглах вэ: 3 алхам
Видео: How I Made this Electric Car that can go Anywhere 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: Таны илгээж болох цорын ганц өгөгдөл бол string юм.

Та бусад төрлийн өгөгдлийг код руу оруулах, тайлах талаар маш сайн шийдэж магадгүй, гэхдээ энэ нь энэ гарын авлагын хамрах хүрээнээс гадуур юм.

Алхам 1: Жишээ бүтээх

Image
Image
Жишээ бүтээх
Жишээ бүтээх
Жишээ бүтээх
Жишээ бүтээх
Жишээ бүтээх
Жишээ бүтээх

Хэрэв та зүгээр л тайлбар авах гэж байгаа бол энэ алхамыг алгасаж болно, гэхдээ үүнийг даван туулах нь танд илүү тодорхой болгож магадгүй юм.

Эхлээд би жишээ төсөл хийх гэж байна, дараа нь энэ нь хэрхэн ажилладаг, Bluetooth холболтыг хэрхэн хуулбарлах талаар тайлбарлахыг хичээх болно. Бид таны ухаалаг гар утсанд шууд тэжээл илгээдэг зөөврийн температур мэдрэгчийг бүтээх болно. Бүтээл нь ганц ли-по дээр хэдэн өдөр ажиллах боломжтой бөгөөд BLE-ийн давуу талыг хялбархан харуулдаг.

Та модулийг хулгана болгон ашиглаж ундаагаа дулаалж, ундаа хамгийн оновчтой температурт хүрмэгц мэдэгдэл авах боломжтой. Учир нь хэрэв та 40 -өөс дээш градусын цай уух юм бол энэ нь заль мэх болно.

Танд хэрэгтэй цорын ганц тоног төхөөрөмж бол ESP32 самбар ба дижитал температур мэдрэгч юм. Миний самбар гадаад батерейг дэмждэг тул би энэ төслийг зөөврийн болгохын тулд хуучин төхөөрөмжөөс авсан 3.7v ли-по ашиглаж байна.

Техник хангамж

Температур мэдрэгчийн холболт нь энгийн. Улаан утас нь 3.3v, хар нь газарт (gnd), шар нь GPIO 2 -тэй холбогддог бөгөөд энэ нь миний самбар дээр D9 гэж тэмдэглэгдсэн байдаг. Улаан ба шар өнгийн утасны хооронд 4.7 к ом эсэргүүцэл холбоно. Би резистор ашигладаггүй, харин мэдрэгчтэйгээ хамт ирдэг 3 зүү залгууртай терминал ашигладаг. Энэ нь суурилуулсан татах эсэргүүцэлтэй.

Li-po нь үнэхээр JST холбогч ашиглан холбогдсон байх ёстой, гэхдээ би үүнийг худалдаж авахад санаа зовж чадахгүй байсан тул би зарим (эмэгтэй, эмэгтэй) холбогч кабелийг холбож, өөр хосыг батерейны терминал руу гагнав. Энэ нь найдвартай холболт, түр зуурын цахилгаан унтраалгыг бий болгодог.

Одоо би төслийн хаалтын хувьд том хуудаснаас хайчилж авсан Styrofoam диск ашиглаж байна. Энэ нь маш сайн тусгаарлагч болно. Өөр нэг жижиг диск нь дээр нь наасан, гэхдээ хажуу талдаа. Энэ нь нэмэлт урттай утсыг бооход зориулагдсан тул хаа сайгүй дүүжлэхгүй байна. Цавуугаа өгөөмрөөр ажиллуулж, мэдрэгчийн датчикийн жижиг нүхийг авсны дараа та програм хангамжийг үргэлжлүүлэхэд бэлэн байна.

Програм хангамж

Хэрэв танд arduino IDE суулгаагүй байгаа бол энэ линкээр орж татаж аваарай. Arduino програм хангамж нь янз бүрийн ESP32 самбаруудын самбарын тодорхойлолттой байдаггүй. Тэднийг энэ линкээр орж файлуудыг зип хэлбэрээр татаж авахыг хүсч байна. Та тэдгээрийг энэ байршилд задлах хэрэгтэй:

C:/Хэрэглэгчид // Баримт бичиг/Arduino/техник хангамж/espserrif/ESP32

Таны компьютер дээр хэрэглэгчийн нэр хаана байна. Янз бүрийн файлууд ESP32 хавтсанд байгаа бөгөөд өөр хавтсанд байхгүй эсэхийг шалгаарай.

Хэрэв та arduino програм хангамжийг эхлүүлээд tool-> самбар руу очвол доош гүйлгэх үед янз бүрийн ESP32 самбарыг харах ёстой.

Ихэнх дижитал температур мэдрэгч нь OneWire протоколыг ашиглан микро хянагчтай харилцдаг тул номын сантай болох шаардлагатай байна. Ноорог-> номын сан оруулах> номын санг удирдах, onewire-ийг хайж олох, хэт олон зохиогчтой номын санг суулгах. Onewire hub танд хэрэггүй. Үүнийг үл тоомсорлоорой.

Одоо та энэ алхамд хавсаргасан кодыг татаж аваад нээж болно (temperatur-example.ino).

Хэрэв та надаас өөр мэдрэгч ашиглаж байгаа бол кодоо зохих ёсоор өөрчлөх шаардлагатай болно. GetTemp () дээрх кодыг солино уу. Зүгээр л хэлбэрээр эцсийн температурыг буцаана

Буцах;

Температурыг агуулсан хөвөгч хаана байна.

Самбарыг залгаарай, багажны доороос зөв самбар, портыг сонгоод байршуулах дээр дарна уу.

Хэрэв код байршуулахаас татгалзвал мэдрэгчийг салгаад GPIO 0 -ийг газардуу холбоно уу. Байршуулсны дараа холболтыг сэргээнэ үү.

Таны ESP одоо кофены температурыг дэлхий даяар хашгирах ёстой, гэхдээ үүнийг ойлгох чадвартай хүн хэрэгтэй байна.

Андройд апп

Уучлаарай iPhone хэрэглэгчид (… тийм биш).

Эндээс apk татаж аваад суулгаарай. Та програмыг эхлүүлэхэд таныг маш энгийн интерфэйсээр угтах болно.

Хэрэв танд 'зар сурталчилгаа дэмжигдээгүй' гэсэн алдааны мессеж ирсэн бол ОК дарж, үүнийг үл тоомсорлоорой, гэхдээ хэрэв танд 'BLE дэмжигдээгүй' гэсэн мессеж ирсэн бол таны утас Bluetooth 4.0 ба түүнээс дээш хувилбаргүй бөгөөд ажиллах боломжгүй болно. апп.

Утасныхаа Bluetooth асаалттай байгаа эсэхийг шалгаад "Скан хийж эхлэх" дээр дарна уу, хэрэв esp нь асаалттай байгаа бөгөөд асаалттай байгаа бол температурын тодорхой утгыг хүлээн авах ёстой.

Боломжит алдаа:

  • -1000:: Энэ нь таны төхөөрөмж ESP -ийг олж чадаагүй гэсэн үг юм. Bluetooth асаалттай байгаа эсэхийг шалгаад ESP -ийг дахин эхлүүлнэ үү.
  • SNA:: Энэ нь таны утас ESP -ээс өгөгдөл хүлээн авч байгаа боловч ESP өөрөө GPIO 2 дээр температур мэдрэгч олж чадаагүй гэсэн үг юм. Холболтууд найдвартай байгаа эсэхийг шалгаарай, хэрэв та зөв утгатай резистор ашиглаж байгаа эсэхийг шалгаарай. Та D2 гэж тэмдэглэгдсэн зүү биш харин GPIO 2 -тэй холбогдсон эсэхээ самбарынхаа схемээр дахин шалгаарай.

Алхам 2: Тайлбар

BLE ердийн байдлаар хэрхэн ажилладаг вэ гэхээр төхөөрөмж нь өөрийн нэрийг гэрэлт цамхаг шиг сурталчилдаг бөгөөд энэ нэрийг хэн ч харах боломжтой бөгөөд төхөөрөмжийг танихад ашигладаг. Дараа нь төхөөрөмж нь холбогдох үед бусад хүмүүс хардаг янз бүрийн үйлчилгээг бий болгож чадна. Эдгээр үйлчилгээ нь өөр өөр мэдээллийн урсгалтай байж болно.

Жишээлбэл. "Цаг уурын станц" нэртэй төхөөрөмж нь "Температур", "Чийгшил", "Салхи" гэх мэт үйлчилгээнд хамрагдах боломжтой. Таны ухаалаг гар утас гэх мэт өөр BLE төхөөрөмж төхөөрөмж хайхад цаг уурын станц харагдах бөгөөд түүнтэй холбогдоход янз бүрийн үйлчилгээнд харгалзах мэдээллийн урсгалыг хүлээн авах боломжтой болно.

Одоогоор бидэнд байгаа номын сан (ESP32 -ийн хувьд) нь бусад хүмүүст нээж болох гэрэлт цамхаг үүсгэх боломжийг олгодог боловч энэ нь ийм хэмжээнд байна. Бид үйлчилгээ үүсгэж чадахгүй, ямар ч төхөөрөмж түүнтэй холбогдож чадахгүй.

Тиймээс би үйлчилгээ үзүүлэхгүйгээр өгөгдлийг хэрхэн илгээж байна вэ гэвэл Beacon Stuffing гэж нэрлэгддэг WiFi протоколтой төстэй техникийг ашиглах явдал юм. Энэ нь би дохионы нэр дотор илгээх өгөгдлийг оруулж байна гэсэн үг юм. Энэ нь бусад төхөөрөмжүүдийг гэрэлт цамхаг руу холбох шаардлагагүйгээр өгөгдөл сурталчлах боломжийг надад олгодог.

ble.begin (beaconMsg); // beaconMsg бол зарлагдсан нэр юм

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

float getValue () {return sensorValue;}

Андройд аппликейшн нь 'ESP' -ээс эхлэн BLE төхөөрөмжийн нэрийг хайж олдог бөгөөд нэрийг нь хувааж өгөгдлийг зөвхөн төгсгөлөөс нь харуулдаг.

Харилцаа холбоо нь зөвхөн нэг арга зам бөгөөд апп нь юу ч буцааж илгээдэггүй.

Алхам 3: Дүгнэлт

Эцсийн эцэст энэ арга нь зөв хэрэгжүүлсэн BLE номын санг орлох зүйл биш боловч Arduino -д BLE -ийн бүрэн дэмжлэг ирэх хүртэл зарим төслүүдийг шийдвэрлэхэд хангалттай байх болно. Энэхүү заавар нь танд тусалсан гэж найдаж байна.

Эдгээр бүтээгдэхүүнийг надад илгээсэн DFRobot.com -т маш их баярлалаа.

  • ESP32 FireBeetle самбар
  • FireBeetle Expandion Shield
  • DS18B20 температур мэдрэгч

Би саяхан энэ номын санг олсон. ReadME нь өгөгдөл хүлээн авахын тулд бусад BLE төхөөрөмжүүдтэй холбогдож болно гэж мэдэгдэж байна (өөрийгөө сурталчлах боломжгүй). Би үүнийг туршиж үзээгүй боловч хэрэв та сонирхож байвал шалгаж болно.

Та төслийн видеог үзэх боломжтой: YouTube

Зөвлөмж болгож буй: