Giving Environmental Readouts Some Personality

Air Quality Index for one’s region can be a handy thing to know, but it’s such a dry and humorless number, isn’t it? Well, all that changes with [Andrew Kleindolph]’s AQI Funnies: a visual representation of live AQI data presented by a friendly ghost character in a comic panel presentation. The background, mood, and messaging are all generated to match the current conditions, providing some variety (and random adjectives) to spruce things up.

We love the attention paid to the super clean presentation, and the e-paper screen looks fantastic. Inside the unit is a Raspberry Pi using Python to talk to the AirNow.gov API to get local conditions and update every four hours (AirNow also has a number of useful-looking widgets, for those interested.)

The enclosure is 3D printed, and [Andrew] uses a Witty Pi for power management and battery conservation. The display is a color e-paper display that not only looks great, but has the advantage of not needing power unless the display is updating. The Pi can be woken up to update the screen with new info when needed, but otherwise can spend its time asleep.

[Andrew] has a knack for friendly presentations of information with an underlying seriousness, as we saw with his friendly reminders about nasty product recalls.

A Merciless Environmental Monitoring System

We’ve seen plenty of environmental monitoring setups here on Hackaday — wireless sensors dotted around the house, all uploading their temperature and humidity data to a central server hidden away in some closet. The system put together by [Andy] from Workshopshed is much the same, except this time the server has been designed to be as bright and bold as possible.

The use of Mosquitto, InfluxDB, Node Red, and Grafana (M.I.N.G) made [Andy] think of Ming the Merciless from Flash Gordon, which in turn inspired the enclosure that holds the Raspberry Pi, hard drive, and power supply. Some 3D printed details help sell the look, and painted metal mesh panels make sure there’s plenty of airflow.

While the server is certainly eye-catching, the sensors themselves are also worth a close look. You might expect the sensors to be based on some member of the ESP family, but in this case, [Andy] has opted to go with the Raspberry Pi Pico. As this project pre-dates the release of the wireless variant of the board, he had to add on an ESP-01 for communications as well as the DTH11 temperature and humidity sensor.

For power each sensor includes a 1200 mAh pouch cell and a Pimoroni LiPo SHIM, though he does note working with the Pico’s energy saving modes posed something of a challenge. A perfboard holds all the components together, and the whole thing fits into an understated 3D printed enclosure.

Should you go the ESP8266/ESP32 route for your wireless sensors, we’ve seen some pretty tidy packages that are worth checking out. Or if you’d rather use something off-the-shelf, we’re big fans of the custom firmware developed for Xiaomi Bluetooth thermometers.

Continue reading “A Merciless Environmental Monitoring System”

ESP32 Powers Fresh Take On An IoT Geiger Counter

Over the years we’ve covered many projects aimed at detecting elevated radiation levels, and a fair number of them have been Internet connected in some way. But as they are often built around the Soviet-era SBM-20 Geiger–Müller tube, these devices have generally adhered to a fairly conservative design. With the current situation in Europe heightening concerns over potential radiation exposure, [g3gg0] thought it was a good a time as any to revisit the idea of an Internet-connected Geiger counter using more modern components.

Now to be clear, even this modernized approach still makes use of that same SBM-20 tube. There’s such an incredible wealth of information floating around out there about how to work with them that you’d almost put yourself at a disadvantage to chose something else to base your design on. Put simply, it’s hard to go wrong with a classic.

An unfortunate bug was discovered in the HV circuit.

That said, [g3gg0] decided early on that the design would use as many SMD components as possible, a considerable departure from many of the SBM-20 counters we’ve seen. That meant coming up with a new high-voltage power supply capable of providing the tube with the necessary 400 V, which from the sound of things, took a few attempts to complete. The final result is perhaps the smallest and cleanest looking board we’ve ever seen play host to this particular tube.

To run the show, [g3gg0] selected the ESP32-PICO-D4. You certainly don’t need such a powerful microcontroller to read the impulses from the SBM-20 tube and publish them via MQTT, but to be fair, the chip has a number of other duties. It’s handling the WS2812 RGB LEDs that go off in response to detected particles, running the (apparently optional) 2.9 inch WaveShare electronic paper display, and also pulling data from a BME280 environmental sensor as well as a CCS811 VOC sensor — so it’s keeping fairly busy.

As impressive as this build is, we do hate that it had to be built. From certain world leaders dropping casual comments about the strength of their nuclear arsenal to foolhardy attempts to capture the Chernobyl power station, having access to a reliable Geiger counter isn’t an unreasonable precaution right now. For everyone’s sake, let’s hope the fancy RGB LEDs on this particular build remain as dark as possible.

Continue reading “ESP32 Powers Fresh Take On An IoT Geiger Counter”

Exploring Custom Firmware On Xiaomi Thermometers

If we’ve learned anything over the years, it’s that hackers love to know what the temperature is. Seriously. A stroll through the archives here at Hackaday uncovers an overwhelming number of bespoke gadgets for recording, displaying, and transmitting the current conditions. From outdoor weather stations to an ESP8266 with a DHT11 soldered on, there’s no shortage of prior art should you want to start collecting your own environmental data.

Now obviously we’re big fans of DIY it here, that’s sort of the point of the whole website. But there’s no denying that it can be hard to compete with the economies of scale, especially when dealing with imported goods. Even the most experienced hardware hacker would have trouble building something like the Xiaomi LYWSD03MMC. For as little as $4 USD each, you’ve got a slick energy efficient sensor with an integrated LCD that broadcasts the current temperature and humidity over Bluetooth Low Energy.

You could probably build your own…but why?

It’s pretty much the ideal platform for setting up a whole-house environmental monitoring system except for one detail: it’s designed to work as part of Xiaomi’s home automation system, and not necessarily the hacked-together setups that folks like us have going on at home. But that was before Aaron Christophel got on the case.

We first brought news of his ambitious project to create an open source firmware for these low-cost sensors last month, and unsurprisingly it generated quite a bit of interest. After all, folks taking existing pieces of hardware, making them better, and sharing how they did it with the world is a core tenet of this community.

Believing that such a well crafted projected deserved a second look, and frankly because I wanted to start monitoring the conditions in my own home on the cheap, I decided to order a pack of Xiaomi thermometers and dive in.

Continue reading “Exploring Custom Firmware On Xiaomi Thermometers”

Custom Firmware For Cheap Bluetooth Thermometers

The Xiaomi LYWSD03MMC temperature and humidity sensor is ridiculously cheap. If you’re buying a few at a time, you can expect to pay as little as $5 USD a pop for these handy Bluetooth Low Energy environmental sensors. Unfortunately, that low price tag comes with a bit of a catch: you can only read the data with the official Xiaomi smartphone application or by linking it to one of the company’s smart home hubs. Or at least, that used to be the case.

Over the past year, [Aaron Christophel] has been working on a replacement firmware for these Xiomi sensors that unlocks the data so you can use it however you see fit. In addition, it allows the user to tweak various features and settings that were previously unavailable. For example, you can disable the little ASCII-art smiley face that usually shows on the LCD to indicate the relative comfort level of the room.

The new firmware publishes the temperature, humidity, and battery level every minute through a BLE advertisement broadcast. In other words, that means client devices can read data from the sensor without having to be paired. Scraping this data is quite simple, and the GitHub page includes a breakdown of what each byte in the broadcast message means. Avoiding direct connections not only makes it easier to quickly read the values from multiple thermometers, but should keep the device’s CR2032 battery going for longer.

But perhaps the most impressive part of this project is how you get the custom firmware installed. You don’t need to crack the case or solder up a programmer. Just load the flasher page on a computer and browser combo that supports Web Bluetooth (a smartphone is probably the best bet), point it to the MAC address of the thermometer you want to flash, and hit the button. [Aaron] is no stranger to developing user-friendly OTA installers for his firmware projects, but even for him, it’s quite impressive.

Continue reading “Custom Firmware For Cheap Bluetooth Thermometers”

Two-Part, Four-Wire Air Quality Meter Shows How It’s Done

The Bosch BME680 is a super-capable environmental sensor, and [Random Nerd Tutorials] has married it to the ESP32 to create an air quality meter that serves as a great tutorial on not just getting the sensor up and running, but also in setting up a simple (and optional) web server to deliver the readings. It’s a great project that steps through everything from beginning to end, including how to install the necessary libraries and how to program the ESP32, so it’s the perfect weekend project for anyone who wants to learn.

The BME680 is a small part that communicates over SPI or I2C and combines gas, pressure, temperature, and humidity sensors. The gas sensor part detects a wide range of volatile organic compounds (VOCs) and contaminants, including carbon monoxide, which makes it a useful indoor air quality sensor. It provides only a relative measurement (lower resistance corresponds to lower air quality) so for best results it should be calibrated against a known source.

The tutorial uses the Arduino IDE with an add-on to support the ESP32, and libraries from Adafruit. Unfamiliar with such things? The tutorial walks through the installation of both. There’s a good explanation of the source code, and guidance on entering setup values (such as local air pressure, a function of sea level) for best results.

Once the software is on the ESP32, the results can be read from the serial port monitor. By going one step further, the ESP32 can run a small web server (using ESPAsyncWebServer) to serve the data to any device wirelessly. It’s a well-written tutorial that covers every element well, and complements this other BME680-based air quality meter that uses MQTT and Raspberry Pi.

Free Cloud Data Logging Courtesy Of Google

Pushing all of your data into “The Cloud” sounds great, until you remember that what you’re really talking about is somebody else’s computer. That means all your hard-crunched data could potentially become inaccessible should the company running the service go under or change the rules on you; a situation we’ve unfortunately already seen play out.

Which makes this project from [Zoltan Doczi] and [Róbert Szalóki] so appealing. Not only does it show how easy it can be to shuffle your data through the tubes and off to that big data center in the sky, but they send it to one of the few companies that seem incapable of losing market share: Google. But fear not, this isn’t some experimental sensor API that the Big G will decide it’s shutting down next Tuesday in favor of a nearly identical service with a different name. All your precious bits and bytes will be stored in one of Google’s flagship products: Sheets.

It turns out that Sheets has a “Deploy as Web App” function that will spit out a custom URL that clients can use to access the spreadsheet data. This project shows how that feature can be exploited with the help of a little Python code to push data directly into Google’s servers from the Raspberry Pi or other suitably diminutive computer.

Here they’re using a temperature and humidity sensor, but the only limitation is your imagination. As an added bonus, the chart and graph functions in Sheets can be used to make high-quality visualizations of your recorded data at no extra charge.

You might be wondering what would happen if a bunch of hackers all over the world started pushing data into Sheets every few seconds. Honestly, we don’t know. The last time we showed how you could interact with one of their services in unexpected ways, Google announced they were retiring it on the very same day. It was probably just a coincidence, but to be on the safe side, we’d recommend keeping the update frequency fairly low.

Back in 2012, before the service was even known as Google Sheets, we covered how you could do something very similar by manually assembling HTTP packets containing your data. We’d say this validates the concept for long-term data storage, but clearly the methodology has changed considerably in the intervening years. Somebody else’s computer, indeed.