परिचय
सीरियल पोर्ट के साथ काम करना आज भी इंडस्ट्रियल, IoT, रोबोटिक्स और माइक्रोकंट्रोलर सिस्टम में बेहद ज़रूरी है। COM (RS-232/RS-485/USB-Serial) के ज़रिए डिवाइस को कंट्रोल करने के लिए एक स्थिर, क्रॉस-प्लेटफ़ॉर्म और लचीला टूल चाहिए। Python में इसका सबसे अच्छा समाधान है PySerial लाइब्रेरी।
PySerial सीरियल लाइनों पर कनेक्शन, कॉन्फ़िगरेशन और डेटा ट्रांसफर के लिए एक सरल और शक्तिशाली इंटरफ़ेस देता है। इसका उपयोग Arduino, Raspberry Pi, मॉडम, GPS रिसीवर, कंट्रोलर, सेंसर और कई अन्य उपकरणों से जुड़ने के लिए किया जाता है।
PySerial लाइब्रेरी के बारे में
PySerial एक क्रॉस-प्लेटफ़ॉर्म Python लाइब्रेरी है जो सीरियल पोर्ट के साथ काम करने के लिए बनाई गई है। इसे क्रिस लीच्टी ने डेवलप किया और यह Python इकोसिस्टम में सीरियल कम्युनिकेशन का डी-फैक्टो स्टैंडर्ड बन गई है। यह लाइब्रेरी Windows, Linux, macOS और कई अन्य ऑपरेटिंग सिस्टम को सपोर्ट करती है।
PySerial की मुख्य विशेषताएं
यह लाइब्रेरी विभिन्न प्रकार के सीरियल कनेक्शन के लिए एक यूनिफ़ाइड API प्रदान करती है। यह पोर्ट से जुड़ी प्लेटफ़ॉर्म-स्पेसिफिक जटिलताओं को अपने आप हैंडल करती है और डेवलपर को एक सरल इंटरफ़ेस देती है।
PySerial न सिर्फ़ फिजिकल COM पोर्ट को सपोर्ट करती है, बल्कि वर्चुअल कनेक्शन जैसे USB-to-Serial एडेप्टर, Bluetooth Serial Port Profile, और RFC2217 प्रोटोकॉल के ज़रिए नेटवर्क कनेक्शन को भी सपोर्ट करती है।
इंस्टॉलेशन और कनेक्शन
लाइब्रेरी को इंस्टॉल करने के लिए pip पैकेज मैनेजर का उपयोग करें:
pip install pyserial
Python स्क्रिप्ट में लाइब्रेरी को जोड़ने के लिए स्टैंडर्ड इम्पोर्ट का उपयोग करें:
import serial
बेसिक आर्किटेक्चर
कनेक्शन का जीवनचक्र
PySerial के साथ सामान्य काम एक सरल पैटर्न पर चलता है:
- Serial ऑब्जेक्ट बनाना — पोर्ट के पैरामीटर के साथ इनिशियलाइज़ेशन
- कनेक्शन खोलना — डिवाइस से संपर्क स्थापित करना
- डेटा का आदान-प्रदान — कमांड भेजना और जवाब पढ़ना
- कनेक्शन बंद करना — सही तरीके से काम खत्म करना
ser = serial.Serial('COM3', baudrate=9600, timeout=1)
ser.write(b'command')
data = ser.readline()
ser.close()
मुख्य कॉन्फ़िगरेशन पैरामीटर
Serial ऑब्जेक्ट बनाते समय कई पैरामीटर सेट किए जा सकते हैं:
- port — डिवाइस का नाम (COM1, /dev/ttyUSB0, /dev/ttyAMA0)
- baudrate — डेटा ट्रांसफर की स्पीड (आमतौर पर 9600, 38400, 115200)
- bytesize — कैरेक्टर का साइज़ बिट्स में (5, 6, 7, 8)
- parity — पैरिटी चेक (PARITY_NONE, PARITY_EVEN, PARITY_ODD)
- stopbits — स्टॉप बिट्स की संख्या (1, 1.5, 2)
- timeout — रीड ऑपरेशन का टाइमआउट सेकंड में
डेटा पढ़ने के तरीके
बेसिक रीडिंग मेथड्स
PySerial पोर्ट से डेटा पढ़ने के कई तरीके देती है:
Serial.read(size=1) — बिल्कुल उतने बाइट्स पढ़ता है जितने आपने बताए। अगर डेटा कम है, तो यह तब तक रुका रहता है जब तक सारे बाइट्स न मिल जाएं या टाइमआउट न हो जाए।
data = ser.read(10) # 10 बाइट्स पढ़ें
Serial.readline() — नई लाइन (\n) के कैरेक्टर तक डेटा पढ़ता है। टेक्स्ट प्रोटोकॉल के लिए यह सबसे लोकप्रिय तरीका है।
line = ser.readline().decode('utf-8').strip()
Serial.read_all() — इनपुट बफर में मौजूद सारा डेटा तुरंत पढ़ लेता है।
all_data = ser.read_all()
एडवांस्ड रीडिंग मेथड्स
Serial.read_until(expected) — तब तक डेटा पढ़ता है जब तक कि आपके द्वारा बताया गया कैरेक्टर न मिल जाए।