कार्य
जैसा कि अक्सर होता है, कार्य उपलब्ध उपकरणों की मानक विशेषताओं में फिट नहीं होते हैं। तो इस बार ऐसा ही हुआ। आगे, मैं इस समस्या की रूपरेखा तैयार करूंगा।
विशाल देश (यूक्रेन) में कई दूरस्थ वस्तुएं विद्युतीकृत हैं, लेकिन इंटरनेट से जुड़ने की सरल तकनीकी क्षमता नहीं है। ऑब्जेक्ट आमतौर पर स्थित होते हैं इसलिए 3 जी या वाईमैक्स के बारे में हकलाने की कोई आवश्यकता नहीं है। केवल जीपीआरएस उपलब्ध है। इन वस्तुओं के कई कमरों में तापमान की निगरानी करने में सक्षम होना आवश्यक है। इसके अलावा, यह वांछनीय है यदि वास्तविक समय में नहीं, तो न्यूनतम विलंब के साथ। यह इस तथ्य से जटिल है कि वस्तुएं, हालांकि अचल संपत्ति, लेकिन ऐसी स्थितियां हो सकती हैं जो चलती रहेंगी। इसलिए, उपकरण की स्थापना के पूंजी तरीके गायब हो जाते हैं।
यही है, ऐसे कॉम्प्लेक्स का होना अच्छा होगा जो आसानी से एक नई जगह पर स्थानांतरित किया जा सके, एक पावर आउटलेट में प्लग करें और सेंसर को इसके बारे में भूल जाएं। मुझे अच्छी तरह से पता है कि इस घंटे बाजार उपयुक्त समाधानों से भरा है, लेकिन हमेशा की तरह मरहम में एक मक्खी है - इस मामले में यह कीमत है। साथ ही, अक्सर ये समाधान अपने स्वयं के सॉफ़्टवेयर के साथ आते हैं। और अगर, भगवान न करे, आपको इसमें कुछ बदलने की जरूरत है, तो मैं आपको नहीं बताऊंगा, कई लोगों ने शायद इसी तरह के विषयों पर समर्थन सेवाओं के साथ संवाद किया है।

उपकरण
ऐसा हुआ कि एक अन्य परियोजना के संबंध में, मेरे डेस्क पर एक जीपीएस ट्रैकर था, कुछ इस तरह से -
habrahabr.ru/post/100747 उनकी ख़ासियत यह है कि उन्हें इतालवी कंपनी टेलिट के मॉड्यूल का उपयोग करके लागू किया गया है। यह कंपनी जीपीएस-जीएसएम और सिर्फ जीएसएम मॉड्यूल दोनों का उत्पादन करती है। इन मॉड्यूल की ख़ासियत यह है कि वे पायथन के अंदर हैं। यही है, वे स्क्रिप्ट निष्पादित कर सकते हैं। और स्वाभाविक रूप से, सभी उपकरण और मॉड्यूल संसाधन पायथन से सुलभ हैं। क्या आप समझते हैं कि यह सब क्या है? '
कई ट्रैकर्स में सीधे सेंसर कनेक्ट करने की क्षमता होती है, लेकिन पहले आप सेंसर को काफी दूरी पर स्थापित नहीं कर सकते हैं, और दूसरे में उनकी संख्या दो या चार तक सीमित है। इस पर मैं दूसरे रास्ते से चला गया। सौभाग्य से, ट्रैकर में एक COM पोर्ट भी है। लेकिन इसकी मदद से स्थिर SCADA सिस्टम के लिए लगभग किसी भी उपकरण से पूछताछ करना पहले से ही संभव है।
यह ध्यान देने योग्य है कि टेलिट मॉड्यूल के बाद से बोर्ड पर लगभग सभी पायथन हैं और न्यूनतम बदलाव के साथ एक मॉड्यूल के लिए लिखी गई स्क्रिप्टें दूसरे पर काम करेंगी। यह सिर्फ इतना है कि यदि मॉड्यूल में, उदाहरण के लिए, GPS नहीं है, तो आपको उल्लेखनीय सरलता दिखाने की आवश्यकता है और इसे स्क्रिप्ट में उपयोग करने का प्रयास नहीं करना चाहिए।
मैंने ट्रैकर पर स्क्रिप्ट लिखी और परीक्षण किया, और फिर टेलिट GL868-Dual मॉड्यूल पर
gprs-modem.ru/product/gsm-modem-teleofis-rx108-r-rs485-s-opciej-kkplenie-na-din-rejku मॉडेम पहले से ही खरीदा हुआ था। और यह वास्तव में अभी काम किया!
इसके अलावा पास में
OVEN फर्म MVA-8
www.owen.ru/catalog/95286354 का एनालॉग इनपुट मॉड्यूल था।

यह 8 सेंसर को एनालॉग सिग्नल इनपुट करने के लिए एक सरल मॉड्यूल है। मोडबस (ASCII, RTU), DCON, ARIES प्रोटोकॉल का समर्थन करता है। यह सिर्फ एक ट्रैकर है और पायथन को ऐसे प्रोटोकॉल के बारे में नहीं पता है। प्रशिक्षण लेना है।
उपकरणों के बीच संचार RS485 के माध्यम से होता है और इसलिए वे एक दूसरे से काफी दूरी पर परस्पर भिन्न हो सकते हैं। इसके अलावा, सेंसर खुद एमबीए -8 से काफी दूर स्थित हो सकते हैं।
कार्यान्वयन
टेलिट मॉड्यूल का उपयोग करना काफी सरल है। लिखित स्क्रिप्ट को मॉड्यूल में लोड किया गया है और निष्पादन के लिए चिह्नित किया गया है। AT कमांड्स और पायथन फंक्शंस पर डॉक्स यहां
देखे जा सकते हैं। यह हमारे देशों के लिए थोड़ा कम है।

यह देखा जा सकता है कि इसे घर पर समस्याओं के बिना हल किया जा सकता है। स्ट्रैपिंग कम से कम है।
मैं यह नोट करना चाहता हूं कि जब आप दस्तावेज डाउनलोड करते हैं, तो यह जांचना सुनिश्चित करें कि यह आपके मॉड्यूल के विशिष्ट फर्मवेयर संस्करण के लिए उपयुक्त है। यह एक गंभीर रेक है। आप एक बग को लंबे समय तक और थकाऊ के लिए खोज सकते हैं, लेकिन यह पता चलता है कि बस फ़ंक्शन समर्थित नहीं है। समर्थित फर्मवेयर संस्करण निर्देशों के बहुत शुरुआत से पाए जा सकते हैं।
मैं हर उस चीज को रिट्वीट नहीं करूंगा जो डॉक पर लिखा गया है। वहां सब कुछ उपलब्ध है। संक्षेप में, हमारे पास किसी भी तरह से बोर्ड पर कई डिवाइस हैं: MDM, MDM2, SER, SER2, MOD, GPS (यदि हो तो)। मुझे लगता है कि नाम से आप अनुमान लगा सकते हैं कि क्या है। और अंत में, यह सब इस तथ्य पर उतरता है कि SER के माध्यम से हम MBA8 से पूछताछ करते हैं और एमडीएम (मॉडेम) के माध्यम से इसे अपने सर्वर पर भेजने का प्रयास करते हैं, और यदि यह काम नहीं करता है, तो हम डेटा फ़ाइल को बेहतर समय पर रखते हैं।
एमडीएम और एमडीएम 2 दो मॉडेम नहीं हैं और एक ही मॉडेम के सिर्फ दो इंटरफेस हैं। किस लिए? यदि आप कुछ समान लागू करना चाहते हैं तो आपको पता चल जाएगा।
अब क्रम में। मॉडेम के साथ काम को कैसे व्यवस्थित किया जाए इसे उस लिंक से ऊपर देखा जा सकता है जहां मैंने एक ट्रैकर का उदाहरण दिया था। MBA8 का एक सर्वेक्षण है। हम कर लेंगे।
मैं भाग्यशाली नहीं था कि मेरे पास पुराने MBA8 थे और इसने केवल अपने ARIES प्रोटोकॉल का समर्थन किया। इस प्रोटोकॉल ने मुझे बहुत हैरान किया। मेरे लिए यह इतना मुश्किल क्यों है यह अस्पष्ट है, लेकिन मैं इस पर सर्वेक्षण को लागू करने में कामयाब रहा। आपको प्रोटोकॉल में हेडलॉग नहीं जाना है। यहां तैयार मतदान और चेकसम कार्य हैं। कृपया किक न करें, यह पहली बात है जो मैंने पायथन में लिखी है। वैसे, वहाँ अजगर, हालांकि 1.5.2, नीचे बहुत छीन लिया गया है। उदाहरण के लिए, इसमें एक घटना के रूप में फ्लोटिंग पॉइंट नंबर नहीं होते हैं। इसलिए, डॉक को पढ़ना सुनिश्चित करें।
चेकसम की गणना के लिए कार्य:
def Crc16Owen(buffer): CRC = 0x0000 for j in range(0,len(buffer)): byte = ord(buffer[j]) for i in range(0,8): if ((byte^(CRC>>8))&0x80): CRC = (CRC & 0x7FFF) << 1 CRC = CRC ^ 0x8F57 else : CRC= (CRC & 0x7FFF) << 1 byte = (byte&0x7F) << 1 return CRC
सामान्य दृश्य में ARIES स्ट्रिंग्स का अनुवाद करने का कार्य:
def OwenToHex(S): Sr='' for i in range(1,len(S)-1,2): a = ((ord(S[i])+0x09) << 4) & 0xF0 b = (ord(S[i+1])+0x09)&0x0F Sr = Sr + chr(a+b) return Sr
पता नंबर 8 के साथ MBA8 का मतदान कार्य:
ToMva8Request = ['#GOHGONOKHTVU\r', '#GPHGONOKINGG\r', '#GQHGONOKMOGI\r', '#GRHGONOKLIVS\r', '#GSHGONOKVMGM\r', '#GTHGONOKSSVO\r', '#GUHGONOKOJVQ\r', '#GVHGONOKRPGK\r'] def GetMva8Data(): Mva8Data = '' SER.receive(5)
मैं एक बार फिर याद दिलाना चाहता हूं कि एक अच्छी अश्लील भाषा के साथ मुझ पर चिल्लाने से पहले, यह अंतर्निहित अजगर की पेचीदगियों को समझने के लायक है, बहुत सारी समस्याएं हैं।
कई सीमाएँ हैं। उदाहरण के लिए, स्क्रिप्ट और अन्य फ़ाइलों के लिए स्थान केवल 2 एमबी हैं। लेकिन कहानी फ़ाइल के लिए पर्याप्त है। साथ ही, फ़ाइलों के साथ काम करना बहुत धीमा है और ऐसे लकड़हारे की ठंड की शुरुआत लगभग 1.5 मिनट तक होती है। बेशक, आप प्रत्येक 30 सेकंड में एक से अधिक बार सर्वेक्षण का आयोजन कर सकते हैं, लेकिन आपको यह करना होगा। चूंकि मैं हर 5 मिनट में सर्वेक्षण से संतुष्ट हूं, इसलिए इस समस्या ने मुझे चिंतित नहीं किया। और यह मत भूलो कि हम स्मृति का उपयोग करते हैं जिसमें सीमित संख्या में ओवरराइट होते हैं। यदि आपका लकड़हारा लगातार एक ही सेल में डेटा मार रहा है, तो आपके पास दो महीने के लिए पर्याप्त मेमोरी होगी, जिसके बाद विफलताएं होंगी। लेकिन इतिहास फ़ाइल को इस तरह से लागू करना संभव है कि रिकॉर्ड को हर समय विभिन्न कक्षों में रखा जाए, जिसे लागू किया गया था। इस मोड में मेमोरी का उपयोग करने का अनुमानित समय लगभग 500 वर्ष था। यदि आप मेमोरी निर्माताओं के डेटा पर भरोसा करते हैं।
मॉडेम में एक माइनस है - यह घड़ी को रीसेट करता है जब बिजली बंद हो जाती है, तो मुझे सर्वर से समय की रसीद को व्यवस्थित करना होगा।
और वैसे, मुझे पता है कि एक ही स्मार्ट सीमेंस मोडेम हैं, लेकिन मुझे टेलिट अधिक पसंद है। और अन्य कारण भी हैं, लेकिन वे यहां नहीं होंगे।
खैर, अब मुख्य बात के बारे में - कीमत।
मॉडेम - 2 950 रगड़।
MVA8 - 4,189.00 रूबल।
स्वयं सेंसर + तार जोड़ें।
मेरी राय में यह बहुत सस्ते में बदल गया। और यह मत भूलो कि यह सब आसानी से स्थानांतरित किया जा सकता है और दूसरी जगह स्थापित किया जा सकता है।
PS मुख्य विचार यह है कि मॉडेम न केवल मॉडेम के कार्यों को करता है, बल्कि एक विज़ार्ड के कार्यों को भी करता है जो स्टोरेज के उपकरण और कार्यों से पूछताछ करता है। और आपको एक अलग, यहां तक कि न्यूनतम, बफर सर्वर का उपयोग करने की आवश्यकता नहीं है।