- பி.எல்.இ (புளூடூத் லோ எனர்ஜி) தொடர்பான சொற்கள்
- வன்பொருள் தயாரித்தல்
- GATT சேவையைப் பயன்படுத்தி பேட்டரி நிலை குறிப்பிற்கான ESP32 ஐ நிரலாக்குகிறது
- ESP32 BLE இல் உங்கள் GATT சேவையை சோதிக்கிறது
வயர்லெஸ் ஹெட்ஃபோன்கள், ஃபிட்னெஸ் பேண்டுகள், புளூடூத் ஸ்பீக்கர்கள், இன்-காது ஹெட்ஃபோன்கள், மொபைல் போன்கள், மடிக்கணினிகள்… நம்மைச் சுற்றி ஏராளமான புளூடூத் சாதனங்கள் உள்ளன, மேலும் இந்த சாதனங்களில் பெரும்பாலானவை பேட்டரி மூலம் இயக்கப்படுகின்றன. உங்கள் மொபைல் தொலைபேசியுடன் புளூடூத் சாதனத்தை இணைக்கும்போது, இணைக்கப்பட்ட சாதனம் கணினி அல்லது ஆடியோ சாதனம் அல்லது மொபைல் போன் என்பதை தானாகவே புரிந்துகொள்வது எப்படி என்று நீங்கள் எப்போதாவது யோசித்திருக்கிறீர்களா? சில சாதனங்களுக்கு, அறிவிப்பு பட்டியில் இணைக்கப்பட்ட சாதனத்தின் பேட்டரி சதவீதத்தை எங்கள் தொலைபேசி தானாகவே காண்பிக்கும். இவை அனைத்தும் எவ்வாறு சொந்தமாக நிகழ்கின்றன? தொலைபேசியிற்கும் புளூடூத் சாதனத்திற்கும் இடையில் சில பொதுவான நெறிமுறை பகிரப்பட வேண்டும்!
ஆர்வமாக இருங்கள் , பிரபலமான ESP32 தொகுதி மூலம் புளூடூத் குறைந்த ஆற்றலை (சுருக்கமாக BLE) புரிந்துகொள்ள முயற்சிக்கும்போது இந்த கேள்விகளுக்கான பதில்களைப் பெறுவீர்கள். ESP32 கிளாசிக் ப்ளூடூத் போலல்லாமல் BLE ஒரு தொடர்பு செயல்படுத்தப்படுகிறது மற்றும் இல்லையெனில் தூக்கம் முறையில் தங்குதல், இது பேட்டரி இயக்கப்படுகிறது பயன்பாடுகளுக்கு சரியானதைச் செய்கிறார் போது மட்டுமே செயல்படுகிறது. பி.எல்.இ மெஷ் நெட்வொர்க்குகளையும் உருவாக்கி பீக்கான்களாக செயல்படலாம். பொதுவாக ஒரு BLE தொகுதிகள் ஒரு சேவையகமாக அல்லது கிளையண்டாக செயல்படும், இங்கே நாம் ESP32 BLE ஐ சேவையகமாகப் பயன்படுத்துவோம்.
இங்கே புரிந்துகொள்ள எளிதாக முழுமையான ESP32 புளூடூத்தை மூன்று பிரிவுகளாகப் பிரித்துள்ளோம்.
1. மொபைல் தொலைபேசியிலிருந்து எல்இடியை மாற்றும் ஈஎஸ்பி 32 இல் சீரியல் புளூடூத்
2 . GATT சேவையைப் பயன்படுத்தி மொபைல் தொலைபேசியில் பேட்டரி நிலை தரவை அனுப்ப BLE சேவையகம்
3. பி.எல்.இ சாதனங்களை ஸ்கேன் செய்து பெக்கனாக செயல்பட பி.எல்.இ கிளையண்ட்.
நாங்கள் ஏற்கனவே முதல் கட்டுரையை உள்ளடக்கியுள்ளோம்; இந்த கட்டுரையில் ESP32 BLE ஐ ஒரு சேவையகமாக எவ்வாறு உருவாக்குவது என்பதையும், பேட்டரி நிலை தகவல்களை அனுப்ப GATT சேவையைப் பயன்படுத்துவதையும் கற்றுக்கொள்வோம். சோதனை நோக்கத்திற்காக, BLE GATT சேவையின் மூலம் எங்கள் மொபைல் தொலைபேசியில் பேட்டரி சதவீதமாக ESP32 இலிருந்து கடின குறியீட்டு மதிப்புகளை அனுப்புவோம், இந்த வழியில் ESP32 ஒரு பேட்டரி மூலம் இயக்கப்படும் புளூடூத் சாதனம் என்று கருதுகிறது, இது அதன் பேட்டரி சதவீதத்திற்கு அனுப்ப முயற்சிக்கிறது. விரிவாகச் செல்வதற்கு முன், புளூடூத் லோ எனர்ஜி தொடர்பான சில சொற்களைக் குறைப்போம்.
பி.எல்.இ (புளூடூத் லோ எனர்ஜி) தொடர்பான சொற்கள்
பி.எல்.இ சேவையகம்: முன்பு கூறியது போல் பி.எல்.இ ஒரு சேவையகமாக அல்லது கிளையண்டாக வேலை செய்ய திட்டமிடப்படலாம். ஒரு சேவையகமாக பணிபுரியும் போது பி.எல்.இ தரவை மட்டுமே வழங்க முடியும், அது ஒரு இணைப்பைத் தொடங்க முடியாது. உதாரணம் ஒரு உடற்பயிற்சி இசைக்குழுவாக இருக்கும். கிளையன்ட் கோரினால் மட்டுமே ஒரு சேவையகம் தகவலை அனுப்ப முடியும்.
பொதுவாக ESP32 இன் BLE ஒரு சேவையகத்தைப் பயன்படுத்துகிறது. ஒவ்வொரு சேவையகத்திற்கும் ஒன்று அல்லது அதற்கு மேற்பட்ட சேவை இருக்கும், அதேபோல் ஒவ்வொரு சேவைக்கும் ஒன்று அல்லது அதற்கு மேற்பட்ட பண்புகள் இருக்கும். ஒரு சிறப்பியல்புக்கு பூஜ்ஜியம் இருக்கலாம், அதற்குள் ஒன்று அல்லது அதற்கு மேற்பட்ட விளக்கங்கள் இருக்கலாம். ஒவ்வொரு சேவை, சிறப்பியல்பு அல்லது விவரிப்பான் அதன் சொந்த முன் வரையறுக்கப்பட்ட தனித்துவமான ஐடியை UUID எனக் கொண்டிருக்கும்.

