उसी रास्पबेरी पाई पर उसके लिए कार में निगरानी प्रणाली। भाग 1

परिचय


शुभ दोपहर
एक बार जब मैंने रास्पबेरी पाई को बिना किसी कारण के खरीद लिया - जैसे ही हब पर इसका उल्लेख शुरू हुआ। उसने अनायास ही एफ़टीपी सर्वर शुरू कर दिए, जब तक कि उसने नई कार नहीं खरीदी, तब तक वह नोड.जेएस और अन्य छोटे सर्वर मामलों की कोशिश कर रहा था। निश्चित रूप से, मैंने इंटरनेट पर ऐसा कुछ नहीं किया, जैसे कि लिनक्स सिस्टम और सर्वर प्रोग्रामिंग भाषाओं के ज्ञान की सामान्य कमी के कारण, गैरेज को दूरस्थ रूप से खोलना। कार मुझे प्रिय हो गई और विचार आया - एक कार में रास्पबेरी को लगाने के लिए यूएसबी उपकरणों के साथ इसे खराब कर दिया: जीपीएस, वेब-कैमरा, 3 जी-मॉडेम - जिसके लिए 2 रास्पबेरी खरीदा गया था।
इस लेख में मैं तैयारी का वर्णन करूंगा: OpenVPN और 3G को कॉन्फ़िगर करते हुए Node.JS स्थापित करना।

योजनाओं

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

तो चलिए शुरू करते हैं


Node.JS स्थापित करें

साइट से Node.JS स्थापित करें, चूंकि संस्करण 0.6.18 रिपॉजिटरी में है।
sudo mkdir /opt/node wget nodejs.org/dist/latest/node-v0.10.20-linux-arm-pi.tar.gz tar xvzf node-v0.10.20-linux-arm-pi.tar.gz sudo cp -r node-v0.10.20-linux-arm-pi/* /opt/node 

अब पर्यावरण चर में Node.JS के लिए पथ जोड़ें ताकि आपको एक लंबा रास्ता लिखना न पड़े। ऐसा करने के लिए, फ़ाइल को संपादित करें:
 sudo nano/etc/profile  : NODE_JS_HOME="/opt/node" PATH="$PATH:$NODE_JS_HOME/bin" 

परिणामस्वरूप, इस फ़ाइल का सिर इस तरह दिखाई देगा:
 # /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). if [ "`id -u`" -eq 0 ]; then PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" else PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games" fi NODE_JS_HOME="/opt/node" PATH="$PATH:$NODE_JS_HOME/bin" export PATH 

हमें विश्व स्तर पर कुछ मॉड्यूल स्थापित करने की आवश्यकता होगी (उदा। Npm इंस्टाल -g एक्सप्रेस), इसलिए हम अपने उपयोगकर्ता को नोड निर्देशिका का मालिक बनाएंगे:
 sudo chown -R pi /opt/node 

हम जाँच करते हैं:


भविष्य में कोड लिखने के लिए, एक फ़ोल्डर बनाएँ:


खोज इंजन के नियमों के अनुसार यहाँ पढ़ा जा सकता है, घर निर्देशिका में एक सिमलिंक वैश्विक मॉड्यूल निर्देशिका बनाने के लिए इस पर और अधिक के लिए: nodejs.ru/doc/v0.4.x/modules.html#_u0417_u0430_u0433_u0440_u0443_u0437_u043A_u0430_u0438_u0437_u043F_u0430_u043F_u043E_u043A_node_modules_ )
 ln -s /opt/node/lib/node_modules ~/node_modules 



OpenVPN कॉन्फ़िगर करें

चूंकि एसएसएच के माध्यम से कनेक्ट करने का कोई तरीका नहीं है या कम से कम किसी तरह से ओप्सोसा के माध्यम से मलिंका के साथ संपर्क में है, बाहरी आईपी के लिए सेवा का भुगतान करने के अलावा, हम ओपनवीपीएन को कॉन्फ़िगर करेंगे।

ट्रेनिंग


  • एक स्थिर बाहरी आईपी पते के साथ एक राउटर है
  • एक मलिंका ईथरनेट के माध्यम से राउटर से जुड़ा है
  • 2 रसभरी हैं जो केवल 3 जी के माध्यम से दूर और उपलब्ध होंगी


ऐसा करने के लिए, हम राउटर से जुड़े रास्पबेरी के लिए एक भौतिक आईपी पता जारी करेंगे:


हम अपने "घर" रास्पबेरी, और एक और एसएसएच और एचटीटीपी के लिए बाहर से ओपनवीपीएन राउटर से अनुरोध करते हैं:
होम रास्पबेरी पर, पहले की तरह ही Node.JS स्थापित करें।

स्थापना

 sudo apt-get install openvpn -y 

बहुत पहले से ही हेबे और बाहर दोनों पर पीढ़ी और ट्यूनिंग के बारे में लिखा गया है। मैंने निम्नलिखित लेखों का उपयोग किया: habrahabr.ru/post/188474 , adw0rd.com/2013/01/10/openvpn/#.UmTuCBCpFZQ , www.volmed.org.ru/wiki/index.php/%D0%9D%D0%D0% B0% D1% 81% D1% 82% D1% 80% D0% BE% D0% B9% D0% BA% D0% B0_OpenVPN_% D1% 81% D0% B5% D1% 80% D0% B2% D0% B5% D1% 80% D0% B0

मैं अपनी सेटिंग्स की कटिंग दूंगा।


क्लाइंट के लिए, दूरस्थ क्षेत्र में राउटर पर मेरा बाहरी स्थिर पता होता है।

3 जी सेटिंग

ट्रेनिंग

3 जी को एक्सेस करने के लिए, मैंने मेगाफोन से 3 जी-मॉडेम हुआवेई ई 1550 अपने सिम कार्ड से खरीदा।

कनेक्ट होने पर, मॉडेम को डिस्क के रूप में परिभाषित किया जाता है, इसलिए आपको इसे मॉडेम मोड पर स्विच करना होगा।


इसे मॉडेम मोड पर स्विच करने के लिए, आपको प्रोग्राम इंस्टॉल करना होगा और रिबूट करना होगा।
 sudo apt-get update && sudo apt-get install usb-modeswitch -y sudo reboot 


आइए देखते हैं हमारे उपकरण:


वास्तव में कनेक्शन स्थापित करना

एक निर्देशिका बनाएँ:
 $ mkdir ~/3g && cd ~/3g 

3G कनेक्शन सेटअप प्रोग्राम डाउनलोड करें:
 wget http://sourceforge.net/projects/vim-n4n0/files/sakis3g.tar.gz/download tar -xzvf sakis3g.tar.gz 

UMTSKeeper पर ऐड-ऑन प्रोग्राम डाउनलोड करें (यह sakis3g पर एक ऐड-ऑन है और इसे उसी लेखक द्वारा लिखा गया था =))
UMTSKeeper को उसी निर्देशिका में रहना चाहिए जो sakis3G के रूप में है
 $ wget http://zool33.uni-graz.at/petz/umtskeeper/src/umtskeeper.tar.gz $ tar -xzvf umtskeeper.tar.gz 

PPP समर्थन स्थापित करें
 sudo apt-get install ppp -y 

अब आइए 3 जी कनेक्शन स्थापित करने का प्रयास करें:
 sudo /.sakis3g --interactive 

पहले विकल्प में, चयन करें
3G से कनेक्ट करें
, और दूसरे 11 वें बिंदु में -
कस्टम APN

मेगाफोन के लिए, सेटिंग्स निम्नानुसार हैं:
  • APN: इंटरनेट
  • APN_USER: मेगाफोन
  • APN_PASS: मेगाफोन

यदि सब कुछ सही है, तो कार्यक्रम एक सफल कनेक्शन के बारे में एक संदेश प्रदर्शित करेगा।

कनेक्शन काट दिए जाने पर फिर से कनेक्ट करने के लिए, हमारे पास पहले से ही UMTSKeeper है।
 sudo /home/pi/3g/umtskeeper --sakisoperators "USBINTERFACE='0' OTHER='USBMODEM' USBMODEM='12d1:1001' APN='CUSTOM_APN' CUSTOM_APN='internet' APN_USER='megafon' APN_PASS='megafon'" --sakisswitches "--sudo --console" --devicename 'Huawei' --log --silent --nat 'no' & 

मान 12d1: 1001 'के बजाय , आपको अपना डिवाइस नंबर lsusb से बताना होगा

अब लॉग देखते हैं:


सब कुछ काम करता है, बढ़िया!
अब हम इस कमांड को स्टार्टअप पर लिखेंगे:
 crontab -e 



निष्कर्ष


परिणामस्वरूप, हमारे पास यह स्थिति है:
एक बाहरी स्थिर आईपी पते के साथ एक राउटर है, जिसके लिए एक "होम" रास्पबेरी पाई जुड़ा हुआ है और एक ओपनवीपीएन सर्वर (और भविष्य में http) और एक "कार" रास्पबेरी पाई के रूप में कार्य कर रहा है, जो 3 जी मॉडेम का उपयोग करके एक "होम" ओपनपीएनपी से जुड़ता है।

एक बदलाव के लिए कुछ तस्वीरें:




पुनश्च

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

Source: https://habr.com/ru/post/In202012/


All Articles