Podłączamy kartę 8 przekaźników na USB do internetu poprzez Edimax'a BR-6104KP

Bez użycia lutownicy tym razem się nie da :(...


Płytka przekaźników
Koszt

Płytka 8 przekaźników sterowanych z USB na mikrokontrolerze ATTiny2313 produkowana przez WH Electronics. W urządzeniu tym dostajemy gotowy system z procesorem i układami mocy. Odpada projektowanie płytki, trawienie itp. [link do schematu] A ponieważ istnieje możliwość zamówienia gotowego urządzenia a nie "kitu", część elektroniczna może ograniczyć się do śrubokręta (kable do przekaźników).
110 pln


Router
Koszt

Edimax BR-6104KP.  Niezbyt udana konstrukcja. Mało pamięci (2M flash, 16M RAM), 2 porty USB 1.1. . Gdyby nie cena (o ile uda się go dostać), nie warto byłoby się nim zajmować. Niestety mała ilość pamięci flash połączona z faktem niedziałania sterowników od USB dla Linuksa 2.4 powoduje, że zastosowanie tego sprzętu do naszych celów jest sporo trudniejsze. Sterowniki dla 2.6 działają, ale wersja 2.6 jest większa i aby się zmieściła, trzeba powyrzucać prawie wszystko. Istnieje kilka oprogramowań alternatywnych (AMiLDA, Midge - nie działa USB poza pamięcią i drukarkami), my skorzystamy z OpenWRT (przygotowanego przeze mnie).
40 pln




Instalacja i konfiguracja:


Bierzemy router Edimax BR-6104KP. Zgodnie z opisem z Linux-Mips wlutowujemy złącze JP2, lutujemy sobie konwerter napięć na "MAX232". Uwaga na zasilanie z 3.3V!. Nie każdy układ (producent) tu zda egzamin. Ściągamy oprogramowanie , jest to wersja OpenWRT specjalnie pod nasze zastosowanie. Niestety bootloader nie obsługuje TFTP (jak w Asusie) więc musimy oprogramowanie zainstalować po kablu szeregowym (co ma swoje zalety).



mając zainstalowane oprogramowanie, konfigurujemy dostęp routera jako takiego do Internetu: brama domyślna, DNSy. Z braku interfejsu www wszystko z konsoli (ach ten vi...). Natomiast odpada nam instalowanie sterowników i oprogramowania (są już "zaszyte").

/etc/config/network ma być taki:

# Copyright (C) 2006 OpenWrt.org

config switch
        option eth0     01234c
        option eth1
        option eth2
        option eth3
        option eth4
        option eth5

config interface loopback
        option ifname   lo
        option proto    static
        option ipaddr   127.0.0.1
        option netmask  255.0.0.0

config interface lan
        option ifname   eth0
#       option type     bridge
        option proto    static
        option ipaddr   192.168.2.50
        option netmask  255.255.255.0
        option gateway  192.168.2.45
        option macaddr  00:0E:2E:F5:E1:88


adres i brama i MAC oczywiście właściwe dla NASZEJ sieci.

kasujemy link: rm -f /etc/resolv.conf,

/etc/resolv.conf na być taki:

nameserver 194.204.159.1 #(dla Neo)
nameserver 8.8.8.8



edytujemy (vi) plik /etc/init.d/ser2net

#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=60

start() {
                /usr/sbin/ser2net
}

stop() {
        killall ser2net
}

tworzymy link uruchamiający:

ln -s /etc/init.d/ser2net /etc/rc.d/S60ser2net

edytujemy plik /etc/ser2net.conf, ma zawierać coś takiego:

3000:telnet:0:/dev/ttyUSB0:2400 remctl LOCAL
#3001:telnet:0:/dev/ttyUSB1:2400 remctl LOCAL

reszta linii z numerem na początku ma być komentarzem (#).

ponieważ mi nie chciała prawidłowo działać konfiguracja sieci, obszedłem to edytując plik /etc/rc.d/S99sysctl.
System użyty na tym routerku (Kamikaze) jest zbyt stary, aby warto było pytać o "porządne" rozwiązanie:

start() {
        [ -f /etc/sysctl.conf ] && sysctl -p >&-
                                               
        admswconfig eth0
        admswconfig eth1
        admswconfig eth2
        admswconfig eth3
        admswconfig eth4
        admswconfig eth5
        sleep 1        
        admswconfig eth0 01234c
        sleep 1               
        ifconfig eth0 down
        ifconfig eth0 up 
                       
        route add default gw 192.168.2.45
                                        
        echo link_act > /sys/class/leds/lan1_lnkact/port_state
        echo port_state > /sys/class/leds/lan1_speed/trigger 
        echo speed > /sys/class/leds/lan1_speed/port_state
...
i tak dalej dla portów lan1-lan4 i wan..




Zapisujemy zmiany...

uci commit



Możemy wystartować ser2net albo po prostu zrestartować router....



Możemy się połączyć do naszego sprzętu (karty przekaźników) przez telnet 192.168.1.1 3000, podobnie w Win$. (adres jaki skonfigurowaliśmy, port jak było widać 3000).

Działa? Tak, bezpiecznie? NIE (telnet jest nie szyfrowany, nie mamy też ŻADNEJ autoryzacji). W następnym odcinku szyfrowanie...

Szybko? Też NIE - oryginalny firmware płytki ma łącze szeregowe @2400bps, i wypisuje stan co ok 1sek.

To TEŻ się da "poprawić" :). A nawet przeczytać, jak zostało to zrobione. Ta wersja działa na 9600bps (trzeba zmodyfikować w ser2net.conf, i wypisuje swój stan 50 razy na sekundę (dzięki czemu sterowanie działa prawie natychmiastowo - po LAN oczywiście).


v.0.4.6 2012-12-29.
koperta