विषयसूची:

होम असिस्टेंट गीजर काउंटर इंटीग्रेशन: 8 स्टेप्स
होम असिस्टेंट गीजर काउंटर इंटीग्रेशन: 8 स्टेप्स

वीडियो: होम असिस्टेंट गीजर काउंटर इंटीग्रेशन: 8 स्टेप्स

वीडियो: होम असिस्टेंट गीजर काउंटर इंटीग्रेशन: 8 स्टेप्स
वीडियो: How to Assemble CCTV camera In Step By Step कैमरा की पूरी जानकारी 2024, जुलाई
Anonim
Image
Image
कार्य का सिद्धांत
कार्य का सिद्धांत

इस ट्यूटोरियल में मैं यह दिखाने जा रहा हूँ कि आप HASS (होम असिस्टेंट) में कस्टम सेंसर कैसे जोड़ते हैं, विशेष रूप से एक गीजर काउंटर लेकिन प्रक्रिया अन्य सेंसर के लिए भी समान है।

हम NodeMCU बोर्ड, एक arduino आधारित गीजर काउंटर और पहले से स्थापित होम असिस्टेंट का उपयोग करेंगे।

एकीकरण एक MQTT सर्वर (सार्वजनिक या निजी) पर आधारित होगा और मैं आपको इसके साथ कदम से कदम मिलाकर चलने वाला हूं।

यदि आप नहीं जानते कि गृह-सहायक क्या है, तो कृपया उनके पृष्ठ https://www.home-assistant.io/ पर जाएँ। यह एक प्रसिद्ध होम ऑटोमेशन प्लेटफॉर्म है जो बहुत अच्छी तरह से बनाए रखा गया है और उच्च अनुकूलन योग्य है।

आप इसके बारे में सीख रहे होंगे:

- गृह सहायक के लिए उन्नत विन्यास

- NodeMCU (विकास बोर्ड) और इसे Arduino IDE के साथ कैसे प्रोग्राम करें

- NodeMCU बोर्ड के लिए Arduino IDE का उपयोग करके OTA (ओवर द एयर अपडेट)

- सीरियल डिवाइस को NodeMCU से कैसे कनेक्ट करें

- linux पर मैन्युअल रूप से MQTT सर्वर इंस्टाल करना (वैकल्पिक)

मूलभूत पूर्वानुमान:

- आपके पास गृह सहायक है और चल रहा है

- आप इलेक्ट्रॉनिक्स के बारे में कुछ जानते हैं

- आपके पास Arduino IDE स्थापित है

चरण 1: पुर्जे और उपकरण

भाग:

1. नोडएमसीयू बोर्ड

2. ब्रेडबॉर्ड

3. नर-नर और नर-मादा जुपर तार

3. यूएसबी से माइक्रो यूएसबी केबल

4. सीरियल इंटरफ़ेस के साथ arduino geiger काउंटर

("आर्डिनो गीगर कूटर" के लिए ईबे खोजें)

5. रेडियोधर्मी सामग्री (वैकल्पिक एक छोटा परीक्षण नमूना)

उपकरण:

1. अरुडिनो आईडीई

2. गृह सहायक स्थापित

चरण 2: कार्य का सिद्धांत

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

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

कुछ कारणों से यह एक अच्छा विचार क्यों नहीं हो सकता है:

- वहां कोई भौतिक स्थान नहीं है

- हमारे पास सीरियल पोर्ट पर कुछ और डिवाइस है

- हम एक पर्यावरण सेंसर संलग्न करना चाहते हैं जिसे गीजर काउंटर के बजाय बाहर रखा जाना चाहिए

ठीक है तो हम वाईफ़ाई के माध्यम से कनेक्शन बनाने की एक और संभावना तलाशने जा रहे हैं:

HASS सेंसर डेटा को पढ़ने और यह प्रदर्शित करने का समर्थन करता है कि MQTT सर्वर के माध्यम से, इस प्रकार का सर्वर छोटे उपकरणों के लिए एक लाइट वेट कनेक्शन है, एक डिवाइस "विषय" पर एक संदेश प्रकाशित करता है और दूसरा उस विषय पर संदेश प्राप्त करने के लिए सुनता है। तो HASS सुनेगा, और हमें कुछ ऐसा चाहिए जो संदेश को प्रकाशित करे।

हमारा सेंसर केवल सीरियल लाइन पर बात करना जानता है इसलिए हम एक बोर्ड का उपयोग करेंगे जो एक सीरियल लाइन पढ़ सकता है और जो वाईफ़ाई से कनेक्ट हो सकता है और एमक्यूटीटी सर्वर से बात कर सकता है। ऐसा करने वाला एक सस्ता बोर्ड NodeMCU है।

NodeMCU को Arduino IDE के साथ प्रोग्राम किया जा सकता है। स्केच बहुत सरल है, यह निम्न कार्य करता है:

- वाईफ़ाई से जुड़ता है

- सर्वर के साथ MQTT कनेक्शन बनाए रखता है और विफल या डिस्कनेक्ट होने पर कनेक्शन का पुन: प्रयास करता है

- सीरियल आने वाले डेटा को पूर्णांक की एक श्रृंखला के रूप में सुनता है

- एक बार एक पूर्णांक आने पर यह इसे MQTT के माध्यम से एक विशिष्ट विषय पर भेजता है

चरण 3: डिवाइस को इकट्ठा करें

डिवाइस को इकट्ठा करें
डिवाइस को इकट्ठा करें

हम ब्रेडबोर्ड और तारों का उपयोग करेंगे, इसलिए यह काफी सरल है, हमारे पास कुछ चरण हैं:

- NodeMCU को ब्रेडबोर्ड पर रखें

- गीजर ट्यूब को जाइगर काउंटर से कनेक्ट करें (ध्रुवीयता के लिए देखें)

- वीआईएन जाइगर काउंटर +. पर जाता है

- जीएनडी जाइगर काउंटर पर जाता है -

- NodeMCU D7 (पिन 13) जाइगर TX में जाता है

- NodeMCU D8 (पिन 15) जाइगर RX में जाता है

- कंप्यूटर से माइक्रो यूएसबी के माध्यम से पावर नोडएमसीयू

चरण 4: कोड अपलोड करें

कोड अपलोड करें
कोड अपलोड करें
कोड अपलोड करें
कोड अपलोड करें
कोड अपलोड करें
कोड अपलोड करें
कोड अपलोड करें
कोड अपलोड करें

हम Arduino IDE का उपयोग करने जा रहे हैं और हम सुनिश्चित करेंगे कि हमारे पास NodeMCU बोर्ड स्थापित है और Adafruit_MQTT लाइब्रेरी स्थापित है।

1. जीथब रिपॉजिटरी को क्लोन करें:https://github.com/danionescu0/arduino और प्रोजेक्ट/HASSGeigerIntegration से स्केच को अपने arduino स्केचबुक स्थान पर कॉपी करें

2. Arduino IDE खोलें और NodeMCU स्थापित करें

- फ़ाइल -> वरीयताएँ पर जाएँ, अतिरिक्त बोर्ड प्रबंधक URL में https://arduino.esp8266.com/stable/package_esp8266com_index.json जोड़ें यदि आपके पास पहले से कुछ है तो कोमा को सामने रखें और ठीक क्लिक करें

- टूल्स से -> बोर्ड -> बोर्ड मैनेजर "नोडेमकु" टाइप करें और ESP8266 कम्युनिटी द्वारा एंट्री esp8266 चुनें, और इंस्टॉल दबाएं

3. एडफ्रूट_एमक्यूटीटी स्थापित करें

- टूल्स पर जाएं -> लाइब्रेरी प्रबंधित करें -> "Adafruit_MQTT" खोजें और "Arduino MQTT लाइब्रेरी" इंस्टॉल करें

4. अपने कंप्यूटर में यूएसबी केबल प्लग इन करें और बोर्ड को कॉन्फ़िगर करें:

- टूल्स पर जाएं -> बोर्ड -> NodeMcu 1.0 चुनें

- टूल्स -> पोर्ट -> आपका यूएसबी पोर्ट

- अन्य सेटिंग्स को अपरिवर्तित छोड़ दें

4. स्केच में अपने वाईफ़ाई क्रेडेंशियल्स को अपने आप से मिलान करने के लिए बदलें:

#define STASSID "ssid" // अपने WIFI SSID से बदलें

#define STAPSK "पास" // अपने वाईफाई पासवर्ड से बदलें

5. स्केच को अपने बोर्ड पर अपलोड करें और अपलोड के बाद बटन से बोर्ड को रीसेट करें

6. सीरियल मॉनिटर खोलें, अगर सब ठीक हो गया है तो आपको कुछ इस तरह से आउटपुट देखना चाहिए:

बूटिंग

IP पता: 192.168.1.168 OTA सक्षम MQTT से कनेक्ट हो रहा है… MQTT कनेक्टेड! {"विकिरण": 0.03}..

चरण 5: HomeAssistant को कॉन्फ़िगर करें

HomeAssistant कॉन्फ़िगर करें
HomeAssistant कॉन्फ़िगर करें
HomeAssistant कॉन्फ़िगर करें
HomeAssistant कॉन्फ़िगर करें

हम यह मानने जा रहे हैं कि आपके पास गृह सहायक है और चल रहा है। मेरे सिस्टम पर मेरे पास रास्पबेरीपी पर HASSOS संस्करण 3.12 है। यदि आपके गृह सहायक का संस्करण बहुत पुराना है या बहुत नया है तो कुछ सुविधाएँ भिन्न हो सकती हैं। यह ट्यूटोरियल निश्चित रूप से 3.12 संस्करण के साथ काम करता है।

यदि आपके पास गृह सहायक स्थापित नहीं है, तो उनकी आधिकारिक स्थापना मार्गदर्शिका देखें:

स्थापना के साथ आगे बढ़ने से पहले सुनिश्चित करें कि NodeMCU प्लग किया गया है और यह डेटा प्रकाशित कर रहा है।

ठीक है, हमारे पास कॉन्फ़िगरेशन के लिए यहां भी चरणों की एक श्रृंखला होगी:

1. यदि आपके पास मेनू में "फ़ाइल संपादक" नहीं है, तो यहां आधिकारिक ट्यूटोरियल है:

2. "/config/configuration.yaml" फ़ाइल संपादित करें और निम्नलिखित जोड़ें और इसे सहेजें

- mqtt अनुभाग यदि आपके पास पहले से नहीं है

एमक्यूटीटी:

ब्रोकर: Broker.hivemq.com डिस्कवरी: ट्रू डिस्कवरी_प्रीफिक्स: हा

- सेंसर अनुभाग

सेंसर:

- मंच: एमक्यूटी नाम: "विकिरण" राज्य_विषय: "हेक्टेयर/विकिरण" इकाई_of_measurement: 'यूएसवी' अद्वितीय_आईडी: "विकिरण" value_template: "{{value_json.radiation}}"

3. कॉन्फ़िगरेशन से -> सर्वर नियंत्रण: "कॉन्फ़िगरेशन जांचें" दबाएं, त्रुटियों के लिए yaml कॉन्फ़िगरेशन फ़ाइल जांचें, और फिर "पुनरारंभ करें" दबाएं और इसके पुनरारंभ होने तक प्रतीक्षा करें

4. अवलोकन से -> शीर्ष दाएं कोने का मेनू -> UI कॉन्फ़िगर करें -> नीचे दाईं ओर से + बटन दबाएं

5. सूची से "सेंसर" चुनें -> "इकाई" फ़ील्ड में "सेंसर। विकिरण" खोजें, नाम फ़ील्ड में "विकिरण" लिखें और ठीक क्लिक करें, यह अब मुख्य पृष्ठ पर होना चाहिए

चरण 6: अपना खुद का MQTT सर्वर कॉन्फ़िगर करना [वैकल्पिक]

आइए MQTT के बारे में थोड़ी चर्चा करें

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

आधिकारिक MQTT 3.1.1 विनिर्देश से उद्धरण।

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

यहाँ MQTT के बारे में विस्तार से एक बेहतरीन ट्यूटोरियल दिया गया है: https://www.hivemq.com/mqtt- Essentials/

फ्री हाइव सर्वर का उपयोग करने के कुछ नुकसान हैं जैसे:

- आपके विषय को सुनने वाला कोई भी व्यक्ति आपके संदेश प्राप्त करेगा

