Developers Club geek daily blog

4 years ago

Introduction


Good afternoon.
Once I acquiring Raspberry Pi without any on that are more whole — as soon as mentions of it on habre beg. Starting to launch aimlessly ftp-servers, to try Node.js and other small server affairs, yet doing not acquire the new car. Certainly, to be engaged in that it are possible to find on open spaces of the Internet like distant discovery of garage I doing not become — owing to normal not knowledge of system of Linux and server programming languages. The car me becoming expensive and there were an idea — to deliver malinka in the car with USB fasten to it devices: GPS, the Web-camera, the 3G-modem — for what were b by 2nd Raspberry.
In this article I will describe preparation: setting of Node.JS, adjustment of OpenVPN and 3G.

Plans

It are necessary that in the machine it were install Malines with GPS connected to it and the webcam and that at any moment I c even look with a mobile phone that are creat with my machine.

So, we will start


Setting of Node.JS

We installed Node.JS with a site as in a repository version 0.6.18 lay.
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

Now we will add a path to Node.JS in variable surroundings that it were not necessary to register a long path. For this purpose we will edit a file:
sudo nano/etc/profile
вставвил строчки:
NODE_JS_HOME="/opt/node"
PATH="$PATH:$NODE_JS_HOME/bin"

As a result of head of this file will be vygldyaet here so:
# /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

We will need to install some units globally (e.g. npm install - g express), therefore we will make our user the owner of the directory of the note:
sudo chown -R pi /opt/node

We checked:
System of observation in the car behind it on Raspberry Pi. Part 1

For writing of the code further we will create a folder:
System of observation in the car behind it on Raspberry Pi. Part 1

By rules of searching of units we will make simlink of a global directory of units in home a directory, more in detail about it it are possible to esteem here: 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

System of observation in the car behind it on Raspberry Pi. Part 1

Adjustment of OpenVPN

As there are no possibility to be connect on SSH or though somehow to receive communication with Malinkoy through Opsosa except payment of service for exterior IP, we will adjust OpenVPN.

Preparation


  • there are a router with a static exterior IP address
  • one Malinka are connected to a router through Ethernet
  • there was 2 Maliness which will in was far and are accessible only through 3G


Let's produce for this purpose for a Raspberry connected to a router a physical IP address:
System of observation in the car behind it on Raspberry Pi. Part 1

Let's readdress requests of OpenVPN to a router from the outside of our "house" Malines, and for one and SSH and HTTP:
System of observation in the car behind it on Raspberry Pi. Part 1On house Raspberry we will install Node.JS just as it were ma earlier.

Setting

sudo apt-get install openvpn -y

About oscillation and adjustment already it are much wr both on habre, and out of. I using the following articles: habrahabr.ru/post/188474/, adw0rd.com/2013/01/10/openvpn/#.UmTuCBCpFZQ, www.volmed.org.ru/wiki/index.php/%D0%9D%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.

I will result kata of the adjustments.
System of observation in the car behind it on Raspberry Pi. Part 1
System of observation in the car behind it on Raspberry Pi. Part 1
For the client in the field of remote my exterior static address on a router are specif.

Adjustment 3G

Preparation

For access to 3G I buying the Huawei E1550 3G-modem from the Megaphone, with are more its a sim card.

The modem at connection are defin as a disk, therefore it are necessary to switch it in a mode of the modem.
System of observation in the car behind it on Raspberry Pi. Part 1

For switching it in a mode of the modem it are necessary to install the program and to reboot.
sudo apt-get update && sudo apt-get install usb-modeswitch -y
sudo reboot


Let's look at our devices:
System of observation in the car behind it on Raspberry Pi. Part 1

Actually adjustment of connection

Let's create a directory:
$ mkdir ~/3g && cd ~/3g

Let's download the program of adjustment 3G connections:
wget http://sourceforge.net/projects/vim-n4n0/files/sakis3g.tar.gz/download
tar -xzvf sakis3g.tar.gz

Let's download the program of a superstructure on UMTSKeeper (it are a superstructure over sakis3g and are wr it like the same author =))
To lie UMTSKeeper should in the same directory as sakis3G
$ wget http://zool33.uni-graz.at/petz/umtskeeper/src/umtskeeper.tar.gz
$ tar -xzvf umtskeeper.tar.gz

Doustanovim support of PPP
sudo apt-get install ppp -y

Now we will try to adjust 3G communication:
sudo /.sakis3g --interactive

From the first option we selected
Connect with 3G
, and in second 11th pnukt —
Custom APN
.
For a megaphone of adjustment following:
  • APN: internet
  • APN_USER: megafon
  • APN_PASS: megafon

If all are correctly the program will produce the message on successful connection.

That at rupture of communication connection at us already were recover UMTSKeeper lay.
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' &

Instead of value 12d1:1001' it are necessary to specify the number of a device from lsusb.

Now we will look at log:
System of observation in the car behind it on Raspberry Pi. Part 1

All worked, perfectly!
Now we will register this command in autoload:
crontab -e

System of observation in the car behind it on Raspberry Pi. Part 1

Inference


As a result we have such situation:
There are a router with an exterior static IP address to whom "house" Raspberry Pi and OpenVPN of the server appear in a role (and http in the future are connected) and "automobile" Raspberry Pi which with the help 3G the modem are connect to "house" OpenVPN.

It are a little pictures for a change:

System of observation in the car behind it on Raspberry Pi. Part 1
System of observation in the car behind it on Raspberry Pi. Part 1

P.S.

I the most part of time am engaged front-end'om, therefore a server part somewhere could be not ideal.
At the positive responses — in the following article I will write about connection and adjustment of the GPS receiver and the Web-camera through an USB hub.

This article is a translation of the original post at habrahabr.ru/post/202012/
If you have any questions regarding the material covered in the article above, please, contact the original author of the post.
If you have any complaints about this article or you want this article to be deleted, please, drop an email here: sysmagazine.com@gmail.com.

We believe that the knowledge, which is available at the most popular Russian IT blog habrahabr.ru, should be accessed by everyone, even though it is poorly translated.
Shared knowledge makes the world better.
Best wishes.

comments powered by Disqus