பி.எல்.இ கிளையண்ட்: கிளையன்ட் இணைப்பை ஸ்கேன் செய்து பிற புளூடூத் சாதனங்களைக் கேட்கலாம். ஒரு உதாரணம் உங்கள் மொபைல் போன். பெரும்பாலான பி.எல்.இ வன்பொருள் சாதனங்கள் சேவையகமாகவும் கிளையண்டாகவும் செயல்பட முடியும் என்பதை நினைவில் கொள்க, இது சாதனத்தின் பங்கை தீர்மானிக்கும் மென்பொருள்.
புற சாதனம் / மத்திய சாதனம்: ஒரு பி.எல்.இ நெட்வொர்க்கில் ஒரே ஒரு மைய சாதனம் மட்டுமே இருக்க முடியும், ஆனால் தேவைக்கேற்ப பல புற சாதனங்களைக் கொண்டிருக்கலாம். மத்திய சாதனம் ஒரே நேரத்தில் அனைத்து புற சாதனங்களுடனும் இணைக்க முடியும், ஆனால் புற சாதனம் மத்திய சாதனத்துடன் மட்டுமே இணைக்க முடியும், இந்த வழியில் இரண்டு புற சாதனங்களும் ஒருவருக்கொருவர் தரவைப் பகிர முடியாது. மத்திய சாதனத்திற்கான சிறந்த எடுத்துக்காட்டு எங்கள் ஸ்மார்ட் தொலைபேசிகளாகவும், புற சாதனத்திற்கு எங்கள் புளூடூத் இயர்போன் அல்லது உடற்பயிற்சி இசைக்குழுக்களாகவும் இருக்கும்.
பி.எல்.இ விளம்பரம்: பி.எல்.இ விளம்பரம் என்பது புளூடூத் சாதனத்தை அனைவருக்கும் காணும்படி அறிவுறுத்துவதற்கான அழகற்ற சொல், இதனால் இது ஒரு இணைப்பை இணைத்து நிறுவ முடியும்.இது ஒரு வழி தொடர்பு என்று கருதலாம். ஒரு சேவையகம் அதைப் பெறும் என்று எதிர்பார்க்கும் விளம்பரத் தரவை இங்கே சேவையகம் வைத்திருக்கிறது. BLE பெக்கான் ஒரு வகை BLE ஆகும்.
யு.யு.ஐ.டி (யுனிவர்சல் யுனிக் ஐடென்டிஃபையர்): ஒவ்வொரு பி.எல்.இ ப்ளூடூத் சாதனத்திற்கும் புரோகிராமரால் திட்டமிடப்படும் போது யுனிவர்சல் யுனிக் ஐடென்டிஃபையர் எண் வழங்கப்படுகிறது. இந்த அடையாளங்காட்டியை BLE சாதனத்தின் செயல்பாடு / பங்கைக் குறிக்கும் எண்களின் வரிசையாக நீங்கள் நினைக்கலாம். மீண்டும் UUID இல் இரண்டு வகைகள் உள்ளன. ஒன்று சேவை UUID, மற்றொன்று சிறப்பியல்பு UUID.
GATT சேவை: GATT என்பது பொதுவான பண்புக்கூறு சுயவிவரத்தைக் குறிக்கிறது; இரண்டு BLE சாதனங்கள் எப்போதும் தொடர்பு கொள்ள வேண்டிய சில நிலையான வழிகளை இது வரையறுக்கிறது. இந்த பண்புக்கூறு (ATT) நெறிமுறை முன்பே வரையறுக்கப்பட்டுள்ளது மற்றும் அனைத்து BLE சாதனங்களுக்கும் பொதுவானது, எனவே இந்த வழியில் எந்த இரண்டு BLE சாதனங்களும் ஒருவருக்கொருவர் அடையாளம் காண முடியும். எனவே எங்கள் முந்தைய கேள்விக்கு GATT பதில்.
எந்த இரண்டு பி.எல்.இ சாதனம் தரவை முன்னும் பின்னுமாக அனுப்ப வேண்டும் என்பதைப் பயன்படுத்தும் நுட்பம் சேவைகள் மற்றும் பண்புகள் எனப்படும் கருத்தினால் வரையறுக்கப்படுகிறது.
பி.எல்.இ சேவை / பி.எல்.இ பண்பு: பி.எல்.இ சாதனம் எந்த வகையான சேவையைச் செய்யப் போகிறது என்பதை சேவை யு.யு.ஐ.டி நமக்குக் கூறுகிறது, மேலும் அந்த சேவையால் செய்யப்படும் அளவுருக்கள் அல்லது செயல்பாடுகள் என்ன என்பதை சிறப்பியல்பு யு.யு.ஐ.டி சொல்கிறது. எனவே ஒவ்வொரு சேவைக்கும் ஒன்று அல்லது அதற்கு மேற்பட்ட பண்புகள் அவற்றின் கீழ் இருக்கும். சரி! புரோகிராமர் இந்த UUID ஐ எங்கிருந்து பெறுகிறார்? ஒவ்வொரு UUID ஏற்கனவே GATT (பொதுவான பண்புக்கூறு சுயவிவரம்) ஆல் வரையறுக்கப்பட்டுள்ளது, நீங்கள் அவர்களின் வலைத்தளத்தைப் பார்வையிடலாம் மற்றும் திட்டத்திற்குத் தேவையான UUID ஐத் தேர்ந்தெடுக்கலாம். அது எங்கள் தலைக்கு மேல் சிறிது துள்ளியது என்று எனக்குத் தெரியும்; அதை ஒரு எடுத்துக்காட்டுடன் புரிந்துகொள்ள முயற்சிப்போம்.
ஆடியோ பிளேயரின் BLE சாதனத்தை அனுமானிக்கலாம். ஆரம்பத்தில் நீங்கள் அதை உங்கள் தொலைபேசியுடன் இணைக்கும்போது, உங்கள் தொலைபேசி அதை ஆடியோ சாதனமாக அடையாளப்படுத்துகிறது, மேலும் நிலைப்பட்டியில் பேட்டரி அளவைக் காண்பிக்கும். எனவே, இது நடக்க ஆடியோ பிளேயர் எப்படியாவது உங்கள் தொலைபேசியை பேட்டரி அளவையும், பேட்டரியில் உள்ள கட்டணத்தின் சதவீதத்தையும் பகிர்ந்து கொள்ள தயாராக இருப்பதாக சொல்ல வேண்டும். இது UUID ஐப் பயன்படுத்துவதன் மூலம் செய்யப்படுகிறது, ஒரு குறிப்பிட்ட UUID உள்ளது, இது BLE டைஸ் பேட்டரி அளவைப் பற்றிய விவரங்களை வழங்கப் போகிறது என்று கூறுகிறது, இந்த UUID சேவையின் வகையை சேவை UUID என அழைக்கப்படுகிறது , மீண்டும் பல அளவுருக்கள் இருக்க வேண்டும் பேட்டரியின் மதிப்பு அத்தகைய அளவுருவில் இருப்பது போன்ற ஒரு சேவையை நிறைவு செய்வதற்காக பரிமாறிக்கொள்ளுங்கள், ஒவ்வொரு அளவுருவுக்கும் அதன் சொந்த UUID இருக்கும், இவை சிறப்பியல்பு UUID என அழைக்கப்படுகின்றன .ஒரு குணாதிசயத்தால் நிகழ்த்தப்படும் பொதுவான செயல்பாடு, படிக்க, எழுது, அறிவித்தல் மற்றும் சுட்டிக்காட்டுதல்.
பி.எல்.இ டிஸ்கிரிப்டர்: டிஸ்கிரிப்டர் என்பது ஒரு விருப்ப பண்பு ஆகும், இது சிறப்பியல்புக்குள் உள்ளது. ஒரு விளக்கத்தை பொதுவாக ஒரு சிறப்பியல்புகளை எவ்வாறு அணுகுவது என்பதைக் குறிப்பிடுகிறது.
பி.எல்.இ பெக்கான்: புளூடூத் பெக்கான் ஒரு அருகாமையில் உள்ள சுவிட்சைப் போன்றது, இது பயனர் ஒரு வரம்பிற்குள் வரும்போது சில முன் வரையறுக்கப்பட்ட செயலைச் செய்கிறது (நெருக்கமான அருகாமையில்). இது எல்லா நேரத்திலும் அதன் அடையாளத்தை விளம்பரப்படுத்துகிறது, எனவே எப்போதும் இணைக்க தயாராக உள்ளது.
BLE2902: இந்த விஷயத்தில் எனக்கு இன்னும் சந்தேகம் உள்ளது, ஆனால் கிளையன்ட் பக்கத்தில் உள்ள ஒரு மென்பொருளாக இதை நீங்கள் நினைக்கலாம், இது அறிவிப்பை இயக்க அல்லது முடக்குமாறு சேவையகத்திற்கு தெரிவிக்கும். இது சக்தியைச் சேமிக்க உதவும்
உங்களுக்கு ஒரு தோராயமான யோசனை வந்துவிட்டது என்று நம்புகிறேன், நூலகங்கள் என்றாலும் எல்லா கைவேலைகளும் ஏற்கனவே எங்களுக்காக முடிந்துவிட்டதால் எங்களுக்கு அதிகம் தெரியாது.
வன்பொருள் தயாரித்தல்
திட்டத்திற்கு எந்தவொரு வன்பொருள் அமைப்பும் தேவையில்லை, ஆனால் உங்கள் Arduino IDE இல் ESP32 போர்டு விவரங்களைச் சேர்த்துள்ளீர்கள் என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள், எல்லாமே எதிர்பார்த்தபடி செயல்படுகிறதா என்பதைச் சரிபார்க்க குறைந்தபட்ச மாதிரி சிமிட்டும் திட்டத்தை முயற்சித்தீர்கள். இதை எப்படி செய்வது என்று நீங்கள் சந்தேகிக்கிறீர்கள், இதைச் செய்ய ஆர்டுயினோ டுடோரியலுடன் ESP32 உடன் தொடங்குவதைப் பின்பற்றலாம்.
பி.எல்.இ சேவைகளை சோதிக்க, எங்கள் மொபைலில் என்.ஆர்.எஃப் ஆண்ட்ராய்டு பயன்பாட்டைப் பயன்படுத்துவோம், அவற்றை பிளேஸ்டோரிலிருந்து நேரடியாக பதிவிறக்கம் செய்யலாம். இது ஐபோன் பயனர்களுக்கான ஐடியூன்ஸ் ஸ்டோரிலும் கிடைக்கிறது. நீங்கள் நீண்ட காலமாக பி.எல்.இ உடன் பணிபுரிய திட்டமிட்டிருந்தால், பிழைத்திருத்த நோக்கங்களுக்காக இந்த பயன்பாடு உண்மையில் கைக்கு வரும்.

