Paano I-set up at Programa ang ESP32 para Makipag-ugnayan sa isang Android Smartphone sa pamamagitan ng Bluetooth

Paano I Set Up At Programa Ang Esp32 Para Makipag Ugnayan Sa Isang Android Smartphone Sa Pamamagitan Ng Bluetooth



Ang ESP32 ay isang microcontroller board na may malawak na hanay ng mga kakayahan. Mayroon itong built-in na Wi-Fi at Bluetooth modules. Gamit ang parehong mga module na ito, maaari mong i-program ang ESP32 nang wireless. Sa pamamagitan nito, hindi mo kailangang mag-alala tungkol sa mga long-wire na koneksyon para sa pagkontrol sa mga peripheral ng ESP32.

Sa artikulong ito, ikokonekta namin ang isang ESP32 board sa isang Android phone at makipag-ugnayan ng data sa Bluetooth. Dagdag pa, kokontrolin namin ang isang LED na konektado sa mga GPIO pin ng ESP32 nang direkta sa pamamagitan ng Android smartphone.

Nilalaman:







Ano ang ESP32 Bluetooth LE

Ang ESP32 ay isang microcontroller board na sumusuporta sa Bluetooth Classic at Bluetooth Low energy na kilala rin bilang smart Bluetooth. Ang BLE o smart Bluetooth ay partikular para sa enerhiya-efficient na komunikasyon o dinisenyo para sa short-range na komunikasyon o maliliit na paglilipat ng data.



Ang BLE functionality ng ESP32 ay nagbibigay-daan dito na kumilos bilang isang server o isang kliyente sa mga komunikasyong Bluetooth. Kakayanin nito ang mga gawain tulad ng mga serbisyo sa pagbabasa at pagsusulat. Maaari din itong mag-encrypt ng mga koneksyon at magtatag ng mga koneksyon sa Serial Port Profile (SPP) para sa paghahatid ng data sa UART-BLE pass-through mode. Sinusuportahan ng ESP32 Bluetooth ang 4.2 na mga protocol, na nangangahulugang ito ay katugma sa iba't ibang mga layer tulad ng Physical Layer (PHY) at Link Layer (LL). Mayroon din itong suporta para sa Host Controller Interface (HCI), bukod sa iba pa.



Suriin ang talahanayan ng pagkakaiba para sa ESP32 Classic at BLE Bluetooth.





Tampok Klasikong Bluetooth Mababang Enerhiya na Bluetooth (BLE)
Uri ng Komunikasyon Sustained, two-way na komunikasyon Pasulput-sulpot, pangunahin ang one-way na pagsabog ng data
Saklaw ng Operasyon Maaaring umabot ng hanggang 100 metro Karaniwang nagpapatakbo sa ilalim ng 100 metro
Paggamit ng Power Kumokonsumo ng hanggang 1 Watt Mula sa 10 milliwatts hanggang 500 milliwatts
Bilis ng Paglipat Ang mga rate ng paglilipat ng data ay nag-iiba mula 1 hanggang 3 Megabits bawat segundo Sinusuportahan ang 125 Kilobits bawat segundo hanggang 2 Megabits bawat segundo
Oras ng pagtugon Latency sa paligid ng 100 milliseconds Mabilis na tugon na may 6 na millisecond na latency
Suporta sa Boses Nilagyan ng voice transmission Walang paggana ng voice transmission

Tingnan ang mga artikulong ito ng ESP32 Bluetooth upang makakuha ng higit pa tungkol dito.

Paano Mag-program ng ESP32 Upang Makipagkomunika sa Bluetooth gamit ang Android Smartphone

Upang i-program ang ESP32 upang maaari itong makipag-ugnayan sa isang Android phone gamit ang Bluetooth protocol, kailangan mong i-set up ang ESP32 Bluetooth serial library. Para diyan, dapat ay mayroon kang Arduino IDE setup na may naka-install na ESP32 board.



Pagkatapos itakda ang ESP32 Bluetooth, kailangan mong i-install ang Bluetooth serial Android application. Hahayaan ka nitong magpadala ng mga tagubilin mula sa isang Android phone sa ESP32 gamit ang Bluetooth Serial na komunikasyon.

Tingnan natin ang bawat isa sa mga hakbang na ito:

Mga Hakbang para sa Pagkonekta ng ESP32 Bluetooth sa Android Phone

Upang i-program ang ESP32 board para sa Bluetooth na komunikasyon, sundin ang mga ibinigay na hakbang na ito:

Hakbang 1: Pag-install ng ESP32 Board sa Arduino IDE

Upang i-install ang ESP32 sa Arduino IDE, sundin lamang ang gabay na ibinigay sa artikulong ito.

Pag-install ng ESP32 Board sa Arduino IDE

Pagkatapos ng pag-install, ang ESP32 board ay maaaring ikonekta at i-program gamit ang Arduino IDE.

Hakbang 2: I-upload ang ESP32 Bluetooth Code

