FreeBSD and controlling an alarm via relay

Ian Smith smithi at nimnet.asn.au
Wed Jul 6 08:18:41 UTC 2011


On Tue, 5 Jul 2011, Achilleas Mantzios wrote:
 > ÿÿÿÿÿÿÿÿ Tuesday 05 July 2011 16:10:59 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ:
 > > On Mon, 4 Jul 2011, Achilleas Mantzios wrote:
 > > 
 > > [snip]
 > > 
 > > > I was thinking of some relay board (instead of the old modem), 
 > > > possibly ethernet controlled
 > > 
 > > This box has relays and GPIO available via ethernet. It's probably 
 > > overkill for your application, but it's well made and easy to use:
 > > 
 > > http://www.extron.com/product/product.aspx?id=ipltcr48&s=0
 > > 
 > 
 > That is too big for my application, thanx anyway.
 > Most probably i'll go for something cheaper like this one 
 > http://www.ebay.co.uk/itm/USB-Eight-Channel-Relay-Board-RS232-Serial-Controlled-/110710346488?pt=UK_BOI_Electrical_Components_Supplies_ET&hash=item19c6d9d2f8

These look quite well designed and built to me, reasonably priced new, 
but check out the/a source site [1] for various models, 1- and 4-relay 
boards too, or if you prefer, RS-232 serial rather than USB interface 
for the 8-relay boards.  There's also a simple parallel port to 8 TTL 
outputs board (hi Tim!) and various other stuff.  I'm tempted myself.

[1] http://sigma-shop.com/category/4/relay-boards.html
[2] http://www.sigma-shop.com/page/12/manuals.html

 > Could i use the ucom driver to talk to the USB device like a normal serial device, via /dev/cua*** ?
 > The above link says one needs to talk to the relay with:
 > 8 Data, 1 Stop, No Parity,Baud rate : 9600
 > and the commands look like:
 > FF 01 00 (HEX) 
 > or 
 > 255 1 0 (DEC)
 > 
 > could i be able to specify those over ucom? 

If so, great.  If not and you have a serial port, the code will be the 
same anyway, except the port used.  I grabbed most of the manuals from 
[2] and found the Linux software examples are all this one:

=======
Linux :
The USB-serial device is automatically detected and mapped to /dev/
ttyUSB0 (or USB1 in case there is already a similar device).
My test script: (Thanks Julian!)
--------------------------------------------------------
# cat relay.sh
while true
do
echo -e "\xFF\x00\x00" > /dev/ttyUSB0 ; sleep .1
echo -e "\xFF\x00\x01" > /dev/ttyUSB0 ; sleep .1
echo -e "\xFF\x00\x00" > /dev/ttyUSB0 ; sleep .1
[..]
echo -e "\xFF\x01\x01" > /dev/ttyUSB0 ; sleep .1
echo -e "\xFF\x02\x01" > /dev/ttyUSB0 ; sleep .1
[..]
echo -e "\xFF\x07\x01" > /dev/ttyUSB0 ; sleep .1
echo -e "\xFF\x08\x01" > /dev/ttyUSB0 ; sleep .1
echo -e "\xFF\x01\x00" > /dev/ttyUSB0 ; sleep .1
echo -e "\xFF\x02\x00" > /dev/ttyUSB0 ; sleep .1
[..]
echo -e "\xFF\x07\x00" > /dev/ttyUSB0 ; sleep .1
echo -e "\xFF\x08\x00" > /dev/ttyUSB0 ; sleep .1
=======

If using sh[1] you might need to use \0377 instead of \xFF

 > do you know any application, perl library, utility or just a guide for standard C serial port programming?

Anything that can write bytes to a serial port - perl's overqualified :)

[..]

cheers, Ian


More information about the freebsd-multimedia mailing list