There are times when a sensor is required that does its job without the need for human attention over a long period, and for those applications a minimal power drain is a must. [Dave Davenport] had an EPS8266-based moisture sensor, and became disappointed in having to replace its AA batteries every few months. With an 18650 Li-ion cell and a bunch of power-saving tricks that time has been extended so far to over a year and still going, so he’s written a blog post detailing how he did it.
Some of his techniques such as turning off the sensor or using a better LDO regulator than the stock Wemos one are straightforward. Others though are unexpected, such as using the memory associated with the on-board RTC to store the WiFi connection info and channel number during sleep. The normal ESP8266 connection sequence involves a network scan, by hanging onto what it found last time the extra time and thus power expended by it can be avoided. Similarly switching from a DHCP lease to a fixed IP address cuts the time the device waits for a lease and thus the time it has to stay awake.
We might not all have ESP8266 moisture sensors to build, but we’re many of us on a quest to sip less power in our projects. Let us help you with a previous sojourn into that arena.
ESP8266 image: connorgoodwolf [CC BY-SA 4.0].
The ability to get professionally manufactured PCBs, at least small ones, for dirt cheap has had a huge impact on the sort of projects we see around these parts. It’s getting to the point where experimenting with PCB enclosures is not only a way to make your next project stand out, but an economical choice.
Which is how this ESP8266 sensor gadget from [Josef Adamčík] got its unique “folded over” look. The top panel is where the microcontroller and headers for various sensors live, the bottom panel is home to the TP4056 USB charging module, and the center panel provides mechanical support as well as holds the single 18650 cell. Rather than close the whole thing up with a fourth panel, he decided to leave it open so the battery can easily be removed. Plus, of course, it looks cooler this way.
Could [Josef] have fit all his electronics on a single 100 x 100 PCB and then put the whole thing into a 3D printed enclosure? Well, sure. But that’s been done to death at this point, and besides, he was looking for an excuse to get more comfortable doing PCB design. We think it also makes for a considerably more visual appealing final product than simply taking the “normal” way out.
Currently [Josef] has an SHT21 humidity/temperature sensor and a BH1750 light sensor slotted into the headers on the top side of the device, but they could just as easily be swapped out with something else if you wanted to do something a bit more exciting. We notice that homebrew air quality monitors are becoming increasingly popular.
Building bespoke enclosures from PCBs is a fantastic trick that frankly we’d love to see more of. It’s somewhat of an artform in itself, but if you’re willing to put the effort in to do it right the results can be truly phenomenal.
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.
Annoyed by the unnecessary bulk of existing solutions, [cperiod] has come up with an ESP8266 temperature and humidity sensor that can plug directly into a standard USB port. Slotted into a USB wall charger or power bank, this diminutive board can provide inconspicuous remote environmental monitoring wherever you need it. For extra hacker points, the board was even produced at home on a PCB mill.
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.
ESP8266 development boards like the Wemos D1 Mini and NodeMCU are an excellent way to get a one-off project up and rolling quickly, but their size and relative complexity mean they aren’t necessarily a good choice for even short-run production hardware. On the other hand, programming the bare ESP modules can be something of a pain. But thanks to [Greg Frost], flashing those tiny little boards just got a lot easier.
His 3D printed design uses pogo pins to securely connect to the board’s castellated edges, which also holds it in place during the programming process. On the back side there’s just a few jumper wires and a couple of resistors, which ultimately lead to the FT232R FTDI board that actually connects the chip to the computer so you can program it.
We’d like to see a back panel that encloses the wiring, and perhaps an alternate version that deletes the space for the FTDI board in favor of a row of header pins. Both easy enough modifications to the basic design should [Greg] or anyone else feel so inclined. But even as it is, this is a great little programmer that can be sourced and assembled easily and cheaply.
This isn’t the first 3D printed ESP8266 programmer we’ve seen, and there are some improvised versions which are even cheaper to put together, but this design has a certain professional look that we think will be right at home on your bench.
The ESP8266 has become the hacker’s microcontroller of choice because it’s exceptionally easy to get the chip connected to the network and talking to other devices. The fact that it’s also absurdly cheap is just a bonus. Since nearly every piece of electronics you buy today is “smart” enough to include some form of Internet control, that means there’s no shortage of gadgets these MCUs can potentially poke and prod.
In their latest tip, [TecnoProfesor] shows how you can interface the ESP8266 with Google’s Cloud Print, a service that enables simple remote printing over the web without having to worry about having the proper device drivers. Remote printing from the ESP8266 might seem like little more than a gag at first glance, but if you’re the kind of person who likes to have hard copies of data, adding the capability to generate a daily printed report to your weather station could be a nice weekend project.
[TecnoProfesor] provides explanations and source code for printing documents of various sizes from both the ESP8266’s internal flash storage and an SPI-attached SD card. Towards the end of the write-up, there’s even some explanation of how the
setPrintDocument() function of the Cloud Print API can be used in more advanced scenarios, such as printing web pages or documents stored in Google Drive.
When we see microcontrollers connected to printers, they’re usually of the small thermal kind. Being able to access “real” printers with such a simple technique offers some interesting possibilities, though like most technology, there’s potential for it to be misused.
[Thanks to Andrew for the tip.]
It’s no secret that the hardware devices we buy are often more capable than their manufacturer leads on. Features hidden behind firmware locks are a common trick, as it allows companies to sell the same piece of gear as a different model by turning off certain capabilities. Luckily for us, these types of arbitrary limitations are often easy to circumvent.
As a perfect example, [Acuario] recently discovered that the LG SJ2 sound bar has quite a few features that aren’t advertised on the box. Whether it’s due to greed or just laziness, it turns out LG isn’t using many of the capabilities offered by the ESMT AD83586B IC inside the amplifier. The chip gets its configuration via I2C, so thanks to the addition of an ESP8266, the expanded capabilities can now be easily enabled through a web interface.
[Acuario] has already found out how to turn on things like simulated surround sound, or per-channel volume controls; all functions which aren’t even exposed through the normal controls on the sound bar. But it goes deeper than that. The LG SJ2 is a 2.1 channel system, with a wireless speaker providing the right and left channels. But the AD83586B inside the subwoofer is actually capable of driving two locally connected speakers, though you obviously need to do a little rewiring.
There are still even more capabilities to unlock, though [Acuario] is currently struggling with some incomplete documentation. The datasheet says there’s support for user-defined equalizer settings, but no examples are given for how to actually do it. If anyone’s got a particular affinity for these sort of amplifier chips, now could be your time to shine.
For hackers, there’s perhaps no better example of feature-locked products than Rigol’s line of oscilloscopes. From the 2000 series of scopes in 2013 up to their higher-end MSO5000 just last year, there’s a long history of unlocking hidden features on these popular tools.
Some hacks are born of genius or necessity, and others from our sheer ham-fisted incompetence. This is not a story about the first kind. But it did give me an excuse to show how easy it is to design WiFi-connected devices that work the way you want them to, rather than the way the manufacturer had in mind.
It started out as a sensible idea – consumer electronics in Vietnam have many different electric plug types for mains AC power: A, C, G, F, and I are fairly present, with A and C being most common. For a quick review of what all those look like, this website sums it up nicely. There are universal power adapters available of course, but they tend to fit my most common type (C) poorly, resulting in intermittent power loss whenever you sneeze. So I figured I should replace all the plugs on my devices to be A-type (common to those of you in North America), as it holds well in all the power bar types I have, mainly leftover server PDUs.
This was very straightforward until I got to my desk lamp. Being a fancy Xiaomi smart lamp, they had opted to hide a transformer in the plug with such small dimensions that I failed to notice it. So instead of receiving a balmy 12 volts DC, it received 220 volts AC. With a bright flash and bang, it illuminated my desk one final time.
Continue reading “Fried Desk Lamp Reborn: How To Use ESP8266 To Build Connected Devices”