विषयसूची:

रोशनी नियंत्रण प्रणाली: 9 कदम
रोशनी नियंत्रण प्रणाली: 9 कदम

वीडियो: रोशनी नियंत्रण प्रणाली: 9 कदम

वीडियो: रोशनी नियंत्रण प्रणाली: 9 कदम
वीडियो: Eye Exercise | Improve vision with eye exercises 2024, जुलाई
Anonim
रोशनी नियंत्रण प्रणाली
रोशनी नियंत्रण प्रणाली

हाल ही में मैं सुरक्षा अनुसंधान उद्देश्यों के लिए माइक्रोकंट्रोलर और IOT आधारित उपकरणों को समझने पर काम कर रहा था। इसलिए, मैंने अभ्यास के लिए एक छोटा होम ऑटोमेशन सिस्टम बनाने के बारे में सोचा। मुझे इसे पूरा करना अभी बाकी है, लेकिन स्टार्टअप के लिए मैं इस पोस्ट में अपने कमरे की रोशनी को नियंत्रित करने के लिए रास्पबेरी पाई 2 और कुछ अन्य विद्युत घटकों का उपयोग करने के तरीके को साझा करूंगा। इसके अलावा, मैं यहां रास्पबेरी के लिए प्रारंभिक सेटअप के बारे में बात नहीं कर रहा हूं, इसके लिए आपको विभिन्न ट्यूटोरियल मिल सकते हैं।

लेकिन इस प्रोजेक्ट में, मैं आपके लिए इस docker pi सीरीज के उत्पाद को पेश करूंगा।

आपूर्ति

घटक सूची:

  • 1 एक्स रास्पबेरी पाई 3बी+/3बी/शून्य/शून्य डब्ल्यू/4बी/
  • 1 x 16GB कक्षा 10 TF कार्ड
  • 1 एक्स डॉकरपी श्रृंखला 4 चैनल रिले बोर्ड (एचएटी)
  • 1 x [email protected] बिजली की आपूर्ति जो कि 52Pi. से है
  • 4 एक्स लाइट स्ट्रिप
  • 1 एक्स डीसी कनेक्टर
  • प्रकाश स्ट्रिप्स के लिए 1 x 12V बिजली की आपूर्ति।
  • कई तार।

चरण 1: DockerPi Series 4 चैनल रिले बोर्ड के बारे में जानना

DockerPi Series 4 चैनल रिले बोर्ड के बारे में जानना
DockerPi Series 4 चैनल रिले बोर्ड के बारे में जानना
DockerPi Series 4 चैनल रिले बोर्ड के बारे में जानना
DockerPi Series 4 चैनल रिले बोर्ड के बारे में जानना
DockerPi Series 4 चैनल रिले बोर्ड के बारे में जानना
DockerPi Series 4 चैनल रिले बोर्ड के बारे में जानना

DockerPi 4 Channel Relay DockerPi Series का एक सदस्य है, जो आमतौर पर IOT अनुप्रयोगों में उपयोग किया जाता है।

DockerPi 4 चैनल रिले अधिक विचारों को प्राप्त करने के लिए पारंपरिक स्विच के बजाय AC/DC को रिले कर सकता है। DockerPi 4 चैनल रिले 4 तक स्टैक कर सकता है, और इसे अन्य DockerPi विस्तार बोर्ड के साथ स्टैक किया जा सकता है। यदि आपको लंबे समय तक चलने की आवश्यकता है, तो हम यह भी अनुशंसा करते हैं कि आप अधिक शक्ति प्रदान करने के लिए हमारे DockerPi Power विस्तार बोर्ड का उपयोग करें।

सावधानी के नोट इससे पहले कि हम आगे बढ़ें, मैं आपको "मुख्य बिजली" के साथ प्रयोग करने के खतरे के बारे में चेतावनी देना चाहता हूं। अगर कुछ भी गलत हो जाता है तो सबसे खराब परिणाम मौत या कम से कम अपने घर को जलाना हो सकता है। इसलिए, कृपया इस लेख में उल्लिखित कुछ भी करने का प्रयास न करें यदि आप समझ नहीं पा रहे हैं कि आप क्या कर रहे हैं या किसी अनुभवी इलेक्ट्रीशियन की मदद लें। आएँ शुरू करें।

चरण 2: विशेषताएं

विशेषताएं
विशेषताएं
विशेषताएं
विशेषताएं
विशेषताएं
विशेषताएं
  • डॉकरपी सीरीज
  • निर्देशयोग्य
  • सीधे नियंत्रण (प्रोग्रामिंग के बिना)
  • GPIO पिन बढ़ाएँ
  • 4 चैनल रिले
  • 4 Alt I2C Addr सपोर्ट
  • रिले स्थिति एलईडी समर्थन
  • 3ए 250वी एसी सपोर्ट
  • 3ए 30वी डीसी
  • मेनबोर्ड हार्डवेयर से स्वतंत्र अन्य स्टैक बोर्ड के साथ स्टैक कर सकते हैं (I2C समर्थन की आवश्यकता है)

चरण 3: डिवाइस पता मानचित्र

डिवाइस का पता नक्शा
डिवाइस का पता नक्शा
डिवाइस का पता नक्शा
डिवाइस का पता नक्शा

इस बोर्ड का अलग रजिस्टर पता है, और आप प्रत्येक रिले को केवल एक कमांड द्वारा नियंत्रित कर सकते हैं।

अन्य आवश्यकताएं:

पायथन या सी या शेल या जावा या किसी अन्य भाषा की बुनियादी समझ (मैं सी, पायथन, शेल और जावा का उपयोग करूंगा)

  • लिनक्स सिस्टम की बुनियादी समझ
  • बुद्धि तत्परता

अब, आगे बढ़ने से पहले आपको उन विद्युत घटकों को समझना होगा जिनका हम उपयोग करेंगे:

1. रिले:

रिले एक विद्युत उपकरण है जो आम तौर पर इनपुट के रूप में बहुत कम वोल्टेज का उपयोग करके उच्च वोल्टेज को नियंत्रित करने के लिए उपयोग किया जाता है। इसमें एक पोल के चारों ओर लिपटे एक कॉइल और दो छोटे धातु के फ्लैप (नोड्स) होते हैं जिनका उपयोग सर्किट को बंद करने के लिए किया जाता है। नोड में से एक स्थिर है और दूसरा चल रहा है। जब भी कुंडली में से विद्युत प्रवाहित की जाती है, तो यह एक चुंबकीय क्षेत्र बनाती है और गतिमान नोड को स्थिर नोड की ओर आकर्षित करती है और परिपथ पूरा हो जाता है। तो, कॉइल को पावर देने के लिए केवल छोटे वोल्टेज को लागू करके हम वास्तव में उच्च वोल्टेज यात्रा करने के लिए सर्किट को पूरा कर सकते हैं। इसके अलावा, चूंकि स्थिर नोड कॉइल से भौतिक रूप से जुड़ा नहीं है, इसलिए बहुत कम संभावना है कि कुछ गलत होने पर कॉइल को पावर देने वाला माइक्रोकंट्रोलर क्षतिग्रस्त हो जाए।

चरण 4: रिले को मुख्य विद्युत आपूर्ति द्वारा संचालित बल्ब होल्डर से कनेक्ट करें

रिले को मुख्य विद्युत आपूर्ति द्वारा संचालित बल्ब होल्डर से कनेक्ट करें
रिले को मुख्य विद्युत आपूर्ति द्वारा संचालित बल्ब होल्डर से कनेक्ट करें
रिले को मुख्य विद्युत आपूर्ति द्वारा संचालित बल्ब होल्डर से कनेक्ट करें
रिले को मुख्य विद्युत आपूर्ति द्वारा संचालित बल्ब होल्डर से कनेक्ट करें

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

अब, जब प्रकाश बल्ब को मुख्य आपूर्ति से जोड़ा जाता है, तो हम आमतौर पर दो तारों को बल्ब से जोड़कर ऐसा करते हैं। तार में से एक "तटस्थ" तार है और दूसरा "नकारात्मक" तार है जो वास्तव में वर्तमान को वहन करता है, साथ ही एक बंद तंत्र को नियंत्रित करने के लिए पूरे सर्किट में एक स्विच जोड़ा जाता है। इसलिए, जब स्विथ जुड़ा होता है (या चालू होता है) तो करंट बल्ब और न्यूट्रल वायर से होकर प्रवाहित होता है, जिससे सर्किट पूरा हो जाता है। यह प्रकाश बल्ब को चालू करता है। जब स्विच चालू किया जाता है, तो यह सर्किट को तोड़ देता है और प्रकाश बल्ब बंद हो जाता है। इसे समझाने के लिए यहां एक छोटा सर्किट आरेख दिया गया है:

अब, हमारे प्रयोग के लिए, हमें सर्किट को तोड़ने और रिले के स्विचिंग का उपयोग करके बिजली के प्रवाह को नियंत्रित करने के लिए "नेगेटिव वायर" को हमारे रिले से गुजरना होगा। इसलिए, जब रिले चालू हो जाएगा, तो उसे सर्किट पूरा करना चाहिए और लाइट बल्ब चालू होना चाहिए और इसके विपरीत। फुल सर्किट के लिए नीचे दिए गए डायग्राम को देखें।

चरण 5: I2C (रास्पबेरी पाई) को कॉन्फ़िगर करना

I2C (रास्पबेरी पाई) को कॉन्फ़िगर करना
I2C (रास्पबेरी पाई) को कॉन्फ़िगर करना
I2C (रास्पबेरी पाई) को कॉन्फ़िगर करना
I2C (रास्पबेरी पाई) को कॉन्फ़िगर करना
I2C (रास्पबेरी पाई) को कॉन्फ़िगर करना
I2C (रास्पबेरी पाई) को कॉन्फ़िगर करना
I2C (रास्पबेरी पाई) को कॉन्फ़िगर करना
I2C (रास्पबेरी पाई) को कॉन्फ़िगर करना

sudo raspi-config चलाएँ और ARM कोर और linux कर्नेल के लिए i2c समर्थन स्थापित करने के लिए संकेतों का पालन करें

इंटरफेसिंग विकल्प पर जाएं

चरण 6: प्रोग्रामिंग के बिना प्रत्यक्ष नियंत्रण (रास्पबेरी पाई)

चैनल नंबर 1 रिले चालू करें

i2cset -y 1 0x10 0x01 0xFF

चैनल नंबर 1 रिले बंद करें

i2cset -y 1 0x10 0x01 0x00

चैनल नंबर 2 रिले चालू करें

i2cset -y 1 0x10 0x02 0xFF

चैनल नंबर 2 रिले बंद करें

i2cset -y 1 0x10 0x02 0x00

चैनल नंबर 3 रिले चालू करें

i2cset -y 1 0x10 0x03 0xFF

चैनल नंबर 3 रिले बंद करें

i2cset -y 1 0x10 0x03 0x00

चैनल नंबर 4 रिले चालू करें

i2cset -y 1 0x10 0x04 0xFF

चैनल नंबर 4 रिले बंद करें

i2cset -y 1 0x10 0x04 0x00

चरण 7: भाषा सी में कार्यक्रम (रास्पबेरी पाई)

स्रोत कोड बनाएं और इसे "relay.c" नाम दें

#शामिल

#शामिल

#शामिल

#DEVCIE_ADDR 0x10 परिभाषित करें

# परिभाषित करें RELAY1 0x01

# परिभाषित करें RELAY2 0x02

# परिभाषित करें RELAY3 0x03

# परिभाषित करें RELAY4 0x04

#0xFF पर परिभाषित करें

#परिभाषित करें 0x00

मुख्य अंतर (शून्य)

{

प्रिंटफ ("सी / n में रिले चालू करें");

इंट एफडी;

इंट मैं = 0;

fd = वायरिंगPiI2Cसेटअप (DEVICE_ADDR);

के लिये(;;){

के लिए (i=1; i<=4; i++)

{

प्रिंटफ ("रिले नंबर $ d चालू करें", i);

वायरिंगPiI2CWriteReg8 (fd, i, ON);

नींद (200);

प्रिंटफ ("रिले नंबर $ d बंद करें", i);

वायरिंगPiI2CWriteReg8 (fd, i, OFF);

नींद (200);

}

}

वापसी 0;

}

इसे संकलित करें।

जीसीसी रिले.सी-एलवायरिंगपीआई-ओ रिले

इसे निष्पादित करें

./रिले

चरण 8: पायथन में कार्यक्रम (रास्पबेरी पाई)

निम्नलिखित कोड को पायथन 3 का उपयोग करके निष्पादित करने और smbus लाइब्रेरी स्थापित करने की अनुशंसा की जाती है:

इसे नाम की एक फाइल बनाएं: "relay.py" और निम्नलिखित कोड पेस्ट करें:

समय के रूप में आयात करें

आयात smbus

आयात प्रणाली

DEVICE_BUS = 1

DEVICE_ADDR = 0x10

बस = smbus. SMBus (DEVICE_BUS)

जबकि सच:

प्रयत्न:

मेरे लिए रेंज में (1, 5):

बस.राइट_बाइट_डेटा (DEVICE_ADDR, i, 0xFF)

टी.नींद(1)

बस.राइट_बाइट_डेटा (DEVICE_ADDR, i, 0x00)

टी.नींद(1)

ई के रूप में कीबोर्ड इंटरप्ट को छोड़कर:

प्रिंट ("लूप से बाहर निकलें")

sys.exit ()

* इसे सहेजें और फिर python3 के रूप में चलाएँ:

python3 रिले.py

चरण 9: जावा में प्रोग्राम (रास्पबेरी पाई)

I2CRelay.java नाम की एक नई फाइल बनाएं और निम्नलिखित कोड पेस्ट करें:

java.io. IOException आयात करें;

आयात java.util. Arrays;

आयात com.pi4j.io.i2c. I2CBus;

आयात com.pi4j.io.i2c. I2CDउपकरण;

आयात com.pi4j.io.i2c. I2CFactory;

आयात com.pi4j.io.i2c. I2CFactory. UnsupportedBusNumberException;

आयात com.pi4j.platform. PlatformAlreadyAssignedException;

आयात com.pi4j.util. Console;

पब्लिक क्लास I2CRelay {

// रिले का रजिस्टर पता।

सार्वजनिक स्थिर अंतिम int DOCKER_PI_RELAY_ADDR = 0x10;

// रिले का चैनल।

सार्वजनिक स्थैतिक अंतिम बाइट DOCKER_PI_RELAY_1 = (बाइट)0x01;

सार्वजनिक स्थैतिक अंतिम बाइट DOCKER_PI_RELAY_2 = (बाइट) 0x02;

सार्वजनिक स्थैतिक अंतिम बाइट DOCKER_PI_RELAY_3 = (बाइट) 0x03;

सार्वजनिक स्थैतिक अंतिम बाइट DOCKER_PI_RELAY_4 = (बाइट) 0x04;

// रिले स्थिति

सार्वजनिक स्थैतिक अंतिम बाइट DOCKER_PI_RELAY_ON = (बाइट) 0xFF;

सार्वजनिक स्थैतिक अंतिम बाइट DOCKER_PI_RELAY_OFF = (बाइट) 0x00;

सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args) इंटरप्टेड एक्सेप्शन फेंकता है, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {

अंतिम कंसोल कंसोल = नया कंसोल ();

I2CBus i2c = I2CFactory.getInstance(I2CBus. BUS_1);

I2CDउपकरण उपकरण = i2c.getDevice(DOCKER_PI_RELAY_ADDR);

console.println ("रिले चालू करें!");

डिवाइस.लिखें (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);

थ्रेड.स्लीप (500);

console.println ("रिले बंद करें!");

डिवाइस.लिखें (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);

}

}

सिफारिश की: