.netembeddedserial-portdata-collectionindustrial

Moving .NET based data collection system to a remote, unattended installation?


I have a need to do some fairly simple (at least on the surface) data acquisition and logging. In a remote location (as in, on another continent), there will be a few RS-485 devices (our custom hardware product) using a proprietary protocol, plus a weather station (anemometer and vane). For the weather station, I have a couple of options: one outputs wind speed as a square-wave frequency and direction as an analog voltage; the other communicates over USB using an HID interface. The machine to which these devices connect needs to collect data, log it, and periodically transmit it over the Internet through a WiFi connection. This transmission can be either push or pull – that is, I can periodically access the machine remotely to pick up the latest data, or the machine can periodically upload the data to an FTP site or Web service. This machine needs to be installed in an attic, so it needs to work reliably without babysitting, and it needs to survive the environment (temperature, humidity, critters).

I have a .NET application that does most of this already, written against .NET 4. It's a GUI interactive application that displays the measured data and logs it to a file. (I actually have two versions of it with minor differences – one Winforms-based, and the other WPF.)

I've got about a week to develop the solution for the remote install, including identifying and purchasing any necessary equipment, doing any necessary coding, and making it work. Oh, and it has to be cheap. (Like, less than $500 would be nice. Anything over $1,000 is going to be a non-starter.)

Some things I've thought of or has been suggested to me:

Does anyone have any experience with this sort of problem? What's the simplest, cheapest, most reliable way you can think of to pull this off? What products or approach(es) should I look at?


Solution

  • I ended up going with a CompuLab fit-PC2 running Windows Embedded Standard 7. For the RS-485 input, I used an isolated RS-485-to-USB interface from B&B Electronics. I ended up skipping the interface to the anemometer and vane, which simplified the problem considerably, since now I only needed to communicate with my RS-485 serial devices.

    The fit-PC turned out to be a great solution:

    Windows Embedded turned out to be very easy to deal with as well. I ported my app to a Windows Service that runs automatically on system startup and outputs data to a remote MySQL database. Windows embedded doesn't include a feature for .Net 4, so I had to install that separately, but otherwise everything ported over from my development system to the embedded system perfectly.