विषयसूची:

TheAir - गैस सेंसर परियोजना: १० कदम
TheAir - गैस सेंसर परियोजना: १० कदम

वीडियो: TheAir - गैस सेंसर परियोजना: १० कदम

वीडियो: TheAir - गैस सेंसर परियोजना: १० कदम
वीडियो: Factory Cardboard model for school project step by step 2024, नवंबर
Anonim
TheAir - गैस सेंसर परियोजना
TheAir - गैस सेंसर परियोजना

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

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

एक छात्र, माता-पिता, एकल व्यक्ति या जीवित प्राणी के रूप में। यह कुछ ऐसा है जिसे आप आमतौर पर अपने घर के आराम में रहने से बचना चाहेंगे। यह उन लोगों की मदद करता है जो अपने जीवन को थोड़ा आसान बनाना पसंद करते हैं।

आपूर्ति

  • रास्पबेरी पाई 3+
  • मिनी-यूएसबी चार्जर 5V/2.5A
  • माइक्रो एसडी कार्ड
  • सेंसर

    • एमक्यू-7 (सीओ)
    • एमक्यू-135 (सीओ2)
    • DS18B20 (तापमान)
  • 2 एक्स 12 वी डीसी प्रशंसक
  • 2 x 2n2222 ट्रांजिस्टर
  • एलसीडी 16*2 डिस्प्ले
  • दबाने वाला बटन
  • एमसीपी3008
  • लोगी स्तर कनवर्टर
  • ईथरनेट केबल (सेटअप कारणों से)

चरण 1: रास्पबेरी पाई सेटअप

रास्पबेरी पाई सेटअप
रास्पबेरी पाई सेटअप
रास्पबेरी पाई सेटअप
रास्पबेरी पाई सेटअप

आरपीआई के साथ काम करने से पहले, हमें कुछ सॉफ्टवेयर की आवश्यकता होगी।

  • WinSCP या FilleZilla (वैकल्पिक यदि आप अपने कंप्यूटर से RPI में फ़ाइलें स्थानांतरित करना चाहते हैं)
  • Win32 डिस्क या एचर (जिसे आप अधिक पसंद करते हैं)
  • पुट्टी या MobaXterm (जिसे आप अधिक पसंद करते हैं)
  • डेस्कटॉप के साथ रास्पियन छवि

शुरू करने से पहले मैं यह उल्लेख करना चाहूंगा कि इस ट्यूटोरियल को बनाते समय, जब मैं दूसरे पर एक प्रोग्राम चुनता हूं, तो इसका मतलब यह नहीं है कि मैं इसकी अनुशंसा करता हूं। उदाहरण के लिए मैं एचर का उपयोग करना पसंद करता हूं क्योंकि अधिक उपयोगकर्ता के अनुकूल है लेकिन Win32 में बैकअप बनाने का विकल्प है। अब यह मेरे सिस्टम से बाहर है, चलिए शुरू करते हैं।

यदि आपके पास पहले से ही एक आरपीआई है जो आपके वाईफाई नेटवर्क से जुड़ा है, तो चरण 3 पर जाएं।

सबसे पहले हम आपके एसडी कार्ड पर रास्पियन छवि डालने के लिए एचर का उपयोग करने जा रहे हैं। अब इससे पहले कि हम एसडी कार्ड निकालें, हम cmdline.txt फ़ाइल में कुछ "सामान" बदलने जा रहे हैं, जो छवि में पाया जा सकता है।.txt फ़ाइल खोलें -> इस पंक्ति को जोड़ें "ip=169.254.10.1" (कोई उद्धरण चिह्न नहीं) पंक्ति के अंत में (सभी 1 पंक्ति पर) -> फ़ाइल सहेजें

दूसरा बूट-पार्टीशन (बिना उद्धरण चिह्नों के) में "ssh" नामक एक खाली फ़ोल्डर बनाएं।

उसके बाद आप सुरक्षित रूप से माइक्रोएसडी को बाहर निकाल सकते हैं और इसे आरपीआई में डाल सकते हैं।

हार्ड कोडेड स्टेटिक आईपी का कारण आरपीआई से कनेक्ट करना आसान बनाना है। अगर किसी कारण से आरपीआई के पास डीएचसीपी के साथ आईपी नहीं है तो आप आसानी से स्थिर आईपी का उपयोग कर सकते हैं।

चरण 2: कनेक्शन बनाना और आरपीआई वायरलेस को अपने स्थानीय नेटवर्क से जोड़ना

कनेक्शन बनाना और आरपीआई वायरलेस को अपने स्थानीय नेटवर्क से जोड़ना
कनेक्शन बनाना और आरपीआई वायरलेस को अपने स्थानीय नेटवर्क से जोड़ना
कनेक्शन बनाना और आरपीआई वायरलेस को अपने स्थानीय नेटवर्क से जोड़ना
कनेक्शन बनाना और आरपीआई वायरलेस को अपने स्थानीय नेटवर्क से जोड़ना
कनेक्शन बनाना और आरपीआई वायरलेस को अपने स्थानीय नेटवर्क से जोड़ना
कनेक्शन बनाना और आरपीआई वायरलेस को अपने स्थानीय नेटवर्क से जोड़ना
कनेक्शन बनाना और आरपीआई वायरलेस को अपने स्थानीय नेटवर्क से जोड़ना
कनेक्शन बनाना और आरपीआई वायरलेस को अपने स्थानीय नेटवर्क से जोड़ना

हम आरपीआई को बूट करने जा रहे हैं -> कंप्यूटर और आरपीआई के बीच ईथरनेट केबल कनेक्ट करें।

  1. पुट्टी शुरू करें और इसे भरें:

    • होस्ट नाम (या आईपी पता): 169.254.10.1
    • पोर्ट: 22
  2. एक टर्मिनल पॉप अप होता है और आप डिफ़ॉल्ट उपयोगकर्ता नाम और पासवर्ड टाइप करते हैं:

    • उपयोगकर्ता नाम: पीआई
    • पासवर्ड: रास्पबेरी

अब जब हम स्थानीय रूप से आरपीआई से जुड़े हुए हैं, हम चाहते हैं कि आरपीआई आपके वाईफाई से जुड़ा हो।

  1. अतिरिक्त: "sudo raspi-config" टाइप करें
  2. यहां आपको पीआई यूजर के लिए पासवर्ड बदलना होगा (सुरक्षा कारणों से)
  3. बाद में स्थानीयकरण विकल्प पर जाएं -> समय बदलें (सही चुनें) -> फिर वाईफाई देश पर जाएं -> देश चुनें।
  4. रास्पि-कॉन्फ़िगरेशन बंद करें और रीबूट करें।
  5. लॉग इन होने पर, अस्थायी रूप से अपने आप को रूट उपयोगकर्ता बनाएं -> sudo -i
  6. अपने नेटवर्क को आरपीआई में जोड़ने के लिए यह आदेश लिखें (सूची के नीचे कोड)

    • पासवर्ड = "पासवर्ड" (उद्धरण चिह्नों के साथ)
    • नाम नेटवर्क = "एसएसआईडी"
    • डबल >> का उपयोग करना याद रखें!महत्वपूर्ण!

इको "पासवर्ड" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

अब फिर से रिबूट करें।

पुन: कनेक्ट करते समय, टाइप करके अपना आईपी जांचें:

ifconfig

और inet के आगे wlan0 चेक करें।

अब जब हमारे पास इंटरनेट कनेक्शन है, तो चलिए एक "त्वरित" अपडेट करते हैं।

सुडो उपयुक्त अद्यतन

सुडो एपीटी डिस्ट-अपग्रेड -वाई

इसमें कुछ समय लग सकता है।

चरण 3: सेंसर DS18B20 (तापमान) - 1-तार

सेंसर DS18B20 (तापमान) - 1-तार
सेंसर DS18B20 (तापमान) - 1-तार
सेंसर DS18B20 (तापमान) - 1-तार
सेंसर DS18B20 (तापमान) - 1-तार

हर प्रोजेक्ट के साथ, हमेशा कुछ खास होता है जो किया जाना है या नहीं तो यह काम नहीं करेगा।

इस बार हमारे पास यह DS18B20 तापमान सेंसर के साथ है जिसके लिए 1-तार की आवश्यकता होती है जिसे मैं नहीं समझाऊंगा लेकिन मैं समझाऊंगा कि इसे कम से कम कैसे काम करना है।

इसके लिए हमें आरपीआई, अच्छी नीली स्क्रीन पर रास्पि-कॉन्फ़िगरेशन पर वापस जाना होगा।

  1. इंटरफेसिंग विकल्पों पर जाएं
  2. 1-वायर चुनें और सक्षम करें चुनें।

किया हुआ…

मजाक था।

अब हमें /boot/config.txt को एडजस्ट करना होगा

सुडो नैनो /boot/config.txt

इस लाइन को सबसे नीचे जोड़ें।

# वनवायर सक्षम करें

dtoverlay=w1-gpio

अब sudo उस चीज़ को रीबूट करें और अब हम कर चुके हैं।

यह जांचने के लिए कि क्या यह काम करता है, सेंसर को आरपीआई से कनेक्ट करें और फिर टर्मिनल पर वापस जाएं और इस कोड को टाइप करें (तापमान सेंसर को कैसे कनेक्ट करें पर अगला चरण हार्डवेयर देखें)।

सीडी /sys/बस/w1/डिवाइस/w1_bus_master1

रास

आपको ऊपर बाईं ओर गहरे नीले रंग में संख्याओं और अक्षरों के साथ कुछ देखना चाहिए, इस जानकारी को बाद के लिए लिखना सुनिश्चित करें जब हम जीथब से कोड के साथ काम करेंगे।

अगर किसी कारण से यह काम नहीं करता है, तो इस लिंक को देखें जो इसमें गहराई से जाता है।

चरण 4: MCP3008 - एनालॉग सेंसिंग

MCP3008 - एनालॉग सेंसिंग
MCP3008 - एनालॉग सेंसिंग
MCP3008 - एनालॉग सेंसिंग
MCP3008 - एनालॉग सेंसिंग

जैसा कि हमने तापमान सेंसर के लिए एक बदलाव किया है, हमें अन्य सेंसर के लिए भी कुछ बदलाव करने की आवश्यकता है क्योंकि उन्हें हमें एनालॉग डेटा में पढ़ने की आवश्यकता है। यह जहाँ MCP3008 काम आता है, हमें SPI इंटरफ़ेस को भी बदलने की आवश्यकता है।

सुडो रास्पि-कॉन्फ़िगरेशन

इंटरफेसिंग विकल्प पर जाएं -> एसपीआई चुनें -> सक्षम करें।

फिर समाप्त करें।

चरण 5: हार्डवेयर

हमने आरपीआई के साथ पूरी तरह से काम नहीं किया है, लेकिन इतना है कि हम हार्डवेयर का निर्माण और एक साथ रखना शुरू कर सकते हैं।

कुछ सलाह यह है कि निर्माण करते समय अपने कनेक्शनों को अच्छी तरह से जांच लें ताकि यह सुनिश्चित हो सके कि आप … आरपीआई को उड़ा नहीं रहे हैं।

साथ ही, योजनाबद्ध में आप देखेंगे कि कुछ घटक उस पर केवल एक बार हैं, भले ही हम एक ही घटक के 1 से अधिक के साथ काम कर रहे हों। इसका सीधा सा मतलब है कि आपको उस 1 घटक के निर्माण की उसी प्रक्रिया को दोहराना होगा। 1 छोटा अपवाद है, mq-x सेंसर को अतिरिक्त स्तर के कनवर्टर या MCP3008 की आवश्यकता नहीं है। लेवल कन्वर्टर और MCP3008 में बस एक अतिरिक्त ग्रीन केबल (पीडीएफ में) जोड़ें।

अतिरिक्त संपादन: प्रशंसकों को स्विच के रूप में एक ट्रांजिस्टर का उपयोग करने की आवश्यकता होती है। मैं 1 पंखे के लिए 2n2222A ट्रांजिस्टर का उपयोग करता हूं, क्योंकि 2 पंखे भारी भार वाले हो सकते हैं।

यदि आपके पास एक ट्रांजिस्टर है जो एक बड़े करंट को संभाल सकता है तो अच्छा है, इस चरण के अंतिम भाग को छोड़ दें।

यदि आपके पास मेरे जैसा कोई नहीं है, तो आपको इसे इस तरह करने की आवश्यकता होगी, 1 पंखा = 1 ट्रांजिस्टर, 2 पंखे = 2 ट्रांजिस्टर, और इसी तरह (प्रत्येक पंखे का अपना ट्रांजिस्टर + डायोड है जैसा कि पीडीएफ में है)।

आपको बाद में चरण 7: Git कोड… में backend_project में app.py में कुछ कोड जोड़ने की आवश्यकता होगी।

चरण 6: एक मारियाडब डेटाबेस बनाना

एक मारियाडब डेटाबेस बनाना
एक मारियाडब डेटाबेस बनाना

जैसा कि शीर्षक का तात्पर्य है, हम एक डेटाबेस बनाने जा रहे हैं ताकि हमारे पास हमारे सेंसर डेटा को स्टोर करने के लिए जगह हो।

सबसे पहले चीज़ें, आरपीआई पर मारियाडब डाउनलोड करें।

sudo apt-mariadb-server स्थापित करें

स्थापना के बाद, चलिए इसका उपयोग करते हैं।

mysql -यू रूट

पासवर्ड खाली है, इसलिए टाइप करने के लिए कुछ भी नहीं है। एंटर दबाए।

चलिए अब एक यूजर बनाते हैं।

'userdb' द्वारा पहचाने गए उपयोगकर्ता 'उपयोगकर्ता'@'%' बनाएं;

*.* पर 'उपयोगकर्ता'@'%' को अनुदान विकल्प के साथ सभी विशेषाधिकार प्रदान करें;

फ्लश विशेषाधिकार;

बाहर निकलने के लिए Ctrl + C दबाएं और सेवा का त्वरित पुनरारंभ करें:

sudo सेवा mysql पुनरारंभ करें

उपयोगकर्ता नाम के साथ लॉगिन करें: उपयोगकर्ता और पासवर्ड: userdb:

mysql -u उपयोगकर्ता -p

अब डेटाबेस बनाने का समय आ गया है।

डेटाबेस प्रोजेक्ट बनाएं_डीबी डिफॉल्ट कैरेक्टर सेट utf8;

प्रोजेक्ट_डीबी. का उपयोग करें

एक तालिका बनाएं "हिस्टोरिक" (मतलब इतिहास)।

यदि मौजूद नहीं है तो तालिका बनाएं `इतिहास` (`id` पूर्ण AUTO_INCREMENT नहीं है, `सेंसरआईडी` वर्चर(५) नॉट न्यूल, `डेटम` डेटाटाइम नॉट डिफॉल्ट CURRENT_TIMESTAMP, `वार्डे` फ्लोट(४) न्यूल डिफॉल्ट ०, प्राथमिक कुंजी (`id`)) इंजन = इनो डीबी;

और वोइला, डेटाबेस बनाया गया है।

चरण 7: जीथब कोड और परीक्षण

जीथब कोड और परीक्षण
जीथब कोड और परीक्षण

हम अपनी परियोजना के अंत के करीब पहुंच रहे हैं।

कोड प्राप्त करने से पहले, हमें आरपीआई में कुछ मॉड्यूल आयात करने होंगे:

pip3 फ्लास्क_MySQL स्थापित करें

pip3 फ्लास्क-सॉकेटियो स्थापित करें

pip3 इंस्टाल -यू फ्लास्क-कोर्स

pip3 स्थापित करें spiddev

अब हमें इसे काम करने के लिए कोड की आवश्यकता है, टर्मिनल में टाइप करें:

गिट क्लोन

जांचें कि क्या फ़ोल्डर वहां है:

रास

अब आपको 2 टर्मिनलों की आवश्यकता होगी, इसलिए टर्मिनल पर राइट-क्लिक करना और डुप्लिकेट सत्र पर क्लिक करना आसान है:

cd कमांड का उपयोग करके बैकएंड_प्रोजेक्ट और तापमान पर जाएं।

अब इससे पहले कि हम परीक्षण उद्देश्यों के लिए कार्यक्रम शुरू करें। क्या आपको अभी भी चरण 3 याद है जिसमें 1-वायर सेंसर है जहां आपको कुछ नंबर लिखने की आवश्यकता है? यदि आपके पास कोई चिंता नहीं है, तो बस चरण ३ पर फिर से एक नज़र डालें।

हम इन नंबरों को कोड में जोड़ने जा रहे हैं क्योंकि इसका उपयोग करते समय इसे सही सेंसर को जानना होगा।

तापमान फ़ोल्डर वाला टर्मिनल, आपको app.py. हम इसे खोलने जा रहे हैं।

sudo nano app.py

उस फ़ंक्शन की तलाश करें जिसे "डीफ़ टेम्पराटुउर ():" कहा जाता है, वहां आपको "**" को आपके द्वारा लिखे गए नंबरों से बदलना होगा। मेरे मामले में मुझे यह कोड की यह पंक्ति मिल जाएगी (प्रत्येक संख्या अद्वितीय है)।

सेंसर_फाइल_नाम = '/ sys/डिवाइस/w1_bus_master1/28-0316a4be59ff/w1_slave

परीक्षण का समय। बैकएंड_प्रोजेक्ट और तापमान फ़ोल्डर दोनों में दोनों टर्मिनल, टाइप करें:

python3 app.py

अब चरण 5 याद रखें: यदि आप एक से अधिक पंखे और ट्रांजिस्टर का उपयोग कर रहे हैं तो हार्डवेयर जहां आपको कोड जोड़ने की आवश्यकता है?

ठीक है, अगर चरण 5 पर वापस नहीं जाते हैं।

जैसा कि मैंने बैकएंड_प्रोजेक्ट में app.py में उल्लेख किया है, अब हमें कोड जोड़ने की आवश्यकता है। इसे आसान बनाने के लिए, मैंने कोड में इसका एक उदाहरण बनाया। टिप्पणी कोड की प्रत्येक पंक्ति जिसमें "fan1" है, उन पंक्तियों और वॉइला को अनकम्मेंट करें, अब आप 2 प्रशंसकों का उपयोग कर सकते हैं।

यदि आप अधिक उपयोग करना चाहते हैं तो सिर्फ 2 पंखे, उसी कोड को कॉपी और पेस्ट करें लेकिन एक अलग नंबर के साथ। इसका नुकसान आपके लिए अधिक व्यक्तिगत कार्य है और कम gpio.pins उपलब्ध हैं। इसके कोई फायदे नहीं हैं जिनके बारे में मुझे पता है।

चरण 8: बूट अप पर कोड चलाएँ

बूट अप पर कोड चलाएँ
बूट अप पर कोड चलाएँ

हम चाहते हैं कि ये 2 पायथन स्क्रिप्ट हमारे आरपीआई के बूट होने के क्षण को चलाएं और यदि कोई स्क्रिप्ट क्रैश हो जाती है, तो उसे अपने आप पुनः आरंभ करना चाहिए। ऐसा करने के लिए हम 2 सेवाएं बनाने जा रहे हैं।

ऐसा करने के लिए, टाइप करें:

सुडो नैनो /etc/systemd/system/temperature.service

इसे एक तापमान के लिए कॉपी और पेस्ट करें। सेवा:

