Общая Астрономическая Конференция

Общая Астрономическая Конференция (http://starlab.ru/index.php)
-   Своими руками (http://starlab.ru/forumdisplay.php?f=22)
-   -   Роутер D-Link DIR320 / Asus WL500gpV2 (http://starlab.ru/showthread.php?t=21974)

monstr 26.09.2011 15:21

Re: Роутер D-Link DIR320 / Asus WL500gpV2
 
Цитата:

Сообщение от Дядя Вова (Сообщение 427009)
выше писал, что не отключается и не подключается из наглой морды. (хотя вот сейчас перезагрузил роутер, камера заработала сама, т.е. перетыкать руками разъем не пришлось)


Кирилл, как я понял твой DIR-320 Олег по моей подсказке прошивал. Хотя нет. Вижу, что он в другими прошивками балуется.

Мне этот роутер для дачи и нужен. Вопрос про термометры я еще не поднимал "это следующим этапом". Но для тренировки хочу электросчетчик подключить.

Да-да, именно по твоей наводке и ушёл на ссылку как перешить dir320.
А что за счётчик? Он с com-интерфейсом? Жуть :).

Мой термометр спаян мною N месяцев назад ради побаловаться. Вот о нём: http://oleg.milantiev.com/material/?id=655
Надо б дооформить страничку.

Он пишет в порт данные по датчикам. Дальше их надо на стороне роутера складывать куда-нить, откуда показывать на морде.

Malice 26.09.2011 15:57

Re: Роутер D-Link DIR320 / Asus WL500gpV2
 
Цитата:

Сообщение от Дядя Вова (Сообщение 427009)
Но для тренировки хочу электросчетчик подключить.

ага, через плату управления нагрузками можно две нейтрали, те которые на счетчике слева подключаются, перемкнуть между собой и ... можно контролировать (в сторону уменьшения) счет за эл.энергию :)

Malice 26.09.2011 16:25

Re: Роутер D-Link DIR320 / Asus WL500gpV2
 
Как то раз, покупая объектив- ширик для вебки я обратил внимание на то, что подавляющее большинство предлагаемых камер передают аналоговый сигнал. Такие камеры вполне приемлемы по стоимости, да и по габаритным размерам, но ,что бы оцифровать сигнал, нужна аппаратная поддержка. Такие устройства называются регистраторами и имеют минимум 4 канала. Сигнал с которых можно передавать сразу на мониторы. Для компьютеров существуют PCI-платы видеозахвата, а еще бывают (!) USB переходники на одну и более камер. Извините, что без ссылок, пишу с КПК, а в другой руке коляска :)

Уважаемые ЛА, может быть данный способ менее ресурсоемок чем простая вебка?

Кирилл.

monstr 26.09.2011 18:29

Re: Роутер D-Link DIR320 / Asus WL500gpV2
 
Цитата:

Сообщение от Malice (Сообщение 427027)
Как то раз, покупая объектив- ширик для вебки я обратил внимание на то, что подавляющее большинство предлагаемых камер передают аналоговый сигнал. Такие камеры вполне приемлемы по стоимости, да и по габаритным размерам, но ,что бы оцифровать сигнал, нужна аппаратная поддержка. Такие устройства называются регистраторами и имеют минимум 4 канала. Сигнал с которых можно передавать сразу на мониторы. Для компьютеров существуют PCI-платы видеозахвата, а еще бывают (!) USB переходники на одну и более камер. Извините, что без ссылок, пишу с КПК, а в другой руке коляска :)

Уважаемые ЛА, может быть данный способ менее ресурсоемок чем простая вебка?

Кирилл.

Гляди, дело как обстоит. Все нормальные охранки построены на базе 1/3" чб чипа сони и ещё пары микрух обвеса. Им требуется 12В питания и да, по коаксиалу (кажется, 75 Ом) могут передавать сигнал без заметных потерь на десятки, а то и на сотню метров (точные цифры лучше уточнять).

Дальше тебе нужен или тюнер, или тот самый регистратор (по сути тот же тюнер, порой с квадратором. Может не правильно написал, но суть устройства в запихивании обычно 4х кадров в один. Бабульки в метро сидят и смотрят на телек с изображениями четырёх камер, к примеру).

Плюс такого решения в возможности удалять камеры на заметное расстояние. Минус - в цене. Дешёвая вебка стоит от 350р ерундовая до 800...1500 нормальная. Охранки обычно от тыщи и выше. Но это чувствительные чб камеры с известным посадочным креплением под объектив, то есть решение достаточно хорошее.. для компа. Ибо, для роутера я не видел даже намёка на дрова usb-тюнера. Можно поискать IP-тюнер, но его цена, я уверен, будет негуманной.

Дядя Вова 26.09.2011 21:16

Re: Роутер D-Link DIR320 / Asus WL500gpV2
 
Цитата:

Сообщение от monstr (Сообщение 427013)
Из php можно выполнять любые шеловские команды. Нам нужно выполнить команду для установки скорости порта (можно не через php, а в стартовых скриптах):
stty 19200 parodd -cstopb -F /dev/usb/tts/0 (это для PLA001 на первом порту)
Дальше есть два метода. Или выполнить команду
echo -n "0" > /dev/usb/tts/0 (но вместо "0" нужный код), или же открыть файл /dev/usb/tts/0 на запись и слать туда нужные байты средствами PHP, например так:

PHP код:

$fp fopen('/dev/usb/tts/0''w');
fwrite($fp0x10 );
fclose($fp); 


Третья попытка: А ЧИТАТЬ КАК?

monstr 26.09.2011 21:33

Re: Роутер D-Link DIR320 / Asus WL500gpV2
 
Цитата:

Сообщение от Дядя Вова (Сообщение 427067)
Третья попытка: А ЧИТАТЬ КАК?

А примерно так же, только fread, а не fwrite. Только надо учитывать, что если данных нет, скрипт повиснет в ожидании данных. Вводить таймауты и т.п.

Проще в старт-скрипте создать отдельный процесс:
cat /dev/usb/tts/0 >> /tmp/file &
, который будет писать всё приходящее с ком-порта в файл. При этом необходимо учитывать, что этот порт будет недоступен для других приложений. Стало быть, этот метод подходит для устройств, работающих только на чтение компом из них. К примеру, мой термомет, см. ссылку раньше.

А вот другой пример: PLA002 (порты ввода от purelogic). Плата работает по двуступенчатому протоколу:
1. шлём в порт 0xEE (шестнадцатеричное EE);
2. читаем байт состояния 8 входов.
Таким образом мы знаем, когда байт будет доступен для чтения и пхпшный скрипт не зависнет. Если устройство не отвалится.
Для повышения надёжности, процесс чтения из порта я бы вынес в отдельный шел-файл. К примеру, такой:

PHP код:

#/bin/sh
PORT="/dev/usb/tts/0"
FILE="/tmp/pla002"
stty что_там $PORT

while true; do
  echo 
"î" -$DEV
  cat $DEV 
$FILE
  sleep 1
done 

Скрипт запускается в старт-скрипте в фоне (& в конце). А из пхп-скрипта читается состояние портов из файла и дата модификации = актуальность данных.
Надо только потестировать всё это дело. Возможны неточности и роутерная специфика.

Дядя Вова 26.09.2011 21:37

Re: Роутер D-Link DIR320 / Asus WL500gpV2
 
Цитата:

Сообщение от monstr (Сообщение 427015)
А что за счётчик? Он с com-интерфейсом? Жуть :).

Самый дешевый многотарифник http://elektro.snabdost.ru/good90295.html
Внутри МК 89S52, как в EQ5 :)

Кстати, их теперь перепрограммировать надо - зимнее время-то престолоблюститель отменил.

monstr 30.09.2011 12:15

Re: Роутер D-Link DIR320 / Asus WL500gpV2
 
Вложений: 1
Дома тыща детей, мало столов где можно разложить железо и заниматься им.
Так что взял роутер и всё что с ним к себе в офис.



----------------------
- Прошил последней прошивкой с http://code.google.com/p/wl500g/ .
В данный момент это WL500gpv2-1.9.2.7-rtn-r3300.trx;

- подключил оборудование (модем, хаб: флешка);

- зашёл в интерфейс, там включил модем, сохранил, перегрузил. Есть инет;

- зашёл телнетом на роутер, нашёл что флешка в /dev/discs/disca/part1
Отформатировал её в ext3
#mkfs.ext3 /dev/discs/disca/part1;

- создал исполняемый скрипт /usr/local/sbin/post-boot
#cd /usr/local
#mkdir sbin
#cd sbin
#vi post-boot

- через терминал (putty), которым зашёл телнетом и скопировал туда текст будущего post-boot (i, потом shift+ins):
---
#!/bin/sh
/bin/umount /tmp/mnt/disca_1
/bin/mount /dev/discs/disca/part1 /opt

mkdir -p /var/spool/cron/crontabs
/usr/sbin/crond
echo "*/15 * * * * wget http://ping.milantiev.com/zzzzzz.php -O - > /dev/null" | /usr/bin/crontab -
---
через ESC, потом shift+z два раза вышел из ненавистного VI с сохранением файла.

- установил файл post-boot запускаемым
#chmod +x post-boot

- скопировал его в post-mount
#cp post-boot post-mount

- сохранил флэш
#flashfs save && flashfs commit && flashfs enable

- перегрузил роутер
#reboot

- глянул, смонтировалась ли флешка в /opt
#mount
последняя строка моя. Гут...

- запустил обновление системы пакетов и начал ставить пакеты (инет включен)
#ipkg.sh update
#ipkg.sh install ipkg-opt
#ipkg update
теперь можно ставить нужный софт
#ipkg install mc
#ipkg install less
#ipkg install php-thttpd
#ipkg install w3cam
#ipkg install libpng
#ipkg install e2fsprogs




- настройка софта и железа
--------------------
mc
#echo "export TERMINFO=/opt/share/terminfo" >> /usr/local/root/.profile
#echo "export TERM=xterm" >> /usr/local/root/.profile
#flashfs save && flashfs commit && flashfs enable
#reboot

--------------------
e2fsprogs
#tune2fs -m0 /dev/discs/disca/part1

--------------------
php-thttpd
зашёл в mc
#mc -cd

там перешёл в каталог /usr/local/sbin и F4 отредактировал post-mount. Добавил в него строчку
/opt/etc/init.d/S80thttpd start

вышел из mc (f10 или, если не работает, esc нажал-отпустил, 0 нажал, согласился)
#flashfs save && flashfs commit && flashfs enable
#reboot

проверил, доступен ли веб по порту 8080 снаружи, в браузере бука набрал
http://192.168.1.1:8080
Чёт выдало... каталоги какие-то. Что гут.

Чтобы заходить снаружи, открыл mc (#mc -cd), там редактировал (f4) файл /usr/local/sbin/post-firewall
В него написал:
--
#!/bin/sh

iptables -I INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
--
не забыл сделать файл исполняемым
#chmod +x /usr/local/sbin/post-firewall
и сохранить на флеш
#flashfs save && flashfs commit && flashfs enable
#reboot

--------------------
w3cam
подключил вебку, контроллируя системный лог
#tail -f /tmp/syslog.log
там появилась строчка webcam attached, когда воткнул вебку.
Сразу запустился встроенный вебкам-http-вещатель.
Зашёл в интерфейс, там disable в usb application / webcam, сохранил, перегрузил роутер

Сделал каталог для фоток
#mkdir /opt/share/www/webcam

Подгрузил нужные модули.
Для этого в mc (#mc -cd) открыл на редактирование (F4) файл /usr/local/sbin/post-boot
туда дописал строчки
----
insmod videodev
insmod input-core
insmod v4l2-common
insmod uvcvideo
----
Вышел из MC, сохранил флеш, перегрузил роутер
#flashfs save && flashfs commit && flashfs enable
#reboot

Проверил, работает ли vidcap (часть w3cam)
#vidcat -f jpeg -o /opt/share/www/webcam/1.jpg -d /dev/video0

:( дальше пока облом на этом направлении. Обе вебки, что я взял с собой древнючие, не uvc - их покупали из
расчёта подключить со старыми дровами (pwc, ovl) до перешивки роутера.

--------------------
подключил pl2303 usb-com переходник.
Подгрузил нужные модули.
Для этого в mc (#mc -cd) открыл на редактирование (F4) файл /usr/local/sbin/post-boot
туда дописал строчки
----
insmod pl2303
----
Вышел из MC, сохранил флеш, перегрузил роутер
#flashfs save && flashfs commit && flashfs enable
#reboot
(конечно, это можно было сделать, когда настраивал вебку)

Глянул в /dev
#ls /dev
там появился файл ttyUSB2 - мой переходник, кроме имеющихся раньше ttyUSB0 и ttyUSB1 (это skylink модем так определился)

Подключил реле, 12В питание реле.
Прописал в стартовый скрипт post-mount установку нужной мне скорости порта
--
stty 19200 parodd -cstopb -F /dev/ttyUSB2
--

Проверил, что реле щёлкает
#echo -n "0" > /dev/ttyUSB2

В стартовый скрипт добавил строку, чтобы дать всем права управлять ком-портом
--
chmod 666 /dev/ttyUSB2
--
не забыл сохранить на флеш всё

набросал простой php для коммутации нагрузки через реле, положил его через mc в /usr/share/www/index.php
--
<a href="?relay=1">on</a><br>
<a href="?relay=0">off</a><br>

<?php
$pla001 = '/dev/ttyUSB2';

if (strlen($_GET['relay']))
{
echo $_GET['relay'];
$fd = fopen($pla001, 'w');
fputs($fd, $_GET['relay']);
fclose($fd);
}
--
Всё потестил по инету. Реле переключается.

monstr 30.09.2011 12:20

Re: Роутер D-Link DIR320 / Asus WL500gpV2
 
Осталось:
- дома найти второй pl2303 переходник под pla002, прописать её в веб, потестить входы;
- дома найти свежую вебку, настроить скрипт на захват и запись фоток, показ их в вебе;
- потестить третий pl2303 переходник на моём термометре и вывести в веб.

Собственно, что есть уже можно тащить на дачу, монтировать оборудование и донастраивать снаружи.

monstr 30.09.2011 12:32

Re: Роутер D-Link DIR320 / Asus WL500gpV2
 
Вложений: 1
Вчера пришли детальки, но ещё не развёл плату под блок, который будет жить с моим wl500 на даче.
Плата на atmega16. У неё больше ног, чем у atmega8. Подключается к роутеру одним USB шнурком, дальше ft232rl микруха на борту (usb-com). Функции и плюсы перед решением, представленным выше:
- не нужен usb-com шнурок, точнее даже несколько шнурков;
- меряет температуру в 1..8 точек;
- управляет 8 (но можно больше, если ещё реле развести) нагрузок (оптоизолировано);
- получает 8 (опять таки, можно больше) входов (герконы, концевики, другие датчики) (оптоизолировано);
- коммутирует USB через герконовые реле.

Итого на роутере будет из железа:
- skylink;
- флешка;
- вышеописанная платка;
- 2..3 вебки. Так как будут опрашиваться по запросу через w3cam, а не все сразу, то тормозить роутер будут не больше чем одна вебка.


Часовой пояс GMT +4, время: 10:28.

Powered by vBulletin® Version 3.8.4 Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.