If you build your own devices or hack on devices that someone else has built, you know the feeling of opening a serial terminal and seeing a stream of sensor data coming from your device. However, looking at scrolling numbers gets old fast, and you will soon want to visualize them and store them – which is why experienced makers tend to have a few graph-drawing and data-collecting tools handy, ready to be plugged in and launched at a moment’s notice. Well, if you don’t yet have such a tool in your arsenal, listen to this 16-minute talk by [Alex Whittemore] to learn about a whole bunch of options you might not even know you had!
For a start, there’s the Arduino Serial Plotter that you get for free with your Arduino IDE install, but [Alex] also reminds us of the Mu editor’s serial plotter – about the same in terms of features, but indisputably an upgrade in terms of UX. It’s not the only plotter in town, either – Better Serial Plotter is a wonderful standalone option, with a few features that supercharge it, as [Alex] demonstrates! You don’t have to stop here, however – we can’t always be tethered to our devices’ debugging ports, after all. Continue reading “Supercon 2022: [Alex Whittemore] On Treating Your Sensor Data Well”→
Sometimes you need to know the temperature of something from a ways away. That might be a smoker, a barbecue, or even a rabbit hutch. This project from [Discreet Mayor] might just be what you’re looking for.
It consists of a MAX31855 thermocouple amplifier, designed for working with commonly-available K-type thermocouples. This is hooked up to a Texas Instruments CC1312 microcontroller, which sends the thermal measurements out over the 802.15.4 protocol, the same which underlies technologies like Zigbee and Thread. It’s able to send radio messages over long distances without using a lot of power, allowing the project to run off a CR2023 coin cell battery. Combined with firmware that sleeps the system when it’s not taking measurements, [Discreet Mayor] expects the project to run up to several years on a single battery.
The messages are picked up and logged in a Grafana setup, where they can readily be graphed. For extra utility, any temperatures outside a preset range will trigger a smartphone alert via IFTTT.
Keeping a close eye on temperatures is a key to making good food with a smoker, so this project should serve [Discreet Mayor] well. For anyone else looking to monitor temperatures remotely with a minimum of fuss, it should also do well!
DragonOS, a Debian-based Linux distribution specifically packaged for software-defined radio functionality, roared onto the wavelengths during the beginnings of the various pandemic lockdowns last year. Since then [Aaron], the creator of the OS, has been busy adding features to the distribution as well as creating plenty of videos which show off its capabilities and also function as how-tos for people who might want to learn about software-defined radio. The latest is a video about using this software to detect radio signals in certain specified spectrums.
This build uses two RTL-SDR devices paired with the DragonOS software suite to automatically detect active frequencies within a specified frequency range and that aslo exceed a threshold measured above the average noise floor. The video includes the setup of the software and its use in detecting these signals, but also includes setup of influxdb and Grafana which provide logging capabilities as well. Using this setup, multiple receivers either local or over the internet can then be configured to dump all the identified frequencies, powers, and time stamps into DragonOS.
[Aaron] has also been helping developers to build the SDR4space.lite application which includes GPS support, so he hopes that in a future video a user will be able to easily associate location to identified frequencies. Projects like these also serve as a reminder that getting into software-defined radio is as easy as buying a $10 USB radio receiver and configuring some free software to do anything that you can imagine like tracking ships and airplanes in real time.
Looking to give himself a competitive edge, racer [Douglas Hedges] wanted to come up with a system that could give him real-time feedback on how his current performance compared to his previous fastest lap time. Armed with a Raspberry Pi and some Python libraries, he set out to add a simple telemetry system to his car. But as is often the case with these kind of projects, things just started snowballing from there.
At the most basic level, his system uses GPS position and speed information to light up a strip of RGB LEDs on the dashboard: green means he’s going faster than the previous best lap, and red means he isn’t. Any interface more complex than that would just be a distraction while he focuses on the track. But that doesn’t mean the Raspberry Pi can’t collect data for future review after the race is over.
With the basic functionality in place, [Douglas] turned his attention to collecting engine performance data. It turned out the car already had some pre-existing equipment for collecting metrics such as the air-fuel ratio and RPM, which he was able to connect to the Raspberry Pi thanks to its use of a well documented protocol. On top of that he added a Labjack U3 data acquisition system which let him pull in additional information like throttle position and coolant temperature. Grafana is used to visualize all of this data after the race, though it sounds like he’s also considering adding a cellular data connection vehicle data can be streamed out in real-time.
The first thing to set up, after the hardware and OS, is the network configuration. Each Pi needs a static IP in order to communicate properly. In this case, [Dino] makes extensive use of SSH. From there, he gets to work installing Prometheus and Grafana to use as monitoring software which can track system resources and operating temperature. After that, the final step is to install Ansible which is monitoring software specifically meant for clusters, which allows all of the computers to be administered more as a unit than as four separate devices.
This was only part 1 of [Dino]’s dive into cluster computing, and we hope there’s more to come. There’s a lot to do with a computer cluster, and once you learn the ropes with a Raspberry Pi setup like this it will be a lot easier to move on to a more powerful (and expensive) setup that can power through some serious work.
So you just got something like an Arduino or Raspberry Pi kit with a few sensors. Setting up temperature or motion sensors is easy enough. But what are you going to do with all that data? It’s going to need storage, analysis, and summarization before it’s actually useful to anyone. You need a dashboard!
But even before displaying the data, you’re going to need to store it somewhere, and that means a database. You could just send all of your data off into the cloud and hope that the company that provides you the service has a good business model behind it, but frankly the track records of even the companies with the deepest pockets and best intentions don’t look so good. And you won’t learn anything useful by taking the easiest way out anyway.
Instead, let’s take the second-easiest way out. Here’s a short tutorial to get you up and running with a database backend on a Raspberry Pi and a slick dashboard on your laptop or cellphone. We’ll be using scripts and Docker to automate as many things as possible. Even so, along the way you’ll learn a little bit about Python and Docker, but more importantly you’ll have a system of your own for expansion, customization, or simply experimenting with at home. After all, if the “cloud” won’t let you play around with their database, how much fun can it be, really?