[इकाई]विवरण=तापमान सेवा के बाद=multi-user.target

[सेवा] प्रकार = सरल

ExecStart=/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py

मानक इनपुट = ट्टी-बल

पुनरारंभ = विफलता पर

पुनरारंभ करेंसेक = 60s

[इंस्टॉल]

वांटेडबाय=मल्टी-यूजर.टारगेट

बंद करें और फिर से करें लेकिन फिर backend_project.service के लिए:

पहला खुला पाठ:

सुडो नैनो /etc/systemd/system/backend_project.service

फिर फिर से कॉपी और पेस्ट करें:

[इकाई]विवरण=बैकएंड_प्रोजेक्ट सेवा

बाद = बहु-उपयोगकर्ता। लक्ष्य

[सेवा]

प्रकार = सरल

ExecStart=/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py

मानक इनपुट = ट्टी-बल

पुनरारंभ = विफलता पर

पुनरारंभ करेंसेक = 60s

[इंस्टॉल]

वांटेडबाय=मल्टी-यूजर.टारगेट

सहेजें और बंद करें।

अंतिम भाग इसे टाइप कर रहा है:

sudo systemctl डेमॉन-रीलोड

sudo systemctl तापमान सक्षम करें। सेवा sudo रिबूट

अब हमारी 2 पायथन स्क्रिप्ट बूट पर स्वचालित रूप से चलनी चाहिए।

चरण 9: सेटअप वेबसाइट

जब आप रिपॉजिटरी डाउनलोड करते हैं, तो आपको एक फोल्डर भी मिल जाना चाहिए जिसे फ्रंट कहा जाता है। यह वह जगह है जहाँ सामग्री वेबसाइट के लिए है।

फ़ोल्डर का उपयोग करने से पहले हमें पहले अपाचे की आवश्यकता होती है। अपाचे के लिए इस लिंक पर गाइड का पालन करें।

जब आप तैयार हों। उस स्थान पर जाएँ जहाँ सामने वाला फ़ोल्डर स्थित है:

सीडी /दस्तावेज़/nmct-s2-project-1-TheryBrian

फिर टाइप करें:

सुडो एमवी फ्रंट /var/www/html

जब यह हो जाए, तो html फ़ोल्डर में जाएं, कुछ थकाऊ काम (मेरी गलती) के लिए तैयार करें।

सीडी /var/www/html/

फिर फ्रंट फोल्डर में जाएं और सब कुछ html फोल्डर में ले जाना शुरू करें।

उदाहरण:

सुडो एमवी सीएसएस /var/www/html

इसके बाद फ्रंट फोल्डर को डिलीट कर दें।

और हम सब कुछ कर चुके हैं।

आपको कामयाबी मिले:) ।

चरण 10: वैकल्पिक - लघु प्रोटोटाइप

वैकल्पिक - लघु प्रोटोटाइप
वैकल्पिक - लघु प्रोटोटाइप
वैकल्पिक - लघु प्रोटोटाइप
वैकल्पिक - लघु प्रोटोटाइप

परीक्षण कारणों से मैंने सभी हार्डवेयर के साथ सिर्फ एक बॉक्स का प्रोटोटाइप बनाया ताकि मैं देख सकूं कि सब कुछ ऑर्डर करने के लिए काम करता है या नहीं।

आम तौर पर यह परियोजना बड़े पैमाने पर की जाएगी। उदाहरण के लिए: एक कमरा, एक घर, एक कारखाना, एक दुकान वगैरह…

लेकिन जाहिर है इससे पहले कि हम दीवारों में छेद करना शुरू करें (अच्छी कविता)। हम पहले यह देखना चाहते हैं कि क्या यह काम करता है। आपको वास्तव में परीक्षण के लिए एक बॉक्स बनाने की आवश्यकता नहीं है, लेकिन कुछ क्राफ्टिंग करना हमेशा मजेदार होता है।

यहाँ मेरा उदाहरण है।

सिफारिश की: