I have just discovered the joys of Arduino and continue to 'get my feet wet' experimenting with the capabilities of the system. I have with the help of the community got a simple temperature, light and humidity sensor working with an Ethernet shield that when you visit a static IP address, it displays the Temperature, Humidity, and Light Level (Analogue). This is a very simple implementation which works well for my home system (running inside a greenhouse monitoring environmental conditions), however i would like to 'step it up a notch'.
What i would really like to do, and part of this is driven by the sort of work i do in commercial buildings. Is be able to connect a device to a network, have it obtain a DHCP address from the network, and then using Bonjour or some other technology, be able to identify the device by a computer plugged into the network, and obtain temperature readings.
I figure this requires two things, firstly the Subnet, Gateway and IP address cannot be hard programmed, as these always change in corporate networks (for example my work address is a xx.xx.42.xx network, so assuming a 192.168.1.x network wont work, nor assuming the default gateway wont work either which is why i was thinking if the device gets the IP address assigned by the network it would solve that problem.
The second thing it would require is some way of knowing (without accessing DHCP servers etc), what the IP address of any device is that is plugged into the network. Apple and others seem to do this very well, and something like Bonjour or similar that could 'discover' arduino networked devices on the network would be fantastic.
Whatever way i program the computer, the idea would be that the PC does a 'scan' or 'search' for devices, which can be connected to that pump out values. On my initial example i was looking at doing temperature, humidity, air pressure and dust. but the dilemma is then how to collect those results. is there a better way to collect them than serving them up on a webpage and having the results be 'pulled' by a PC. Can results be broadcast to everyone and a computer just 'listens'. Would something like SNMP be suitable, especially when later on i may look at adding weird sensors like gas and so on?
Id appreciate anyone's thoughts on how this might be best handled. Ideally those who have done something similar and want to be able to record various parameters when both the server PC, and the client arduino network IP addresses may change.
Thanks everyone for your help!