At this point, we’ve all seen enough ESP8266 “weather stations” to know the drill: you just put the ESP and a temperature sensor inside a 3D printed case, and let all those glorious Internet Points™ flow right on in. It’s a simple, and perhaps more importantly practical, project that seems to never get old. But that doesn’t mean there isn’t room for innovation.
In addition to the ESP-7 or 12 module (which plugs in via a header, should you need to swap it out), the board features a CH330N USB to UART chip and HT7233 voltage regulator. For the sensor itself, [cperiod] has bucked convention a bit and went with the I2C-connected AHT10 over something more common like a member of the BME family.
Unfortunately, this design suffers from the same issue we’ve seen in other compact environmental monitoring solutions; namely, that the heat generated by the chip itself skews the temperature readings. To combat this, aggressive power saving functions are baked into the firmware to make sure the ESP is in a deep sleep as much as possible. While not a perfect solution, it does prevent the ESP from warming the PCB up so much that it invalidades the reported data.
By now, the particularly astute reader may have realized that all the additional components used for the USB side of this board aren’t strictly necessary. After all, if you can pull the ESP module out of the header and program it separately, then you don’t actually need to include that capability in each sensor node. While true, we’re hardly the ones to complain when a hacker showboats a bit on their designs.
If you’re lucky enough to have a swimming pool, well, you may not feel all that lucky. Pools are great to have on a hot summer day, but keeping them crystal clear and pH-balanced is a deep dive into tedium. Sure, there are existing systems out there. They cost a kiddie pool of cash and are usually limited to particular pool parts. Existing DIY solutions are almost as bad, and so [segalion] is making waves with a dumb, brand-agnostic pool automation system called Raspipool.
Sensors for pH, ORP, and temperature are immersed in pool water flowing through a bypass pipe that runs between the filter and the pump. The basic plan is to control the pumps and sensors with a web-enabled Raspberry Pi, and have the Pi send action and threshold notifications straight to [segalion]’s poolside lounge chair. Each piece is dedicated to a single task, which allows for easy customization and future expansion.
[segalion] is trying to get more people involved so that Raspipool can keep really make a splash. Be sure to check out the project wiki and let him know if you can help or have suggestions.
Every hacker camp has its own flavor, and BornHack 2019 in the Danish countryside gave us the opportunity to sample some hacker relaxation, Scandinavian style. Among the attractions was a wood-fired hot tub of gargantuan proportions, in which the tired attendee could rejuvenate themselves at 40 Celcius in the middle of the forest. A wood-fired hot tub is not the easiest of appliances to control, so to tame it [richard42graham] and a group of Danish hackerspace friends took it upon themselves to give it an internet-connected temperature sensor.
The starting point was a TMP112 temperature sensor and an ESP8266 module, which initially exposed the temperature reading via a web interface, but then collapsed under too much load. The solution was to make the raw data available via MQTT, and from that create a web interface for the event bar, Twitter and IRC bots. There was even an interface to display hot tub temperature on the ubiquitous OHMlights dotted around the camp.
It’s more normal to control a hot tub via an electric heater, but since the wood fire on this one has to be tended by a camp volunteer it made sense to use the IRC system as an alert. It will be back at BornHack 2020, so we’ll have to do our job here at Hackaday and spend a long time lounging in the hot tub in the name of journalistic research to see how well it works.
For years [Edward] has been building professional grade underwater sensing nodes at prices approachable for an interested individual without a government grant. An important component of these is temperature, and he has been on a quest to get the highest accuracy temperature readings from whatever parts hit that sweet optimum between cost and complexity. First there were traditional temperature sensor ICs, but after deploying numerous nodes [Edward] was running into the limit of their accuracy. Could he use clever code and circuitry to get better results? The short answer is yes, but the long answer is a many part series of posts starting in 2016 detailing [Edward]’s exploration to get there.
The first step is a thermistor, a conceptually simple device: resistance varies with temperature (seriously, how much more simple can a sensor get?). You can measure them by tapping the center of a voltage divider the same way you’d measure any other resistance, but [Edward] had discarded this idea because the naive approach combined with his Arduino’s 10 bit ADC yielded resolution too poor to be worthwhile for his needs. But by using the right analog reference voltage and adjusting the voltage divider he could get a 20x improvement in resolution, down to 0.05°C in the relevant temperature range. This and more is the subject of the first post.
What comes next? Oversampling. Apparently fueled by a project featured on Hackaday back in 2015 [Edward] embarked on a journey to applying it to his thermistor problem. To quote [Edward] directly, to get “n extra bits of resolution, you need to read the ADC four to the power of n times”. Three bits gives about an order of magnitude better resolution. This effectively lets you resolve signals smaller than a single sample but only if there is some jitter in the signal you’re measuring. Reading the same analog line with no perturbation gives no benefit. The rest of the post deals with the process of artificially perturbing the signal, which turns out to be significantly complex, but the result is roughly 16 bit accuracy from a 10 bit ADC!
What’s the upside? High quality sensor readings from a few passives and a cheap Arduino. If that’s your jam check out this excellent series when designing your next sensing project!
When [Turbo Conquering Mega Eagle] tried lost wax casting, he ended up with a fireball and a galvanizing sense of disappointment. There wasn’t enough heat to get all the wax out, and the paraffin ignited. Though a bit burned by the experience, it didn’t extinguish his desire to do lost wax casting. In a textbook case of project-spawns-project, this eagle decided to wing it and made his own high-temperature oven.
This is true, seat-of-your-pants DIY. For this project, [TCME] treated himself to a virgin sheet of mild steel, a metallic delicacy for a guy who seems used to using whatever is available. The oven consists of a welded-together box inside a larger box, with insulation between the two. The door is a shallower box filled with insulation, with hinges on the right and a sturdy-looking gravity catch on the left. [TCME] welded together a nice little box for the 12-volt, 1000 °C temp controller module, and tacked some tabs to the outside to help wrangle the wires. Lower your visor and click past the break to watch this hot box come together.
We’ll be perfectly honest: sitting inside a heated box sounds just a bit too much like torture for our tastes. But if we did somehow find ourselves in possession of a fancy new sauna, we’d more than likely follow in the footsteps of [Al Betschart] and make the thing controllable with the ESP8266. After all, if you’re going to be cooked alive, you might as well do it on your own terms.
The sauna itself was purchased as a kit, and included an electric heater controlled by a thermostat. As explained in his detailed documentation, [Al] integrated a Sonoff TH16 into the original heater circuit so he could control power to the coils remotely. The TH16 also includes support for a thermal sensor, which allowed him to get a reading on the sauna’s internal temperature. The new electronics were mounted in a weather-proof box on the back of the sauna, complete with an external WiFi antenna to help get a good signal back to the house.
At this point the project could technically be done if all you wanted was remote control, but [Al] wanted to create a replacement firmware for the Sonoff that was specifically geared towards the sauna. So he came up with some code that uses MQTT to connect the heater to his home automation system, and allows configuring things like the maximum temperature and how long the sauna will run before turning itself off.
Interestingly, the company who makes these saunas thought the work [Al] did to integrate their product into his home automation system was so impressive they actually interviewed him about it and put it up on their site for others who might be inspired by his work. We’ve covered a lot of hacks to consumer devices here at Hackaday, and it’s exceedingly rare for a company to be so supportive of customers fiddling around with their products (especially in a case like this where there’s a real chance of burning your house down), so credit where credit is due.
[Edward], creator of the Cave Pearl project, an underwater data logger, needed a way to measure temperature with a microcontroller. Normally, this problem is most easily solved by throwing a temperature sensor on the I2C bus — these sensors are cheap and readily available. This isn’t about connecting a temperature sensor in your Arduino. This build is about using the temperature sensor in your clock.
The ATMega328p, the chip at the heart of all your Arduino Uno clones, has within it a watchdog timer that clicks over at a rate of 110 kHz. This watchdog timer is somewhat sensitive to temperature, and by measuring this temperature sensor you can get some idea of the temperature of the epoxy blob that is a modern microcontroller. The trick is calibrating the watchdog timer, which was done with a homemade ‘calibration box’ in a freezer consisting of two very heavy ceramic pots with a bag of rice between them to add thermal mass (you can’t do this with water because you’re putting it in a freezer and antique crocks are somewhat valuable).
By repeatedly taking the microcontroller through a couple of freeze-thaw cycles, [Edward] was able to calibrate this watchdog timer to a resolution of about 0.0025°C, which is more than enough for just about any sensor application. Discussions of accuracy and precision notwithstanding, it’s pretty good.
This technique measures the temperature of the microcontroller with an accuracy of 0.005°C or better, and it’s using it with just the interrupt timer. That’s not to say this is the only way to measure the temperature of an ATMega; some of these chips have temperature sensors built right into them, and we’ve seen projects that use this before. However, this documented feature that’s clearly in the datasheet seems not to be used by many people.