Synology-Forum.nl

Tweaks / Addons A.K.A. The Underground => Overige mods => Topic gestart door: bauk op 07 januari 2010, 12:15:56

Titel: Arduino en Synology
Bericht door: bauk op 07 januari 2010, 12:15:56
Hoi,

ik ben al een paar weken aan het spelen met allerlei gimmicks voor mijn afstandsbediening (harmony 525 van Logitech). Een van de dingen die ik graag met die afstandsbediening wil kunnen doen is mijn verlichting (klikaanklikuit) aan te sturen. Daar wil ik een Nodo voor gebruiken, een hobby ding van de site http://members.chello.nl/p.tonkes8/index.html (http://members.chello.nl/p.tonkes8/index.html). Het mooiste zou zijn dat ik dit ding dan ook aan de praat krijg op een synology, zodat ik bijvoorbeeld ook mijn muziek kan aansturen, maar ook via internet dingen aan kan zetten. Nutteloos, maar gewoon leuk om het concept uit te werken. Hoewel, via cron lichten aandoen omdat je op vakantie bent?

In ieder geval, net Nodo ding werkt met een Arduino (http://www.arduino.cc/ (http://www.arduino.cc/)), en kan via usb/serieel aangesloten worden. Ik heb een DS107. Denken jullie dat dit mogelijk is, als ipkg de packages heeft voor de seriele poort? Ik heb een Engels draadje gevonden, maar helaas valt deze stil (http://forum.synology.com/enu//viewtopi ... 13&p=64443 (http://forum.synology.com/enu//viewtopic.php?f=27&t=14813&p=64443)).

Ik hoor het graag,

Groeten,

Bauke
Titel: Re: Arduino en Synology
Bericht door: wizjos op 07 januari 2010, 14:51:04
Bauke,

Zo te zien zijn de genoemde kernelmodules niet beschikbaar voor jouw type Syno. Dat wordt dan dus een hele grote helaas ben ik bang... :(
Zo te lezen zou e.e.a. wel moeten kunnen werken (met behulp van die modules), maar alleen via USB... Seriele poort is immers niet aanwezig op een Syno; de genoemde kernel-module-usbserial zet de USB signalen om naar een seriele uitvoer voor de TTY.

Desondanks ben ik wel heel benieuwd naar jouw mogelijke vorderingen (of die van een ander die dit ter hand gaat nemen).

Keep us posted!

Succes!

Wizjos
Titel: Re: Arduino en Synology
Bericht door: rvhoutem op 12 maart 2011, 16:12:09
Hallo Bauke,

Ik weet niet of de wens nog aanwezig is, maar ik heb het aan de praat gekregen op een ds210J.
Ik zal binnenkort een howto schrijven. Mogelijk werkt het op dezelfde manier op jouw syno?
Titel: Re: Arduino en Synology
Bericht door: Rhapsody op 21 juli 2011, 09:43:29
Hey rvhoutem,

Heb jij die howto toevallig nog geschreven, ik ben erg geinteresseerd!
Titel: Re: Arduino en Synology
Bericht door: rvhoutem op 25 juli 2011, 09:38:13
Bij deze!

Ik gebruik zelf een arduino due op een synology ds210j. Maar ik neem aan dat dit voor een uno hetzelfde werk.
Het schijnt wel dat onderstaande niet voor alle modellen hetzelfde werkt. Maar voor de ds210j en ds110j moet het zeker werken.

Het zou kunnen dat sommige dingen net iets anders werken,
of dat je nog iets anders eerst moet installeren. Maar zo moet je al een heel eind komen.


1) http://pomprocker.blogspot.com/2010/02/ ... y-nas.html (http://pomprocker.blogspot.com/2010/02/home-automation-on-synology-nas.html)




De usbserial.ko en ftdi.ko voor de ds210die je nodig hebt kun je hier vinden:
2) http://forum.synology.com/enu/viewtopic ... 43&t=30293 (http://forum.synology.com/enu/viewtopic.php?f=143&t=30293)


Vervolgens kun je arduino-serial op je synology plaatsen:


3) http://todbot.com/blog/2006/12/06/ardui ... o-arduino/ (http://todbot.com/blog/2006/12/06/arduino-serial-c-code-to-talk-to-arduino/)


Je kunt vervolgens bv. een kaku aansturen met:


./arduino-serail.c -b 19200 -p /dev/ttyUSB0 -s 'SendKAKU A1,on;' -d 1500

Als iemand nog een webinterface zou kunnen maken, zou dat heel fijn zijn.
Ik heb begrepen dat shell commando's naar de /dev/ttuUSB0 wat beveiligings issues met zich meebrengt.

Groeten Ralph
Titel: Re: Arduino en Synology
Bericht door: jdvmanen op 01 augustus 2011, 20:17:34
Hallo,

@Raplh: eerst de arduino-serial.c compileren he!  

gcc -o arduino-serial arduino-serial.c
Ik heb het nu draaien, en ben inderdaad ook naarstig op zoek naar code/mogelijkheden om via een website een programma op de synology te laten draaien.

(de synology gaat de USB devices nog een submap verder plaatsen; /dev/usb/...)

Via een ASP of een CGI script de volgende call laten uitvoeren op de synology lijkt me geniaal:

./arduino-serial -b 19200 -p /dev/usb/ttyUSB0 -s 'SendNewKaku 1,ON;' -d 1500


Ik hoor graag van een PHP of wat-dan-ook-expert hoe we dit moeten oplossen!

Groeten,

Dirk
Titel: Re: Arduino en Synology
Bericht door: Rhapsody op 01 augustus 2011, 20:23:33
Bedankt rvhoutem!
Titel: Re: Arduino en Synology
Bericht door: jdvmanen op 02 augustus 2011, 07:22:02
Hallo,

Ik ben inmiddels wat bezig geweest om een aantal PHP pagina's aan te maken op de Synology en dat lijkt te gaan lukken.

Volgens mij moet de volgende website de nieuw type KAKU op kanaal 2 gaan inschakelen zodra de website wordt benaderd;

<?php
echo exec('&#46;/dirk/arduino-serial -b 19200 -p /dev/usb/ttyUSB0 -s 'SendNewKAKU 2,ON;' -d 1500');
?>

(dit werkt wel met echo exec('ls') -->  ik krijg dan de lijst van files die bij index.php in de map staan.

Alleen, mag ik natuurlijk niet in een string (vanaf ./dirk tot en met 1500) nogmaals het karakter ' plaatsen. Hoe ga ik deze string toch meesturen?

Daarnaast werkte bij mij gisterenavond het programma arduino-serial een half uurtje. (eerst even niet, daarna een half uurtje, en toen weer niet). Ik kan wel met bijvoorbeeld 'more /dev/usb/ttyUSB0' gewoon de poort openen. Waarna ik netjes de 'introductie' van de Arduino tezien krijg (de copyright tekst van P.K. Tonkes).

Iemand een idee waarom arduino-serial wel eens kan weigeren?

Groeten,

Dirk
Titel: Re: Arduino en Synology
Bericht door: Plerry op 02 augustus 2011, 10:53:47
Citaat van: "jdvmanen"
...<?php
echo exec('&#46;/dirk/arduino-serial -b 19200 -p /dev/usb/ttyUSB0 -s 'SendNewKAKU 2,ON;' -d 1500');
?>

(dit werkt wel met echo exec('ls') -->  ik krijg dan de lijst van files die bij index.php in de map staan.

Alleen, mag ik natuurlijk niet in een string (vanaf ./dirk tot en met 1500) nogmaals het karakter ' plaatsen. Hoe ga ik deze string toch meesturen?...
Door in PHP een delimiter vooraf te laten gaan door het escape character (de backslash, "")
wordt deze als literal gezien en niet langer als delimiter beschouwd.
Zie bijv.: http://www.php.net/manual/en/language.types.string.php

Probeer dus eens:
<?php
echo exec('&#46;/dirk/arduino-serial -b 19200 -p /dev/usb/ttyUSB0 -s 'SendNewKAKU 2,ON;' -d 1500');
?>

Plerry
Titel: Re: Arduino en Synology
Bericht door: jdvmanen op 02 augustus 2011, 14:49:03
Hallo,

Ik ben er inmiddels een beetje achter wat er fout gaat met het gebruik van arduino-serial.

Als het programma arduino-serial wordt geopend, is het eerste wat deze doet de seriële poort van de arduino openen. Direct hierna stuurt het programaa de string die opgegeven is bij '-s' de seriële poort op.

Maar op dit moment is de Arduino nog aan het reageren op de zojuist geopende poort en stuurt hij de disclaimer van P. Tonkes op. De Arduino is nog niet klaar om serieel commando's te verwerken. Als ik in een tweede SSH sessie een korte tijd na 'more /dev/usb/ttyUSB0' het commando 'arduino-serial -b..... enz'  stuur, werkt het namelijk wel, en zie ik zelfs in de 'more...' response de uitgaande RF KAKU nog gelogd!

Ik hoop dat het verhaal een beetje duidelijk is. Ik ga vanavond testen met een aanpassing in arduino-serial.c (een delay na het openen van de poort inbouwen). Jullie horen mijn bevindingen.

Groeten,

Dirk
Titel: Re: Arduino en Synology
Bericht door: jdvmanen op 04 augustus 2011, 08:21:07
Hallo!

Goed nieuws,

ik heb de php aan de praat om KAKU te schakelen!

Het zit hem in de rechten van de tool 'arduino-serial' en een portie geduld... elke keer als een schakelactie uitgevoerd moet worden!

Je krijgt dus iets als
<?php
exec 
('/&#46;/Arduinomap/arduino-serial -b 19200 -p /dev/usb/ttyUSB0 -d 1000 -s 'SendNewKAKU 2,on;' -d 1000')
?>

of
<?php
exec 
('/&#46;/Arduinomap/arduino-serial -b 19200 -p /dev/usb/ttyUSB0 -d 1000 -s 'SendNewKAKU 3,10;' -s 'SendNewKAKU 4,10;' -d 1000')
?>


Succes!

Groeten,

Dirk
Titel: Re: Arduino en Synology
Bericht door: rvhoutem op 20 augustus 2011, 13:36:18
Ik heb trouwens nog een kort vraagje.

Ik heb het php script van Dirk aan de gang. Maar ik wil graag 1 php pagina
voor alle handelingen. (i.p.v. voor iedere actie een php pagina).
 
Nu ben ik begonnen met variabelen, maar het werkt nog niet goed.
Waarschijnlijk ergens een quote of comma. Maar ik heb alles al getest. De
nodo wil steeds ontvanger d0 uitzetten. Ongeacht welk adres of waarde ik
gebruik.

Ik roep aan: http://192.168.0.101/nodo.php?ontvanger=A3&modus=ON (http://192.168.0.101/nodo.php?ontvanger=A3&modus=ON)
De php pagina bevat het volgende:
<?php
$ontvanger=$_GET['kakuadr'];
$modus=$_GET['kakuwrd'];

EXEC ('/ralph/arduino-serial -b 19200 -p /dev/usb/ttyUSB0 -s 'SendKAKU $kakuadr,$kakuwrd;' -d 10')
?>
Kan iemand mij in de juiste richting helpen?
Titel: Re: Arduino en Synology
Bericht door: Plerry op 20 augustus 2011, 15:08:59
Citaat van: "rvhoutem"
...Nu ben ik begonnen met variabelen, maar het werkt nog niet goed.
...Ik roep aan: http://192.168.0.101/nodo.php?ontvanger=A3&modus=ON (http://192.168.0.101/nodo.php?ontvanger=A3&modus=ON)
De php pagina bevat het volgende:
<?php
$ontvanger=$_GET['kakuadr'];
$modus=$_GET['kakuwrd'];

EXEC ('/ralph/arduino-serial -b 19200 -p /dev/usb/ttyUSB0 -s 'SendKAKU $kakuadr,$kakuwrd;' -d 10')
?>
Kan iemand mij in de juiste richting helpen?
Er lijken twee dingen niet te kloppen.

1) Je lijkt de parsed variabelen en je local variabelen te hebben omgedraaid.
Het lijkt te moeten zijn:
$kakuadr=$_GET['ontvanger'];
$kakuwrd=$_GET['modus'];
2) Als je wil dat er in een string variable-substitution plaatsvindt,
dan moet je dubbele aanhalingstekens (") gebruiken en geen enkele (').
Bij enkele aanhalingstekens wordt de hele string als literal genomen.
Je string lijkt te moeten zijn:
EXEC ("/ralph/arduino-serial -b 19200 -p /dev/usb/ttyUSB0 -s 'SendKAKU $kakuadr,$kakuwrd;' -d 10")Desgewenst mag je nu de backslash () voor de enkele quotes (') weglaten, omdat voor de string nu de (") delimiter geldt.

Plerry
Titel: Re: Arduino en Synology
Bericht door: rvhoutem op 20 augustus 2011, 15:50:53
Bedankt! Het werkt nu. Wel alleen zonder die backslashes.

Dus nog even een sammenvatting van een werkend geheel:

Url:
http://192.168.0.101/nodo.php?ontvanger=a1&modus=on (http://192.168.0.101/nodo.php?ontvanger=a1&modus=on)

Nodo.php
<?php

$kakuadr=$_GET['ontvanger'];
$kakuwrd=$_GET['modus'];

echo "Ontvanger $kakuadr is op $kakuwrd gezet";
EXEC ("/ralph/arduino-serial -b 19200 -p /dev/usb/ttyUSB0 -s 'SendKAKU $kakuadr,$kakuwrd;' -d 10")
?>
Titel: Re: Arduino en Synology
Bericht door: ff2000 op 13 november 2011, 15:25:19
Ik ben ook bezig om mijn nodo aan mijn synology te hangen.
Volgens mij lukt alles. Tot aan het compileren van de arduine-serial.c

Het gcc commando werkt niet.

Kan iemand mij helpen.
Titel: Re: Arduino en Synology
Bericht door: rvhoutem op 13 november 2011, 18:50:39
Volgens mij zit het gcc commando in de ipkg/optware.
Deze moet je eerst installeren op de synology.
Titel: Re: Arduino en Synology
Bericht door: WebSpider op 15 november 2011, 16:58:31
Soms ben je zooo blij dat je op heel veel forums een account hebt... als bouwer en verkoper van 3D printers ben ik erg bekend met Arduino, maar deze combinatie had ik nog niet aan gedacht!

Zelf heb ik nu Plugwise draaien, maar vind dit eigenlijk te duur om in het hele huis te gaan gebruiken. Kika is een stuk vriendelijker voor de portemonnee, en met dit bordje kan ik dit zonder problemen integreren in bijvoorbeeld homeseer.

Bedankt! :)