He’s steadily been working on it for several months now, and even entered it into the 2022 Sci-Fi Contest back in April. Obviously he wasn’t able to complete it before the Contest deadline, but looking at the final results, we’re happy to see he kept chugging away at it.
Of course, with a project like this, the hardware is only half the battle. In the video below, [Mangy_Dog] explains the challenges involved in creating not only the firmware that runs on the monitor, but the accompanying PC-side application. This included modifying existing libraries to add support for the device’s unique flash storage arrangement, and pulling the relevant system status information out of the operating system and into a series of customizable widgets.
In a previous post, I showed how you could upload images into a Discord server from Python; leveraging the popular chat platform to simplify things like remote monitoring and push notifications on mobile devices. As an example, I showed an automatically generated image containing the statistics for my Battlefield 1 platoon which gets pushed to member’s devices on a weekly basis.
The generation of that image was outside the scope of the original post, but I think it’s a technique worth discussing on its own. After all, they say that a picture is worth 1000 words. So that means a picture that actually contains words must be worth way more. Like, at least 2000, easy.
Being able to create images from your textual data can lend a bit of flair to your projects without the need to create an entire graphical user interface. By putting a text overlay on a pre-rendered image, you can pull off some very slick visuals with a minimum amount of system resources. So long as you have a way of displaying an image file, you’re good to go.
In this post I’ll quickly demonstrate how to load an image, overlay it with text, and then save the resulting image to a new file. This technique is ideal in situations where a display doesn’t need to be updated in real-time; visuals can be generated at regular intervals and simply displayed as static images. Possible uses include weather displays, “magic” mirrors, public signage, etc. Continue reading “Making Pictures Worth 1000 Words In Python”→
Some households have water supplies that contain higher than desired levels of minerals. This condition is called hard water. There is nothing harmful about hard water but it does leave mineral deposits on pipes and appliances and makes cleaning a little bit more difficult. The solution is to have a water softener system which is basically a tank filled with salt that the household water passes through. This tank has to be refilled about every month and [David] was catching a little flak from his wife because he kept forgetting to fill it. He then set out to do what any great husband would do and built a Water Softener Monitor that reports the quantity of salt in the basement tank up to the living quarters.
[David] started thinking that he should test the salinity of the water to determine if salt needed to be added but after thinking about it for a while decided against it because any metal in that salty water would surely corrode. A non-contact approach would be to use an IR distance sensor mounted to the top of the tank and measure the distance to the pile of salt that slowly lowers as it dissolves into the water. In this case, he used a Sharp GP2D12 that can measure accurately from 10 to 80cm.
Instructables user [Jan] likes to keep close tabs on his computer’s memory usage, but wanted something more interesting to look at than the standard resource manager. He preferred to have an external display available that would show his computer’s status with a quick glance, and thus this system monitor was born.
His status panel contains a trio of constantly updated LED bars that show his computer’s CPU usage, available physical memory, and virtual memory consumption. With a small footprint being a priority, [Jan] kept the indicator’s size down by using SMD components and by including an on-board UART to USB converter to go along with his ATTiny microcontroller.
He uses a Python script to gather usage information from his computer, feeding it to his display over USB. The system works pretty well as you can see in the video below, though the virtual memory indicator doesn’t seem to get a ton of action – perhaps it could be used to indicate hard drive activity instead.
If you are looking to build something similar, [Jan] has made all of his code and schematics available for anyone’s use.