This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.
Data Management Platform for Electronic Test Equipment
Producers of household appliances use test and measurement instruments for validating their designs, testing different operating modes, and troubleshooting. During testing these devices collect a large amount of data that help engineers find out where the problems lie. One common system stores all the acquired data in a central database and displays the results to the engineers in the form of graphs and charts via special Business Intelligence software.
Request
One of the leading providers of household appliances needed to implement a software system for their test and measurement devices. They were looking for a technology partner with expertise in firmware and software development.
Solution
We implemented a solid software system that manages devices under test (DUT), collects data from sensors, and visualizes these data in a web-based Business Intelligence platform.
Scope of work
- Embedded Linux development. The single board computer manages unpluggable devices such as relays, temperature sensors, voltmeter, amperemeter, and GPIO expander, and records data they collect.
- Backend development. We implemented a database system for collecting, handling and processing data recorded by the single board computer.
- Front-end development. We built a web-based Business Intelligence system that displays the data collected from sensors.
Technologies Used
- We used Quad core SBC for the hardware part of this project.
- We built a custom Linux image for the hardware part.
- Websockets is used for direct communication between the GUI part and hardware.
- ZeroMQ library was used for socket communication between hardware and server.
- The software on the hardware side and part of the server software were implemented using C/C++.
- For GUI we used HTML, CSS, and JS (Javascript).
- Backend part was implemented using PHP.
The functionality of the system
The project consisted of three parts: 1) single board computer, 2) database server, and 3) web interface. Here is the functionality we implemented for each part:
Single board computer
- Connection to the database server
- Macros for different sensors and electronic components
- An ecosystem with an API for running testing applications
- Support for MCP23017, GPIO expander
- Support for various temperature sensors
- Measurements of voltage, current, and power consumed by the device (DUT)
Database server
- Database on PostgreSQL
- Rest API for communication with web UI
- ZeroMQ socket connection with the SBC
- Socket forwarding to provide direct access to DUT from web UI
Web UI
- User permissions for different user categories
- The ability to write test scripts in the C-like language
- The ability to assign a test script to run on several DUTs of the same type (eg. irons)
- The ability to execute multiple test scripts on one DUT
- Сharts and logs that display the results of completed tests
- Real-time DUT monitoring
Challenges solved
- We implemented two user modes: test mode and debugging mode. In the test mode a user can view test results both online and offline, and in the debugging mode, a user can view the testing process in real time.
- Each second, every DUT collects from 1 to 10 measurements. With the average testing time of about 10 hours, every single chart with the testing results needed to display from 36,000 to 360,000 dots for each sensor. We optimized the system so this huge amount of data (testing results) could be displayed without lags and delays.
- We implemented APIs for the relay, temperature sensor and other sensors to simplify working with them using testing scripts.
- Our main task was to make the software flexible so it could work with different types of devices from irons to microwave ovens for 24 hours straight. In our system, a user can easily assign scripts to different devices and monitor the state of the devices online.
Result
The system for testing and measurement is based on a single board computer (SBC) that acts as a middleman between the server and the sensors attached to the DUT. The SBC sends commands to the sensors, monitors the data they collect and records these data to the database. The testing results are then displayed in a web interface.
You might also like...
IoT System Development for Manufacturing Reinforced Composites
The IoT device detects leaks on a vacuum bag and communicates this information to the user via a phone, tablet or PC.
LEARN MORE
A Client-Server System for Test & Measurement Applications
We developed a licensing mechanism for the test and measurement platform and apps including a spectrum analyzer and an oscilloscope that can be accessed from a web browser
LEARN MORE