- कैसे ब्लूटूथ कम ऊर्जा (BLE) अलग है?
- NRF24L01 मॉड्यूल की BLE क्षमता
- अवयव आवश्यक
- NRF24L01 मॉड्यूल से शुरू
- Arduino
- BLE संचार के लिए Arduino के साथ nRF24L01 को इंटरफैस करना
ब्लूटूथ लो एनर्जी (BLE) ब्लूटूथ का एक संस्करण है और यह क्लासिक ब्लूटूथ के एक छोटे, अत्यधिक अनुकूलित संस्करण के रूप में मौजूद है। इसे स्मार्ट ब्लूटूथ के नाम से भी जाना जाता है। बीएलई को विशेष रूप से कम लागत, कम बैंडविड्थ, कम बिजली और कम जटिलता के लिए न्यूनतम संभव बिजली की खपत को ध्यान में रखते हुए डिजाइन किया गया था। ESP32 में इनबिल्ट BLE क्षमताएं हैं लेकिन Arduino जैसे अन्य माइक्रोकंट्रोलर्स के लिए, nRF24L01 का उपयोग किया जा सकता है। इस RF मॉड्यूल का उपयोग BLE मॉड्यूल के रूप में अन्य ब्लूटूथ डिवाइस जैसे स्मार्टफोन, कंप्यूटर आदि को भेजने के लिए किया जा सकता है।
इस ट्यूटोरियल में हम nRF24L01 का उपयोग करके BLE से अधिक डेटा भेजने का तरीका प्रदर्शित करेंगे। हम BHT से अधिक Arduino और nRF मॉड्यूल का उपयोग करके DHT11 से स्मार्टफोन पर तापमान रीडिंग भेजेंगे।
कैसे ब्लूटूथ कम ऊर्जा (BLE) अलग है?
BLE को इसकी बिजली की खपत विशेषताओं के कारण अपनाया गया था क्योंकि यह केवल एक सिक्का सेल का उपयोग करके विस्तारित अवधि के लिए चलने में सक्षम था। अन्य वायरलेस मानकों की तुलना में, स्मार्टफोन, टैबलेट और मोबाइल कंप्यूटिंग में अपने अभूतपूर्व अनुप्रयोगों के कारण BLE का तेजी से विकास तेजी से आगे बढ़ गया है।
NRF24L01 मॉड्यूल की BLE क्षमता
BLE उसी 2.4 GHz ISM बैंड का उपयोग बॉड दर 250Kbps से 2Mbps तक करता है जिसे कई देशों में अनुमति है और इसे औद्योगिक और चिकित्सा अनुप्रयोगों में लागू किया जा सकता है। बैंड 2400 मेगाहर्ट्ज से 2483.5 मेगाहर्ट्ज पर शुरू होता है और इसे 40 चैनलों में विभाजित किया गया है। इनमें से तीन चैनलों को 'विज्ञापन' के रूप में जाना जाता है और उनका उपयोग विज्ञापन पैकेट भेजने के लिए उपकरणों के माध्यम से किया जाता है ताकि अन्य BLE डिवाइस कनेक्ट हो सकें। इन चैनलों को शुरुआत में हस्तक्षेप से बचने के लिए बैंड के निचले ऊपरी और मध्य में चुना गया था जो संभवतः कई चैनलों के साथ हस्तक्षेप कर सकते हैं। BLE के बारे में अधिक जानने के लिए, इस ट्यूटोरियल का अनुसरण करें।
यह ट्यूटोरियल समझाएगा कि कैसे BLE ट्रांसीवर के रूप में NRF24L01 मॉड्यूल का उपयोग करें । NRF24L01 पर RF मॉड्यूल के रूप में ट्यूटोरियल पहले से ही Arduino ट्यूटोरियल के साथ nRF24L01 को इंटरफेस करने में समझाया गया है। आज इस मॉड्यूल की BLE कार्यक्षमता को स्मार्ट फोन पर सेंसर डेटा भेजकर समझाया जाएगा। यहाँ इस nRF24L01 मॉड्यूल को Arduino Microcontroller के साथ इंटरफ़ेयर किया जाएगा और DHT11 सेंसर तापमान डेटा को आधिकारिक नॉर्डिक BLE एंड्रॉइड एप्लिकेशन पर भेजा जाएगा।
अवयव आवश्यक
हार्डवेयर:
- Arduino UNO
- nRF24L01 BLE मॉड्यूल
- DHT11 तापमान और आर्द्रता सेंसर
- जम्परों
सॉफ्टवेयर:
- Arduino IDE
- नॉर्डिक BLE Android अनुप्रयोग (BLE या nRF मोबाइल के लिए nRF अस्थायी 2.0)
NRF24L01 मॉड्यूल से शुरू
NRF24L01 मॉड्यूल ट्रांसीवर मॉड्यूल हैं, जिसका अर्थ है कि प्रत्येक मॉड्यूल डेटा भेज और प्राप्त कर सकता है, लेकिन चूंकि वे आधे-द्वैध हैं, इसलिए वे एक बार में डेटा भेज या प्राप्त कर सकते हैं। मॉड्यूल में नॉर्डिक अर्ध-कंडक्टरों से जेनेरिक nRF24L01 आईसी है जो डेटा के प्रसारण और स्वागत के लिए जिम्मेदार है। आईसी एसपीआई प्रोटोकॉल का उपयोग करके संचार करता है और इसलिए आसानी से किसी भी माइक्रोकंट्रोलर के साथ हस्तक्षेप किया जा सकता है। यह Arduino के साथ बहुत आसान हो जाता है क्योंकि पुस्तकालय आसानी से उपलब्ध हैं। हमने पहले से ही चैट रूम बनाने के लिए और सर्वो मोटर्स को वायरलेस तरीके से नियंत्रित करने के लिए Arduino के साथ nRF24L01 मॉड्यूल का उपयोग किया।
मानक nRF24L01 मॉड्यूल के पिनआउट को नीचे दिखाया गया है:
मॉड्यूल में ऑपरेटिंग वोल्टेज 1.9 वी से 3.6 वी (आमतौर पर 3.3 वी) है और सामान्य ऑपरेशन के दौरान केवल 12mA की बहुत कम वर्तमान खपत करता है जो इसे बैटरी कुशल बनाता है और इसलिए सिक्का कोशिकाओं पर भी चल सकता है। भले ही ऑपरेटिंग वोल्टेज 3.3V है अधिकांश पिन 5V सहिष्णु हैं और इसलिए Arduino जैसे 5V माइक्रोकंट्रोलर्स के साथ सीधे हस्तक्षेप किया जा सकता है। इन मॉड्यूल का उपयोग करने का एक और लाभ यह है कि, प्रत्येक मॉड्यूल में 6 पाइपलाइन हैं। मतलब, प्रत्येक मॉड्यूल डेटा संचारित या प्राप्त करने के लिए 6 अन्य मॉड्यूल के साथ संवाद कर सकता है। यह मॉड्यूल को IoT अनुप्रयोगों में स्टार या मेष नेटवर्क बनाने के लिए उपयुक्त बनाता है। इसके अलावा, उनके पास 125 विशिष्ट आईडी की एक विस्तृत पता सीमा है, इसलिए एक बंद क्षेत्र में हम एक दूसरे के साथ हस्तक्षेप किए बिना इनमें से 125 मॉड्यूल का उपयोग कर सकते हैं।
Arduino
BLE संचार के लिए Arduino के साथ nRF24L01 को इंटरफैस करना
NRF24L01 SPI पर काम करता है, इसलिए इंटरफेसिंग SPI प्रोटोकॉल का उपयोग करेगा। पूरा कोड और वीडियो इस ट्यूटोरियल के अंत में संलग्न की जाएगी। वीडियो में एंड्रॉइड ऐप गाइड को भी समझाया गया है। यहां nRF24L01 मॉड्यूल का उपयोग नॉर्डिक के स्मार्टफोन ऐप के साथ संचार करने के लिए किया जाता है ।सबसे पहले आवश्यक पुस्तकालयों को शामिल करें। लाइब्रेरी में RF24 में nRF24L01 कमांड, DHT11 लाइब्रेरी को एक्सेस करने के लिए DHT11 कमांड और BTLE लाइब्रेरी को एक्सेस करने के लिए BLE फ़ंक्शन का उपयोग करना शामिल है।
#शामिल
DHT11 और BLE मॉड्यूल के लिए पिन और फ़ंक्शंस को परिभाषित और प्रारंभ करें । DHT प्रकार का उपयोग DHT11 के रूप में किया जाता है क्योंकि हम DHT11 का उपयोग कर रहे हैं। DHT GPIO पिन 4 से जुड़ा है और nRF मॉड्यूल का CE और CSN पिन क्रमशः पिन 9 और 10 से जुड़ा है।
#define DHTPIN #define DHTTYPE DHT11 DHT22 DHT dht (DHTPIN, DHTTYPE); RF24 रेडियो (9, 10); BTLE btle (& रेडियो);
सीरियल पोर्ट को 9600 पर शुरू करें, आप किसी भी पोर्ट को चुन सकते हैं। फिर DHT सेंसर शुरू करें और ब्लूटूथ स्थानीय नाम के साथ अधिकतम 8 वर्णों के साथ BTLE भी शुरू करें ।
सीरियल.बेगिन (9600); dht.begin (); btle.begin ("सीडी टेम्प");
लूप के ऊपर का तापमान पढ़ें और इसे एक फ्लोट वैरिएबल टेम्प पर सेव करें । त्रुटि संदेश दिखाने के लिए डीबग लाइन जोड़ें यदि DHT अपनी शक्ति खो देता है या कुछ भी अप्रत्याशित होता है।
फ्लोट टेम्प = dht.readTENS (); // रीड तापमान डेटा अगर (isnan (h) - isnan (t)) {Serial.println (F ("DHT सेंसर से पढ़ने में विफल!")); वापसी; }
मान को बफ़र पर सहेजें और इसे BLE मॉड्यूल पर पार्स करें । BLE मॉड्यूल को तापमान मान भी भेजें। BLE मॉड्यूल तापमान डेटा का विज्ञापन करेगा। एंड्रॉइड ऐप BLE मॉड्यूल को खोज सकता है और सेंसर डेटा प्राप्त कर सकता है।
nrf_service_data buf; buf.service_uuid = NRF_TEMPERATURE_SERVICE_UUID; buf.value = BTLE:: to_nRF_Float (अस्थायी); अगर (btle.advertise (0x16, & buf, sizeof (buf))) { Serial.println ("BTLE विफल..!"); }
जब किया, बस अगले चैनल की उम्मीद है।
btle.hopChannel ();
चूंकि DHT सेंसर प्रलेखन एक पढ़ने के बाद न्यूनतम 2 सेकंड की देरी रखने की सलाह देता है, इसलिए 2 सेकंड की देरी जोड़ें।
देरी (2000);
NRF मॉड्यूल के साथ स्मार्टफोन को अपलोड करने और पेयर करने के बाद, आपको नीचे दिखाए गए BLE Android एप्लिकेशन के लिए nRF Temp 2.0 पर मान मिलना शुरू हो जाएगा। एंड्रॉइड ऐप पर डेटा को जोड़ने और प्राप्त करने की पूरी प्रक्रिया वीडियो में भी बताई गई है:
यह BLE nRF24L01 का उपयोग करके नॉर्डिक एंड्रॉइड ऐप के सेंसर डेटा के विज्ञापन पर पूरा ट्यूटोरियल खत्म करता है। अगर आपको कोई कठिनाई आती है तो नीचे टिप्पणी करें या हमारे मंच पर लिखें। NRF24L02 के बारे में अधिक जानने के लिए, आप Arduino, nRF24L01 और प्रसंस्करण का उपयोग करके एक निजी चैट रूम बनाने का प्रयास कर सकते हैं।