Kapag na-install na ang ESP32 board, makikita mo ang iba't ibang pre-installed na library at ang kanilang mga halimbawa sa Arduino IDE. Ang lahat ng mga aklatang ito ay nauugnay sa ESP32 board. Para sa Bluetooth serial communication, gagamitin namin ang ESP32 BluetoothSerial.h halimbawa ng code ng library.

Upang buksan ang halimbawang code, buksan ang Arduino IDE at pumunta sa: File > Mga Halimbawa > BluetoothSerial > SerialtoSerialBT

Upang buksan ang halimbawang code na ito, tiyaking napili ang ESP32 board.

Pagkatapos buksan ang halimbawang code, makikita mo ang sumusunod na code sa iyong Arduino IDE window:

//Welcome Sa Linuxhint

#include 'BluetoothSerial.h'

//#define USE_PIN // Alisin sa komento ito kung gusto mo ng PIN habang nagpapares
const char * pin = '1234' ; // Tumukoy ng custom na PIN ng pagpapares

String device_name = 'ESP32' ;

#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Hindi pinagana ang Bluetooth! Patakbuhin ang `make menuconfig` upang paganahin ito
#tapusin kung

#if !defined(CONFIG_BT_SPP_ENABLED)
#error Nawawala o hindi pinagana ang Serial na Bluetooth. Ito ay magagamit lamang para sa ESP32 chip.
#tapusin kung

BluetoothSerial SerialBT ;

walang bisa setup ( ) {
Serial. magsimula ( 115200 ) ;
SerialBT. magsimula ( pangalan ng device ) ; //Pangalan ng Bluetooth device
Serial. printf ( 'Ang aparato' % s 'nagsisimula na. \n Simulan ang pagpapares ng iyong device! \n ' , pangalan ng device. c_str ( ) ) ;
//Serial.printf('Nagsimula ang device na '%s' na may MAC address na %s.\nSimulang ipares ito sa Bluetooth!\n', device_name.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SerialBT. setPin ( pin ) ;
Serial. println ( 'Gumagamit ng PIN' ) ;
#tapusin kung
}

walang bisa loop ( ) {
kung ( Serial. magagamit ( ) ) {
SerialBT. magsulat ( Serial. basahin ( ) ) ;
}
kung ( SerialBT. magagamit ( ) ) {
Serial. magsulat ( SerialBT. basahin ( ) ) ;
}
pagkaantala ( dalawampu ) ;
}

Pagkatapos i-upload ang code, makikita mo ang sumusunod na mensahe sa screen. Ang mensaheng ito ay naglalarawan na ang iyong ESP32 board ay handa na para sa pagpapares.

Hakbang 3: Pagpapaliwanag ng Code

Nagsimula ang code sa pagsasama ng mga kinakailangang aklatan at pagsuri para sa pagkakaroon ng Bluetooth. Nagse-set up din ito ng mga variable para sa pangalan at PIN ng Bluetooth device.

Nasa setup() function, ang serial baud na komunikasyon ay tinukoy at ang Bluetooth device ay sinisimulan gamit ang pangalan nito. Maaaring magtakda ng custom na PIN para sa pagpapatunay habang nagpapares.

Ang loop() function na patuloy na sinusuri ang data sa mga serial at Bluetooth na koneksyon. Binibigyang-daan nito na magtatag ng dalawang-daan na komunikasyon sa pagitan ng ESP32 at isang nakapares na Bluetooth device.

Hakbang 4: I-install ang Android Application

Kapag na-upload na ang code, ang susunod na hakbang ay i-install at i-configure ang Android application para sa Bluetooth connection.

Buksan ang Play Store at i-install ang Serial Bluetooth Terminal aplikasyon.

Pagkatapos ng pag-install, buksan ang mga setting ng Bluetooth ng smartphone at ikonekta ang iyong telepono sa ESP32 Bluetooth. Kung natukoy mo ang isang PIN sa Arduino IDE code kailangan mong ipasok ang PIN kung hindi ito direktang kumonekta.

Ngayon buksan ang Serial Bluetooth application at piliin ang Mga device opsyon.

Mula sa bagong bukas na menu, piliin ang ESP32 device. Ipinapakita ng listahang ito ang lahat ng kasalukuyang aktibong Bluetooth device.

Gaya ng nakikita mo, nakakonekta ang ESP32 Bluetooth sa iyong Android smartphone.

Upang subukan ang koneksyon, magpapadala kami ng isang string. Dito nagpadala ako ng dalawang magkaibang mga string.

Mapapansin mo ang parehong dalawang string na ipapakita din sa Arduino IDE terminal.

Ngayon, magpatuloy tayo ng isang hakbang at kontrolin ang isang panlabas na peripheral tulad ng isang LED gamit ang ESP32 Bluetooth sa pamamagitan ng Android smartphone.

Hakbang 5: Kontrolin ang LED Gamit ang Android Phone sa pamamagitan ng Bluetooth

Upang kontrolin ang isang LED gamit ang ESP32 at Android Bluetooth, baguhin muna ang code sa itaas at tukuyin ang isang GPIO pin para sa LED. Pagkatapos nito, dapat mong itakda ang mga halaga para sa pag-ON at OFF ng LED.

