Odp: USB Relay - plugin do Gargoyle
moj router WDR3600 ma dwa porty USB i na tę chwilę mam dwie płytki USB Relay. Czy jest możliwość sterowania z GUI Gargoyla tymi dwoma płytkami USB Relay?
TL-WR1043ND v.1.7 & v.1.8 Gargoyle 1.5.10.X, by obsy
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Oprogramowanie / Software → USB Relay - plugin do Gargoyle
Strony Poprzednia 1 … 15 16 17 18 19 … 23 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
moj router WDR3600 ma dwa porty USB i na tę chwilę mam dwie płytki USB Relay. Czy jest możliwość sterowania z GUI Gargoyla tymi dwoma płytkami USB Relay?
Jak sobie skrypt sterujący zrobisz. Przecież o Ty określasz co w nim jest sterowane i w jakiej kolejności.
Jakby ktoś chciał pobawić się takim czymś:
USBRelay
to instalujemy:
opkg update
opkg install kmod-usb-serial-ch341
potem kopiujemy mój usbrelay do /usr/bin
i polecenie włączenie/wyłączenie:
usbrelay /dev/ttyUSB0 1
usbrelay /dev/ttyUSB0 0
tutaj spakowane:
Paczka
/*--------------------------------------------------------------------*/
/* USB Relay */
/*--------------------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <unistd.h>
#include <strings.h>
/*--------------------------------------------------------------------*/
void relay(const char *sc, const char *value)
{
int hComm=0;
struct termios oldtio,newtio;
unsigned char on[4]={0xA0,0x01,0x01,0xA2};
unsigned char off[4]={0xA0,0x01,0x00,0xA1};
hComm=open(sc, O_RDWR | O_NOCTTY);
if (hComm!=-1)
{
tcgetattr(hComm,&oldtio);
bzero(&newtio, sizeof(newtio));
newtio.c_cflag = B9600 | CS8 | CLOCAL | CREAD;
newtio.c_iflag = IGNPAR;
newtio.c_oflag = 0;
newtio.c_lflag = 0;
newtio.c_cc[VTIME] = 2;
newtio.c_cc[VMIN] = 0;
tcflush(hComm, TCIFLUSH);
tcsetattr(hComm,TCSANOW,&newtio);
if (value[0]=='1')
{
write(hComm,on,4);
}
else
{
write(hComm,off,4);
};
tcsetattr(hComm,TCSANOW,&oldtio);
close(hComm);
usleep(200000);
};
}
/*--------------------------------------------------------------------*/
int main(int argc, char *argv[])
{
if (argc==3)
{
relay(argv[1],argv[2]);
}
else
{
printf("USBRelay %s\nuse: usbrelay /dev/ttyUSB0 1\n",__DATE__);
};
return 0;
}
/*--------------------------------------------------------------------*/W sumie to tak mnie naszło .... czy zmiast kupować gotowca nie lepiej kupić arduino nano 5V (z usb) - i dopiąć sterować 8 relayami. Protokół można samemu zrobić jakiś banalny ....
żadnych sterowników tam jest ch340 i tylko
if (Serial.available())
a=Serial.readln();
potem case (a)
i np 11 - czyli wlacz 1 relay
10 - wylacz 1 relay
Źle myślę? Żadnych driverów tylko serial ustawić na 115000.
Gdzie się mylę?
Dobrze myślisz. Z tym że niektórzy mają już coś innego, niektórym brak umiejętności, niektóry chcą kupić gotowca i mieć z głowy.
@Cezary Poskładałem właśnie powerSwitcha według tego schematu:
http://blog.ok1cdj.com/2012/05/univerza … y2313.html
Z pod windowsa wszystko ładnie działa, ale pod Gargoyle nie jest niestety wykrywany.
Najpierw był problem typu:
Gargoyle kern.err kernel: [ 914.060000] hub 1-0:1.0: connect-debounce failed, port 1 disabled
Użyłem więc huba i po podłączeniu switcha z hubem otrzymuję:
Mar 5 18:32:16 Gargoyle kern.info kernel: [ 1026.140000] usb 1-1: new high-speed USB device number 6 using ehci-platform
Mar 5 18:32:16 Gargoyle kern.info kernel: [ 1026.290000] hub 1-1:1.0: USB hub found
Mar 5 18:32:16 Gargoyle kern.info kernel: [ 1026.290000] hub 1-1:1.0: 4 ports detected
Mar 5 18:32:17 Gargoyle user.notice usb-modeswitch: 1-1:1.0: Manufacturer=USB_Device Product=USB_2.0_Hub Serial=?
Mar 5 18:32:17 Gargoyle kern.info kernel: [ 1026.860000] usb 1-1.1: new low-speed USB device number 7 using ehci-platform
Mar 5 18:32:17 Gargoyle user.notice usb-modeswitch: 1-1.1:1.0: Manufacturer=www.obdev.at Product=PowerSwitch Serial=?
Success
Niestety z pod Gargoyle powerSwitch nadal nie jest widoczny:
Nie wykryto modułu przekaźników
Czytając opis wywnioskowałem, że używając tej wersji powerSwitcha wystarczy zainstalować Twój plugin i nie wymaga on żadnych przeróbek. Czyżbym się mylił?
A masz w systemie sam program powerSwitch?
Jeżeli w Twoim pluginie go nie ma, to nie. Zadbałem tylko, żeby były wszystkie sterowniki pod USB - co widać, bo powerSwitch jest wykrywany poprawnie. Myślałem, że wszystko poza tym jest w pakiecie. Nadal trzeba przejść wszystkie kroki stąd? ->
http://eko.one.pl/forum/viewtopic.php?id=3894
Mój plugin to tylko skryptu - o program sterujący musisz sam zadbać. Tu go masz: http://dl.eko.one.pl/projekty/usbrelay/powerSwitch/ jeżeli to dla ar71xx lub ramipsa. Pobierz odpowiednią wersję, zmień nazwę na powerSwitch, uczyń wykonywalnym i sprawdź czy działa z konsoli.
Dzięki - spróbuję jutro. Jeszcze jedno - to wina USB w WR703n, czy samego powerSwitcha, że bez zewnętrznego huba są takie problemy?
Gargoyle kern.err kernel: [ 914.060000] hub 1-0:1.0: connect-debounce failed, port 1 disabled
Oprócz powerSwitcha wszystko inne działa poprawnie.
ar933x mają szalone problemy z obsługą usb Full/Low-Speed. Stosuj huba.
Cezary, muszę Cię prosić jeszcze raz o pomoc ![]()
Na stronach 14 i 15 pomogłeś mi uruchomić karty przekaźników spięte za pomocą RS485-wszystko działa, normalnie miód-malina ![]()
Problem się pojawił jak zachciało mi się wszystko "przerzucić" na Raspberry Pi z systemem Raspbian.
Kartami steruje tak:
włącz:
echo -ne "S0111\r" > /dev/ttyUSB0wyłącz:
echo -ne "S0110\r" > /dev/ttyUSB0stan:
echo -ne "S1012\r" > /dev/ttyUSB0 && grep -m1 "" /dev/ttyUSB0Na PC z Debianem wszystko działa jak należy, a na Raspberry nie chce zwracać stanu za każdym razem, a czasem w ogóle nie odpowiada ![]()
Gdy w jednej konsoli wpiszę:
stty -F /dev/ttyUSB0 115200i później:
cat < /dev/ttyUSB0a w drugiej konsoli wydaję polecenie:
echo -ne "S1012\r" > /dev/ttyUSB0 && grep -m1 "" /dev/ttyUSB0to odpowiedzi mam natychmiast i za każdym razem.
Dlaczego tak się dzieje?
Strzelam że pod RPi masz inne ustawienia portu szeregowego i najpierw przez stty doprowadź do takiego samego stanu.
Wyniki
#stty -F /dev/ttyUSB0 -awyglądają na takie same.
PC
speed 115200 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echokeRaspberry
speed 115200 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon iexten -echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echokePróbowałem również zmieniać prędkości, wszystko po kolei od 4800 do 115200. Oczywiście zmieniałem prędkość na raspberry i karcie.
Ogólnie mówiąc to zmienia się tylko sprzęt PC -> Raspberry. Jeden i drugi system to Debian. Ten sam konwerter USB -> RS485. Te same karty przekaźników.
Czy jest możliwe, że malina jest za słaba i nie daje rady tak szybko wysyłać zapytań i odbierać odpowiedzi?
Router działa a malina za słaba? eeeeee
Nie, nie router, a PC z Debianem. Dokładnie Celeron 420 1.6GHz i 512MB RAM
Router czeka sobie grzecznie aż się do niego dobiorę ![]()
A co myślisz o tym:
#!/bin/bash
case "$1" in
off)
[ $2 = "1" ] && echo -ne "S0110\r" > /dev/ttyUSB0
[ $2 = "2" ] && echo -ne "S0120\r" > /dev/ttyUSB0
[ $2 = "3" ] && echo -ne "S0130\r" > /dev/ttyUSB0
[ $2 = "4" ] && echo -ne "S0140\r" > /dev/ttyUSB0
[ $2 = "5" ] && echo -ne "S0150\r" > /dev/ttyUSB0
[ $2 = "6" ] && echo -ne "S0160\r" > /dev/ttyUSB0
;;
on)
[ $2 = "1" ] && echo -ne "S0111\r" > /dev/ttyUSB0
[ $2 = "2" ] && echo -ne "S0121\r" > /dev/ttyUSB0
[ $2 = "3" ] && echo -ne "S0131\r" > /dev/ttyUSB0
[ $2 = "4" ] && echo -ne "S0141\r" > /dev/ttyUSB0
[ $2 = "5" ] && echo -ne "S0151\r" > /dev/ttyUSB0
[ $2 = "6" ] && echo -ne "S0161\r" > /dev/ttyUSB0
;;
status)
[ $2 = "1" ] && echo -ne "S0112\r" > /dev/ttyUSB0 && read -n90 RESPONSE < /dev/ttyUSB0 && echo $RESPONSE
[ $2 = "2" ] && echo -ne "S0122\r" > /dev/ttyUSB0 && read -n90 RESPONSE < /dev/ttyUSB0 && echo $RESPONSE
[ $2 = "3" ] && echo -ne "S0132\r" > /dev/ttyUSB0 && read -n90 RESPONSE < /dev/ttyUSB0 && echo $RESPONSE
[ $2 = "4" ] && echo -ne "S0142\r" > /dev/ttyUSB0 && read -n90 RESPONSE < /dev/ttyUSB0 && echo $RESPONSE
[ $2 = "5" ] && echo -ne "S0152\r" > /dev/ttyUSB0 && read -n90 RESPONSE < /dev/ttyUSB0 && echo $RESPONSE
[ $2 = "6" ] && echo -ne "S0162\r" > /dev/ttyUSB0 && read -n90 RESPONSE < /dev/ttyUSB0 && echo $RESPONSE
;;
esac
exit 0Dostałem pomoc z elektrody. Przekaźniki zaczęły odpowiadać ![]()
A ja mam takie pytanie czy zadziała taki zestaw:
http://allegro.pl/modul-1-kanalowy-prze … 51837.html
http://allegro.pl/konwerter-usb-ttl-pl2 … 45515.html
Czy powinno byc jeszcze cos?
Tym rs232 nie wysterujesz tego modułu, on konkretnie gpio (linię) do sterowania wymaga.
zamiast konwertera kup arduino nano odpowiedni wsad i będzie banglać.
Zwykłe attiny45...
Jak kupi nano nie będzie potrzebował programatora
jak coś mu się jeszcze umyśli na termometr czy co tam będzie chciał to momentalnie doda. (Jak będzie umiał
)
Czy moglibyście wkleić jakiś link nawet samego obrazka . Skłaniam się nawet do rozwiązania Szymon_Zy , bo wychodzi bardzo tanio jak za 8 kanałów. Dziękuję za zainteresowanie, najszybsze forum w naszym kraju.
Pozdrawiam
A takie coś już jest: http://eko.one.pl/forum/viewtopic.php?id=3894
Tylko zamiast Attiny2313 wstawiasz arduino i piszesz prymitywny program który to robi.
Propo programatowa - mam littlewire na blackboxie jak ktoś potrzebuje.
Jaki numer portu ustawić aby zadziałało sterowanie aplikacją z androida?
Taki na którym masz ssh, zwykle 22.
Strony Poprzednia 1 … 15 16 17 18 19 … 23 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Oprogramowanie / Software → USB Relay - plugin do Gargoyle
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc