PHP का "हार्डवेयर" दुनिया में उपयोग? रूढ़ियों को तोड़ें
\n\nजब आप "embedded डेवलपमेंट" सुनते हैं, तो सबसे पहले दिमाग में C, असेंबली या MicroPython आता है। PHP? यह तो वेब की भाषा है जो सर्वर पर चलती है और HTML जनरेट करती है। इसका माइक्रोकंट्रोलर, सेंसर और फर्मवेयर से क्या लेना-देना?
\n\nअसल में, इसका सीधा संबंध है। PHP अब सिर्फ "फोरम की स्क्रिप्टिंग भाषा" नहीं रह गई है। आधुनिक इंटरप्रेटर (PHP 7+ से शुरू) ARM आर्किटेक्चर पर चल सकते हैं, और embedded वातावरण के लिए कई दिलचस्प समाधान मौजूद हैं। यह लेख कोई अकादमिक रिपोर्ट नहीं, बल्कि एक व्यावहारिक गाइड है कि कैसे PHP एम्बेडेड सिस्टम की दुनिया में आपका सहायक बन सकता है। हम वास्तविक उदाहरण देखेंगे, कोड लिखेंगे और जानेंगे कि यह वास्तव में कहाँ उपयोगी है।
\n\nEmbedded सिस्टम में PHP कब एक समझदारी भरा विकल्प है?
\n\n"2 KB RAM वाले माइक्रोकंट्रोलर" और "Linux पर चलने वाले सिंगल-बोर्ड कंप्यूटर" में भ्रमित न हों। PHP ATmega328P (Arduino Uno) पर नहीं चलेगा — इसके लिए C/C++ चाहिए। लेकिन अगर आपका डिवाइस इनमें से किसी पर काम करता है:
\n- \n
- ESP32 (ESP-IDF या RTOS के साथ esp8266); \n
- Raspberry Pi (या Allwinner, Rockchip पर आधारित समान); \n
- OpenWrt राउटर MIPS/ARM पर; \n
- औद्योगिक कंट्रोलर Linux पर। \n
…तो PHP आपके हार्डवेयर और बाहरी दुनिया के बीच एक आदर्श "गोंद" बन सकता है। खासकर जब आपको डिवाइस को नियंत्रित करने के लिए जल्दी से वेब इंटरफ़ेस बनाना हो, सेंसर से डेटा पार्स करना हो या उसे क्लाउड पर भेजना हो।
\n\nमाइक्रोकंट्रोलर पर PHP कैसे चलाएं? वास्तविक विकल्प
\n\nदो मुख्य तरीके हैं, और हम कोड उदाहरणों के साथ दोनों को देखेंगे।
\n\n1. ESP-IDF के साथ ESP32 पर PHP (Native PHP)
\nहाँ, ऐसे प्रोजेक्ट मौजूद हैं जो PHP इंटरप्रेटर को bare-metal माइक्रोकंट्रोलर पर पोर्ट करते हैं। सबसे प्रसिद्ध है PHP for ESP32 (प्रायोगिक फोर्क)। यह मल्टीथ्रेडिंग के बिना भाषा का एक छोटा संस्करण है, लेकिन इसमें बेसिक सिंटैक्स, ऐरे, स्ट्रिंग और GPIO है।
\n\nउदाहरण: ESP32 पर PHP से LED ब्लिंक करना
\n<?php\n// पिन के साथ काम करने के लिए लाइब्रेरी शामिल करें\nrequire "gpio.php";\n\n// GPIO2 (कई ESP32 पर बिल्ट-इन LED) को आउटपुट के रूप में सेट करें\n$pin = new GPIO(2, GPIO::OUTPUT);\n\nwhile (true) {\n $pin->write(GPIO::HIGH);\n delay(1000); // 1 सेकंड\n $pin->write(GPIO::LOW);\n delay(1000);\n}\n?>\nकोड परिचित लग रहा है, है ना? यह कोई मज़ाक नहीं है — ऐसा प्रोजेक्ट GitHub रिपॉजिटरी में मौजूद है। बेशक, प्रदर्शन C से कम है, लेकिन प्रोटोटाइपिंग के लिए यह बहुत अच्छा है।
\n\n2. Linux-संगत SBC पर PHP एक "सर्वर लेयर" के रूप में
\nयह सबसे व्यावहारिक परिदृश्य है। आप Raspberry Pi या Orange Pi लें, उस पर सामान्य PHP इंस्टॉल करें (जैसे, php8.3-cli) और इसका उपयोग करें:
- \n
gpiodयाwiringPiके माध्यम से GPIO से डेटा पढ़ने के लिए; \n - I2C/SPI सेंसर (तापमान, आर्द्रता, दबाव) के साथ काम करने के लिए; \n
- डिवाइस को नियंत्रित करने के लिए REST API बनाने के लिए। \n
उदाहरण: Raspberry Pi पर PHP से DHT22 तापमान पढ़ना
\n<?php\n// डेटा पढ़ने के लिए शेल कमांड का उपयोग करें (pigpio के माध्यम से)\n$output = shell_exec('pigs in 17'); // GPIO17\nif ($output === false) {\n die("सेंसर पढ़ने में त्रुटि");\n}\n\n// पार्स करें और प्रदर्शित करें\n$data = explode(" ", trim($output));\n$humidity = $data[0] / 10;\n$temperature = $data[1] / 10;\n\necho "तापमान: {$temperature}°C, आर्द्रता: {$humidity}%\\n";\n?>\nआप इसे वेब सर्वर में लपेटकर और आगे बढ़ा सकते हैं:
\n<?php\n// api.php - सरल REST एंडपॉइंट\nheader('Content-Type: application/json');\n\n$temperature = readSensor(); // आपका फंक्शन\necho json_encode([\n 'status' => 'ok',\n 'temp' => $temperature,\n 'timestamp' => time()\n]);\n?>\nचलाएं: php -S 0.0.0.0:8080 api.php — और आपका IoT गेटवे तैयार है!