2011-10-30 12 views
5

मैं प्रोजेक्ट पर काम कर रहा हूं जहां मैं ब्लूटूथ मॉड्यूल के साथ एक आर्डिनो और एंड्रॉइड ओएस के साथ अपने सेलफोन Samsung Galaxy S II का उपयोग करता हूं। प्रोजेक्ट का विचार ब्लूटूथ के माध्यम से मेरे सेलफोन से Arduino में कुछ आदेश भेजना है। मैं Arduino में डेटाबेस शामिल करना चाहता हूं ताकि जब मैं अपने सेलफोन से लॉगिन जानकारी भेजूं, तो Arduino डेटाबेस की जांच करेगा और यदि लॉगिन जानकारी मेल खाती है, तो यह डेटाबेस से कुछ डेटा पुनर्प्राप्त करती है और इसे मेरे सेलफोन पर भेजती है।Arduino के अंदर डेटाबेस कैसे स्टोर करें?

मैं Arduino के अंदर डेटाबेस कैसे संग्रहीत कर सकता हूं? क्या मुझे बाहरी ईईपीरोम या रैम खरीदना चाहिए? और मैं उस डेटाबेस से कैसे निपट सकता हूं (डेटा जोड़ना, हटाना और छेड़छाड़ करना)?

मेरा अर्डुनियो UNO, बीटीडब्लू का प्रकार है।

+0

यह * रास्ता * बहुत व्यापक है जिसका उत्तर एसओ पर दिया जाना है। आप मूल रूप से पूछ रहे हैं "मैं यह सब कैसे कर सकता हूं?" सही प्रश्न पूछने के लिए पर्याप्त शोध किए बिना। –

+0

@ ब्रायनरोच मैं बस ऐसा करने का सही तरीका मांग रहा हूं, मैं विवरण मांग नहीं रहा हूं। –

+0

@ Eng.Fouad कृपया इस तरह के संदर्भ में "डेटाबेस" शब्द से बचें, क्योंकि एक डेटाबेस एक पूरी तरह से अन्य जानवर है जो आपको चाहिए। देखें [विकिपीडिया] (http://en.wikipedia.org/wiki/Database) –

उत्तर

7

बस सरल लॉगिन के लिए आपको डेटाबेस की आवश्यकता नहीं है, आपको शायद केवल एक साधारण तालिका की आवश्यकता है।

आमतौर पर ईईपीरोम 1000 से 100000 लिखने के चक्रों की अनुमति देने वाले सभी लोगों पर विचार करें। इसका मतलब है, यदि आप 100000 से अधिक एकल सेल लिखते हैं तो आपके पास उच्च संभावना है कि आपका सेल मर जाए, आप इसे और नहीं लिख सकते हैं।

सवाल यह है कि कितने लॉगिन की अनुमति है? यह सही डेटा संरचना चुनने और समझने की ज़रूरत है कि आवश्यक स्मृति की मात्रा क्या है।

Arduino की कम्प्यूटेशनल शक्ति को जानना: यदि लॉग इन केवल 2 .. 50 हैं, तो एक साधारण सूची पर्याप्त होगी। अंत में सम्मिलन ओ (1) है, हटाना ओ (एन) है, लुकअप ओ (एन) है। एक लिंक्ड सूची हालांकि आपको निरंतर छोटे मूल्य पर हटाने के लिए लिखने की संख्या को कम करने की अनुमति देगी।

यदि लॉगिन अधिक हैं, 50 .. 1000, द्विआधारी खोज के साथ एक क्रमबद्ध सरणी पर्याप्त है। सम्मिलन ओ (एन) है, हटाना ओ (एन) है, लुकअप ओ (एन लॉग एन) है। हालांकि लिखने की संख्या ओ (एन) दोनों हटाने और सम्मिलन के लिए है, और चूंकि लेखन धीमा है और कोशिकाओं को जला सकता है, यह उन अद्यतनों की संख्या पर निर्भर करता है जिन्हें आप करना चाहते हैं।

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

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

आपको वास्तविक संबंधपरक डेटाबेस की आवश्यकता नहीं है, लेकिन शायद यदि आपको बहुत अधिक उपयोगकर्ताओं की आवश्यकता है, तो आपको बाहरी ईईपीरोम की आवश्यकता है।

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

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

+0

+1 धन्यवाद दोस्त, यह बहुत उपयोगी है :) –

0

चूंकि आप ब्लूटूथ का उपयोग कर रहे हैं, इसलिए आप फोन के मैक पते को अन्य अद्वितीय जानकारी को मान्य कर सकते हैं।

संबंधित मुद्दे