सरल आरएफ कनेक्शन पर सेंसर रीडिंग भेजने का सबसे अच्छा तरीका

मैंने सरल 315 मेगाहर्ट्ज की एक जोड़ी खरीदी है TX / आरएक्स मॉड्यूल। मैं बैटरी चालित ATTiny85 को एक Arduino बेस स्टेशन से कनेक्ट करने के लिए इनका उपयोग करना चाहता हूं। एटीटीनी को नियमित रूप से जागने और बेस स्टेशन पर सेंसर पढ़ने की आवश्यकता होती है।

सिद्धांत रूप में मैं बस TX को डेटा लिखने और आरएक्स मॉड्यूल से इसे पढ़ने में सक्षम होना चाहिए। हालांकि, मैं कैसे सुनिश्चित करूं कि मैं सही दर पर लिख/पढ़ूं? किसी विशेष गति (बाइट्स/सेकंड) पर संचारित करने के लिए मुझे किस कोड का उपयोग करने की आवश्यकता है? त्रुटि सुधार/पहचान करने का सबसे अच्छा तरीका क्या है?

चूंकि मैं ट्रांसमीटर को बैटरी संचालित करना चाहता हूं, इसलिए मैं निष्क्रिय होने पर VCC को TX मॉड्यूल में बंद करने के लिए ट्रांजिस्टर का उपयोग कर सकता हूं। TX मॉड्यूल को चालू होने पर आरएक्स मॉड्यूल क्या प्राप्त करेगा?

5

7 उत्तर

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

ये मॉड्यूल एएम मॉड्यूलेशन पर काम करते हैं। लघु लेखन एएसके कहता है, लेकिन यह शायद ट्रांसमीटर की कुंजी चालू/बंद है (जो तकनीकी रूप से एएसके का सबसेट है)। इस योजना के साथ समस्या यह है कि रिसीवर ट्रांसमीटर चालू होने पर स्तर को मूल रूप से नहीं जानता है। इसलिए यह हाल ही में प्राप्त सिग्नल शक्तियों को देखता है और मध्य में एक मूल्य को चालू और बंद करने के लिए चुनता है। इसे डेटा स्लाइसिंग कहा जाता है।

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

यही कारण है कि मैनचेस्टर एन्कोडिंग ऐसे आरएफ लिंक के लिए बहुत लोकप्रिय है। मैं यहां मैनचेस्टर एन्कोडिंग में नहीं जाऊंगा क्योंकि यह अच्छी तरह से जाना जाता है और आपको वहां पर बहुत सारी जानकारी खोजने में कोई समस्या नहीं होगी। मैनचेस्टर कोड की एक अच्छी विशेषता यह है कि यह प्रत्येक बिट पर 1/2 तक औसत है। थोड़ा सा दो हिस्सों में बांटा गया है। ऑन-ऑफ़ का अर्थ 1 और ऑफ-ऑन 0 हो सकता है। मैनचेस्टर शायद एन्कोडिंग योजना करने का सबसे आसान तरीका है।

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

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

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

10
जोड़ा
@mchr मैंने व्यक्तिगत रूप से इसका उपयोग नहीं किया है, इसलिए विश्वसनीयता से बात नहीं कर सकता, लेकिन मैंने वर्चुअलवायर (ध्यान दें कि दुर्भाग्य से पीडीएफ है) लाइब्रेरी ने Arduinos के साथ संयुक्त इस प्रकार के मॉड्यूल के बारे में चर्चा में थोड़ा सा उल्लेख किया। ऐसा लगता है कि यह विशेष रूप से उनके लिए लिखा गया था।
जोड़ा लेखक mattruma, स्रोत
मुझे आम तौर पर पता चला है कि जब मुझे ऐसा कोड मिलता है, तो इसमें इतने सारे मुद्दे हैं जो डीबग करने में इतने लंबे समय तक लगते हैं कि मैं खुद को लिखने से बेहतर होता।
जोड़ा लेखक Binarytales, स्रोत
मैंने मैनचेस्टर एन्कोडिंग और कई बार डिकोडिंग की है, लेकिन प्रत्येक के पास अपनी खुद की झुर्रियां थीं और इसलिए ग्राहक कोड में एम्बेडेड है जिसे मैं बाहर नहीं जा रहा हूं। चारों ओर देखो। यह संभव है कि किसी ने ऐसा किया हो और कोड पोस्ट किया हो। ध्यान रखें, हालांकि, जो लोग सोचते हैं कि यह कोड पोस्ट करने के लिए एक बड़ा सौदा है, वे वही कोड नहीं हैं जिन्हें आप चाहते हैं। कभी-कभी आपको वहां कुछ अच्छी चीजें मिलती हैं। जैसे मैंने कहा, चारों ओर देखो।
जोड़ा लेखक Olin Lathrop, स्रोत
@ केलेनजेब: मैं सहमत हूं। मैं दूसरों के कोड के लिए भी चारों ओर नहीं देखता हूं। सबसे अच्छा चूसना नहीं है, और यह दुर्लभ है, लेकिन इसे मेरे प्रोजेक्ट में एकीकृत करना कठिन और त्रुटि-प्रवण है यदि यह मेरे विकास पर्यावरण को पहले स्थान पर नहीं लिखा गया था। मैं केवल चारों ओर देखने का जिक्र करता हूं क्योंकि ऐसा लगता है कि अन्य लोग इस तरह महसूस नहीं करते हैं।
जोड़ा लेखक Olin Lathrop, स्रोत
उत्कृष्ट उत्तर के लिए धन्यवाद। क्या कोई मौजूदा कोड नमूने हैं जो ये सब करते हैं? ऐसा लगता है कि इनमें से अधिकांश/यह सब सामान है जो इन मॉड्यूल का उपयोग करने वाले किसी भी व्यक्ति को हल करना होगा - निश्चित रूप से मैं पहले नहीं हूं।
जोड़ा लेखक TheBusyTypist, स्रोत
Arduino के साथ आरएक्स मॉड्यूल का उपयोग करने के लिए वर्चुअल वायर एकदम सही समाधान होगा। हालांकि, वीडब्ल्यू लाइब्रेरी एटीटीनी 85 के साथ बॉक्स को काम नहीं कर रही है। मुझे लगता है कि मैं अपने एटीटीनी 85 पर चलाने के लिए कोड को पोर्ट/फिक्स कर रहा हूं।
जोड़ा लेखक TheBusyTypist, स्रोत
मैं सिर्फ एक लाइब्रेरी से जुड़ा हुआ हूं जो एटीटीनी और एटमेगा पर जो करना चाहता है - arduino.cc/forum/index.php/topic,63755.0.html
जोड़ा लेखक TheBusyTypist, स्रोत

I have ended up using a Manchester encoding library. The latest version of this library has now been published here: https://github.com/mchr3k/arduino-libs-manchester

Details about my use of this library can be seen here: http://mchr3k-arduino.blogspot.com/

2
जोड़ा

यह प्रश्न दुष्ट नोड / दुष्ट रिसीवर शील्ड उत्पाद जो मैं दुष्ट डिवाइस पर बना (प्रकटीकरण) करता हूं । कृपया उन्हें जांचें। वे निर्धारित अंतराल पर आपके Arduino के लिए वायरलेस रूप से चार एनालॉग सेंसर रीडिंग (प्रति दुष्ट नोड) तक पहुंचने के लिए 433 मेगाहट्र्ज पर कम लागत वाला एक-तरफा एएसके रेडियो लिंक बनाते हैं। मैंने अतिरिक्त एनालॉग इनपुट के लिए मुख्य रूप से ATTiny85 के बजाय ATTiny24A का उपयोग किया था। सॉफ्टवेयर बड़े पैमाने पर नींद मोड का उपयोग करता है और दुष्ट नोड को कई महीनों के लिए 9वी बैटरी से संचालित करने के लिए डिज़ाइन किया गया है।

1
जोड़ा

मैं वर्चुअलवायर लाइब्रेरी को देखने की अनुशंसा करता हूं, जो एएसके आउटपुट के साथ आईएसएम रेंज ट्रांसमीटर/रिसीवर जोड़े के लिए आरएफ ट्रांसमिशन लागू करता है। http://www.open.com.au/mikem/arduino/ देखें। मैंने अपने घर के चारों ओर फैले वायरलेस सेंसर से डेटा एकत्र करने के लिए सफलतापूर्वक इसका उपयोग किया है।

0
जोड़ा
दुर्भाग्यवश वर्चुअलवायर लाइब्रेरी ATTiny85 का समर्थन नहीं करती है।
जोड़ा लेखक TheBusyTypist, स्रोत

मौजूदा उपकरणों के साथ कितनी अंतःक्रियाशीलता के आधार पर आप चाहते हैं, लेकिन यदि आप बहुत कुछ चाहते हैं, तो http://www.dealextreme.com/p/wireless-bluetooth-rs232-ttl-transceiver-module-80711 देखने योग्य हो सकता है। यह सिर्फ एक बहुत ही सस्ता ब्लूटूथ सीरियल लिंक है और ब्लूटूथ के साथ किसी भी कंप्यूटर के बारे में बस इसे पढ़ सकता है। ब्लूटूथ में बहुत ही शोर 2.4 गीगाहर्ट्ज कॉम के साथ वातावरण में भी उत्कृष्ट प्रदर्शन (अपेक्षाकृत) है।

0
जोड़ा
लिंक के लिए धन्यवाद - यह एक बहुत ही सस्ते ब्लूटूथ मॉड्यूल है!
जोड़ा लेखक TheBusyTypist, स्रोत

Though the original poster already found a solution. I will just add some info for people who end up here. There are basically 2 established ways to send wireless data between arduino's/Attiny's: VirtualWire and Manchester. Both have libraries available. Virtualwire I understand only can send characters (though there is a work around), Manchester can send numbers. In using the manchester library, make sure you have the latest one. Both VirtualWire and manchester can be put in an Attiny. With regard to switching the Transmitter on or Off to save battery use, I suggest you put the Attiny to sleep and when it wakes up, have it switch on the powersupply of the transmitter through a transistor (attiny pin to base, make high etc). There is an example (probably more than one) in instructables: http://www.instructables.com/id/Attiny85-RF-Transmitter-to-Arduino-Uno-Receiver-Ma/?comments=all#CWNVMX4I6RT1A1N

0
जोड़ा

यहां एक नज़र डालें

https://www.sparkfun.com/datasheets/RF/KLP_Walkthrough.pdf

अधिकांश उत्तर आप दस्तावेज़ में खोज रहे हैं।

0
जोड़ा
क्या आप लिंक से अपने उत्तर में कुछ और विवरण जोड़ सकते हैं? लिंक-केवल उत्तर निराश होते हैं क्योंकि यदि भविष्य में लिंक मर जाता है तो वे बेकार हो जाते हैं।
जोड़ा लेखक Timo002, स्रोत