資料介紹
描述
噪聲污染也稱為環境噪聲或聲音污染,是對人類或動物生命活動產生有害影響的噪聲傳播。城市規劃不當可能會引起噪聲污染,工業和住宅并排的建筑物會導致噪聲污染在居民區。住宅區的一些主要噪音源包括嘈雜的音樂、交通噪音、草坪護理維護、附近的施工或年輕人的大喊大叫(體育比賽)。獲得的 97.60 分貝的平均噪音水平超過了 WHO 允許的住宅區 50 分貝值地區。噪音對健康的影響。噪音對健康的影響是經常暴露在持續升高的聲級下的身心健康后果。升高的工作場所或環境噪音會導致聽力障礙、耳鳴、高血壓、缺血性心臟病、煩惱和睡眠障礙。免疫系統的變化和出生缺陷也歸因于噪聲暴露。因此,作為此解決方案的一個小補救措施,我制作了一個能夠獲取城市各個區域聲級數據的設備。將這些數據與各個部門接受的聲級進行比較。考慮醫院和公園具有不同的可接受聲級。這將已經由有關當局確定,因此當與固定聲級相比聲級有所增加時。這些部門將由有關團隊標記。這是如何工作的,由聲音傳感器組成的設備會頻繁地將數據從扇區發送到IOTA Tangle。該數據由權限通過任何設備訪問(應該有 python 平臺)
硬件
- Raspberry pi- 來自 arduino uno 的串行數據由 Raspberry 接收,并將此數據上傳到 IOTA 的 Tangle。數據每分鐘上傳一次。
注意:在這里,您可以使用 ADC MCP3008(模數轉換器)通過避免使用 arduino uno 來使用樹莓派從聲音傳感器收集模擬數據
軟件
- Python -完整的項目運行在Python的基礎上
- PyOTA庫——這是 IOTA 核心的官方 Python 庫。如果您已經在計算機中安裝了pip。在終端輸入以下命令安裝pyOTA。
pip install pyota
- PrettyTable-這是用于對數據進行排序并以表格形式打印的 python 庫。在終端中輸入以下命令來安裝 prettytable。
pip install PrettyTable
- IOTA 地址 -您可以使用 IOTA 錢包生成地址。
?
對于剛接觸 IOTA 的人來說,地址系統一開始可能看起來很混亂。為了消除混淆,以下鏈接將涵蓋您需要了解的有關 IOTA 地址的所有專業知識。
- 代碼——我們有三段代碼。第一個是arduino代碼。(read.ino)
int soundSensor=A0;
int dB;
void setup() {
pinMode(soundSensor,INPUT);
Serial.begin(9600);
}
void loop() {
int Data=analogRead(soundSensor);
Serial.println(Data);
dB = (Data+83.2073) / 11.003;//decibal value
Serial.println(dB);
Serial.write(dB);//Send data to the raspberry pi 3
delay(100);
}
第二個是從 arduino 到 pi 的數據的代碼,它正在上傳到 tangle。(Upload.py)
from datetime import datetime
import schedule
import time
# Import GPIO library
import RPi.GPIO as GPIO
import serial
#Setup sensor as input
# Import the PyOTA library
import iota
# Import json
import json
# Define IOTA address where all transactions (cleaning records) are stored, replace with your own address.
# IOTA addresses can be created with the IOTA Wallet
CleaningLogAddr = b"XXXXXXXXXHKBWTCGKXTJGWHXEYJONN9MZZQUQLSZCLHFAWUWKHZCICTHISXBBAKGFQENMWMBOVWJTCMEWXKQDTJCV9"
# Create IOTA object, specify full node to be used when sending transactions.
# Notice that not all nodes in the field.deviota.com cluster has enabled attaching transactions to the tangle
# In this case you will get an error, you can try again later or change to a different full node.
api = iota.Iota("https://nodes.thetangle.org:443")
# Define static variable
city = "Smart District"
sector=0
def datapost():
FB = api.send_transfer(depth=3, transfers=[pta], min_weight_magnitude=14)['bundle']
print("success")
schedule.every(1).minutes.do(datapost)
# Main loop,
try:
while True:
ser = serial.Serial("/dev/ttyUSB0", 9600)#communication with pi,should also check the port
status=ser.read()
st=str(status)
# Create json data to be uploaded to the tangle
data1 = {'city': city, 'sector':sector,'Status': st}
# Define new IOTA transaction
pta = iota.ProposedTransaction(address = iota.Address(CleaningLogAddr),
message = iota.TryteString.from_unicode(json.dumps(data1)),
tag = iota.Tag(b'SMARTDISTRICT'),
value = 0)
schedule.run_pending()
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
第三個代碼用于將數據從 tangle 中檢索到 authority。(Display.py)
# Imports from the PyOTA library
from iota import Iota
from iota import Address
from iota import Transaction
from iota import TryteString
# Import json library
import json
# Import datetime libary
import datetime
# Import from PrettyTable
from prettytable import PrettyTable
# Define IOTA address where all transactions are stored, replace with your own address.
address = [Address(b'XXXXXXXXXXXXXXCGKXTJGWHXEYJONN9MZZQUQLSZCLHFAWUWKHZCICTHISXBBAKGFQENMWMBOVWJTCMEWXKQDTJCV9')]
# Define full node to be used when retrieving cleaning records
iotaNode = "https://nodes.thetangle.org:443"
# Create an IOTA object
api = Iota(iotaNode)
# Create PrettyTable object
x = PrettyTable()
# Specify column headers for the table
x.field_names = [ "city", "sector","Status"]
# Find all transacions for selected IOTA address
result = api.find_transactions(addresses=address)
# Create a list of transaction hashes
myhashes = result['hashes']
# Print wait message
print("Please wait while retrieving sound records from the tangle...")
# Loop trough all transaction hashes
for txn_hash in myhashes:
# Convert to bytes
txn_hash_as_bytes = bytes(txn_hash)
# Get the raw transaction data (trytes) of transaction
gt_result = api.get_trytes([txn_hash_as_bytes])
# Convert to string
trytes = str(gt_result['trytes'][0])
# Get transaction object
txn = Transaction.from_tryte_string(trytes)
# Get transaction timestamp
timestamp = txn.timestamp
# Convert timestamp to datetime
clean_time = datetime.datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')
# Get transaction message as string
txn_data = str(txn.signature_message_fragment.decode())
# Convert to json
json_data = json.loads(txn_data)
# Check if json data has the expected json tag's
if all(key in json.dumps(json_data) for key in ["city","sector","Status"]):
# Add table row with json values
x.add_row([json_data['city'], json_data['sector'], json_data['Status'], clean_time])
# Sort table by cleaned datetime
x.sortby = "status"
# Print table to terminal
print(x)
此代碼將在 pi 的終端上打印表格。從那里我們可以找到違反規定聲級并可以標記的扇區。通過這種方式,我們可以減少每個部門的聲音污染,并將其引導到一個智慧城市。
- 帶LCD的聲音傳感器激活LED用于顯示聲級數據
- Access二級數據庫程序設計
- 爬蟲是如何實現數據的獲取爬蟲程序如何實現 10次下載
- 如何設計一個網絡爬蟲程序進行智慧城市研究的獲取與分析 9次下載
- 基于WiFi設備的區域人員密度檢測概率研究 1次下載
- 變電站的噪聲衡量與聲級計的原理介紹與分析 6次下載
- 基于STM32的智能聲級計的設計 90次下載
- 基于隔離電路的并口設備數據獲取系統設計 0次下載
- 聲級計的設計與制造
- 聲級測量概述
- AWA5633A型聲級計使用說明書
- 聲級計的工作原理
- 聲級計的使用與維修
- 電力變壓器聲級測定
- 深入ADO.NET開發高級數據訪問技術 0次下載
- 聲級校準器怎么用 聲級校準器發出多大的恒定聲壓 2559次閱讀
- 獲取Linux內核源碼的方法 695次閱讀
- SDCardUtils封裝類應用:設備信息獲取實現方法 799次閱讀
- 一個純Python編寫的輕量級數據庫 856次閱讀
- 前沿開源技術領域的開源大數據一一解讀 1180次閱讀
- TinyDB輕量級數據庫有哪些特點呢 1505次閱讀
- 詳談一些主流開源數據庫及工具 2579次閱讀
- 干貨:計算fibnacci 級數的幾種方法 2451次閱讀
- dfrobot模擬聲級計/分貝計/噪音計簡介 2373次閱讀
- mmap系統調用和vmalloc獲取地址空間 4381次閱讀
- 從發布過程以及使用權限的角度入手,對各個常見開源協議進行解析 788次閱讀
- 聲級計的校準方法_為什么使用聲級計之前要校準? 2.8w次閱讀
- 聲級計的結構和原理_聲級計的工作原理詳解 2.3w次閱讀
- 聲級計怎么使用_聲級計的使用方法_聲級計使用注意事項 4w次閱讀
- lwip獲取ip地址說明 1.2w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多