If you are looking for ways to use computers in sensing and control applications, this page may interest you. You don't need to be a programmer of electronics engineer... but if you are either, you'll be able to do more with the device I'm going to discuss.
In late May 05, I obtained a Poseidon SNMP thermometer. Don't let any of that scare you!
It can do MORE than the following, but let's start with something simple:
You can put the Poseidon where-ever you want... as long as you can get a LAN connection to it from a PC. I believe that as long as that PC is on the internet, and you set things up accordingly, you can also access the Poseidon from any internet terminal. I believe there are provisions to password protect access to the device.
Not too shabby! But there's more. Besides reading one or more temperatures and / or humidities through the Poseidon, you can also read the state of 3 digital inputs. (They report "0" if there's no connection, and "1" if connected, by a switch, for instance, to a common terminal on the Poseidon. In other words, the device looks at resistance, not voltage to "see" whether the input is high or low.) Last, not least, if you make certain unremarkable choices in respect of which temperature sensors you install, you can have two digital outputs, too!!
This page is still being developed. I hope you find what is already here useful, but be assured that it will be fleshed out in the weeks to come. There is excellent information at the website of the manufacturer, HWgroup.
You can interact with the device several ways. The simplest route is simply to point an internet browser at the device's IP address. It has a built in web server, and will return a page reporting the state of the various sensors.
The server will also transmit xml if you ask it nicely. You can see a Poseidon in Prague in operation on your browser via the link from the manufacturer's website.
I'm afraid.. but have not yet fully checked... that the Poseidon's serial port is NOT capable of everything HWgroup's I/O Controller's serial port can do... which is a lot! The serial port on the Poseidon seems to be dedicated to setup and to interfacing with certain temperature sensors.
The Poseidon can be used simply to observe temperatures, humidities and things which can be turned into an "on / off" switch. It can also be used as part of a more complex application which, without human intervention, checks the state of things connected to the Poseidon and reacts and / or records the data. The Poseidon has two bits of output, depending on what sensors you choose to use. Alternatively, there are other devices, from HWgroup, and others, which give you ways to send outputs across a LAN.
The Poseidon supports various temperature and humidity sensors. I find the 1-Wire DS18B20 and DS18B22 temperature sensors of interest. You can put 10 of them on a Poseidon. (And, of course, you can have many Poseidons on a LAN.) HWgroup sells these sensors on made-up cables, or you can construct your own sensor arrays. They require two or three wires (Two will do. Some users say that you get better results if you supply 5 volts to a pin which is otherwise tied to 0v.) The devices should be connected one after the other along a single cable, with only short "spurs". In other words, a star topology will sometimes misbehave. HWgroup suggest a maximum cable length of 10m. I have seen 1-Wire chips work over much longer distances, but to achieve reliablilty you may have to pay attention to other things. (I have a simple chain of 3 powered DS1820s running happily on a cable which is 36m (120 ft) long.) As you may have guessed, I have pages about the Dallas 1-Wire (aka MicroLan) product line. I also supply a program to plot the temperatures being seen by a Poseidon. It is free at the time I am writing this, 9/05. If you don't want the tutorial on that page, just skip down it to the "Click here to download...", about 1/3rd of the way through the page. You do not need to compile the Delphi sourcecode.
Making it work:
Turn all of the Poseidon's DIP switches to the off position.
Connect the Poseidon to your LAN. (See below for "Configuration via Serial")
The Poseidon is one of a family of devices from HWgroup. You may want to read my page addressing some shared points.
Then run HerculesSetup, provided with the device. It is a stand-alone application, provided in ready-to-run form. Running it won't suddenly launch 5 minutes of GOKW, installing things onto your system.
When HerculesSetup starts, you say "OK" to the terms. Then the main HerculesSetup page appears. Click "Find Devices". Your Poseidon's MAC should appear. It is also on the base of the unit. Click on the MAC, and the edit boxes for all the parameters of the device will fill. You need to note the IP Address and the port. You can change them now, if you feel the need and know what you are doing. Shut down HerculesSetup.
Fire up your browser. If your Poseidon's IP address was 192.168.6.40, then enter http://192.168.6.40 into your browser's address box. Click Go.
Shortly thereafter, a page should appear on your screen, showing the state of the inputs. There will also be a section for the temperature(s) present at the sensors you have plugged into the device... but see below, "Temperature Sensing".
Request http://192.168.6.40/temper.xml if you want the xml report.
(Configuration via serial: I'm not sure why you'd want to do it this, the hard, way... but if you do: Power off the device. Put DIP switch 1 "on" (others off). Connect PC and Poseidon by serial port. Fire up Hyperterminal or similar in PC. I think the "serial" page of HerculesSetup is as good, but haven't used it much.. Power up Poseidon. You should get a list from the Poseidon of what it can respond to. Note that the SV:1 (or SV:0) command seems to "work", but even with NVT "enabled", you don't seem to have one when you subsequently try to use it.)
You have to set up the device, tell it to register the temperature sensors you have attached, before the webpage mentioned above will report temperatures. How to do it is explained in the manual. When I was getting to know the Poseidon, the manual was only in Czech, which was an adventure, but it is now available from the website in English, and a second edition is in production at 16 June 05. (If you want to have the "fun" I did, you can use the Czech manual! I don't read Czech, but if you look at the manual with a very positive attitude*, there's a lot you can glean from it... many of the illustrations and all of the Poseidon-generated dialogs are in English. The I/O Controller manual (English version) can also be a help because the two devices share some features.)
Attach your sensors. Fire up HerculesSetup. Do the basic stuff (IP address, mask) if you haven't already done it. Be sure that "Enable TCP Setup" is ticked on the main page. Then click the "TCP Setup Configuration" button. Press enter for the user id. Press enter for the password. Don't worry about the "limited functionality" message. Press "y" and enter, as the prompt tells you to. Press "h" for help, if you wish. (If you click in the memo with the answer, you can scroll it back to see things which went off the screen). If all you want is to register your sensors, press "1", assuming you using 1-Wire temperature sensors. Confirm that you want to configure for 1-Wire sensors. The device then looks to see what temperature sensors it can find. Press X. Shut down HerculesSetup. Fire up your web browser. Point it at your Poseidon. You should see temperatures! (If you disconnect your sensors at some later date, turn the Poseidon off, re-attach them, turn it on. It should "find" them again without needing the setup procedure.)
*Going back to that "read with positive attitude" business....
Near the top of page 5 of the Czech manual, section 3 has a heading with the word "Senzoru" in it... that's "Sensors", if I'm not mistaken. Not far from there, shortly after where "User Name" appears, in quotes, in English, the text helpfully says "takze jeu 2x stisknete klavesu Enter". As a clavicord was an early keyboard instrument, and as Cs and Ks get muddled, perhaps that phrase is saying something about "press two times the key- klavesu- (marked) "Enter""? Anyway... I've given away most of the secrets of getting the lovely thing working... but if you fancy an adventure, don't hesitate to delve into the Czech manual... you may be surprised by how often you can make useful guesses. Hey! You're a computer person. You can solve puzzles! Remember, there is an English version if you want it. Maybe you have less time to "play" than I do? (The I/O Controller I was also looking at in May 05 already had a good English manual, as .pdf, on the CD supplied with the device. Quite a bit of what's there also applies to the Poseidon) There is a wealth of information present, in English, within the marketing information on the web.
As I said somewhere else... there are three digital inputs. There's a good diagram explaining the terminals.
The state of the inputs is reported on the webpage that the device can serve up.
Until version 1.9.x of the firmware comes out, the only way to turn the outputs on or off is by using SNMP. From 1.9.x, it is hoped that the outputs will be controllable by .xml. There are two outputs, both operating at RS-232 levels. If you are new to such things, be a little careful. You can't connect the outputs directly to, say, a motor... but making drivers to go between the outputs and what you want to control is not hard. Use opto-isolators if you are new. The outputs are on the same port that you would use for some types of sensor, but 1-Wire and some other sensors can be used at the same time as the outputs.
Support software and documentation
As I said above, you can access the device through the same browser you are using to read this. (After a little bit of work with the free HerculesSetup, to find or alter the device's IP Address, and to "turn on" the temperature sensors.)
Besides the other things stated or implied above, you may want to know the following....
You don't need to master SNMP (Simple Network Management Protocol)to use the Poseidon!! But if you do master it, lots of new opportunities will open up. The unit can send SNMP traps, or submit to interrogation by SNMP management tools. Three freeware SNMP tools come with the device. (SNMPView, Getif, and SNMPTrap.) I have done a page on how to use these with the Poseidon.
SNMP is not the only way to intereact with the device. There are programming samples illustrating using the device. They are available in Borland C++, Delphi, Visual Basic, Java, PHP. You can interact with the unit via Modbus/TCP, html, xml.
I have accessed the I/O Controller from HWgroup with a Delphi program of my own compiling. The Poseidon is built around the same engine, the Charon, so I hope to report eventually on a Poseidon specific Delphi interface. In the meantime, there's more about my other program at my page about the I/O Controller.
I have created a working, if limited, program which logs temperature or humidity sensor data from a Poseidon. First, set it up so that yuo get sensible results from the temper.xml age with your browser. When that's working, use the program you can download from here as an unzipped exe, ready to run.
The program is NOT meant to be a "perfect" application... but it will log data from 1-7 sensors. The device should be set to report temperatures in Fahrenheit, but if you use Celcius, that's okay... there will just be some bad labels.
The program is NOT meant to be a "perfect" application... but it will set the RTS output on or off, depending on the difference between the temperatures seen by two temperature sensors. You could use this, for instance, to keep the top of an atrium from becoming very hot compared to the temperature in the lower parts of the atrium. You can select the temperature difference which is needed before the fan goes on. The device's SNMP write community should be "private", if you want to use this program. (It is "private" by default.) the device should also be set to report temperatures in Fahrenheit, but if you use Celcius, that's okay... there will just be some bad labels.
As mentioned above, you will need to provide hardware to use RTS output to switch fan on/off. The RTS signal is on port 2, pin 7. The "DTR" output is also switchable via buttons on the program (PoseiDiffStat). The DTR signal is on port 2, pin 4. The ground for DTR and RTS is on port 2, pin 5.
I've numbered the pins as follows. Looking into the plug on the box:
When the device first powers up, the outputs are set as follows.
When PoseiDiffStat starts, these settings are set again.
DTR: ON (+3 .. +15V)
RTS: OFF (-3 .. -15V)
Apologies for giving you the information on PoseiDiffStat rather poorly, and for the rough edges in the program itself... but the program and instructions are free, after all!
The search engine merely looks for the words you type, so....
* Spell them properly.
* Don't bother with "How do I get rich?" That will merely return pages with "how", "do", "I"....
Ad from page's editor: Yes.. I do enjoy compiling these things for you...
hope they are helpful. However.. this doesn't pay my bills!!! If you find
this stuff useful, (and you run an MS-DOS or Windows PC) please visit my
freeware and shareware page, download something, and circulate it for me?
At least (please) send an 'I liked the parallel port use page, and I'm
from (country/ state)' email? (No... I don't do spam)
Links on your page to this page would also be appreciated!