Noise pollution to a huge extent is neglected despite its short and long-term ramifications on human health. The various permissible noise limits in residential, commercial, and industrial areas should be strictly followed in accordance with the governing law and WHO guidelines to reduce the effects of noise pollution on human health. Honking by commuters near traffic junctions is one of the main sources of noise and the effect of increased automobile use in recent years especially in various metropolitan cities has resulted in increased noise levels in urban areas.
1.2 SolutionThe solution focuses on traffic junctions throughout the city and plans to deploy a noise monitoring node at every junction. As a part of the solution to this project, we have implemented a "Punishing Signal" to create awareness about noise pollution among commuters. The implementation includes a noise pollution monitoring node that reads the noise levels at a given traffic junction and also the prototype of a traffic light controller which controls the flow of traffic at a junction. The idea is to discourage commuters from honking unnecessarily at a traffic light.
1.3 Proposed System - How it worksWe aim to propose a low-cost, reliable, compact, and real-time OM2M and IoT noise pollution monitoring system at high-density traffic junctions and develop a mechanism to discourage people from honking.
We use the ESP8266 microcontroller interfaced with the DF Robot Analog Sound Level Meter sensor whose output is in Decibels with 'A' weighting (dB(A)) with the same weighting closest to how humans perceive sound. The Traffic Signal Controller code to implement the Punishing Signal runs on Arduino IDE.
The traffic signal prototype is programmed to stay RED for 20 seconds, YELLOW for 3 seconds, and GREEN for 30 seconds. The countdown timer for each state is shown on an OLED screen. When the noise level above a specified threshold is sensed more than 3 times when the traffic signal is in RED state then 10 seconds is added to the red signal countdown timer.
The noise data, signal status, and countdown timer are all sent to the OM2M Eclipse server, and using OM2M functionality the data is subscribed to a Django server. The data from the Django server is created into a database in PostgreSQL. The database is then used to create a Grafana dashboard for analytics.
2. Prerequisites- Arduino IDE 1.8.5 or later(To compile and upload code on sensor nodes)
- JAVA 1.8 (To run the OneM2m platform)
- Eclipse OM2M v1.4.1 (implementation of the standard used in the project)
- NodeJS v14
- Postman
- Grafana v9.2 or later
Connect the DFRobot Analog Sound sensor, OLED, and the respective LEDs to the NodeMCU board using the following components:
- Breadboard
- NodeMCU board
- DFRobot Analog Sound Level Meter
- OLED
- Red, Green, and Yellow LEDs.
- 220 ohmic resistors per LED.
You can view the flowchart in detail here: shorturl.at/AQSX8
3.3 WorkingImposing the RED signal is done when the noise levels exceed the threshold more than 3 times. This is done by initiating a counter and is based on the frequency of noise levels in dB(A) above the threshold. If it exceeds the threshold count again during the imposition of the RED signal, an additional 10 seconds are added to the wait time.
The Traffic Signal is demonstrated by using 3 LEDs which glow corresponding to their interval. Considering an intersection with the main road and a side road crossing the main road the time interval taken for the signal is 20 seconds and the GREEN signal is 30 seconds for the main road and 30 seconds for RED and 20 seconds for GREEN for the side road. Yellow LED will glow on each transition between GREEN to RED for 3 seconds. The countdown timer for each state is shown on an OLED screen. When the noise level above a specified threshold is sensed more than 3 times when the traffic signal is in RED state then 10 seconds is added to the red signal countdown timer as a punishment for excessive and unnecessary honking. If the commuters still honk even after 10 second punishment has been added and the noise levels cross the threshold more than 3 times again another 10 seconds is added to count down the timer as a punishment the second time. We have limited the number of punishments to 3 times. After the maximum number of punishments, the traffic light will go back to green and it will work as the regular traffic light controller.
4. Actuators - Display MessageA message is generated to be flashed and displayed at the junction during the imposed AMBER signal time. The counter of the Signal states is also displayed clearly to the passengers. We are using an OLED connected to ESP8266 during the same interval. This puts into perspective the overall noise pollution and awareness to the general public of all the signals at the respective junction.
The threshold value can be changed according to the time of day and the recommended dB values following WHO guidelines. The Traffic Signal prototype can also be extended to 3- way T or Y junctions and even 4-way junctions respectively.
OneM2M can also be used to push data from various sensors data from across the city and store it in one place.
We intend to have different Data containers in the OM2M resource tree monitor various deployable noise pollution monitoring systems across the city.
link to the CPCB guidelines:
http://www.cpcbenvis.nic.in/noise_pollution_main.html#
6. OneM2M implementation6.1 Configure the IoT platform
The IoT platform for the Eclipse server will listen on port 8080. In this case, we have changed the port to 8453 by changing the configuration by editing the file: "config” file.
Activate the OM2M server. Opened the browser to access the OM2M IoT platform web interface: http://127.0.0.1:8453/webpage
6.2 OM2M Resource Tree
Using Postman, the resource tree is created by POST requests, and the Application Entity - AE Sisphyus is shown below.
6.3 Pushing Data to OM2M Eclipse server
We can see the content instances under the "Data" container updating the OM2M server. The attributes on the right also show the data sent from the Node MCU microcontroller Arduino IDE code. We are sending the data that can be seen in the resource-specific attributes.
- node_id: which is the unique identifier of the data content instance
- dB value of the noise level detected
- Signal status as in GREEN, RED, AMBER
- Time out of the counter of the RED signal
- State indicating if the timer has been extended.
The subscription resource connects to the Django server and keeps track of the status of active subscriptions to the parent resource. A request from the issuer is notified about modifications to the parent resource.
In this case, the Django server is http://127.0.0.1:8000/
The noise levels are detected from the sound sensor - DF Robot and is read by the Node MCU microcontroller, which implements the traffic light controlling system and uses the actuator OLED to display the warning message. The output from the microcontroller is then pushed to the OM2M server which includes - dB values, the current signal status, timeout of the RED signal and an indication of imposition of the red signal. Using the OM2M subcription functionality we have subscribed the Django server to the data in the "Data" container in the resource tree. The Django server receives the data through the OM2M server and send the data to postgreSQL, where the database is created. This database is then used as a data source for creating a Grafana dashboard to show the visualization and anlytics of data.8. Collecting Data from OM2M Server and Posting To PostgreSQL
The data from the server is pushed to OM2M and using the subscription functionality, the Django server is now subscribed to the OM2M server. Django is an open-source Python framework used for highly functioning web applications, it uses the options method to send data when an HTTP request is sent and gives it in the form of a JSON format. In this case, the server is used to create a database in PostgreSQL.
The following database is created in PostgreSQL.
We’re then going to be using an analytics and visualization application called Grafana to display the information that has been stored in the database.
The Noise Pollution levels and Traffic Signal Controller Dashboard is set up on Grafana. The OM2M server content instances will then be posted to a time-series database in PostgreSQL.
We built our dashboard by creating panels. Each panel is essentially a graphic that uses a query to pull information from the database that is provided as the data source for the dashboard.
We set up a Bar gauge and a histogram graph for dB value metrics from the database table. We also set each trend to display the graph of all the dB values and its ranges along with the time taken for the traffic signal to turn into its respective states.
10. DemonstrationClick on the following links to see the demonstration videos,
Link to Video-1 (Arduino Implementation)
Link to Video-2 (oneM2M Implementation)
Our team:
1. Pranati Tantravahi
2. Alekhya Pathak
3. B. Sreekanth Reddy
4. Hoyasala Devi K
5. Rucha Dhodapkar
Comments