- अगर यह कम हो जाता है या बाद में भुगतान की आवश्यकता होती है तो आप इसका उपयोग नहीं कर पाएंगे (जब तक आप भुगतान नहीं करते)

- यदि कोई एक ही विषय पर संदेश प्रकाशित करता है तो आपको उनके संदेश भी प्राप्त होंगे, वे असंगत संदेश प्रकाशित कर सकते हैं और आपके HASS ग्राफ़ को तोड़ सकते हैं

एक निजी सर्वर का उपयोग करना

यदि आप सार्वजनिक मुक्त सर्वर का उपयोग नहीं करना चाहते हैं तो आपके पास एक निजी सर्वर का विकल्प है। हम रास्पबेरी पाई या कंप्यूटर जैसे उबंटू / डेबियन सर्वर पर मच्छर एमक्यूटीटी स्थापित करने जा रहे हैं।

Mosquitto एक सर्वर है जो MQTT प्रोटोकॉल को लागू करता है और यह मुफ़्त है।

इसे स्थापित करने के लिए अपने रास्पबेरी पाई या अन्य डेबियन आधारित सर्वर में लॉग इन करें और चलाएं:

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

sudo apt install -y mosquitto mosquitto-clients sudo systemctl enable mosquitto.service

यह रिपॉजिटरी को अपडेट करेगा, मच्छर सर्वर और क्लाइंट को स्थापित करेगा और इसे स्टार्टअप पर चलाने के लिए एक सेवा को सक्षम करेगा

सर्वर आईपी निष्पादित करने के लिए:

होस्टनाम -I

और यह कुछ ऐसा आउटपुट करेगा:

192.168.1.52 172.17.0.1 172.18.0.1

तो मेरा आईपी 192.168.1.52 है, नीचे दिए गए आदेशों में इसे अपने स्वयं के आईपी से बदलें

आप एक संदेश प्रकाशित करके और इसे कंसोल टूल के साथ प्राप्त करके MQTT सर्वर का परीक्षण कर सकते हैं, इसके लिए दो टर्मिनलों को खोला जाना चाहिए जो एक संदेश सुनता है, एक जो संदेश प्रकाशित करेगा।

टर्मिनल में सबसे पहले "/some-topic" पर एक संदेश सुनने के लिए इस कमांड को चलाएं

mosquitto_sub -h 192.168.1.52 -t /some-topic

दूसरा टर्मिनल खोलें और उस विषय पर एक संदेश प्रकाशित करें:

mosquitto_pub -h 192.168.1.52 -t /some-topic -m '{"आर्द्रता": 74.0}'

पहले टर्मिनल में आपको '{"humidity": 74.0}' प्रिंट आउट देखना चाहिए।

विशेष ध्यान:

- यह सेटअप मानता है कि HASS, Mosquitto और NodeMCU एक ही WIFI नेटवर्क से जुड़े हैं और कोई फ़ायरवॉल नियम नहीं हैं और वे स्वतंत्र रूप से संचार कर सकते हैं

- Mosquitt MQTT सर्वर का कोई उपयोगकर्ता नाम/पासवर्ड नहीं है, यदि आप क्रेडेंशियल सेटअप करना चाहते हैं तो इसे देखें: https://www.steves-internet-guide.com/mqtt-username-password-example/ इसके अलावा आपको कॉन्फ़िगर करने की आवश्यकता होगी गृह सहायक और आर्डिनो स्केच में साख

चरण 7: NodeMCU के लिए OTA (ओवर द एयर अपडेट)

ओवर द एयर अपडेट का मतलब है कि विकास बोर्ड को बिना किसी भौतिक केबल के वायरलेस तरीके से फ्लैश किया जा सकता है।

Arduino IDE ESP8266 श्रृंखला और कुछ अन्य बोर्डों के लिए इस कार्यक्षमता का समर्थन करता है:

- यूएसबी केबल पर प्रारंभिक फ्लैश की आवश्यकता है

- वाईफ़ाई पर एक वर्चुअल पोर्ट बनाता है और यह केवल Arduino IDE से दिखाई देता है

- कोई सीरियल डिबग जानकारी उपलब्ध नहीं है

- पासवर्ड के साथ सुरक्षा का समर्थन करता है

ESP8266 स्केच में OTA को सक्षम करने के लिए पहले पुस्तकालय को शामिल करें:

#शामिल "ArduinoOTA.h"

इस स्केच पासवर्ड को स्थिरांक भी परिभाषित करें:

# SKETCHPASS को परिभाषित करें "some_password"

सेटअप अनुभाग में इन पंक्तियों को जोड़ें:

जबकि (WiFi.waitForConnectResult() != WL_CONNECTED) {

Serial.println ("कनेक्शन विफल! रीबूटिंग …"); देरी (5000); ईएसपी.पुनरारंभ (); } ArduinoOTA.setPassword(SKETCHPASS); ArduinoOTA.onStart(() { स्ट्रिंग प्रकार; अगर (ArduinoOTA.getCommand() == U_FLASH) {टाइप = "स्केच"; } और {// U_FS टाइप = "फाइल सिस्टम"; } Serial.println ("अपडेट करना शुरू करें" "+ प्रकार);}); ArduinoOTA.onEnd(() {Serial.println("\nEnd"); }); ArduinoOTA.onProgress ( (अहस्ताक्षरित इंट प्रगति, अहस्ताक्षरित इंट टोटल) { सीरियल.प्रिंटफ ("प्रगति:% u%% / r", (प्रगति / (कुल / 100))); }); ArduinoOTA.onError ( (ota_error_t त्रुटि) {Serial.printf ("त्रुटि [% u]:", त्रुटि); अगर (त्रुटि == OTA_AUTH_ERROR) {Serial.println ("प्रामाणिक विफल"); } और अगर (त्रुटि == OTA_BEGIN_ERROR) { Serial.println ("Begin Failed"); } और अगर (त्रुटि == OTA_CONNECT_ERROR) { Serial.println ("कनेक्ट विफल"); } और अगर (त्रुटि == OTA_RECEIVE_ERROR) { Serial.println (" प्राप्त करने में विफल"); } और अगर (त्रुटि == OTA_END_ERROR) { Serial.println ("अंत विफल"); }}); ArduinoOTA.begin (); सीरियल.प्रिंट ("आईपी पता:"); Serial.println (वाईफाई.लोकलआईपी ());

और लूप सेक्शन में इस लाइन को जोड़ें:

ArduinoOTA.हैंडल ();

बोर्ड के बूट होने के बाद आपके प्रारंभिक कोड अपलोड के बाद आपको Arduino IDE में Tools-> पोर्ट सेक्शन में दो प्रकार के पोर्ट देखने चाहिए:

सीरियल पोर्ट: /dev/ttyUSB0 (उदाहरण के लिए)

नेटवर्क पोर्ट: esp8266-xxxxx 192.168.1.xxx पर

अब आप नेटवर्क पोर्ट का चयन कर सकते हैं और स्केच रिमोट अपलोड कर सकते हैं, आपको स्केच पासवर्ड के लिए कहा जाएगा (जिसे आपने ऊपर स्थिरांक में परिभाषित किया है)

चरण 8: निष्कर्ष, भविष्य का कार्य

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

- यदि आपका सेंसर लाइब्रेरी के माध्यम से सीधे NodeMCU द्वारा समर्थित है, तो बस सेंसर से डेटा पूल करें और इसे सीधे MQTT के माध्यम से पुश करें

- यदि सेंसर लाइब्रेरी NodeMCU के साथ काम नहीं करती है, लेकिन यह केवल Arduino के लिए है, तो अपना कोड arduino पर अपलोड करें, सीरियल लाइन के माध्यम से मान को आउटपुट करें और इसे NodeMCU में पढ़ें और इसे पुश करें (जैसे हमने गीजर काउंटर के साथ किया था)

हम इसे कई सेंसर से डेटा भेजने के लिए संशोधित भी कर सकते हैं जैसे:

- अपने सेंसर को NodeMCU से कनेक्ट करें

- प्रत्येक सेंसर से मतदान डेटा

- प्रत्येक सेंसर के लिए डेटा को एक अलग विषय पर प्रकाशित करें

- HASS में कई सेंसर परिभाषित करें (जैसे हमने गीजर के साथ किया) जो विभिन्न विषयों को सुनेंगे

सिफारिश की: