Weather Station With Distributed Sensors

Building a weather station is a fairly common project that plenty of us have taken on, and for good reason. They can be built around virtually any microcontroller or full-scale computer, can have as many or few sensors as needed, and range from simple, straightforward projects to more complex systems capable of doing things like sending data off to weather services like Weather Underground. This weather station features a few innovations we don’t often see, though, with a modular and wireless design that makes it versatile and easy to scale up or down as needed.

Each of the modules in this build use the ESP32 platform, which simplifies design and also takes care of the wireless capability needed. The base station gets a few extra sensors including those for carbon dioxide, volatile organic compounds, and nitrogen oxides. It also includes a screen which can be used to display a wide variety of data gathered locally but also includes forecast information fetched from the free OpenWeatherMap API. For the sensor modules, BME280 sensors are used for temperature, pressure, and humidity and each module includes its own solar panel and battery with the ESP32 chips set to operate using as little energy as possible.

One of the things that helps easily integrate all of the sensor modules is the use of ESP-NOW, which we have seen a few times before. It essentially eliminates the need for a router and allows ESP modules to connect directly with one another. The build also goes into detail about most of the aspects of this project including the programming of the GUI that the ESP32 base station displays on its screen, so for anyone looking to start their own weather station project this should be an excellent guide. Make sure to check out this one as well if you want to send all of your weather data to Weather Underground.

An Open Firmware For LILYGO’s E-ink Smart Watch

The world’s first quartz wristwatches were miles ahead of electric and mechanical wristwatches by most standards of the time, their accuracy was unprecedented and the batteries typically lasted somewhere on the order of a year. Modern smart watches, at least in terms of battery life, have taken a step backwards — depending on use, some can require daily charging.

If you’re looking to bridge the gap between a day and a year, you might look into a smart watch with an e-ink display. One option is the ESP32-based LILYGO T-Wrist. Of course, it’s not a smart watch without some software to run on it, which is where qpaperOS comes in.

Developed by [qewer33], this open source firmware for the T-Wrist is designed to get the most out of the battery by updating only once per minute. With a 250 mAh battery, it should last about five days on a charge. Of course, with the power of the ESP32 comes a whole host of other features including GPS, a step counter, and a weather display, although since the firmware is still under development, some of these features have yet to be implemented.

With all of the code available, qpaperOS could make an excellent platform from which to build your own smart watch around. Or perhaps you could chip in and add some of the features on the whislity. The ESP32 is a capable and versatile chip, even capable of playing popular 8-bit video games, although we’re not sure this functionality would fit in a smart watch and preserve battery life at the same time.

The ESP32 Doesn’t Need Much

For those looking to add wireless connectivity to embedded projects or to build IoT devices, there is perhaps no more popular module than the ESP32. A dual-core option exists for processor intensive applications, the built-in WiFi and Bluetooth simplify designs, and it has plenty of I/O, memory, and interoperability for most applications. With so much built into the chip itself, [atomic14] wondered how much support circuitry it really needed and set about building the most minimalist ESP32 development board possible.

Starting with the recommended schematic for the ESP32, the most obvious things to remove are a number of the interfacing components like the USB to UART chip and the JTAG interface. The ESP32 has USB capabilities built in, so the data lines from a USB port can be directly soldered to the chip instead of using a go-between. A 3.3V regulator eliminates the need for many of the decoupling capacitors, and the external oscillator support circuitry can also be eliminated when using the internal oscillator. The only thing [atomic14] adds that isn’t strictly necessary is an LED connected to one of the GPIO pins, but he figures the bare minimum required to show the dev board can receive and run programs is blinking an LED.

Building the circuit on a breadboard shows that this minimalist design works, but instead of building a tiny PCB to solder the ESP32 module to he attempted to build a sort of dead-bug support circuit on the back of the ESP32. This didn’t work particularly well so a tiny dev board was eventually created to host this small number of components. But with that, the ESP32 is up and running. These modules are small and compact enough that it’s actually possible to build an entire dev board setup inside a USB module for a Framework laptop, too.

Continue reading “The ESP32 Doesn’t Need Much”

An E-ink display showing Conway's Game of Life, with a solar cell beneath it

Solar Powered Game Of Life Follows The Sun’s Rhythm

Conway’s Game of Life is a beautiful example of how complex behavior can emerge from a few very simple rules. But while it uses biological terminology such as “cells”, “alive” and “generation”, the basic game is too simplistic to be a model for any real-world biological process. It’s easy to add features to make it a bit more life-like, however, as [David Hamp-Gonsalves] has done by giving the Conway’s creation something of a circadian rhythm.

The basic idea is that the speed at which [David]’s Game of Life evolves is governed by the amount of ambient light. The game runs off a solar cell that charges a battery, with the battery’s voltage determining how long it takes to advance the game by one generation. The system is therefore highly active in full sunlight, and grinds almost to a complete halt at night.

