Категории раздела |
|
Автомобильные гаджеты, ремонт...
[143]
|
Безопасность IT
[404]
|
Блоки питания, Power Banks, зарядки...
[508]
|
Видеорегистраторы
[186]
|
Гаджеты для спорта и здоровья...
[190]
|
Гаджеты, аксессуары...
[627]
|
Измерительная техника, инструменты
[437]
|
Накопители данных
[232]
|
Нетбуки, Ноутбуки, Ультрабуки
[689]
|
Мультиварки, блендеры и не только...
[162]
|
Планшеты
[764]
|
Радар-детекторы
[26]
|
Роботы-пылесосы
[37]
|
Своими руками
[360]
|
Сети, сетевые технологии, оборудование...
[273]
|
Смартфоны
[4959]
|
Фотокамеры, объективы, искусство фотографии..
[541]
|
Умный дом
[50]
|
Электронные книги
[101]
|
CB, LPD, PMR- связь...
[170]
|
DECT, IP-телефоны
[18]
|
Drones, boats, cars...
[108]
|
electric cars
[35]
|
GPS-навигаторы, трекеры...
[51]
|
Linux и не только
[3981]
|
mini computers и не только...
[409]
|
News IT, Это интересно, ликбез...
[1120]
|
Smart TV, UltraHD, приставки, проекторы...
[415]
|
Smart Watch
[268]
|
Sound: наушники, плееры, усилители...
[618]
|
Windows 10...
[301]
|
Windows 11
[37]
|
| |
|
|
| | |
| Главная » 2013 » Ноябрь » 14 » Система наблюдения в автомобиле за ним же на Raspberry Pi. Часть 1
06:31 Система наблюдения в автомобиле за ним же на Raspberry Pi. Часть 1 |
Система наблюдения в автомобиле за ним же на Raspberry Pi. Часть 1
Введение
Добрый день.
Однажды я приобрёл Raspberry Pi без каких-то на то целей — как только
начались упоминания о нём на хабре. Начал бесцельно запускать
фтп-сервера, пробовать Node.js и прочие мелкие серверные дела, пока не
приобрёл новый автомобиль. Конечно, заниматься тем, что можно найти на
просторах интернета вроде дистанционного открытия гаража я не стал — в
силу нормального не знания системы Linux и серверных языков
программирования. Автомобиль стал мне дорог и возникла идея — поставить малинку в автомобиль с прикрученными к ней USB девайсами: GPS, Web-камера, 3G-модем — для чего и был куплен 2-ой Raspberry.
В этой статье я опишу подготовку: установку Node.JS, настройку OpenVPN и 3G.
Планы
Необходимо чтобы в машине была установлена Малина с подключёнными к ней
GPS и веб-камерой и чтобы в любой момент я мог даже с мобильного
телефона посмотреть что творится с моей машиной.
Итак, приступим
Установка 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"
В итоге head этого файла будет выглдяеть вот так:
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
install -g express), поэтому сделаем нашего пользователя владельцем
каталога ноды:
sudo chown -R pi /opt/node
Проверяем:
Для написания кода в дальнейшем создадим папку:
По правилам поиска модулей сделаем симлинк глобальной директории модулей
в home директорию, подробнее об этом можно почитать тут: 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
Так как нету возможности подключаться по SSH или хоть как-то получить
связь с Малинкой через ОпСоСа кроме оплаты услуги за внешний IP,
настроим OpenVPN.
Подготовка
- есть роутер со статическим внешним IP-адресом
- одна Малинка подключена к роутера через Ethernet
- есть 2 Малина, которая будет в далеке и доступна только через 3G
Для этого будем выдавать для Малины, подключённой к роутеру физический IP-адрес:
Переадресуем запросы OpenVPN к роутеру извне нашей «домашней» Малине, а за одно и SSH и HTTP:
На домашний Raspberry установим 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%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.
Приведу каты своих настроек.
Для клиента в поле remote указан мой внешний статический адрес на роутере.
Настройка 3G
Подготовка
Для доступа к 3G я купил 3G-модем Huawei E1550 от Мегафон, с её же сим-картой.
Модем при подключении определяется как диск, поэтому необходимо переключить его в режим модема.
Для переключения его в режим модема необходимо установить программу и перезагрузиться.
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
Теперь попробуем наладить 3G связь:
sudo /.sakis3g --interactive
В первой опции выбираем Connect with 3G , а во второй 11-ый пнукт — Custom APN .
Для мегафона настройки следующие:
- APN: internet
- APN_USER: megafon
- APN_PASS: megafon
Если всё будет верно, то программа выдаст сообщение об успешной подключении.
Для того, чтобы при разрыве связи восстанавливалось подключение у нас уже лежит 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
Заключение
В итоге у нас такая ситуация:
Есть роутер с внешним статическим IP-адресом, к которому подключён
«домашний» Raspberry Pi и выступающий в роли OpenVPN сервера (и http в
будущем) и «автомобильный» Raspberry Pi, который при помощи 3G модема
подключается к «домашнему» OpenVPN.
Немного картинок для разнообразия:
P.S.
Я большую часть времени занимаюсь front-end'ом, поэтому серверная часть где-то может быть не идеальной.
http://habrahabr.ru/post/202012/
|
Категория: mini computers и не только... |
Просмотров: 1106 |
Добавил: laptop
| Рейтинг: 4.0/1 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
| |
| | |
|
Волк слабее льва и тигра, но в цирке волк не выступает!
Волк - единственный из зверей, который может пойти в бой на более сильного противника.
Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...
Внимание! |
|
Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
| |
|
|