As noted at the end of that instructable, I decided I needed to change to a Thermocouple-based controller (I chose that instead of a different temperature sensor because I already had those components).
This instructable will present the thermocouple-based controller.
With respect to my millivolt gas heater, it has a simple on-off switch that allows the millivolts generated by the in-pilot thermopile to activate a gas solenoid valve. Until till now, even though I have a lot of experience with thermocouples and solenoid valves, I didn't realize that a thermopile could directly drive a low-voltage solenoid! I spent some time looking for batteries on my heater before finding the information in the user's guide that came with the heater.
The heater has several built-in safety features, which I wanted to retain. Therefore, I did not want to do anything that might change or modify those elements in any way, or prevent their safety features from fully functioning.
With this in mind, I chose to use a relay, placing the NO (normally-open) contacts in serial with the existing on-off switch that came as part of the heater. With this addition, I have an AND circuit - both the existing manual switch must be on and this project's relay energized before the solenoid gas valve will be energized. I could also have wired this project's relay in an OR configuration, which would have been in parallel with the existing on-off switch, in which case the heater would have been on whenever the manual switch OR the project's relay's contacts were closed.
Here is a link to my existing web page which gives more detail on the project, along with a Fritzing layout, and Arduino source code listing, which you can copy and paste. Link to Arduino Thermocouple-based Temperature Controller with Relay.