An ESP32 runs the simulation and outputs the result to a 400 x 300 pixel e-ink display. The display is extremely power-efficient by its very nature; the ESP’s main processor core, on the other hand, is deliberately placed into deep sleep mode most of the time to save as much power as possible. The Ultra Low Power (ULP) co-processor, meanwhile, keeps an eye on the lithium battery’s voltage as it’s slowly being charged by the solar cell. When the voltage reaches 3.3 V, the main CPU wakes up and computes the Game’s new state. In bright sunlight this happens every few seconds, while on an overcast day it could take minutes or even hours.

[David]’s interesting idea of changing Life‘s activity based on the amount of energy available turns the Game into something resembling a cold-blooded animal. We’ve seen a similar approach in a “solar creature” that runs a Life-life simulation on a seven-segment LCD. If it’s speed you care about however, you’re better off implementing Life in an FPGA.

A wooden spin coating machine sitting on a desk

Hackaday Prize 2023: Homebrew Spin Coater Makes Micrometer-Thin Layers

One of the great things about the Gearing Up challenge of the 2023 Hackaday Prize is that it lets you discover tools that you don’t encounter every day. We had never given much thought to spin coaters, for example, until we saw [Jeroen Delcour]’s neat homebrew example. As it turns out, spin coating has lots of applications in fields like optics, semiconductor manufacturing or even art projects, where a thin, even layer of a material is required on top of a flat substrate.

The basic idea behind a spin coater is simple: you dispense a few drops of a solution containing the material to be deposited on top of the thing you want to coat, then spin the thing around at a constant speed. The balance between the centripetal force and the liquid’s surface tension ensures that the liquid turns into a film with a consistent thickness all across the substrate. The solvent evaporates, and you’re left with a nice solid layer just a few microns thick.

[Jeroen] built his spin coater out of a brushless DC drone motor, a programmable motor controller, and an ESP32. A rotary pushbutton and an OLED form the user interface, allowing the user to select the speed and spin times. The electronics are all mounted inside a laser-cut wooden enclosure, with the motor sticking out the top, surrounded by a 3D-printed splash guard.

Professional spin coating equipment typically comes with a vacuum chuck to hold the sample in place, but [Jeroen] wasn’t too excited about implementing vacuum systems on a spinning platform and decided instead to simply clamp down the sample using screws in a laser-cut piece of acrylic. This works well enough, and is easy to customize for different sample sizes.

In the video embedded below, [Jeroen] experiments with applying a layer of silicone rubber onto a PCB. Spin coating is an essential step when you’re making your own semiconductor devices such as solar cells, though you might also need more complicated equipment such as an electron microscope. [Jeroen]’s spin coater is at least able to process much larger objects than one we saw earlier.

Continue reading “Hackaday Prize 2023: Homebrew Spin Coater Makes Micrometer-Thin Layers”

Awning Motorized And Automated To Avoid Wind Damage

Awnings can be architecturally beautiful, and they provide lovely shelter from the sun and even a bit of rain. They don’t always like taking a pounding from high winds though. [Steve Carey] installed some nice awnings, but wanted to avoid any potential issues, so he built an automated system to extend and retract them for him. 

An ESP32 serves as the brains of the operation. It’s set up to open and close the blinds using a high-torque brushed motor run by a BTS7960 motor driver. The motor turns the awning’s rod via a hook, so it can be readily removed in the event [Steve] moves house. Reed switches are used as end stops to ensure the motor stops when the awning is fully open or closed. The ESP32 is hooked up to an accelerometer mounted on the awning. It’s set up to sum the accelerations detected in all three axes, and close the awning in the event conditions get too windy.

There’s a certain peace of mind that comes with having your awning hooked up with a preventative safety system. We don’t have a lot of awning posts on Hackaday, but we have seen a good number of automated blinds in the past. If you’ve been working on your own outdoor home automation gear, be sure to hit up the tipsline! Happy…awnings…ing? Anyway.

 

Much Better VGA From An ESP32

The ESP32 series from Espressif have been a successful line of products, offering a powerful microcontroller with on-chip wireless networking. There’s a snag though in their practice of calling all of them ESP32s despite wildly varying specifications and even different processor cores, such that it’s easy to lose track of exactly what the chip in front of you can do. [Bitluni] was faced with updating his VGA library to include a newer variant, and was pleasantly surprised to find that it includes a far more capable display peripheral which enables significantly higher resolutions than previously.

The part in question is the ESP32-S3, a version of the chip with the dual Extensa cores we’re familiar with from earlier versions, but the interesting addition of an LCD controller. His previous VGA on ESP32 used the I2S peripheral and sacrificed some of the available bits to create sync pulses, while this version is not only faster but also includes dedicated sync hardware. He can now do up to 16-bit colour in as much as 1024×768 resolution as can be seen in the video below the break, though this feat requires a slightly out of spec framerate that only works on some screens. It’s by no means perfect because the peripheral is intended for LCD rather than VGA use, but it’s pushing microcontroller VGA to new heights and we look forward to any other uses people will put it to.

We covered the original Bitluni ESP32 VGA library when it first appeared.

Continue reading “Much Better VGA From An ESP32”