GATT சேவையைப் பயன்படுத்தி பேட்டரி நிலை குறிப்பிற்கான ESP32 ஐ நிரலாக்குகிறது
இந்த நேரத்தில், என்ன கேட் சேவை மற்றும் சேவை மற்றும் சிறப்பியல்பு மாதிரிகளைப் பயன்படுத்தி அது எவ்வாறு செயல்படுத்தப்படுகிறது என்பதில் உங்களுக்கு நியாயமான யோசனை இருப்பதாக நான் கருதுகிறேன். இப்போது, Arduino IDE ஐப் பயன்படுத்தி ESP32 இல் இது எவ்வாறு செயல்படுத்தப்படுகிறது என்பதை அறிய நிரலுக்குள் நுழைவோம். நாங்கள் தொடர்வதற்கு முன், ஆண்ட்ரியாஸ் ஸ்பைஸின் வீடியோ BLE க்கு நன்றி தெரிவிக்க இந்த இடத்தைப் பயன்படுத்த விரும்புகிறேன், இது என் பக்கத்தில் விஷயங்களை தெளிவுபடுத்தியது.
தேவையான நூலகங்களை எங்கள் ஓவியத்தில் இறக்குமதி செய்வதன் மூலம் நிரலைத் தொடங்குகிறோம். ஈஎஸ்பி 32 இன் பிஎல்இ செயல்பாட்டைப் பயன்படுத்துவதற்கு கட்டமைக்க நிறைய விஷயங்கள் உள்ளன, இருப்பினும் நீல் கோல்பனுக்கு நன்றி, ஏற்கனவே எங்களுக்காக கடின உழைப்பைச் செய்து நூலகங்களை வழங்கியவர். நூலகங்களின் செயல்பாட்டை நீங்கள் புரிந்து கொள்ள விரும்பினால், கிதுப் பக்கத்தில் அவரது ஆவணங்களை நீங்கள் குறிப்பிடலாம்.
#சேர்க்கிறது
அடுத்து எங்கள் புளூடூத் சாதனத்திற்கான சர்வர் கால்-பேக் செயல்பாட்டை வரையறுக்க வேண்டும். அதற்கு முன் பி.எல்.இ.
BLE இல் அழைப்பு செயல்பாடு என்ன?
போது BLE சர்வர் நடத்தி வருகிறது அது ஒரு சர்வர் கோரிக்கை செயல்பாடு வரையறுக்க முக்கியம். பி.எல்.இ உடன் தொடர்புடைய பல வகையான கால்பேக்குகள் உள்ளன, ஆனால் இதை எளிமையாகச் சொல்வதானால், நடவடிக்கை முடிந்துவிட்டதா என்பதை உறுதிசெய்யும் ஒரு ஒப்புதல் என நீங்கள் கருதுகிறீர்கள். கிளையன்ட் மற்றும் சர்வர் இடையேயான இணைப்பு வெற்றிகரமாக நிறுவப்பட்டுள்ளதா என்பதை உறுதிப்படுத்த சேவையக அழைப்பு பயன்படுத்தப்படுகிறது.
சேவையக அழைப்பை செய்ய பின்வரும் குறியீடுகளின் வரிகளைப் பயன்படுத்துகிறோம்.
bool _BLEClientConnected = பொய்; வகுப்பு MyServerCallbacks : பொது BLEServerCallbacks { void onConnect (BLEServer * pServer) { _BLEClientConnected = true; }; void onDisconnect (BLEServer * pServer) { _BLEClientConnected = false; } };
வெற்றிட அமைவு செயல்பாட்டின் உள்ளே, பிழைத்திருத்தத்திற்காக 115200 இல் சீரியல் தகவல்தொடர்புகளைத் தொடங்குவோம், பின்னர் புளூடூத் சாதனத்தை InitBLE செயல்பாடு மூலம் துவக்குகிறோம் .
void setup () { Serial.begin (115200); Serial.println ("பேட்டரி நிலை காட்டி - BLE"); InitBLE (); }
InitBLE மாய நடைபெறும் இடமாகும் எல்லா இடத்திலும் உள்ளது. நாம் ஒரு புளூடூத் சேவையகத்தை உருவாக்கி, இங்கே பேட்டரி நிலை சேவையைப் பயன்படுத்த வேண்டும். ஆனால் அதற்கு முன், பேட்டரி அளவைப் படிப்பதற்கான சேவை, சிறப்பியல்பு மற்றும் விளக்கத்திற்கான UUID ஐ வரையறுக்க வேண்டும். அனைத்து யு.யு.ஐ.டி யையும் புளூடூத் கேட் சேவை வலைத்தளத்திலிருந்து பெறலாம். எங்கள் விஷயத்தில் நாங்கள் பேட்டரி சேவையைப் பயன்படுத்த முயற்சிக்கிறோம், அதற்கான UUID கீழே காட்டப்பட்டுள்ளபடி 0X180F என வரையறுக்கப்படுகிறது.