I-upload ang code sa ibaba upang magpatuloy pa.

#include // Isama ang Bluetooth serial communication library

#define LED_PIN 15 // Tukuyin ang LED pin

BluetoothSerial SerialBT ; // Lumikha ng BluetoothSerial object
byte BT_INP ; // Variable para mag-imbak ng Bluetooth input

// Suriin kung pinagana ang Bluetooth at Bluedroid sa configuration ng SDK
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Hindi pinagana ang Bluetooth. Patakbuhin ang `make menuconfig` upang paganahin ito.
#tapusin kung

walang bisa setup ( ) {
pinMode ( LED_PIN , OUTPUT ) ; // Itakda ang LED pin bilang isang output
Serial. magsimula ( 115200 ) ;
SerialBT. magsimula ( 'ESP32' ) ; // I-initialize ang Bluetooth na may pangalang 'ESP32'
Serial. println ( 'Handa nang ipares ang Bluetooth device.' ) ; // Ipahiwatig na handa na ang Bluetooth
}

walang bisa loop ( ) {
// Suriin kung mayroong anumang data na magagamit upang basahin mula sa Bluetooth
kung ( SerialBT. magagamit ( ) ) {
BT_INP = SerialBT. basahin ( ) ; // Basahin ang papasok na byte mula sa Bluetooth
Serial. magsulat ( BT_INP ) ; // Echo ang read byte sa serial monitor
}

// Suriin ang natanggap na data ng Bluetooth at itakda ang estado ng LED
kung ( BT_INP == '1' ) {
digitalWrite ( LED_PIN , MATAAS ) ; // I-on ang LED kung natanggap ang '1'
} iba pa kung ( BT_INP == '0' ) {
digitalWrite ( LED_PIN , MABABA ) ; // I-off ang LED kung ang '0' ay natanggap
}
}

Ang code na ito ay para sa isang ESP32 microcontroller upang makontrol ang isang LED gamit ang Bluetooth. May kasama itong library para sa Bluetooth na komunikasyon. Susunod, tinutukoy nito ang LED pin at nagse-set up ng Bluetooth gamit ang isang device na pinangalanang ESP32. Binabasa ng pangunahing loop ang Bluetooth data at i-ON o OFF ang LED batay sa natanggap na command (1 para sa ON, 0 para sa OFF).

Circuit Diagram

Ang circuit diagram ay simple, na may LED na konektado sa pin D15 ng ESP32. Maaari mong tukuyin ang anumang iba pang GPIO para sa LED control.

Kaugnay: ESP32 Pinout Reference–Ultimate Guide

Hardware

Sa hardware, kakailanganin mo ng breadboard, ESP32 board, at LED. Ikonekta ang ESP32 sa system at i-upload ang program dito.

Ngayon magpadala ng 1 at 0 mula sa Android phone na Bluetooth Serial communications application.

Makikita mo ang parehong input sa Arduino IDE terminal na natanggap mula sa Android phone.

Output

Kapag naipadala mo ang High o 1 na halaga, ang LED ay i-ON, katulad din kapag ipinadala mo ang Mababang halaga ang LED ay OFF.

Magtakda ng Custom na Button

Maaari ka ring magtakda ng custom na button sa loob ng Serial Bluetooth application. Halimbawa, maaaring gumawa ng HIGH at LOW values ​​button. Sa ganitong paraan, hindi mo kailangang manu-manong i-type ang mga value. Sa halip, kailangan mo lang pindutin ang shortcut button, at isasagawa nito ang pagtuturo na iyong itinakda.

Tandaan: Upang buksan ang mga setting ng button, pindutin nang matagal ang button.

Upang itakda ang halaga ng HIGH button, tukuyin ang mga sumusunod na setting.

Pagkakatulad para sa halaga ng LOW button, kailangan mong tukuyin ang mga setting sa ibaba.

Matagumpay naming naikonekta ang ESP32 board sa isang Android phone gamit ang Bluetooth. Ngayon ay maaari kang lumikha ng maraming proyekto gamit ito. Tulad ng, maaari mong kontrolin ang iyong mga kasangkapan sa bahay gamit ang ESP32 Bluetooth sa pamamagitan ng isang relay circuit.

Kaugnay: Relay sa ESP32 Gamit ang Arduino IDE

Konklusyon

Ang ESP32 ay isang advanced na microcontroller board na may mga kakayahan sa Wi-Fi at Bluetooth. Ang parehong mga built-in na module ay tumutulong sa iyo na magdisenyo ng mga advanced na proyekto at kontrolin ang mga peripheral nang wireless. Katulad nito, maaari mong ikonekta ang ESP32 sa isang Android phone at magsagawa ng iba't ibang mga operasyon. Para diyan, kakailanganin mong i-install ang Bluetooth Serial Android application. Kapag na-install na, buksan ang halimbawang code para sa ESP32 Bluetooth at i-upload ito sa iyong board. Kapag na-upload na ang code, maaari mo itong ipares sa iyong board sa pamamagitan ng Android phone.