电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>能够获取城市各个区域声级数据的设备开源

能够获取城市各个区域声级数据的设备开源

2023-02-03 | zip | 0.25 MB | 次下载 | 免费

资料介绍

描述

噪声污染也称为环境噪声或声音污染,是对人类或动物生命活动产生有害影响的噪声传播。城市规划不当可能会引起噪声污染,工业和住宅并排的建筑物会导致噪声污染在居民区。住宅区的一些主要噪音源包括嘈杂的音乐、交通噪音、草坪护理维护附近的施工或年轻人的大喊大叫(体育比赛)。获得的 97.60 分贝的平均噪音水平超过了 WHO 允许的住宅区 50 分贝值地区。噪音对健康的影响。噪音对健康的影响是经常暴露在持续升高的声级下的身心健康后果升高的工作场所或环境噪音会导致听力障碍耳鸣、高血压缺血性心脏病烦恼和睡眠障碍。免疫系统的变化和出生缺陷也归因于噪声暴露。因此,作为此解决方案的一个小补救措施,我制作了一个能够获取城市各个区域声级数据的设备。将这些数据与各个部门接受的声级进行比较。考虑医院和公园具有不同的可接受声级。这将已经由有关当局确定,因此当与固定声级相比声级有所增加时。这些部门将由有关团队标记。这是如何工作的,由声音传感器组成的设备会频繁地将数据从扇区发送到IOTA Tangle。该数据由权限通过任何设备访问(应该有 python 平台)

硬件

hardware_gxE4LFrNhJ.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
该装置由......
 
  • Arduino uno 和声音传感器- 来自声音传感器的模拟值由 arduino 获取并转换为分贝值 (dB)。这会连续上传到 Raspberry pi
 
arduino-hookup-sound-detector_oscmtl7uvx_(1)_a0VkTW2Rxb.png?auto=compress%2Cformat&w=740&h=555&fit=max
带有arduino的声音传感器
 
  • Raspberry pi- 来自 arduino uno 的串行数据由 Raspberry 接收,并将此数据上传到 IOTA 的 Tangle。数据每分钟上传一次。
 
tony_meck_story_image_1525107264264336_1fkemcexbm_EI8BUBLYdv.png?auto=compress%2Cformat&w=740&h=555&fit=max
覆盆子与 arduino
 

注意:在这里,您可以使用 ADC MCP3008(模数转换器通过避免使用 arduino uno 来使用树莓派从声音传感器收集模拟数据

软件

  • Python -完整的项目运行在Python的基础上
  • PyOTA库——这是 IOTA 核心的官方 Python 库。如果您已经在计算机中安装了pip在终端输入以下命令安装pyOTA。
pip install pyota
  • PrettyTable-这是用于对数据进行排序并以表格形式打印的 python 库。在终端中输入以下命令来安装 prettytable。
pip install PrettyTable
  • IOTA 地址 -您可以使用 IOTA 钱包生成地址。

 

 
5ed8d0e9-7dbc-4f6f-95e0-d3e30462c142_Pw8FG0RRdz.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
地址
 

对于刚接触 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 的终端上打印表格。从那里我们可以找到违反规定声级并可以标记的扇区。通过这种方式,我们可以减少每个部门的声音污染,并将其引导到一个智慧城市。


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费