I figured I'd see what all the fuss was about the ESP-8266 out there, so I got a couple of Adafruit's breakout "Huzzah" boards for them. They are nice! As it turns out I had a use for one that justified the work getting up to speed with it - I needed a wifi remote thermocouple. Actually, I need two. One for my woodstove, and one for my "boil that cup of tea" eg temperature rise in a thermos bottle of water from neutron output of the fusor. I'll need some accuracy for that since I'm keeping the power down (still extreme by hobby standards, but "we're onto something" here).
So, I used the arduino IDE, in this case 1.6.12 since I just grabbed one while I was building up a new pi-3 with "pixel" (which is nice) and why not. You add the board url to the file->preferences for this, and bingo, you've got it.
All this, including this post, was done on this pi-3.
One problem I've had in general is "flaky or hard to work with" LAN discovery. I got tired enough of this (not everything wants to run heavyweight dns resolvers and I don't want things fishing outside the lan either) to write landns which is up here elsewhere. It basically works by broadcasting a host's name and IP address periodically to a particular UDP port, and all the machines on the LAN both do this and listen with a "tellme" program that's part of landns, which writes the /etc/hosts file, so everybody can find everybody - and fast. Sometimes it even seems to jumpstart the other junk that's supposed to work but often doesn't too, so I keep doing it.
This sketch does it too, but only the send part, as these are kinda meant to be a slave out there, commanded by some other host that needs to find them - but once you're talking to one, it knows how to talk back anyway (and what tellme does in perl is a real bear in C in one of these anyway).
It also drives a max 31855 thermocouple breakout (Ada again) for type K couples, which it samples once a second and then exponentially averages the results. You send it a t (just one letter is all it takes) on its port 42000 (life, the universe and everything times 1000) and it sends you back a UDP packet containing time since boot in milliseconds, cold junction temperature, and thermocouple temperature (latter two as floats converted to text).
And of course, it announces itself on the network so you can find it. If you have some other way, fine - but at any rate, you'll have to change the PC end code to have the right hostname for your ESP. It appears that despite many almost-sucessful attempts, no one yet knows how to change an ESP 8266 host-name, but they're easy to build inside the ESP - they are ESP_(then the last 3 digits of the MAC address in uppercase hex).
So that's what I do for my "tellem" broadcast.
Of course, to be useful, you need something at the PC end that can send and receive UDP packets. I wrote a little perl script called esptst for that. Yes, I just hardcoded the host-name of the one I'm using. It's short, sweet, dumb, and it works.
The point of all this is, that thermcouple runs can't be long - this is microvolt stuff and the other hardware doesn't like long runs. Nor does the digital stuff be it I2C or SPI, USB, or even RS 232 like long runs. Ah, but wifi is cheap...and power is plentiful and around (it doesn't take much to run one of these) and already nearby. Plus - galvanic isolation in the fusor case is nice.
I'll be going other places with this stuff, but this is a nicely solid base, and one of the apps - measuring the temperature of water inside a thermos jug with minimal disturbance - it's ready for right now. Yes, it was a trick modifying the top of a thermos bottle (ask Bill - it was also a trick even finding one of the old good glass/vacuum ones) - to let in thermocouple wire with a long sneak path and good insulation so external heat doesn't have a way to mess it up.