On doing an analysis of the overall power consumption of an urban home, it is found that the majority of the consumption occurs in the cooling and heating applications. Therefore, for any significant impact on climate change it is necessary to make the operation of these devices as efficient as possible Research proves and I have practically experienced that the vibrations in the compressor of an air conditioner bear a direct correlation to the filtering coefficient of the mesh, ie in layman terms, how dirty the mesh is or how much dust particles are clinging onto the mesh. The fraction of the mesh blocked has a direct impact on the air inflow and hence the cooling efficiency!!! Many automatic cleaning air conditioners rely on open-loop cleaning of the mesh at periodic intervals. This, however, is a power-hungry process as micromotors have to be actuated to move the cleaning head over the mesh. Also, in air conditioners that do not have the automatic cleaning feature, manual intervention is required at regular intervals. This is not good for the life of the machine as well as for the energy bills
My SolutionI would like to create a system that monitors the vibrations in the compressor of an air conditioner to predict when it is time to clean the air filter mesh. The final solution to the above problem is a vibration sensor capturing the vibrations in the compressor of an air conditioner feeding raw data to an MCU which processes the data and sends warnings and maintenance alerts to relevant stakeholders. The notifications would be issued in two ways. Over BLE, the warning is issued if the user or owner of the appliance is detected to be nearby(by seeking the Bluetooth connection on the user`s devices like laptop or phone). The MCU would also be interfaced with another MCU capable of Wifi connection so that maintenance information can be stored on the cloud and alerts can be received remotely. Since the life of an AC is affected by its compressor`s load cycles and the efficiency is also largely dependent on the incoming air pressure(reduced by the dust particles) it would therefore be a welcome investment to install a predictive maintenance feature in it. This could translate to huge savings in time, energy and money spent by corporations in the maintenance of air conditioners in large buildings and laboratories, ie when the count of such machines is large The concept may be extended to other types of appliances like refrigerators and heaters or even air purifiers. The reason I do not mention them here is that firstly, I did not get any research paper backing the correlation of vibration intensity with the life of these particular appliances and the fact that it is much easier to simply install this in my air conditioner at home There are automatic cleaning mechanisms available in the market but they mainly target the convenience factor and do not take into account the overhead energy spent in cleaning the mesh. This system is also much costlier and makes the setup unnecessarily bulky.
ImplementationA high bandwidth vibration sensor would be mounted directly onto the compressor with heat resistant tape(the one used to stick heat sinks - I have one from my raspi collection). The RAW data is feed to one of many analog channels on the QuickFeather development board. After filtering the signal using FFT based DSP algorithms available as a ready to use API on Github, the signal is fed into a spiking neural network on SensiML that analyses, characterises and quantifies the vibration. The output of the spiking neural network is a command to the MCU to either issue a maintenance request or not. The MCU acting on this notification issues a warning to the user over bluetooth through the Arduino MKR board provided if the user`s devices are in range. If not, the MCU sends a message to the MKR1010 board conneted to it over UART. Before this however, it sends a wake-up notification to the Arduino board to wake it up from sleep mode. Once 'awake', the Arduino connects with the home Wifi network and sends a notification over MQTT to the Ubidots Cloud platform. A webservice running online then issues a message to the user to take necessary action. The Quickfeather board and the Arduino MKR1010 MCU would be housed in a plastic case attached to the AC and would continuously monitor the state of the appliance. The apparatus would be powered from a regulated 5V/1A AC to DC power supply.
Current approaches for collecting and labeling vibration datasets rely heavily on a lengthy and error-prone manual inspection of the whole dataset. Consequently, it is still difficult to find fully labeled datasets that could help the research in this field.
For detecting and identifying the load in real-time a machine learning model need to be developed from the collected data. Applying machine learning through programming required an experienced person in the field for getting a good result. But using a graphical machine learning platform like SensiML can make it very easy even for an inexperienced developer(like me xD)
SensiML is a SaaS-based tool suite for creating optimized sensor AI algorithms executing on low-power microcontrollers. SensiML Toolkit provides a complete development workflow for data collection, labeling, model generation, and test/validation of embedded AI code with industry-leading code efficiency and memory footprint.
The QuickFeather Development Kit is a small form factor system ideal for enabling the next generation of low-power Machine Learning (ML) capable IoT devices. Unlike other development kits which are based on proprietary hardware and software tools, QuickFeather is based on open source hardware, compatible with the Adafruit Feather form factor, and is built around 100% open source software (including the Symbiflow FPGA Tools).
The QuickFeather is powered by QuickLogic’s EOS™ S3, the first FPGA-enabled Arm Cortex®-M4F MCU to be fully supported with Zephyr RTOS.
SensiML Toolkit with the QuickLogic QuickFeather Development Kit is a perfect combination for data collection, labeling, model generation, and deployment for NILM. SensiML generated model can be directly used to develop firmware for QuickFeather Dev Kit and in this way, we can develop a commercial machine learning capable product using QuickFeather DK and SensiML Toolkit.
Getting Started(with a lot of pain) with QuickFeather Dev KitEnvironment Setup
For getting started with the QuickFeather Dev Kit first we need to set up your development environment. To do this:
1. Install the required toolchain by following the guide: https://qorc-sdk.readthedocs.io/en/latest/qorc-setup/quickstart.html
DO note that some steps given here may not work and you would have to go the extra mile to get some things set up. Just do not give up
2. Clone this QORC SDK repository using the command or just download it directly from here.
git clone --recursive https://github.com/QuickLogic-Corp/qorc-sdk
3. Install and configure Visual Studio COde for use with QORC SDK sample project by following the guide: https://github.com/QuickLogic-Corp/qorc-sdk/blob/master/using_VScode.rst
For this project, we will record 3-axis accelerometer data from our vibration sensor. Then, from the recorded data we will develop a machine learning model using SensiML Analytic Studio. We then download the model as a library and use this library to develop the final firmware for the Quickfeather board for real-time monitoring and detecting the load. For the whole process, we will use the Simple Streaming project provided with the QORC SDK. We will modify some files of the project to fit with our sensors and requirements.
Modifying Quickfeather Simple Streaming Interface AI Application ProjectThis project performs either data collection or recognition based on the build mode. Data collection uses Simple Streaming Interface to connect and stream sensor data to SensiML's Data Capture Lab. Adding external sensors to collect data, analyze and build models is made simple requiring only a sensor configuration API function and data reading function API to be supplied for the new sensor. This project provides an Arduino-friendly Wire interface for easily integrating Arduino sensor code.
Recording data using SensiML Data Capture Lab- Now we are ready to use DCL for capturing voltage and current waveform from our appliances. But before starting with DCL we need to change the capture source section in the device plugin file.
- Run the DCL, import the modified device plugin, and go to the Sensor Properties option by clicking +.
- Choose the right capture source and sample rate as shown in the above image. Connect the USB TTL converter to the QuickFeather board and plug it into the computer USB. You can get help from this tutorial if you have any confusion.
After successful connection, you will start receiving voltage and current if you have any connected load to the sensors.
- Choose the right level and start recording.After recording and segmentation you need to open Analytics Studio to build an ML model.
- 1. Go to https://app.sensiml.cloud/ and log in to your account and open the project.
- 2. Add a new query
- 3. Add a new pipeline and click on OPTIMIZE to build the model
- 4. After building the model you can explore the result from Explore Model tab
Conclusion
It was a really great experience working with the Quickfeather board to develop a real-world ML application.
Comments