ut50e-dashboard 0.1.0
UT60E Dashboard
This project is a quick yet practical PoC that verifies usability of crystal on aarch64 platform. It is an implementation of a driver that reads measurements from Uni-T UT60E multimeter and stores it in a time series database from where they can be obtained for further processing or visualization.
Raspberry Pi on the picture measures current consumption of itself.
Application
Proposed application consists of three software components:
ut60e
- Interface to the multimeter. Implemented in crystal and using only its standard library.- ticktock - Efficient database implemented in C++, compatible with OpenTSDB.
- Grafana - open source platform acting as a dashboard.
Deployment Options
All the three software components are available for aarch64 and x86_64 platforms. This allows for many deployment options, where the following two seem the most practical:
- Host Deployment - It is the simplies option which can be put together quickly. All we need is the host computer and DMM. It can be used for many short at-hoc measurements. It was also usefull for development of
ut60e.cr
. - Mixed Deployment - It is dedicated to long-term measurements where we don't want the host computer to keep working all the time. While Raspberry Pi can connect to the host over WiFi, this option is also suitable for short-range remote measurements.
Remaining part of this document assumes using Mixed Deployment.
Hardware
For the purpose of this project following hardware has been used:
- Host computer with Ubuntu Linux
- Raspberry Pi 3 Model B+
- Uni-T UT60E with original RS232 cable
- RS232-to-USB converter
Configuration
- Compile and install ticktock DB in Raspberry Pi
-
Install compilation tools and libraries required by ticktock (refer to their webpage for details)
-
Build
git clone https://github.com/ytyou/ticktock.git
cd ticktock
make -f Makefile.ubuntu
sudo cp bin/tt /usr/bin/
- Install files from this repo and start database
sudo cp ticktock.service /etc/systemd/system/
sudo cp ticktock.conf /etc/
sudo systemctl start ticktock
Note that precompiled binaries of ticktock are available. As per version 0.20.0, I did't find them working on aarch64 though.
- Cross-compile and install
ut60e.cr
driver
-
Install crystal (v1.11.2 or compatible) on the host side as described on their webpage
-
Cross-compile
ut60e.cr
on the host side:crystal build ut60e.cr --cross-compile --target "aarch64-linux-gnu-" scp ut60e.o pi@raspberry:~ scp ut60e.service pi@raspberry:~
-
Build
ut60e.o
in Raspberry Pi:# install required libraries sudo apt-get install -y clang libssl-dev libpcre2-dev libgc-dev libevent-dev zlib1g-dev # build (actual command is provided by crystal compiler in the previous step) cc ut60e.o -o ut60e -rdynamic -L/usr/bin/../lib/crystal -lz \ `command -v pkg-config > /dev/null && pkg-config --libs --silence-errors libssl || printf %s '-lssl -lcrypto'` \ `command -v pkg-config > /dev/null && pkg-config --libs --silence-errors libcrypto || printf %s '-lcrypto'` \ -lpcre2-8 -lgc -lpthread -levent -lrt -lpthread -ldl # install and start the driver sudo mv ut60e /usr/bin/ sudo mv ut60e.service /etc/systemd/system sudo systemctl start ut60e
- Launch and configure Grafana dashboard
Perhaps the easiest way of launching grafana is through Docker (assuming that it is already installed).
docker run -d -p 3000:3000 --name=grafana grafana/grafana
After initial configuration, create new OpenTSDB source and provide IP of your Raspberry PI:
Import dashboard from ut60e-dashboard.json
. It supports all the modes/units provided by the multimeter:
ut50e-dashboard
- 0
- 0
- 0
- 0
- 0
- 5 months ago
- June 4, 2024
Fri, 08 Nov 2024 00:48:03 GMT