विषयसूची:
- चरण 1: वैश्विक योजना
- चरण 2: शेमैटिक / वायरिंग
- चरण 3: शक्ति प्रबंधन
- चरण 4: मैग्नेट और रीड्स संपर्क स्थापित करना
- चरण 5: माई लिटिल हाउस से कनेक्ट करें
- चरण 6: सदन में …
- चरण 7: इसे टर्नटेबल दें …
- चरण 8: कुछ परीक्षण
- चरण 9: छोटा घर
- चरण 10: स्केच
- चरण 11: डोमोटिक्ज़
- चरण 12: निष्कर्ष
वीडियो: कनेक्टेड लेटरबॉक्स सोलर पावर्ड: 12 स्टेप्स (चित्रों के साथ)
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:22
अपने दूसरे Ible के लिए, मैं आपको अपने जुड़े हुए लेटरबॉक्स के बारे में अपने कार्यों का वर्णन करूंगा।
इस इंस्ट्रक्शनल (+ कई अन्य) को पढ़ने के बाद, और चूंकि मेरा लेटरबॉक्स मेरे घर के पास नहीं है, इसलिए मैं अपने लेटरबॉक्स को अपने डोमोटिक्ज़ सर्वर से जोड़ने के लिए ओपन ग्रीन एनर्जी के कार्यों के लिए मुझे प्रेरित करना चाहता था।
लक्ष्य
- जब पत्र आ रहे हों तो टेलीग्राम से सलाह लें;
- जब कोई पार्सल आ रहा हो तो टेलीग्राम से सलाह लें;
- जांचें कि क्या पत्र / पार्सल उठाए गए हैं।
मेरी मुख्य बाधा
मेलबॉक्स घर से अपेक्षाकृत दूर है, और किसी भी चीज को बिजली देने के लिए बिजली के केबल को ऊपर खींचना असंभव था।
मुझे एक और समाधान खोजना था: सौर ऊर्जा एक अच्छा समाधान था!
बीओएम
- रास्पबेरी पाई (एमक्यूटीटी और डोमोटिकज़ भागों की मेजबानी करने के लिए - यहां वर्णित नहीं है)
- एक टेलीग्राम बॉट खाता
- लोलिन डी१ मिनी (या वेमोस…)
- प्लग-इन स्क्रू टर्मिनल ब्लॉक कनेक्टर
- TP4056 लिथियम बैटरी चार्जिंग बोर्ड
- 6V 2W फोटोवोल्टिक सौर पैनल
- ली-आयन 18650 बैटरी
- ली-आयन बैटरी धारक
- पीसीबी DIY सोल्डरिंग कॉपर प्रोटोटाइप मुद्रित सर्किट बोर्ड
- एनालॉग सर्वो SG90
- 3 रीड स्विच (एक पत्र के लिए, एक पार्सल के लिए और एक चेकआउट के लिए)
- चुम्बक
- कुछ तार
- लकड़ी का टोकरा: जैसा कि कोई 3 डी प्रिंटर नहीं मिला, मुझे अपने छोटे से घर में लकड़ी के साथ इलेक्ट्रॉनिक्स भागों को प्राप्त करने का एहसास हुआ …
- अतिरिक्त ईथरनेट केबल
-
RJ45 ईथरनेट कनेक्टर ब्रेकआउट बोर्ड
- जे-बी वेल्ड
- कुछ बॉल बेयरिंग
- पेंच, नट, वाशर
चरण 1: वैश्विक योजना
सुंदर चित्र हमेशा लंबे भाषणों से बेहतर होते हैं;-)
लेकिन MQTT, Domoticz और Telegram के बारे में कुछ स्पष्टीकरणों का हमेशा स्वागत है!
MQTT (मैसेज क्यूइंग टेलीमेट्री ट्रांसपोर्ट), एक मैसेजिंग प्रोटोकॉल है, जिसका इस्तेमाल IoT (इंटरनेट ऑफ थिंग्स) की दुनिया में उपकरणों और अन्य प्रणालियों के बीच डेटा भेजने के लिए किया जाता है।
बहुत अधिक विवरण में जाने के बिना, इसका संचालन सर्वर से कनेक्ट होने वाले क्लाइंट के सिद्धांत पर आधारित है। MQTT में, क्लाइंट को सब्सक्राइबर या पब्लिशर कहा जाता है, और सर्वर को ब्रोकर कहा जाता है।
इस निर्देशयोग्य में, मैं केवल एक प्रकाशक का उपयोग करता हूं, मेरे लेटरबॉक्स में वायर्ड लोलिन: जब लेटरबॉक्स में स्थापित रीड संपर्कों के माध्यम से पत्र या पार्सल का पता लगाया जाता है (शेमैटिक में चरण 1), तो यह ब्रोकर को वाईफ़ाई पर MQTT संदेश भेजता है (चरण २))
ब्रोकर का हिस्सा मॉस्किटो द्वारा किया जाता है, जो रास्पबेरी पाई (चरण 3) पर स्थापित होता है।
डोमोटिकज़ के बारे में:
जैसा कि स्रोत पृष्ठ पर वर्णित है, डोमोटिकज़ एक "होम ऑटोमेशन सिस्टम" है, जो आपको विभिन्न उपकरणों को नियंत्रित करने और विभिन्न प्रोटोकॉल से इनपुट प्राप्त करने की अनुमति देता है: एमक्यूटीटी समर्थित प्रोटोकॉल में से एक है …
जैसे ही जानकारी उसके पास पहुँचती है (चरण 4), आप घटनाओं को परिभाषित कर सकते हैं: लेटरबॉक्स के मामले में, मैंने एक टेलीग्राम अधिसूचना (चरण 5) भेजने का विकल्प चुना।
अंत में, मेरे फोन पर टेलीग्राम क्लाइंट कॉन्फ़िगर किया गया है (और मेरी पत्नी का भी! - चरण 6): अंतिम लक्ष्य तक पहुंच गया है …
चरण 2: शेमैटिक / वायरिंग
एनालॉग के बारे में एक शब्द पढ़ें:
सबसे पहले, मैंने कुछ शोधों के बाद देखा कि लोलिन मिनी डी 1 (पुराने वेमोस के रूप में), पिन ए0 के लिए वोल्टेज डिवाइडर में बनाया गया है (आर 1 के लिए 220 केΩ और आर 2 के लिए 100 केΩ पर विचार करते हुए - लिंक किए गए डेटाशीट के दाईं ओर देखें), 3.2 वोल्ट की अनुमति देता है अधिकतम एनालॉग इनपुट वोल्टेज के रूप में।
बैटरी से अधिकतम आउटपुट वोल्टेज 4, 2v (चार्जिंग बोर्ड द्वारा सीमित) को ध्यान में रखते हुए, और सैद्धांतिक रूप से, आपको अधिकतम इनपुट वोल्टेज रेंज बढ़ाने के लिए केवल एक बाहरी रेजिटर (R1 के साथ श्रृंखला में) जोड़ने की आवश्यकता है। फिर, यदि आप R1 के साथ श्रृंखला में 100K जोड़ते हैं, तो आपके पास यह परिणाम होगा:
विन * R1/(R1+R2) = वाउट
4, 2 * 320K/(320K+100K) = 3, 2
अपने सर्किट में, मैंने इसके मूल्य को समायोजित करने में सक्षम होना चुना, इसलिए मैंने अपने सर्किट में एक समायोज्य रोकनेवाला का उपयोग करना पसंद किया है: शायद यह आपके लिए बेकार होगा, लेकिन मेरी स्थिति में, मैंने इसका मान लगभग 10KΩ पर सेट किया है। डोमोटिक्ज़ में एक सुसंगत मूल्य …
ध्यान दें कि A0 पिन में 10 बिट रिज़ॉल्यूशन है: इसका मतलब है कि आपके स्केच में, आपका एनालॉग रीडिंग 0 से 1024 के बीच का मान लौटाएगा।
जैसा कि मैं डोमोटिकज़ को प्रतिशत मान भेजना चाहता हूं, मुझे एनालॉग रीड रिजल्ट को 10, 24 से विभाजित करना होगा।
चरण 3: शक्ति प्रबंधन
बेशक, मैं चाहता हूं कि लेटरबॉक्स स्वायत्त हो। अपने लक्ष्य तक पहुँचने के लिए, मैं इन तत्वों का उपयोग करता हूँ:
- 4000mAh की ली-आयन 18650 बैटरी;
- एक सौर पैनल जो 6V / 2W वितरित कर सकता है;
- एक TP4056 लिथियम बैटरी चार्जिंग बोर्ड।
सबसे उपयुक्त सौर पैनल चुनने के लिए, मैंने कुछ उदाहरणों पर एक नज़र डाली, जिसमें यह एक शामिल है: इस उदाहरण में, एक 5.5V / 0.66W सौर पैनल का उपयोग किया जाता है, और संभवतः इस उद्देश्य के लिए पर्याप्त है। मेरे मामले में, और जैसा कि ESP8266 को दिन के दौरान चालू रहना चाहिए और घर को धूप में रखने के लिए सर्वो मोटर चलाने में सक्षम होना चाहिए, मैंने एक अधिक शक्तिशाली सौर पैनल मॉडल (6V / 2W) चुना - यह मुझे भी अनुमति देता है अंधेरे सर्दियों की अवधि और बादलों के दिनों का अनुमान लगाने के लिए;-)
इसके अलावा, और ऊर्जा व्यय को अधिकतम करने के लिए, मैंने निम्नलिखित परिदृश्यों का चयन किया है:
- यह जानते हुए कि डाकिया केवल सुबह 7 बजे से रात 8 बजे के बीच रहता है, ईएसपी को बाकी रात डीपस्लीप में रखा जाता है;
- कारक शनिवार दोपहर और सोमवार की सुबह के बीच नहीं गुजरता है: इस अवधि के दौरान ईएसपी को डीप स्लीप मोड में भी रखा जाता है।
- सुबह 7 से 8 बजे के बीच की अवधि के लिए, और बिजली की खपत को कम करने के लिए, मैं बस ईएसपी के नेटवर्क इंटरफेस को अक्षम कर देता हूं: पार्सल या पत्र के आने पर ही नेटवर्क को पुनरारंभ किया जाता है, सूचना भेजने के लिए पर्याप्त समय Domoticz. I को तुरंत चेतावनी देने की आवश्यकता नहीं है और नेटवर्क इंटरफ़ेस को पुनरारंभ करने के लिए आवश्यक कुछ अतिरिक्त सेकंड हानिकारक नहीं हैं!
विभिन्न तरीकों में खपत के बारे में कुछ मूल्य जो मैं लोलिन के लिए उपयोग करता हूं - डेटाशीट देखें, p18:
- सामान्य मोड में (आरएफ काम करने के साथ), बिजली की खपत 170mA तक बढ़ सकती है! चूंकि मेरा लेटरबॉक्स मेरे घर से लगभग 50 मीटर की दूरी पर है (और वाईफ़ाई सिग्नल की सीमा पर …) मुझे लगता है कि कनेक्शन बनाए रखने के लिए उपयोग की जाने वाली शक्ति उसके अधिकतम पर है …
- मोडेम-स्लीप में, बिजली की खपत घटकर 15mA हो जाती है। लेकिन जैसा कि आप डेटाशीट में देख सकते हैं, इसने मॉडेम को पूरी तरह से बंद नहीं किया, क्योंकि ईएसपी "बिना डेटा ट्रांसमिशन के वाई-फाई कनेक्शन बनाए रखना" है।
- गहरी नींद में, बिजली 20uA तक गिर जाती है।
यह सुनिश्चित करने के लिए कि वाईफाई अनावश्यक रूप से सक्रिय नहीं रहता है, मैंने इसे निम्न आदेशों के साथ अक्षम करना पसंद किया। कई देरी () कॉल पर ध्यान दें … उनके बिना, ईएसपी क्रैश:
वाईफाई.डिस्कनेक्ट ();
देरी (1000); वाईफाई.मोड (WIFI_OFF); देरी (1000); WiFi.forceSleepBegin (); देरी(1);
कुल मिलाकर, कई दिनों के ऑपरेशन के बाद, ऐसा लगता है कि यह काम करता है और विशेष रूप से सही ढंग से लोड होता है:
- यह मुझे घर को सूर्य की ओर रखने के लिए हर घंटे सर्वोमोटर चलाने की अनुमति देता है;
- मैं खुद को हर घंटे नेटवर्क इंटरफेस को फिर से सक्रिय करने की अनुमति भी दे सकता हूं ताकि डोमोटिकज़ को बैटरी चार्ज स्तर भेज सकें।
चरण 4: मैग्नेट और रीड्स संपर्क स्थापित करना
हमेशा की तरह, मैंने अपने Proxxon का उपयोग लकड़ी के एक टुकड़े में रीड की जगह को आकार देने के लिए किया।
इसके छेद में ईख के संपर्क को ठीक करने के लिए, मैंने थोड़ा सा J-B वेल्ड का उपयोग किया।
पार्सल और आउटपुट के लिए, टेप का एक छोटा सा टुकड़ा, थोड़ा सा हैकसॉ, और लक्ष्य तक पहुँच जाता है!
मेरे लेटरबॉक्स का लाभ यह है कि यह धातु है, जो चुम्बकों की स्थिति को सुगम बनाता है ताकि यह रीड संपर्कों के साथ ठीक से बातचीत कर सके।
चरण 5: माई लिटिल हाउस से कनेक्ट करें
लेटरबॉक्स से घर तक रीड कॉन्टैक्ट्स में जाने वाली केबल को आसानी से कनेक्ट और डिस्कनेक्ट करने में सक्षम होने के लिए, मैंने ईथरनेट कनेक्टर का उपयोग करना चुना।
आप इस मॉडल का उपयोग कर सकते हैं या, मेरी तरह, एक पुराने Arduino ईथरनेट शील्ड का उपयोग कर सकते हैं जो मेरे दराज में लटका हुआ है: वह पीड़ित नहीं था, वह आरा के सामने बहादुर था, उसकी मृत्यु तेज थी ^^
इस Arduino ईथरनेट शील्ड के बारे में बस एक शब्द: 8 अलग-अलग ड्राइवर होने की उम्मीद न करें … केबल्स को शील्ड के अंदर 2 से जोड़ा जाता है … इसने मुझे बहुत लंबे समय तक पागल कर दिया !!!
चरण 6: सदन में …
बैटरी धारक को ठीक करने के लिए पर्याप्त जगह, सर्वो सेट करना, और आरजे 45 मादा कनेक्टर।
चरण 7: इसे टर्नटेबल दें …
इसका उद्देश्य इसे सूर्य के सामने रखना है …
टर्न करने योग्य होने की क्षमता देने के लिए, मैंने धुरी के रूप में एक लंबे स्क्रू का इस्तेमाल किया, जिसमें कुछ नट और दो बॉल बेयरिंग थे …
अब तक, मैंने SG90 सर्वो (टोक़: 1.8 किग्रा/सेमी 4.8v पर) का उपयोग किया था।
घर (और इसके कुछ ग्राम) को चालू करने के लिए पर्याप्त है। दूसरी ओर, मुझे यकीन नहीं है कि इसके प्लास्टिक गियर लंबे समय तक हवा के लगातार झोंके का विरोध करते हैं जो मेरे क्षेत्र में होते हैं।
मैंने एक और ऑर्डर किया (MG995 टॉर्क: 4.8v पर 9.4kg/cm), बहुत महंगा भी नहीं, बल्कि मेटल गियर्स के साथ।
जब मैं इसे प्राप्त कर लूंगा तो यह अगला काम होगा: मैं उसके आगमन की सूचना देने के लिए अपने कनेक्टेड लेटरबॉक्स पर भरोसा करता हूं!
चरण 8: कुछ परीक्षण
कुछ नोट्स:
यह स्केच केवल मुझे सर्वो की स्थिति को नियंत्रित करने की अनुमति देने के लिए दिन के दौरान घंटों के परिवर्तनों का अनुकरण करने के लिए है।
- SG90 के साथ: कोई अतिरिक्त आवश्यकता नहीं, यह बैटरी नियंत्रक से आने वाले OUT वोल्टेज के साथ काम कर सकता है।
-
लेकिन, MG 995 के साथ:
- रोटेशन का कुल कोण समान (व्यापक) नहीं है: मुझे इसे कम करने के लिए एक अतिरिक्त फ़ंक्शन का उपयोग करना पड़ा (Servo_Delta ())।
- सर्वो को पर्याप्त वोल्टेज प्रदान करने के लिए डीसी/डीसी स्टेप अप की आवश्यकता है … जारी रखने के लिए …
/*
- SG90 के साथ परीक्षण: कोई अतिरिक्त आवश्यकता नहीं, यह बैटरी कंट्रोलर से आने वाले OUT वोल्टेज के साथ काम कर सकता है - MG 995 के लिए: - Servo_Delta () फ़ंक्शन का उपयोग करें … - सर्वो को पर्याप्त वोल्टेज प्रदान करने के लिए DC/DC स्टेप अप की आवश्यकता है … जारी रखें: */ #include bool Logs = true; सर्वो मायसर्वो; #define PIN_SERVO D2 // के लिए सर्वो स्थिति: 7h, 8h, 9h, 10h, 11h, 12h, 13h, 14h, 15h, 16h, 17h, 18h, 19h, 20h, 21h //int Arr_Servo_Pos = {177, 173, 163, 148, 133, 118, 100, 80, 61, 41, 28, 15, 2, 2, 2}; int Arr_Servo_Pos = {180, 175, 165, 150, 135, 120, 102, 82, 63, 43, 30, 15, 0, 0, 0}; पुराना है; इंट पॉज़; इंट आई; शून्य सेटअप () {Serial.begin(११५२००); } शून्य लूप () {के लिए (i = 7; i <= 22; i++){ पुराना = i; if (i == 7){ if (Logs) Serial.println ("Positionne le सर्वो 7 Heure"); myservo.attach(पिन_सर्वो); for(int index = Arr_Servo_Pos[(sizeof(Arr_Servo_Pos) / sizeof(Arr_Servo_Pos[0])) -1]; index 7 && i = Arr_Servo_Pos[i-7]; index--){ if (Logs) Serial.println (अनुक्रमणिका); अगर (लॉग्स) सीरियल.प्रिंट ("समायोजित मान:"); अगर (लॉग्स) सीरियल.प्रिंट्लन (सर्वो_डेल्टा (इंडेक्स)); देरी (200); // myservo.write (सर्वो_डेल्टा (इंडेक्स)); myservo.write (सूचकांक); } देरी(15); myservo.write(Arr_Servo_Pos[i-7]); // myservo.detach () डेटाच करते समय झटकेदार आंदोलनों से बचने के लिए अंतिम मान फिर से लिखें; } } } देरी (2000); } } int Servo_Delta(int value){ int Temp_val; Temp_val = (मान*0.80)+9; वापसी Temp_val; }
चरण 9: छोटा घर
जैसा कि मैंने पहले बताया, मुझे कोई 3D प्रिंटर नहीं मिला। इसलिए मैं पुराने सब्जी के टोकरे का उपयोग करने का फैसला करता हूं …
शायद यह लंबे समय तक नहीं टिकेगा, लेकिन तब तक, मेरे पास एक और समाधान (या एक दोस्त जो 3 डी प्रिंटर का मालिक है) पर विचार करने का समय होगा: लकड़ी की रक्षा के लिए, मैंने हर जगह बहुत सारे वार्निश जोड़े …
आप "सुंदर पर्दे" देख सकते हैं … ऐसा तब होता है जब आप अपनी पत्नी को काम करने के लिए कहते हैं ^^
चरण 10: स्केच
प्रगति पर है… लेकिन लगता है स्थिर है
मैं अभी भी कोड पर काम कर रहा हूं: चूंकि यह एक निश्चित संस्करण नहीं है, आपकी टिप्पणियों/सलाहों का स्वागत है;-)
कुछ टिप्पणियाँ:
- वे कोड में कई देरी () हैं: यह लोलिन के बहुत सारे क्रैश से बचने के लिए है, खासकर एक शुरुआती नेटवर्क को रोकते समय …
- मुझे सूर्य अज़ीमुथ प्राप्त करने का एक आसान और विश्वसनीय तरीका नहीं मिला: इसलिए मैंने जो देखा उसके कार्य में मैंने सर्वो मूल्य तय किया … मेरे पास इसे प्राप्त करने का एक अच्छा (और सरल) तरीका है, मुझे दिलचस्पी है! शायद यहां अध्ययन करने के लिए एक ट्रैक, भले ही मैं एक ऑनलाइन एपीआई पसंद करता हूं, मुझे सीधे तारीख, घंटे और भौगोलिक स्थिति के अनुसार दिगंश देता है …
- स्लीप टेक्निक के बारे में: चूंकि लोलिन एक 32-बिट टेंसिलिका प्रोसेसर है, 32-बिट अहस्ताक्षरित पूर्णांक के लिए इसका अधिकतम मान 4294967295 है … फिर, यह गहरी नींद के अंतराल के लिए अधिकतम 71 मिनट का समय देता है। इसलिए मैं लगभग 60 मिनट तक कई बार स्लीपिंग l'ESP करता हूं…
संपादित करें - 2018-10-08:
मुझे पता चला कि सर्वो में बहुत झटकेदार हरकतें हैं, खासकर अटैचमेंट (), डिटैच () और हर बार लोलिन डीपस्लीप () से पहले।
थोड़ा और डेटाशीट का अध्ययन करते समय, मुझे दो बातों का एहसास हुआ:
- लोलिन डेटाशीट पर, D4 आउटपुट पहले से ही BUILTIN_LED से जुड़ा है …
- ESP8266ex डेटाशीट पर, हम सीखते हैं कि D4 आउटपुट का उपयोग UART 1/U 1 TXD (यूनिवर्सल एसिंक्रोनस रिसीवर ट्रांसमीटर) के रूप में किया जाता है। यह भी निर्दिष्ट किया गया है कि इस UART1 का उपयोग मुद्रण लॉग के लिए किया जाता है।
इन सूचनाओं को पढ़कर, मैंने महसूस किया कि D4 आउटपुट एक अच्छा विचार नहीं था, विशेष रूप से एक सर्वो मोटर का प्रबंधन करने के लिए!
तो, अब सर्वोमोटर को नियंत्रित करने के लिए उपयोग किया जाने वाला आउटपुट डी 2 है, नीचे दिए गए कोड को तदनुसार अपडेट किया गया है।
//****************************************
दिनांक निर्माण: 08/दिनांक उत्पादन: 08/संस्करण: 0.9.4 संस्करण आईडीई Arduino: 1.8.6 अपलोड गति: 921600 टाइप डे कार्टे डान्स एल'आईडीई: "लोलिन (WEMOS) D1 R2 और मिनी" कार्टे काया कर्मचारी: LOLIN(WEMOS) D1 R2 और मिनी (https://www.amazon.fr/gp/product/B01ELFAF1S/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1) पिन फंक्शन ESP-8266 पिन यूटिलाइजेशन लोकेल -------- -------------------------------------------------- ---------------------------------------- TX TXD TXD RX RXD RXD A0 एनालॉग इनपुट, अधिकतम 3.3V इनपुट A0 टेंशन डी एलिमेंटेशन D0 IO GPIO16 Connecté RST (डाल ले डीप.स्लीप) D1 IO, SCL GPIO5 D2 IO, SDA GPIO4 सर्वो प्रेरक D3 IO, 10k पुल-अप GPIO0 D4 IO, 10k पुल-अप, BUILTIN_5 GPIO, SCK GPIO14 रीड रिलीज़ D6 IO, MISO GPIO12 रीड लेट्रे D7 IO, MOSI GPIO13 रीड कॉलिस D8 IO, 10k पुल-डाउन, SS GPIO15 G ग्राउंड GND 5V 5V - 3V3 3.3V 3.3V 3.3V RST रीसेट RST कनेक्ट ले डीप (डालें).sleep) **************************/ #include bool Logs = true; // वाईफाई कॉन्स्ट चार * एसएसआईडी = "एलओएल"; कॉन्स्ट चार * पासवर्ड = "एलओएल"; आईपीएड्रेस आईपी(192, 168, 000, 000); आईपीएड्रेस डीएनएस (192, 168, 000, 000); आईपीएड्रेस गेटवे (192, 168, 000, 000); आईपीएड्रेस सबनेट (255, 255, 000, 000); वाईफाई क्लाइंट क्लाइंट; // सर्वो #include #define PIN_SERVO D2 Servo myservo; // सर्वो स्थिति के लिए: 7h, 8h, 9h, 10h, 11h, 12h, 13h, 14h, 15h, 16h, 17h, 18h, 19h, 20h, 21h int Arr_Servo_Pos = {179, 175, 165, 150, 135, 120, 102, 82, 63, 43, 30, 15, 1, 1, 1}; // रीड्स #define PIN_SWITCH_OUT D5 बाइट Old_Switch_State_OUT; बाइट स्विच_स्टेट_आउट; #define PIN_SWITCH_IN_PARCEL D6 बाइट Old_Switch_State_IN_PARCEL; बाइट स्विच_स्टेट_IN_PARCEL; #define PIN_SWITCH_IN_LETTER D7 बाइट Old_Switch_State_IN_LETTER; बाइट स्विच_स्टेट_IN_LETTER; अहस्ताक्षरित लंबा स्विचप्रेसटाइम; कास्ट अहस्ताक्षरित लंबा DEBOUCE_TIME = 200; // एनालॉग #define PIN_ANALOG A0 // MQTT #include const char* MQTT_Server_IP = "आपका MQTT पता"; कॉन्स्ट इंट MQTT_Server_Port =; इंट IDX_Letter_Box =; int IDX_Parcel_Box =; int IDX_Letter_Box_Battery =; PubSubClient ClientMQTT (क्लाइंट); चार MQTT_Message_Buff[70]; स्ट्रिंग MQTT_Pub_String; // तनाव फ्लोट वीसीसी; // एनटीपी #include time_t tnow; इंट ओल्ड_टाइम = 0; int Int_Heures = 0; int Int_Minutes = 0; int Int_Sleep_Duration = 63; शून्य सेटअप () {Serial.begin (115200); नेटवर्क (सच); पिनमोड (PIN_SWITCH_OUT, INPUT_PULLUP); Old_Switch_State_OUT = digitalRead (PIN_SWITCH_OUT); पिनमोड (PIN_SWITCH_IN_LETTER, INPUT_PULLUP); Old_Switch_State_IN_LETTER = digitalRead (PIN_SWITCH_IN_LETTER); पिनमोड (PIN_SWITCH_IN_PARCEL, INPUT_PULLUP); Old_Switch_State_IN_PARCEL = digitalRead (PIN_SWITCH_IN_PARCEL); सेंडबैटरीलेवल (); नेटवर्क (झूठा); // एनटीपी सेट tnow = समय (nullptr); Int_Heures = String(ctime(&tnow)).substring(11, 13).toInt(); Int_Minutes = String(ctime(&tnow)).substring(14, 16).toInt(); // रात के लिए गहरी नींद if(!((Int_Heures >= 7) && (Int_Heures <= 20))){ Serial.print("Sleep Poor la nuit ("); Serial.print(Int_Sleep_Duration - Int_Minutes); सीरियल। प्रिंट्लन ("मिनट)"); नींद (Int_Sleep_Duration - Int_Minutes); } } शून्य लूप () {// एनटीपी सेट अब = समय (nullptr); Int_Heures = String(ctime(&tnow)).substring(11, 13).toInt(); Int_Minutes = String(ctime(&tnow)).substring(14, 16).toInt(); // Serial.println (स्ट्रिंग (ctime (& tnow))); //Serial.println ("Heure:" + String(ctime(&tnow)).substring(11, 13)); // Serial.println (स्ट्रिंग (ctime (& tnow))। सबस्ट्रिंग (11, 13)। toInt ()); // सर्वो प्रबंधन अगर (Old_Time != Int_Heures){ Old_Time = Int_Heures; if (Int_Heures == 7){ if (Logs) Serial.println ("Positionne le सर्वो 7 Heure"); myservo.attach(पिन_सर्वो); for(int index = Arr_Servo_Pos[(sizeof(Arr_Servo_Pos) / sizeof(Arr_Servo_Pos[0])) -1]; index 7 && Int_Heures = Arr_Servo_Pos[Int_Heures-7]; index--){ if (Logs) Serial.println (अनुक्रमणिका); देरी (200); myservo.write (सूचकांक); } देरी(15); myservo.write(Arr_Servo_Pos[Int_Heures-7]); // myservo.detach () को अलग करते समय झटकेदार आंदोलनों से बचने के लिए अंतिम मान फिर से लिखें; } नेटवर्क (सच); सेंडबैटरीलेवल (); नेटवर्क (झूठा); } } } // अगर शनिवार को 13 घंटे के बाद गहरी नींद आती है ((स्ट्रिंग(ctime(&tnow)).substring(0, 3) == "Sat") && (Int_Heures>= 13)){ if (Logs) Serial.print("स्लीप पोयर ले समदी एप्रेस मिडी ("); अगर (लॉग्स) सीरियल.प्रिंट (इंट_स्लीप_ड्यूरेशन - इंट_मिन्यूट्स); अगर (लॉग्स) सीरियल। प्रिंट्लन ("मिनट)"); नींद (Int_Sleep_Duration - Int_Minutes); } // गहरी नींद अगर रविवार अगर (स्ट्रिंग (ctime (& tnow))। सबस्ट्रिंग (0, 3) == "सन") {अगर (लॉग्स) सीरियल.प्रिंट ("स्लीप पोर ले डिमांच ("); अगर (लॉग्स) Serial.print(Int_Sleep_Duration - Int_Minutes); अगर (लॉग्स) Serial.println ("मिनट)"); नींद (Int_Sleep_Duration - Int_Minutes); } // रीड्स प्रबंधन स्विच_स्टेट_आउट = डिजिटलरेड (पिन_स्विच_आउट); अगर (स्विच_स्टेट_आउट! = ओल्ड_स्विच_स्टेट_आउट) {अगर (मिली () - स्विचप्रेसटाइम> = DEBOUCE_TIME) {स्विचप्रेसटाइम = मिली (); अगर (स्विच_स्टेट_आउट == हाई) {Serial.println ("कूरियर प्रासंगिक!"); नेटवर्क (सच); देरी (5000); MQTT_Pubilsh (IDX_Letter_Box, 0, "0"); देरी (5000); MQTT_Pubilsh (IDX_Parcel_Box, 0, "0"); देरी (5000); नेटवर्क (झूठा); } } Old_Switch_State_OUT = Switch_State_OUT; } Switch_State_IN_LETTER = digitalRead (PIN_SWITCH_IN_LETTER); अगर (स्विच_स्टेट_IN_LETTER!= Old_Switch_State_IN_LETTER){ अगर (मिली () - स्विचप्रेसटाइम> = DEBOUCE_TIME) {स्विचप्रेसटाइम = मिली (); अगर (Switch_State_IN_LETTER == HIGH){ Serial.println ("कूरियर आगमन!"); नेटवर्क (सच); देरी (5000); MQTT_Pubilsh (IDX_Letter_Box, 1, "कूरियर"); देरी (5000); नेटवर्क (झूठा); } } Old_Switch_State_IN_LETTER = Switch_State_IN_LETTER; } Switch_State_IN_PARCEL = digitalRead (PIN_SWITCH_IN_PARCEL); अगर (स्विच_स्टेट_IN_PARCEL!= Old_Switch_State_IN_PARCEL){ अगर (मिली () - स्विचप्रेसटाइम> = DEBOUCE_TIME) {स्विचप्रेसटाइम = मिली (); if (Switch_State_IN_PARCEL == HIGH){ Serial.println ("कोलिस अराइव!"); नेटवर्क (सच); देरी (5000); MQTT_Pubilsh(IDX_Parcel_Box, 1, "कोलिस"); देरी (5000); नेटवर्क (झूठा); } } Old_Switch_State_IN_PARCEL = Switch_State_IN_PARCEL; } } शून्य SendBatteryLevel () {देरी (5000); वीसीसी = एनालॉग रीड (पिन_एनालॉग)/10.24; अगर (लॉग्स) Serial.println ("\tटेंशन प्रासंगिकता:" + स्ट्रिंग (vcc, 0)); MQTT_Pubilsh (IDX_Letter_Box_Battery, 0, स्ट्रिंग (vcc, 0)); देरी (5000); } शून्य नींद (int Min_Duration){ ESP.deepSleep(Min_Duration * 60e6); } शून्य नेटवर्क (बूल अपडाउन) {अगर (अपडाउन) {सीरियल.प्रिंट ("नेटवर्क स्टार्ट"); WiFi.forceSleepWake (); देरी(1); // init वाईफ़ाई वाईफाई। कॉन्फिग (आईपी, डीएनएस, गेटवे, सबनेट); वाईफाई.बेगिन (एसएसआईडी, पासवर्ड); जबकि (WiFi.status() != WL_CONNECTED) {देरी (500); सीरियल.प्रिंट ("।"); } देरी (5000); सीरियल.प्रिंट्लन ("।"); सीरियल.प्रिंट ("\ t कनेक्टेड - आईपी एड्रेस:"); Serial.println (वाईफाई.लोकलआईपी ()); // init MQTT ClientMQTT.setServer (MQTT_Server_IP, MQTT_Server_Port); // इनिट एनटीपी सीरियल.प्रिंट ("\ t टाइम सिंक।"); configTime(0, 0, "fr.pool.ntp.org"); setenv("TZ", "CET-1CEST, M3.5.0, M10.5.0/3", 0); जबकि(समय(nullptr)) <= 100000) {सीरियल.प्रिंट ("।"); देरी (100); } सीरियल.प्रिंट्लन ("।"); } और {Serial.println ("नेटवर्क स्टॉप।"); वाईफाई। डिस्कनेक्ट (); देरी (1000); वाईफाई.मोड (WIFI_OFF); देरी (1000); WiFi.forceSleepBegin (); देरी (1); }} शून्य पुन: कनेक्ट () {जबकि (! ClientMQTT.connected ()) { Serial.print(" \tMQTT कनेक्शन का प्रयास…"); // कनेक्ट करने का प्रयास अगर (ClientMQTT.connect("ESP8266ClientBAL")) {Serial.println("connected"); }else { Serial.print("failed, rc="); Serial.print(ClientMQTT.state ()); Serial.println ("5 सेकंड में फिर से कोशिश करें"); // देरी से प्रयास करने से पहले 5 सेकंड प्रतीक्षा करें (5000); }}} शून्य MQTT_Pubilsh (int Int_IDX, int N_Value, स्ट्रिंग S_Value) { अगर (! ClientMQTT.connected ()) फिर से कनेक्ट (); vcc = analogRead (PIN_ANALOG)/10.24; Serial.println ("\ t MQTT को जानकारी भेजें …"); MQTT_Pub_String = "{ "idx\": "+ स्ट्रिंग (Int_IDX) + ", \"बैटरी\": "+ स्ट्रिंग(vcc, 0) +", \"nvalue\": " + N_Value + ", \"svalue \": \"" + S_Value + "\"}"; MQTT_Pub_String.toCharArray(MQTT_Message_Buff, MQTT_Pub_String.length()+1); ClientMQTT.publish("domoticz/in", MQTT_Message_Buff); ClientMQTT.डिस्कनेक्ट (); }
चरण 11: डोमोटिक्ज़
डोमोटिक्ज़ में:
सामान्य उपयोग के लिए:
-
दो "डमी (कुछ नहीं करता, वर्चुअल स्विच के लिए उपयोग करें)" बनाएं:
- पत्रों के लिए सबसे पहले…
- पार्सल के लिए दूसरा…
- उनमें से प्रत्येक के लिए, सूचनाओं को वैयक्तिकृत करें;
- बेशक, आपको अपना Tegegram टोकन सेटअप करना होगा।
वैकल्पिक रूप से:
आप अपने बैटरी चार्ज स्तर की निगरानी के लिए "उपयोगिता सेंसर" जोड़ सकते हैं।
टिप्स: यहां आप बहुत सारे मुफ्त कस्टम आइकन पा सकते हैं …
चरण 12: निष्कर्ष
आशा है कि यह निर्देशयोग्य आपकी मदद करेगा:
- अपना खुद का कनेक्टेड लेटरबॉक्स बनाना है या नहीं;
- या सिर्फ आपको अपनी परियोजनाओं के लिए कुछ विचार देने के लिए!
यदि आपके पास सुधार के लिए विचार हैं, तो मैं सुन रहा हूँ!
पीएस: मेरी अंग्रेजी के लिए खेद है, Google अनुवाद मुझे बहुत मदद करता है लेकिन शायद सही नहीं है;-)
सिफारिश की:
बैटरी चालित कार्यालय। ऑटो स्विचिंग ईस्ट/वेस्ट सोलर पैनल्स और विंड टर्बाइन के साथ सोलर सिस्टम: 11 स्टेप्स (चित्रों के साथ)
बैटरी चालित कार्यालय। ऑटो स्विचिंग ईस्ट/वेस्ट सोलर पैनल्स और विंड टर्बाइन के साथ सोलर सिस्टम: प्रोजेक्ट: 200 वर्ग फुट के ऑफिस को बैटरी से चलने की जरूरत है। कार्यालय में इस प्रणाली के लिए आवश्यक सभी नियंत्रक, बैटरी और घटक भी होने चाहिए। सौर और पवन ऊर्जा बैटरी चार्ज करेगी। बस थोड़ी सी दिक्कत है
एलईडी सोलर पावर्ड: 3 स्टेप्स (चित्रों के साथ)
एलईडी सौर ऊर्जा संचालित: सौर पैनलों का उपयोग करके सरल ऊर्जा वसूली प्रणाली और एलईडी (बैटरी के बिना) सौर पैनल आम तौर पर सिलिकॉन की दो परतों से युक्त होते हैं - अर्धचालक सामग्री और एक अलग परत, एक साथ वायर्ड होते हैं और पैनल या मॉड्यूल में इकट्ठे होते हैं। हमें ढूंढें
सोलर पावर्ड हार्ट ब्लिंकी एलईडी पेंडेंट ज्वेलरी: 11 स्टेप्स (चित्रों के साथ)
सोलर पावर्ड हार्ट ब्लिंकी एलईडी पेंडेंट ज्वेलरी: यह इंस्ट्रक्शनल सोलर पावर्ड हार्ट के लिए स्पंदनशील लाल एलईडी के साथ है। यह लगभग २" यूएसबी टैब सहित 1.25" इसमें बोर्ड के शीर्ष के माध्यम से एक छेद होता है, जिससे फांसी आसान हो जाती है। इसे हार, झुमके, पिन पर बंधन के रूप में पहनें
मेन्स पावर्ड सोलर गार्डन लाइट रिस्टोरेशन: 7 स्टेप्स
मेन्स पावर्ड सोलर गार्डन लाइट रिस्टोरेशन: यह वास्तव में मेरे पिछले कुछ मेन पावर्ड प्रोजेक्ट्स का अनुसरण करता है, लेकिन पहले से प्रलेखित एलईडी टियरडाउन से निकटता से संबंधित है। अब हम सभी बाहर गए हैं और उन्हें गर्मियों में खरीदा है, उन छोटी फूलों की बॉर्डर लाइट्स जो हैं सौर शक्ति
फ्री एनर्जी सोलर पावर्ड रेडियो: 4 स्टेप्स (चित्रों के साथ)
फ्री एनर्जी सोलर पावर्ड रेडियो: फ्री एनर्जी सोलर पावर रेडियो diy https://www.youtube.com/watch?v=XtP7g… एक पुरानी बैटरी से चलने वाले रेडियो को सोलर पावर्ड रेडियो में बदलने का एक आसान प्रोजेक्ट है जिसे आप कर सकते हैं कॉल फ्री एनर्जी क्योंकि यह बिना बैटरी का उपयोग करती है और यह सूर्य के होने पर संचालित होती है