विषयसूची:

फोटोरेसिस्टर का उपयोग कर वायरलेस Arduino लाइट-मिलान एलईडी लैंप: 4 कदम
फोटोरेसिस्टर का उपयोग कर वायरलेस Arduino लाइट-मिलान एलईडी लैंप: 4 कदम

वीडियो: फोटोरेसिस्टर का उपयोग कर वायरलेस Arduino लाइट-मिलान एलईडी लैंप: 4 कदम

वीडियो: फोटोरेसिस्टर का उपयोग कर वायरलेस Arduino लाइट-मिलान एलईडी लैंप: 4 कदम
वीडियो: Elegoo Arduino Uno IR Remote Control 2024, जुलाई
Anonim
फोटोरेसिस्टर का उपयोग करके वायरलेस Arduino लाइट-मिलान एलईडी लैंप
फोटोरेसिस्टर का उपयोग करके वायरलेस Arduino लाइट-मिलान एलईडी लैंप
फोटोरेसिस्टर का उपयोग करके वायरलेस Arduino लाइट-मिलान एलईडी लैंप
फोटोरेसिस्टर का उपयोग करके वायरलेस Arduino लाइट-मिलान एलईडी लैंप
फोटोरेसिस्टर का उपयोग करके वायरलेस Arduino लाइट-मिलान एलईडी लैंप
फोटोरेसिस्टर का उपयोग करके वायरलेस Arduino लाइट-मिलान एलईडी लैंप

यह निर्देश योग्य विवरण Arduino Unos और एक photoresistor का उपयोग करके एक अल्पविकसित वायरलेस लाइट-सेंसिंग एलईडी लैंप के निर्माण के लिए आवश्यक चरणों का विवरण देता है। इस उपकरण के लिए एक संभावित अनुप्रयोग एक ऐसे कमरे को रोशन करना होगा जिसमें कृत्रिम सूर्य के प्रकाश के साथ खिड़कियां नहीं हैं, वास्तविक समय में वास्तविक प्रकाश व्यवस्था की स्थिति से मेल खाते हैं। आएँ शुरू करें!

आपूर्ति सूची:

अरुडिनो यूनो x2

NRF24L01 वायरलेस ट्रांसीवर x2 (वैकल्पिक - NRF24L01 बैकपैक x2)

TIP120 डार्लिंगटन ट्रांजिस्टर

फोटोरेसिस्टर

5 मिमी एलईडी x3

दबाने वाला बटन

100 ओम रोकनेवाला x3

10k ओम रोकनेवाला x3

विभिन्न जम्पर तार

चरण 1: NRF24L01 मॉड्यूल और सर्किट को तार करना

NRF24L01 मॉड्यूल और सर्किट की वायरिंग
NRF24L01 मॉड्यूल और सर्किट की वायरिंग
NRF24L01 मॉड्यूल और सर्किट की वायरिंग
NRF24L01 मॉड्यूल और सर्किट की वायरिंग
NRF24L01 मॉड्यूल और सर्किट की वायरिंग
NRF24L01 मॉड्यूल और सर्किट की वायरिंग

इस प्रोजेक्ट में, एक Arduino ट्रांसमीटर के रूप में कार्य करेगा, पुशबटन दबाए जाने पर फोटोरेसिस्टर से लाइट लेवल डेटा भेज रहा है। अन्य Arduino एक रिसीवर के रूप में काम करेगा, उस डेटा को ले जाएगा और इसे सिग्नल में एल ई डी में बदल देगा। पहली छवि ट्रांसमीटर आरेख दिखाती है, और दूसरी रिसीवर दिखाती है।

नोट: मेरे प्रोजेक्ट की तस्वीरों में, आप देखेंगे कि NRF24L01 ट्रांसीवर दूसरे PCB से जुड़े हुए हैं। यह ट्रांसीवर्स के लिए बैकपैक मॉड्यूल है, जो पावर रेगुलेटर के रूप में कार्य करता है। वायरिंग को आसान बनाने के अलावा, ये बैकपैक्स NRF24L01 के लिए पावर इनपुट को विनियमित करते हैं, जिससे 5V बिजली की आपूर्ति का उपयोग किया जा सकता है। मैंने स्पष्टता के लिए इन बैकपैक्स को अपने आरेख में छोड़ दिया है।

(यदि आप बैकपैक्स का उपयोग करने का निर्णय लेते हैं, तो स्टॉक NRF24L01 के संदर्भ में पिन स्थानों के आरेख के लिए कृपया इस लिंक को देखें)।

आसान ज़ूमिंग/विस्तृत देखने के लिए सर्किट की एक पीडीएफ प्रति नीचे संलग्न है।

चरण 2: ट्रांसमीटर को कोड करना

अंतिम चरण कोडिंग है। NRF24L01 मॉड्यूल के उपयोग के लिए आपको RadioHead पुस्तकालय या समकक्ष पुस्तकालय स्थापित करने की आवश्यकता होगी।

इस परियोजना के लिए, ट्रांसमीटर और रिसीवर Arduinos प्रत्येक पर अलग-अलग कोड का उपयोग करते हैं। यहाँ ट्रांसमीटर के लिए कोड है:

मैंने सुविधा के लिए.ino फ़ाइल (NRF_Send) भी संलग्न की है।

#शामिल

#शामिल

RH_NRF24 nrf24; // ट्रांसीवर को nrf24 के रूप में प्रारंभ करना

इंट बटन = 5; // बटन और फोटोरेसिस्टर के लिए पिन मान सेट करना

इंट प्रीसिस्टर = ए0; इंट वैल्यू = 0; // 0-1023 से प्रकाश का मान

व्यर्थ व्यवस्था()

{ सीरियल.बेगिन (९६००); पिनमोड (बटन, इनपुट); पिनमोड (pResistor, INPUT); if (!nrf24.init ()) // यदि मॉड्यूल का प्रारंभ विफल हो जाता है तो उपयोगकर्ता को अलर्ट करता है Serial.println ("init विफल"); // init के बाद डिफ़ॉल्ट 2.402 GHz (चैनल 2), 2Mbps, 0dBm हैं अगर (!nrf24.setChannel(1)) Serial.println("setChannel विफल"); अगर (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println ("setRF विफल"); }

शून्य लूप ()

{ अगर (डिजिटलरेड (बटन)) {// बटन दबाया जाता है तो एक संदेश भेजें मूल्य = एनालॉग रीड (pResistor); // फोटोरेसिस्टर का मूल्य पढ़ें (0-1023) uint8_t डेटा = {मान}; // "डेटा " नामक एक सरणी सेट करता है जिसमें प्रकाश मान nrf24.send (डेटा, आकार (डेटा)) होता है; // रिसीवर को सरणी भेजें nrf24.waitPacketSent (); // तब तक प्रतीक्षा करें जब तक पैकेट भेजा नहीं गया है Serial.println ("लाइट वैल्यू:" + स्ट्रिंग (वैल्यू)); // सीरियल मॉनिटर में लाइट वैल्यू प्रिंट करें}}

चरण 3: रिसीवर को कोड करना

रिसीवर के लिए, कोड रेडियोहेड लाइब्रेरी का भी उपयोग करता है।

#शामिल

#शामिल

RH_NRF24 nrf24;

इंट एलईडीपिन = 3;

इंट वैल्यू = 0; // 0-1023 से प्रकाश का मान

व्यर्थ व्यवस्था()

{ सीरियल.बेगिन (९६००); पिनमोड (LEDPin, OUTPUT); अगर (! nrf24.init ()) Serial.println ("init विफल"); // init के बाद डिफ़ॉल्ट 2.402 GHz (चैनल 2), 2Mbps, 0dBm हैं अगर (!nrf24.setChannel(1)) Serial.println("setChannel विफल"); अगर (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println ("setRF विफल"); }

शून्य लूप ()

{// संदेश की प्रतीक्षा करें uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN]; // प्राप्त संदेश को "buf" नामक एक सरणी के रूप में संग्रहीत करें uint8_t len = sizeof(buf); // buf के आकार को "लेन" के रूप में संग्रहीत करें, जबकि (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len))]; // buf की पहली अनुक्रमणिका के लिए मान सेट करता है, जो photoresistor analogWrite(LEDPin, map(value, 0, 1023, 0, 255) से int है); // PWM पिन को LED ब्राइटनेस Serial.println (स्ट्रिंग (वैल्यू)) के लिए 0-255 के बीच स्केल किए गए मान को आउटपुट करने के लिए सेट करता है; } AnalogWrite(LEDPin, 0); }

चरण 4: हो गया

विभिन्न प्रकाश स्तरों के साथ खेलने का आनंद लें और एलईडी को उनसे मेल खाते हुए देखें! फोटोरेसिस्टर कभी-कभी बारीक हो सकता है, और एक स्थानीय प्रकाश स्रोत के साथ एक अंधेरे कमरे में सबसे अच्छा काम करता है (लेकिन सूरज के साथ भी बाहर काम कर सकता है)।

सिफारिश की: