आईओटी के साथ एक अनुभवी डेवलपर की शुरुआत कैसे होती है


10

मैं विभिन्न तकनीकों के साथ-साथ वास्तविक समय का उपयोग करके एक अनुभवी डेवलपर हूं। मैं एक ऐसे उपकरण के लिए सीखना चाहता हूं जो कंप्यूटर, टैबलेट या किसी भी परिचित डिवाइस के बारे में नहीं जानता है जिसके बारे में हर कोई जानता है।

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

यह मानते हुए कि मुझे पता है कि कैसे कोड करना है, मुझे अपना पहला IoT डिवाइस कैसे विकसित करना शुरू करना है?


"अन्य" उपकरणों में एक प्रोसेसर या माइक्रोकंट्रोलर के साथ-साथ एक सामान्य कंप्यूटर भी है, एकमात्र अंतर उनके प्रदर्शन, उपलब्ध स्मृति, आदि में है
बेंस कौलिक्स

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

3
मैंने एक संपादन किया है जो प्रश्न के कर्नेल तक पहुंचने की कोशिश करता है, लेकिन कुछ मूल पाठ को ध्यान में रखते हुए। मेरा सुझाव है कि OP @TheUnreal दूसरा भाग पूछता है "क्या IoT में आने से संसाधन वाली कंपनी की आवश्यकता होती है या क्या कोई व्यक्ति इस दुनिया में भी ऐसा कर सकता है?" एक अलग सवाल के रूप में, जैसा कि मुझे लगता है कि यह अभी भी एक प्रासंगिक है।
सिमोन मुनरो

जवाबों:


14

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

यदि आप सेंसर पढ़ने के बारे में पूछ रहे हैं, तो यह टेलीमेट्री है और जरूरी नहीं कि IoT हो। मैंने कई परियोजनाओं को कोडित किया है जहां एक स्टैंडअलोन पीसी पढ़ता है और कुछ माप प्रदर्शित करता है।

यदि आप भी संलग्न हार्डवेयर को नियंत्रित करना चाहते हैं, तो यह स्काडा है । फिर, यह जरूरी नहीं कि इंटरनेट से जुड़ा हो।

यहाँ SCADA का एक चित्र है, जो सामान्य रूप से IoT के लिए बहुत अच्छा एहसास देता है। ध्यान दें कि आरेख पर पीएलसी एस IoT सक्षम उपकरणों के सेंसर और नियंत्रण हैं।

SCADA वास्तुकला

आप हार्डवेयर अनुशंसाओं पर सेंसर और नियंत्रक के लिए हार्डवेयर की सराहना कर सकते हैं ।

और, एक बार आपके पास कुछ कोड होने के बाद, आप स्टैक ओवरफ्लो में समस्याओं के लिए सलाह ले सकते हैं ।

आम तौर पर, उद्योग के लिए IoT में क्लाइंट / सर्वर मॉडल शामिल होता है, जिसमें क्लाइंट हार्डवेयर उपकरणों को मापने / नियंत्रित करने और सर्वर से कमांड / प्राप्त करने के लिए रिपोर्टिंग करता है। सर्वर में भी आम तौर पर एक डेटाबेस होता है, और प्रबंधन और अलार्म के लिए रिपोर्ट की पीढ़ी की अनुमति देता है (और प्राप्त डेटा के आधार पर दूरस्थ हार्डवेयर को पुन: कॉन्फ़िगर / बंद करने का निर्देश दे सकता है)।

ओह! वह अंतर्मुखी है। अब हमारे हाथों को गंदा करने के लिए।

यदि आप कोडिंग की मजाकिया किरकिरी में उतरना चाहते हैं, तो सॉकेट देखें , और टीसीपी और यूडीपी के बीच अंतर को समझें ।

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

व्यक्तिगत रूप से, मैं व्याख्या करने के लिए संकलित भाषाओं को पसंद करता हूं, क्योंकि बग को बाहर निकालना आसान है, लेकिन पसंद पूरी तरह से आप पर निर्भर है। बस यह सुनिश्चित करें कि USB, ईथरनेट और - अभी भी उद्योग में बेहद सामान्य - सीरियल पोर्ट पर बाह्य उपकरणों तक पहुँचने के लिए इसका अच्छा समर्थन है।

सर्वर साइड के लिए, दुनिया का 90% सर्वर अभी भी PHP पर चल रहा है। हालाँकि, NodeJS के उपयोग पर एक निर्भरता है, मुख्य रूप से उन लोगों से जो ब्राउज़र ऐप्स को कोड करते हैं, जो वर्तमान में केवल जावास्क्रिप्ट में किया जा सकता है और दो भाषाओं को सीखना नहीं चाहते हैं। मैं ब्राउज़र आधारित IoT ऐप्स विकसित करने की अनुशंसा नहीं करता, क्योंकि फ़ाइल सिस्टम और बाह्य उपकरणों तक पहुँचने वाले ब्राउज़र कोड पर प्रतिबंध (हालांकि, मैं कॉर्डोवा की पसंद का उल्लेख करूंगा , यदि आप स्मार्टफोन के लिए विकसित करना चाहते हैं)।

आरंभ करने के लिए, मैं एक रास्पबेरी पाई (पायथन या सी में कोडिंग) की सिफारिश करूंगा ।

रास्पबेरी पाई बोर्ड

और मैं * अत्यधिक * एक सेंसर टोपी की सिफारिश करता हूं । यह केवल एक उदाहरण है, लेकिन यह महंगा नहीं है और इसमें शामिल है

  • गायरोस्कोप - कोणीय दर सेंसर: +/- 245/500 / 2000dps एक्सेलेरोमीटर
  • रैखिक त्वरण सेंसर: +/- 2/4/8/16 जी
  • मैग्नेटोमीटर - चुंबकीय सेंसर: +/- 4/8/12/16
  • गॉस बैरोमीटर: 260 - 1260 hPa निरपेक्ष सीमा (सटीकता तापमान और दबाव पर निर्भर करती है, सामान्य परिस्थितियों में +/- 0.1 hPa)
  • तापमान संवेदक (0-65 डिग्री सेल्सियस रेंज में +/- 2 degC पर सटीक)
  • सापेक्ष आर्द्रता संवेदक (20-80% आरएच रेंज में +/- 4.5% तक, 15-40 डिग्री सेल्सियस में +/- 0.5 डिग्री सेल्सियस तक सटीक)
  • 8x8 RGB एलईडी मैट्रिक्स डिस्प्ले
  • छोटा 5 बटन जॉयस्टिक

सेंसर बोर्ड

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

लेकिन, आप शायद अपने खुद के सर्वर को कोड करना चाहते हैं। मैं प्रोग्रामिंग भाषा के रूप में PHP की सिफारिश करूंगा। लिनक्स के लिए, आपको LAMP (Linux, Apache, Mysql & PHP) अच्छी तरह से प्रदान किया जाता है । विंडोज के लिए, आपको एक WAMP (विंडोज… आदि) इंस्टॉल करना होगा ।

आप अपनी पिक ले सकते हैं। मैंने एक दशक से अधिक समय तक औद्योगिक अनुप्रयोगों में XAMPP का उपयोग किया है । आपको मैसकल का उपयोग करने की आवश्यकता नहीं है , स्केलाइट 6 साल पहले के अपने स्वयं के SO प्रश्न के लिए बस (साथ ही प्लग रहित) सेवा कर सकता है, " Sqlite या MySql? कैसे तय करें? ")। आपको CRUD के बारे में भी सीखना होगा ।

क्लाइंट / सेंसर से प्राप्त डेटा के आधार पर, आप एक साधारण (भले ही उच्च तापमान), जो एक औद्योगिक प्रणाली में एक वाल्व को बंद करने के लिए अनुवाद कर सकते हैं, यहां तक ​​कि एक साधारण वापस भेजना चाहते हैं।

आप वास्तविक समय में अलार्म उठाना चाहते हैं (यह कहते हुए ईमेल भेजें कि तापमान बहुत अधिक है)।

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

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

आम तौर पर सिद्धांतों के लिए, सिंगल पेज एप्लीकेशन एस और AJAX का अवलोकन करें । मैंने, व्यक्तिगत रूप से, बहुत शोध किया और Google की AngularJS को मेरी प्रोग्रामिंग भाषा के रूप में चुना (बहुत सारे ट्यूटोरियल और महान समर्थन हैं), लेकिन आप सादे JS, Jquery, आदि का उपयोग करने के लिए स्वतंत्र हैं, जैसा कि आप कृपया।

यदि आप ब्राउज़र सामान को भी कोड करने का निर्णय लेते हैं, और आप सर्वर साइड पर NodeJs का उपयोग करने के लिए भी हो सकते हैं , ताकि आपको केवल एक नई प्रोग्रामिंग भाषा सीखनी पड़े।

बहुत सारे विकल्प? माफ़ करना :-(

मुझे उम्मीद है कि इसने आपको कुछ सलाह दी हैं, लेकिन बेझिझक सवाल पूछें, और मुझे बताएं कि क्या यहां कोई सामान्य सलाह गायब है।


1
धन्यवाद Mawg, जो आपने कहा था कि मैं पहले से ही जानता हूं और सवाल का एक अंश नहीं था, मैं PHP और जावास्क्रिप्ट के साथ-साथ कोरोडा के साथ वर्षों से काम कर रहा हूं। मुझे लगता है कि मैं UNO R3 खरीदना शुरू करूंगा और देखूंगा कि मैं वहां से कैसे आगे बढ़ सकता हूं।
theUnreal

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

1
... आप जेएस को जानते हैं, लेकिन मैं इसे एंबेडेड प्रोसेसर पर इस्तेमाल करने की सलाह नहीं दूंगा। आप कर सकते हैं , लेकिन यह निश्चित रूप से सामान्य नहीं है। शायद कुछ अजगर, या सी लेने का समय? या, शायद आपका मतलब UNO R3 <-> सर्वर <-> ब्राउज़र है? Arduino के साथ छड़ी यदि आप पहले से ही जानते हैं, हर तरह से। मैं आर पाई पर स्विच करता हूं, लेकिन यह सिर्फ मेरी निजी पसंद है। । क्या आपके पास सीखने की परियोजना है? संकेत, संकेत… iot.stackexchange.com/questions/675/… :-)
Mawg का कहना है कि मोनिका

9

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

जटिलता के गलत स्तर पर कूदना कठिन हो सकता है, और इसका मतलब यह हो सकता है कि आप बहुत जल्द हार मान लें। उदाहरण के लिए, लोग ESP8266 और NodeMCU को बिना सोचे समझे अनुशंसा करते हैं कि आपको सही एक प्राप्त करने की आवश्यकता है, आपको एक विकास बोर्ड पर चिप लगी चिप की आवश्यकता है, आपको इस पर अपना सॉफ्टवेयर प्राप्त करना होगा, आपको इसे केवल कुछ तक तार करने की आवश्यकता है, और केवल तब आप जावास्क्रिप्ट चलाने में सक्षम हैं। यह बहुत से अलग-अलग कौशल हैं जिनकी आपको आवश्यकता है, और आप उन चरणों में से किसी एक पर छोड़ सकते हैं।

मेरी सिफारिश एक Arduino के साथ शुरू करने के लिए है। जहां Arduino ने निर्माता समुदाय में एक अंतर बनाया था कि USB पोर्ट में Arduino को प्लग करना कितना आसान है, और संकलन, निर्माण, परिनियोजन श्रृंखला आपके लिए सभी प्रकार की है। आप कुछ कोड लिख सकते हैं, और कुछ एल ई डी को बहुत जल्दी फ्लैश कर सकते हैं।

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

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

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

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


1
यह मेरे सवालों का सबसे करीबी जवाब है। धन्यवाद।
21

6

मैं आपके पहले प्रश्न का उत्तर देने के लिए आगे बढ़ूंगा।

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

आपको यह तय करना होगा कि आप क्या बनाना चाहते हैं। यहाँ कुछ प्रेरणा और शांत विचारों को शुरू करने के लिए कर रहे हैं:

Arduino प्रोजेक्ट्स -> माइक्रोकंट्रोलर

रास्पबेरी पाई परियोजनाएं -> माइक्रोप्रोसेसर (अधिक शक्तिशाली)

hackaday.com -> मिश्रित घटक

एक बार जब आप यह जानना चाहते हैं कि आप क्या करना चाहते हैं, तो आपको अपनी परियोजना के लिए आवश्यकताओं के साथ आने की आवश्यकता है। माइक्रोकंट्रोलर, सेंसर, एक्चुएटर, संचार प्रोटोकॉल, आदि।

जैसा कि आप देख सकते हैं कि सबसे लोकप्रिय उपकरण Arduino , Raspberrypi और अन्य सभी रिश्तेदार हैं, बीगलबोन ब्लैक , प्याज , आदि, कई और अधिक हैं, अंतर कीमत हैं, अन्य सेंसर के साथ संगतता और लोकप्रियता। लोकप्रिय अधिक संगत हैं और मंचों पर उनका अधिक समर्थन है।

हम आपकी परियोजना के आधार पर आवश्यकता के अनुसार आपकी मदद करते हैं। सौभाग्य!


मेरे पास पहले से ही एक विचार है, लेकिन मैं इसमें कूदने से पहले इस दुनिया का अनुभव करना चाहता हूं। मुझे लगता है कि जैसे ही मैं जाऊंगा मैं यूनो आर 3 खरीदना शुरू कर दूंगा और सवाल पोस्ट करूंगा।
theUnreal

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

2

अन्य लोगों ने आपके प्रश्न के पहले पहलू पर ध्यान केंद्रित किया है; मैं बाद वाले पर ध्यान केंद्रित करने जा रहा हूं। आपने पूछा कि क्या कोई केवल IoT में जा सकता है या यदि आपको कई संसाधनों के साथ एक बड़ी कंपनी बनना है।

यदि आप टैग ब्राउज़ करते हैं , तो आप देखेंगे कि IoT डिवाइस हैं जिनके पास पहले से ही आपके लिए सभी सर्वर साइड हैं। बहुत सारे IoT डिवाइस हैं जिन्हें "बस कोई भी" खरीद सकता है, इसमें नेस्ट कैम, थर्मोस्टेट आदि शामिल होंगे, अमेज़ॅन इको, Google होम, स्मार्ट ओवन, रेफ्रिजरेटर, आदि।

यहां तक ​​कि कई नई कारें सुदूर या नियंत्रित होने वाली वस्तुओं के रूप में योग्य होती हैं ... हालांकि अभी तक नियंत्रित हिस्सा नहीं है। :)

यह आपके पहले प्रश्न का उत्तर देता है:

मैं अपना पहला IoT डिवाइस विकसित करने का अभ्यास कैसे शुरू कर सकता हूं?

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


1
और जहाँ iot.stackexchange.com/questions/675/… से शुरू करना बेहतर है ?
मावग का कहना है कि मोनिका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.