Прошивка для роутера 'брикет' на базе SoC Ralink - Home IoT edition
Введение
Дополнительная информация будет немного позже.
Возможности устройства после прошивки
- Организация доступа в Интернет через любой 3G EVDO/UMTS или Yota LTE модем
- Локальный MQTT брокер с возможностью проксирования данных и клиент к нему
- Работа WiFi в режиме точки доступа (multi-SSID), клиента или репитера
- Отправка снапшотов с любых USB UVC камер по протоколу FlyPeek на сервер FlyHub и/или Яндекс.Диск
- Отправка данных на сервер FlyMon (графики, дашборд) по протоколам FlyMon и MQTT
- И еще куча всего…
Поддерживаемые роутеры и их типы
Первичная прошивка
Обновление прошивки
Данный метод предназначен для тех, у кого роутер уже прошит в OpenWRT или “Домовёнок”.
Скачайте файл прошивки с файлового архива (адрес см. ниже).
Установите на роутере пароль командой passwd. Это автоматически включит возможность доступа по ssh.
Запишите файл на роутер в каталог /tmp при помощи програмы WinSCP (включите протокол scp).
Если ваш роутер имеет доступ в интернет, получить на него свежую прошивку, без WinSCP, можно так:
wget -O /tmp/openwrt-ramips-rt305x-bricket-zftlab-flypeek-current http://zftlab.org/files/firmware_bricket/openwrt-ramips-rt305x-bricket-zftlab-flypeek-v20161010c.bin
Зайдите на роутер используя ssh и наберите команду, дополнив ее нажатием TAB и ENTER:
sysupgrade -n /tmp/openwrt-ramips-rt305x-bricket-zftlab [TAB и Enter]
Нажатие на TAB нужено для автоматического продления имени записываемого файла.
Если все было сделано правильно, то в процессе прошивки роутер будет сообщать следующее:
# killall: watchdog: no process killed Sending TERM to remaining processes ... vtund dnsmasq sleep ubusd askfirst logd netifd sh ntpd Sending KILL to remaining processes ... sleep askfirst Switching to ramdisk... Performing system upgrade... Unlocking firmware ... Writing from <stdin> to firmware ... Upgrade completed Rebooting system...
После прошивки и перезагрузки роутер будет доступен по адресу 192.168.1.1 (только ping и telnet).
С целью исключения проблем, DHCP сервер на роутере по-умолчанию отключен. Для того, что-бы зайти на него, установите IP адрес, например, 192.168.1.100 на своем ПК.
Базовая настройка
Файлы проекта
- Обсуждение проекта в Slack [нужно приглашение]
- Прошивки для роутеров BRICKET
- Исходный код компонентов на GitHub
Примеры
Включение встроеннного DHCP сервера на LAN порту:
# uci set dhcp.lan.start='192.168.1.101' uci set dhcp.lan.limit='10' uci set dhcp.lan.leasetime='1h' uci set dhcp.lan.ignore='0' uci commit dhcp
Настройка имени роутера и временной зоны:
# uci set system.@system[0].hostname='MyRouter' uci set system.@system[0].timezone='UTC' uci commit system
#
Настройка Ethernet для локальной сети :
uci set network.lan='interface' uci set network.lan.ifname='eth0.1' uci set network.lan.force_link='1' uci set network.lan.type='bridge' uci set network.lan.proto='static' uci set network.lan.ipaddr='192.168.136.200' uci set network.lan.netmask='255.255.255.0' #uci set network.lan.gateway='192.168.136.1' #uci set network.lan.dns='77.88.8.8 8.8.8.8' uci commit network
Настройка WiFi интерфейса в режиме AP:
uci set wireless.radio0.channel='7' uci set wireless.radio0.disabled='0' uci set wireless.@wifi-iface[0].device='radio0' uci set wireless.@wifi-iface[0].network='lan' uci set wireless.@wifi-iface[0].mode='ap' uci set wireless.@wifi-iface[0].ssid='IoT' uci set wireless.@wifi-iface[0].encryption='psk2+ccmp' uci set wireless.@wifi-iface[0].key='wifi2016iot' uci commit wireless
Настройка доступа в Интернет через 3G EVDO модем:
uci set network.wan='interface' uci set network.wan.ifname='ppp0' uci set network.wan.device='/dev/ttyACM0' uci set network.wan.proto='3g' uci set network.wan.service='evdo' uci set network.wan.username='IT' uci set network.wan.password='IT' uci commit network
Настройка доступа в Интернет через 3G UMTS модем:
# uci set network.wan='interface' uci set network.wan.ifname='ppp0' uci set network.wan.device='/dev/ttyUSB0' uci set network.wan.proto='3g' uci set network.wan.service='umts' uci set network.wan.apn='www.kyivstar.net' uci set network.wan.username='igprs' uci set network.wan.password='internet' uci commit network
Таблица настроек для разных операторов:
Оператор | apn | username | password |
Билайн RU | internet | beeline | beeline |
Киевстар UA | www.kyivstar.net | igprs | internet |
Настройка доступа в Интернет через Yota LTE модем:
uci set network.wan='interface' uci set network.wan.ifname='eth1' uci set network.wan.force_link='1' uci set network.wan.proto='static' uci set network.wan.ipaddr='10.0.0.10' uci set network.wan.netmask='255.255.255.0' uci set network.wan.gateway='10.0.0.1' uci set network.wan.dns='77.88.8.8 8.8.8.8' uci commit network
Настройка USB UVC камеры:
uci set mjpg-streamer.core.enabled='1' uci set mjpg-streamer.core.yuv='1' uci set mjpg-streamer.core.quality='100' uci delete mjpg-streamer.core.username uci delete mjpg-streamer.core.password #uci set mjpg-streamer.core.username='user' #uci set mjpg-streamer.core.password='pass' uci commit mjpg-streamer
Настройка VLAN
config interface 'infocom' option ifname 'eth0.490' option force_link '1' option proto 'static' option ipaddr '172.28.200.79' option netmask '255.255.255.128'
config switch_vlan option device 'switch0' option vlan '490' option ports '0t 6t'
swconfig dev switch0 show
Настройка DNS (local) для программы MQTT IoT for Android
# uci set dhcp.@domain[0]=domain uci dhcp.@domain[0].name='mqtt.flyhub.org' uci dhcp.@domain[0].ip='192.168.xxx.xxx'
# uci set dhcp.@domain[0]=domain uci dhcp.@domain[0].name='esp8266.flymon.net' uci dhcp.@domain[0].ip='192.168.xxx.xxx'
Отправка файлов на облачные сервера по WebDAV (прототип)
# uci set webdav.yandex.login='bricket' uci set webdav.yandex.password='abc123' uci set webdav.yandex.folder='Public' uci set webdav.yandex.system='5m' uci commit webdav
Настройка VTUN
(while true ; do sleep 5; /usr/sbin/vtund -n -f /etc/vtund.conf link-name you.server.name -P 5000 >/dev/null 2>&1; done) &
Контроль уровня сигнала GSM
watch "echo `comgt -d /dev/ttyUSB1 sig | tr ',' ' ' | awk '{print $3}'`"
Список програмных пакетов
MQTT сервер + клиент:
- libmosquitto-nossl
- mosquitto-client-nossl
- mosquitto-nossl
Поддержка модемов 3G EVDO/UMTS и Yota LTE:
- comgt
- chat
- kmod-mii
- kmod-usb-net
- kmod-usb-net-cdc-ether
- kmod-ppp
- ppp
- usb-modeswitch
Телеметрия (вся):
- httping
- i2c-telemetry
- i2c-tools
Туннели VTUNd:
- kmod-tun
- vtun-lite
Внутренние ссылки
- 2016-10-05 Использование Homes-smarT в проектах на базе OpenWRT
- 2016-10-04 Использование Little Wire в проектах на базе OpenWRT
- Прошивка для роутера ‘брикет’ на базе SoC Ralink – Home IoT edition
Приобретение комплектующих (поставщики проверены пользователями)
Роутеры “Bricket”, средняя цена 6,5-7,5 USD
- Aliexpress: Mini WiFi RJ45 USB 3G router [v.1a]
- Aliexpress: Mini WiFi RJ45 USB 3G router [v.1b]
- Aliexpress: Mini WiFi RJ45 USB 3G router [v.1c]
- Aliexpress: Mini WiFi RJ45 USB 3G router [v.1d]
- Aliexpress: Mini WiFi RJ45 USB 3G router [v.1e]
USB UVC WEB-камеры, средняя цена 3,5-4,5 USD
USB Ethernet адаптеры, средняя цена 1,5-2,0 USD
- Aliexpress: USB Ethernet RJ45 adaptor [v.1a]
- Aliexpress: USB Ethernet RJ45 adaptor [v.1b]
- Aliexpress: USB Ethernet RJ45 adaptor [v.2a]
- Aliexpress: USB Ethernet RJ45 adaptor [v.2b]
Внешние ссылки
- Добавление 3G модема в качестве WAN интерфейса на примере роутеров TP-Link
- OpenWRT: Использование 3g/UMTS USB модема для WAN соединений
- Настройка TL-MR3420 + Yota LU150
- Yota LTE модем LU150
- Раздача интернета от Yota в локальную сеть через Debian 7
- Монтирование облачного диска по WebDav
- cadaver – консольный клиент WebDav
- OpenWRT forum: Mount Cloud Drive on OpenWrt Router
- OpenWRT forum: Mounting Box.com, Google Drive and other WebDAV-accessed clouds
- -
- Using Curl commands with Webdav
- Curl http commands with WebDAV