The issue of floor noise has become a serious social problem, leading to not only disputes between neighbors but also incidents of assault and even murder. In fact, the noise coming from the neighboring apartment, with only a wall separating the units, causes excessive stress and even neurosis for many people. Additionally, external noises, such as road noise, car horns, and construction noise, degrade the quality of life and induce stress. Furthermore, the noise from household appliances like refrigerators and air conditioners can lower the quality of sleep and cause insomnia. To address these issues, the importance of soundproofing tools that can measure and mitigate the noise entering the indoor environment across various frequencies is growing. Therefore, we aim to develop a system that uses IoT sensors to measure the frequency and volume of incoming indoor noise in real-time and generates out-of-phase sound to cancel it out.
The key challenges this project seeks to address are as follows:
- Real-time detection and cancellation of floor noise: Floor noise causes significant stress and discomfort. This task involves detecting noise generated between floors in real-time and creating and emitting signals to cancel it out. By doing so, we aim to minimize the impact of floor noise on daily life and reduce conflicts caused by noise.
- Real-time detection and cancellation of external noise: External noise, such as road noise, car horns, and construction noise, affects the indoor environment, induces stress, and lowers the quality of sleep. By detecting external noise in real-time and generating and emitting signals to cancel it, we can contribute to improving the quality of life.
- Real-time detection and cancellation of noise from household appliances: Noise from household appliances such as refrigerators and air conditioners is particularly noticeable in small spaces, especially at night, and can degrade sleep quality and cause insomnia. By detecting and canceling this noise, we aim to minimize the impact of appliance noise on sleep.
- Open source platform to use : ACME
- Communication Protocol: MQTT
- Noise Detection Sensor(Audio-Technica PRO 44): Detects real-time noise data.It features a small and flat design that makes it suitable for surface attachment, offers high sensitivity with minimal noise, and is capable of streaming output in Python.
- Noise Emission Actuator (Speaker, Audioengine A2+): Outputs anti-phase signals to cancel the noise. It comes with a built-in DAC (Digital-to-Analog Converter), allowing Python-generated digital signals to be converted and output as analog signals. Its compact size helps save installation space.
- Development Language: Python
The noise cancellation system leverages various oneM2M features to ensure interoperability, scalability, and efficiency in the IoT-based noise measurement and cancellation process. Below is a description of the oneM2M functions utilized:
- Registration: Entities used in the noise cancellation system are registered with the gateway and cloud service platform using the registration function.
- Data Management & Repository: To manage the status of noise detection sensors and noise-canceling speakers, container resources, contentInstance resources, and subscription resources are employed.
- Group: To simultaneously turn the noise detection sensors and noise-canceling speakers on or off, each resource is grouped together. For instance, when the user leaves home, such as during a trip, the sensors and speakers can be efficiently deactivated as a group.
- Access Control Policy: An access control policy is created and granted to the adn-ae so that the smartphone application can access the containers of the noise detection sensors and noise-canceling speakers. This ensures the smartphone application has the necessary permissions to retrieve information from each container.
- Discovery & Retrieval: The discovery and retrieve functions are used to allow users to monitor and adjust the system's current state via a smartphone application. These functions enable users to check the latest status of system sensors and speakers.
- Subscription & Notification: The subscription feature of oneM2M is used to notify each entity container about values adjusted through the user's smartphone application. Additionally, each container synchronizes its state in real-time through the subscription and notification mechanism, promptly reflecting significant changes in system operation. For example, when the time period defined in the schedule container is updated, this change is communicated to the executionState container via a notification. The notification is then forwarded to the DeviceStatus container in the MN-CSE, automatically adjusting the system's operational state. This subscription-based structure ensures the system's flexibility and real-time responsiveness, effectively handling various changes in operational states.
4.1 during the initial design phase, the following key features were planned:
- Noise Cancellation Feature : A core functionality designed to effectively eliminate surrounding noise, providing a noise-free indoor environment.
- Adjustable Noise Cancellation Intensity : This feature was designed to allow users to adjust the intensity of noise cancellation, enabling flexible application across various environments.
- Noise Data Learning and Algorithm Optimization : A learning-based approach was proposed to collect and analyze noise data, enabling continuous upgrades and optimization of the noise cancellation algorithm.
- Scheduled Noise Cancellation : A scheduling feature to automatically activate noise cancellation at specific times, enhancing user convenience.
4.2 the following key features have been successfully implemented:
- Noise Cancellation Feature : An algorithm that removes noise within specific frequency bands from the input signal has been implemented. This ensures basic noise cancellation functionality and operates as a stable core feature of the system.
- Scheduled Noise Cancellation : A scheduling feature was developed, enabling the noise cancellation function to activate automatically based on user-defined time settings. This provides automation tailored to the user's environment.
- Noise Average Data Storage: The noise sensor periodically pushes average noise data to the gateway, and the cloud retrieves and stores this data. This can be utilized later for various services, such as algorithm optimization or recommending noise-canceling times based on noise levels at different times.
The current implementation focuses on the primary functionalities planned during the initial design phase, emphasizing system stability and fundamental performance. The noise cancellation feature and scheduled noise cancellation activation have been successfully developed, enabling a practical and seamless user experience.
The remaining features, such as adjustable noise cancellation intensity and noise data learning with algorithm optimization, are planned for future development to further enhance the system. Once integrated, these features will enable the noise cancellation system to evolve into a more flexible and intelligent solution, capable of adapting effectively to a variety of environments.
5. Start IoT Flatform5.1 Run ADN-AE
- ADN-AE-1(Noise Detection Sensor):
cd entity/ADN-AE-1
python3 sensor.py
- Noise Emission Actuator: The noise is detected through the user's laptop microphone.
- ADN-AE-2(Noise Cancellation Speaker):
cd entity/ADN-AE-2
python3 speaker.py
- Noise Anti-phase Output Actuator: Outputs anti-phase signals
5.2 Run MN-AE
cd MN-AE
python3 processor.py
- Generates anti-phase data using a Fourier Transform library.
- Operates based on resources registered in the CSE.
5.3Run MN-CSE
Python 3.10 or higher is required.
pip install -r requirements.txt
pip install acmecse
Run acmecse using acme.ini in MN-CSE folder.
cd entity/MN-CSE
acmecse --config=acme.ini
Run synchronizer.py.
python3 synchronizer.py
You can use the MN-CSE.postman_collection in the folder to set up the resources.
5.4 Run IN-CSE
Python 3.10 or higher is required.
pip install -r requirements.txt
pip install acmecse
Run acmecse using acme.ini in IN-CSE folder.
cd entity/IN-CSE
acmecse --config=acme.ini
Run scheduler.py.
python3 scheduler.py
This allows the user to start and stop noise canceling at a user-specified interval.
You can use the IN-CSE.postman_collection in the folder to set up the resources.
5.5 IN-AE request to Start DEMO
If you want to run demo, run the curl command below.
curl -X POST http://<server-url>/cse-in/NoiseCancellationSystem/Schedule \
-H "Content-Type: application/json;ty=4" \
-H "X-M2M-Origin: CAdmin" \
-H "X-M2M-RVI: 3" \
-H "X-M2M-RI: sc9t989846" \
-d '{
"m2m:cin": {
"cnf": "text/plain:0",
"rn": "2024-12-06-01",
"con": "03:41-03:42" // request time
}
}'
It is a request to create a new container instance under the Schedule resource of the NoiseCancellationSystem.
5.6 Noise detection and cancellation result graph interpretation
You can confirm that a change occurs in the graph when the user-defined time is reached.
The first graph represents the input signal. Initially, the input signal contains the original signal with noise.
The second graph shows the output signal, which is the signal obtained after applying the noise-canceling technique. For the second graph, since it represents the result of removing noise from the input signal, it has values closer to 0 dB compared to the original input signal but should maintain a similar shape to the original signal.
Looking at the third graph, during the On state, the difference signal appears as a straight line. This indicates that noise cancelation was performed uniformly and effectively. By roughly analyzing the Y-axis of the graph, the difference signal seems to stay around -20 dB consistently, which implies that the cancelation process remained stable.
This result suggests that noise cancelation was performed uniformly and appropriately in line with the user-defined time, and it also confirms that the phases of the input and output signals are similar.
6. Demo Video
Comments