Combine multiple sensor data streams with Arduino and output NMEA 0183 message

Hi everyone, It’s been a few months since I posted here. My Vaisala WXT520 took a bit of a tumble and now has a damaged ultrasonic sensor so all of the wind readings have gone out the door. I did however have a Gill 1086M windmaster lying around as well as another device I purchased a few months back called the Roscide RO120-DIS-B, which measures RH, TEMP and Pressure. I decided to take the digital output from both devices and feed it into an arduino to mash up both of the digital messages and spit out a nice clean NMEA formatted message to mimic the one my Vaisala was outputting.

WSCODEv1.1.txt (4.2 KB)

I’m not that great with programming, but thanks to my buddy Chad Gordon Thomas… (HEH) I was able to smudge this together. The code parses all of the relevant info needed for the NMEA message, occasionally the digital output from the Roscide device would come through a bit corrupted, but since its only 1hz data from Temp RH and Pressure, I just had the program resend the last good reading and put it in the NMEA message instead. Once I got all the parts and pieces lined up I opened the WD software and it picked up the data just as if it were a Vaisala WXT520. I plan on using this code in the future when I purchase new devices, as it makes it simple to parse the data streams. Sorry again for anyone who looks at the code, its probably awful, but it does work ha!

Does WD have a way of passing the data stream through? Meaning, I’m using up com port 8 on my PC to read this data in to WD, can I pass the data through so that another program such as teraterm or putty can pick the data up as well? I cant open the data stream with teraterm now as the port is busy catering to WD. I suppose I could Hijack the data and split it at the usb port… but that seems sloppy. Thanks!