அடுத்து, இந்த சேவையுடன் தொடர்புடைய சிறப்பியல்புகளை நாம் அறிந்து கொள்ள வேண்டும். பேட்டரி சேவையை சொடுக்கவும், நீங்கள் சேவை பண்புகள் பக்கத்திற்கு அழைத்துச் செல்லப்படுவீர்கள் என்பதை அறிய, அங்கு பேட்டரி நிலை என்பது பண்புகளின் பெயர் என்றும் அது 0 முதல் 100 வரையிலான மதிப்பை எடுக்கும் என்றும் குறிப்பிடப்பட்டுள்ளது. மேலும் இரண்டை மட்டுமே நாங்கள் செய்ய முடியும் என்பதை நினைவில் கொள்க இந்த குணாதிசயத்துடன் செயல்கள், ஒன்று கட்டாயமாக படிக்க வேண்டியது, மற்றொன்று விருப்பமானது என்பதை அறிவித்தல். எனவே பேட்டரி மதிப்பை வாடிக்கையாளருக்கு (தொலைபேசி) அனுப்ப வேண்டியது கட்டாயமாகும், தேவைப்பட்டால் விருப்பமானது எது என்பதை தொலைபேசியில் தெரிவிக்க முடியும்.

ஆனால் காத்திருங்கள் சிறப்பியல்பு பேட்டரி நிலைக்கான UUID மதிப்பை நாங்கள் இன்னும் கண்டுபிடிக்கவில்லை. அதைச் செய்ய பேட்டரி சிறப்பியல்பு பக்கத்தில் சென்று பேட்டரி நிலை பெயரைத் தேட நீங்கள் அதன் UUID ஐ 0X2A19 ஆகக் காண்பீர்கள், அதன் ஸ்னாப்ஷாட் கீழே காட்டப்பட்டுள்ளது.

இப்போது எங்களிடம் எல்லா மதிப்புகளும் உள்ளன, கீழே காட்டப்பட்டுள்ளபடி அதை நிரலில் வைப்போம். BatterySerivce , BatteryLevelCharacteristic மற்றும் BatteryLevelDescriptor என்ற பெயர், நிரலில் நாம் பயன்படுத்தும் சேவை, சிறப்பியல்பு மற்றும் விவரிப்பான் ஆகியவற்றைக் குறிக்க பயனர் வரையறுக்கப்பட்ட மாறிகள். மதிப்பின் அளவு 8-பிட் ஆக இருக்கும்போது டிஸ்கிரிப்டர் 0X2901 க்கான மதிப்பு பயன்படுத்தப்படுகிறது, மேலும் தகவல்களை டிஸ்கிரிப்டர் விளக்கம் பக்கம் காணலாம்.
# பேட்டரி சேவை BLEUUID ஐ வரையறுக்கவும் ((uint16_t) 0x180F)
BLECharacteristic BatteryLevelCharacteristic (BLEUUID ((uint16_t) 0x2A19), BLECharacteristic :: PROPERTY_READ - BLECharacteristic :: PROPERTY_NOTIFY); BLEDescriptor BatteryLevelDescriptor (BLEUUID ((uint16_t) 0x2901%);
InitBLE செயல்பாட்டிற்குத் திரும்புதல். நாம் முதலில் BLE சேவையகத்தைத் தொடங்கி அதை ஒரு பெயருடன் விளம்பரப்படுத்த வேண்டும். பின்வரும் வரிகளை சர்வர் BLE தொடங்க பயன்படுத்தப்படுகின்றன. எனது BLe சேவையகத்திற்கு நான் கொடுத்த பெயர் “BLE பேட்டரி”, ஆனால் நீங்கள் உங்கள் சொந்தத்தை தேர்வு செய்யலாம்.
BLEDevice:: init ("BLE பேட்டரி"); // BLE சேவையகத்தை உருவாக்கு BLEServer * pServer = BLEDevice:: createServer (); pServer-> setCallbacks (புதிய MyServerCallbacks ());
அடுத்து நாம் ஏற்கனவே UUID ஐ வரையறுத்துள்ளதால் GATT சேவையைத் தொடங்க வேண்டும், கீழேயுள்ள வரியைப் பயன்படுத்தி சேவையைத் தொடங்கலாம்.
// BLE சேவையை உருவாக்கு BLEService * pBattery = pServer-> createService (BatteryService);
சேவை தொடங்கப்பட்டதும் , விவரிப்பாளரை குணாதிசயங்களுடன் இணைத்து, மதிப்புகளை அமைக்கலாம். கீழே காட்டப்பட்டுள்ளபடி BLE2902 சேவையும் இங்கே சேர்க்கப்பட்டுள்ளது.
pBattery-> addCharacteristic (& BatteryLevelCharacteristic); BatteryLevelDescriptor.setValue ("சதவீதம் 0 - 100"); BatteryLevelCharacteristic.addDescriptor (& BatteryLevelDescriptor); BatteryLevelCharacteristic.addDescriptor (புதிய BLE2902 ());
இறுதியாக எல்லாம் அமைக்கப்பட்டுள்ளது, இப்போது எஞ்சியிருப்பது ESP32 ஐ விளம்பரப்படுத்துமாறு கேட்பது, இதனால் எங்கள் தொலைபேசி போன்ற பிற சாதனங்கள் அதைக் கண்டுபிடித்து இணைக்க முடியும், மேலும் ஒரு கிளையனுடன் இணைக்கப்படும்போது பேட்டரி சேவையைத் தொடங்க வேண்டும், ஆனால் செய்யக்கூடியது பின்வரும் வரிகள்.
pServer-> getAd advertising () -> addServiceUUID (பேட்டரி சேவை); pBattery-> தொடக்க (); // விளம்பரத்தைத் தொடங்குங்கள் pServer-> getAd advertising () -> start ();
இது இதுவரை மிகவும் நல்லது, கடைசி கட்டம் வாடிக்கையாளருக்கு (தொலைபேசி) அனுப்பப்பட வேண்டிய சதவீதத்தில் பேட்டரியின் மதிப்பு என்ன என்பதை விவரிப்பவரிடம் சொல்வது. இந்த மதிப்பு 0 -100 முதல் நாம் முன்பு படித்தது போல, விஷயங்களை எளிமையாக வைத்திருக்க, பேட்டரியின் மதிப்பை 57 ஆகக் குறியிடுகிறேன், பின்னர் ஒவ்வொரு 5 விநாடிகளிலும் அதை அதிகரிக்கவும், 100 ஐ அடைந்ததும் 0 இலிருந்து தொடங்கவும். செய்ய வேண்டிய குறியீடு அது கீழே காட்டப்பட்டுள்ளது. அனுப்பப்படும் மதிப்பு யூனிட் 8_ டி வடிவத்தில் உள்ளது என்பதை நினைவில் கொள்க.
uint8_t நிலை = 57; void loop () { BatteryLevelCharacteristic.setValue (& நிலை, 1); BatteryLevelCharacteristic.notify (); தாமதம் (5000); நிலை ++; Serial.println (int (level)); if (int (level) == 100) level = 0; }
ESP32 BLE இல் உங்கள் GATT சேவையை சோதிக்கிறது
மேலே குறிப்பிட்டவாறு முழு குறியீடு பக்கத்தின் இறுதியில் வழங்கப்படும். உங்கள் ESP32 போர்டில் குறியீட்டைப் பதிவேற்றவும். உங்கள் தொலைபேசியைப் பதிவேற்றியதும் “BLE பேட்டரி” ஜோடி எனப்படும் புளூடூத் சாதனத்தைக் கண்டறிய வேண்டும்.

பின்னர் nRF Android பயன்பாட்டை நிறுவி அதைத் திறந்து BLE பேட்டரி BLE சாதனத்துடன் இணைக்கவும். பேட்டரி சேவை பிரிவை விரிவுபடுத்துங்கள், பின்வரும் திரையை நீங்கள் கண்டுபிடிக்க வேண்டும்.

பி.எல்.இ பேட்டரி சேவையை வழங்குகிறது மற்றும் பேட்டரி அளவின் சிறப்பியல்புகளைக் கொண்டுள்ளது என்பதை பயன்பாடு தானாகவே அடையாளம் கண்டுள்ளதால், நாங்கள் நிரலில் பயன்படுத்திய யு.யு.ஐ.டி. தற்போதைய பேட்டரி மதிப்பு 67% 5 விநாடிகள் காத்திருப்பதையும் நீங்கள் காணலாம், மேலும் அது அதிகரிப்பதை நீங்கள் கவனிக்கலாம்.
BLE ஐப் பயன்படுத்துவதில் உள்ள சிறந்த விஷயம் என்னவென்றால், இப்போது BLE உடன் பணிபுரியும் எந்தவொரு பயன்பாடும் உங்கள் ESP32 BLE சாதனம் என்று நினைக்கும், இது பேட்டரி அளவை அறிவிக்கும். இதை முயற்சிக்க நான் பேடன் எனப்படும் பயன்பாட்டைப் பயன்படுத்தினேன், பயன்பாடு ஈஎஸ்பி 32 ஐ பேட்டரி மூலம் இயங்கும் புளூடூத் சாதனமாக அடையாளம் கண்டு எனது தொலைபேசியில் சதவீத அறிவிப்பை வழங்கியது

கூல் !! சரி? முழுமையான வீடியோவையும் கீழே உள்ள வீடியோவில் காட்டியுள்ளேன். இப்போது, ESP32 உடன் BLE பேட்டரி சேவைகளை எவ்வாறு பயன்படுத்துவது என்பதை நீங்கள் கற்றுக் கொண்டீர்கள், துடிப்பு வீதம், HID, இதய துடிப்பு போன்ற மிகவும் சுவாரஸ்யமான பிற GATT சேவைகளையும் நீங்கள் முயற்சி செய்யலாம். வேடிக்கையாக இருங்கள்….
