Software apps and online services
Hand tools and fabrication machines
Note: This is an advanced Arduino / ESP8266 projects and requires that you have ESP8266FS (SPIFFS file system) installed in your Arduino/tools directory and that you have sufficient flash memory to install the files which are contained in the "data" directory of the attached ZIP file. I used the 1M/3M partition for my 1.0 NodeMCU as shown in a screenshot toward the end of the article. Please do not ask about the Adafruit Huzzah as I do not have one on which to test (but it may work satisfactory.)
Many Arduino fans have built a temperature monitoring circuit using a voltage divider resistor and NTC thermistor as described on the Arduino Playground. These little projects are a great entry point into interfacing analog components into the Arduino family of boards.
The ESP8266 and the NoduMCU have a much different implementation of analog-digital as there is no external voltage reference and to make things a bit more difficult, there is only one analog input, A0. The "fixed from factory" voltage reference for the ESP8266 is 1V (or 1.1V depending on some statements.) For our project, the exact voltage is not critical and we are more concerned with the Thermistor resistance change in relationship to the fixed precision resistor.
Note to NodeMCU users: In my prototype, I used a NodeMCU produced by a Chinese company called LoLin which is marked on the board just up from the USB connector. On this board, there is a voltage divider made up of two SMT resistors directly located on the upper-left just above the pin A0 when the antenna faces "up" and the USB faces "down." Both of these resistors must be removed to complete this project as this would severely cause large errors in the Steinhart-Hart published equation. The picture below shows the bottom resistor removed and the upper resistor replaced by a 0 Ohm SMT jumper (a bare piece of wire can be used as well as just bridging the space with a blob of solder.)
The resulting modification leaves A0 on the breakout board directly connected to the ESP8266 input. When handling the NodeMCU board (or replicating this with just an ESP8266 module) you must practice proper anti-static handling procedures.
Assembling the voltage divider network consisting of the 150K resistor and the 10K NTC thermistor. Please see the below schematic:
In determining the required value for the voltage divider, I utilized the Circuit Simulator online program. Using the Vishay NTC datasheet and noting the temperatures I wanted to display, I selected a potentiometer (and wired it as a rheostat) that had a value 50K Ohms which represents the value the thermistor would have at approximately -10C which is colder than I actually wish to monitor. The thermistor will have a value of approximately 500 Ohms at 100C which is the upper end of my desired measurement need (essentially from freezing to boiling.)
The next step is to connect the circuit on my solderless breadboard and do a test. I bought several thermistors, so I decided to sacrifice one by using 2-part epoxy and placing it inside a 1 foot stainless tube. I attached 1 meter of twisted flexible cable of 22 gauge (to maintain a very low series resistance and hence a negligible voltage drop.) I had already programmed the NodeMCU using Arduino IDE 1.6.9 and verified that the ESP8266 core file link was current using the board manager.
I'm an engineer by training and a programmer by tough-luck, so there is always a hot cup of coffee around. I went upstairs and got a thermos of ice and water and back down to my makeshift lab for the hot to cold test (yes, using the coffee.)
ESP8266 under Arduino - SPIFFS and NodeMCU configuration:
To use the project, connect your PC to the Access Point created by the ESP8266. Now open an HTML5 compliant browser to 192.168.4.1