JavaScript एम्बेडेड की दुनिया में: बल्ब से IoT तक
\n\nजब हम "एम्बेडेड सिस्टम" सुनते हैं, तो आमतौर पर दिमाग में C, C++ या Raspberry Pi पर Python जैसी भाषाओं के जुड़ाव आते हैं। लेकिन क्या होगा अगर मैं आपसे कहूँ कि JavaScript — वही भाषा जिसमें आप फ्रंटएंड और बैकएंड लिखते हैं — माइक्रोकंट्रोलर, सेंसर और स्मार्ट उपकरणों की दुनिया में तेजी से प्रवेश कर रही है?
\n\nहाँ, आपने सही सुना। JavaScript पर एम्बेडेड डेवलपमेंट कोई मज़ाक नहीं है, बल्कि एक पूरी तरह से काम करने वाला ट्रेंड है, जो Espruino और Johnny-Five जैसे फ्रेमवर्क के आने की बदौलत गति पकड़ रहा है। आज हम समझेंगे कि कैसे अपने "हार्डवेयर दोस्त" को LED जलाने, सेंसर से डेटा पढ़ने और उसे क्लाउड पर भेजने के लिए प्रेरित करें — और यह सब शुद्ध JavaScript में।
\n\nएम्बेडेड में JavaScript क्यों? तीन ठोस कारण
\n\nऐसा लगता है, सीमित संसाधनों की दुनिया में स्क्रिप्टिंग भाषा क्यों लाएँ? यहाँ तीन तर्क हैं जो धारणा को बदल देते हैं:
\n\n- \n
- कम प्रवेश सीमा। यदि आप पहले से JS जानते हैं (और आजकल कौन नहीं जानता?), तो आपको C सीखने और पॉइंटर्स समझने की ज़रूरत नहीं है। आपका सारा अनुभव — फ्रंटएंड या Node.js से — हार्डवेयर पर स्थानांतरित हो जाता है। \n
- तेज़ प्रोटोटाइपिंग। JS में फर्मवेयर एक शाम में लिखा जा सकता है। कंपाइलेशन, रीफ्लैशिंग का इंतज़ार नहीं करना पड़ता — कई प्लेटफॉर्म Wi-Fi या USB के ज़रिए लाइव कोड लोडिंग का समर्थन करते हैं। \n
- IoT इकोसिस्टम। JavaScript "स्मार्ट" उपकरणों की आर्किटेक्चर में पूरी तरह फिट बैठता है: आप आसानी से MQTT, HTTP, WebSockets और क्लाउड सेवाओं (AWS IoT, Google Cloud IoT) के साथ एकीकृत हो सकते हैं। \n
बेशक, ऊर्जा खपत और गति की सख्त आवश्यकताओं वाले प्रोडक्शन के लिए C++ राजा बना हुआ है। लेकिन प्रोटोटाइप, शौकिया प्रोजेक्ट और शैक्षिक कार्यों के लिए एम्बेडेड JavaScript एक वास्तविक खोज है।
\n\nटूलकिट: हम किसके साथ काम करते हैं
\n\nकोड लिखने से पहले, आइए "हार्डवेयर" पर निर्णय लें। JS पर एम्बेडेड के लिए सबसे लोकप्रिय विकल्प:
\n\n- \n
- Espruino — एक माइक्रोकंट्रोलर जो "बॉक्स से बाहर" JavaScript समझता है। STM32 पर काम करता है, इसमें बोर्ड पर ही JS इंटरप्रेटर है। सीखने के लिए आदर्श। \n
- Raspberry Pi Pico + Espruino — एक सस्ता माइक्रोकंट्रोलर (केवल $4), जिस पर Espruino फर्मवेयर लोड किया जा सकता है। \n
- Johnny-Five + Arduino — क्लासिक। आप कंप्यूटर पर JS लिखते हैं, और Johnny-Five Firmata प्रोटोकॉल के माध्यम से Arduino को नियंत्रित करता है। उन लोगों के लिए उपयुक्त जिनके पास पहले से Arduino है। \n
- Raspberry Pi पर Node.js (पूर्ण Linux) — यदि आपको सिर्फ LED जलाने से ज्यादा चाहिए, जैसे वेब सर्वर चलाना, GPIO और कैमरों को नियंत्रित करना — तो Pi 4/5 लें। \n
इस लेख में हम Espruino और Johnny-Five पर ध्यान केंद्रित करेंगे, क्योंकि वे बिना किसी अतिरिक्त परत के सबसे शुद्ध JS अनुभव देते हैं।
\n\nकोड लिखना: JS पर LED जलाना
\n\nचलिए एम्बेडेड की दुनिया में "Hello, World!" से शुरू करते हैं — एक चमकती LED। Espruino पर पिन D13 (या Arduino पर पिन 13) से एक LED (220 ओम रेसिस्टर के साथ) कनेक्ट करें।
\n\nउदाहरण 1: Espruino (नेटिव JS)
\n\n// पिन D13 को आउटपुट के रूप में कनेक्ट करें\nvar led = LED1; // Espruino पर बिल्ट-इन LED\n\n// चमकाने का फंक्शन\nfunction blink() {\n led.toggle(); // स्थिति बदलें\n console.log('LED है', led.read() ? 'ON' : 'OFF');\n}\n\n// 500 ms का इंटरवल सेट करें\nsetInterval(blink, 500);\n\n\nइस कोड को Espruino Web IDE (या टर्मिनल के माध्यम से) लोड करें। LED 1 Hz की आवृत्ति पर चमकने लगेगी। ध्यान दें: हम setInterval का उपयोग कर रहे हैं — बिल्कुल ब्राउज़र या Node.js की तरह। C में कोई रजिस्टर, टाइमर या इंटरप्ट नहीं — बस JS।
उदाहरण 2: Johnny-Five + Arduino
\n\nयदि आपके पास Arduino है, तो npm के माध्यम से Johnny-Five लाइब्रेरी इंस्टॉल करें:
\n\nnpm install johnny-five