传感器实验——噪音警报
传感器实验——LCD显示噪声值MR开发板噪声传感器模块1.54寸液晶屏st7789 spi示例程序:LCD显示噪声值MR开发板噪声传感器模块1.54寸液晶屏st7789 spi示例程序:LCD显示噪声值import timefrom pyb import SPI,Pin,UART,delay,LEDfrom ztst7789class import ST7789from utime import
·
传感器实验——噪音警报
MR开发板
接线说明
噪声传感器模块
噪声传感器模块 | 开发板 |
---|---|
TXD | A3 |
RXD | A2 |
5v+ | 5v |
GND | GND |
1.54寸液晶屏st7789 spi
屏幕 | 定义 | 开发板 |
---|---|---|
GND | 电源地 | GND |
VCC | 3.3V | 3.3V |
SCL | SPI时钟线(SCK) | A5 |
SDA | SPI数据线(MOSI) | A7 |
RES | 显示屏复位管脚 | C4 |
DC | SPI数据/命令选择角 | C5 |
CS | SPI数据片选,低电平有效 | B11 |
JQ8900-16P 语音模块
语音模块JQ8900 | 开发板 |
---|---|
busy | A4 |
IO3 | A0 |
5v | 5v |
GND | GND |
喇叭红线 | spk+ |
喇叭黑线 | spk- |
示例程序:噪音警报
# 噪声模块+语音播报+屏
#
#
import time
from pyb import SPI,Pin,UART,delay,LED
from ztst7789class import ST7789
from utime import sleep_us
import tt32
#---------TFT屏 pin 定义
TFT_RST_PIN = Pin('C4')
TFT_LED_PIN = Pin('B10')
TFT_DC_PIN = Pin('C5')
TFT_CS_PIN = Pin('B11')
TFT_CLK_PIN = Pin('A5')
TFT_MISO_PIN = Pin('A6')
TFT_MOSI_PIN = Pin('A7')
busy = Pin('A4',Pin.IN)
#busy.value(0)
do= Pin('A0',Pin.OUT_PP)
#do(1)
bl = Pin(TFT_LED_PIN, Pin.OUT)
LCD = None
u2 = UART(2, baudrate=9600)
barray = bytearray([0x01,0x03,0x00,0x00,0x00, 0x01 ,0x84 ,0x0A]) #问询帧
def lcdinit(): #初始化函数
global LCD
bl.value(1) #屏幕背光打开
spi = SPI(1,SPI.MASTER,baudrate=7800000,polarity=0,phase=0)
LCD = ST7789(spi, cs=Pin(TFT_CS_PIN), dc=Pin(TFT_DC_PIN), rst=TFT_RST_PIN)
lcdinit() #初始化
def color565(r, g, b): #255 255 255
return (r & 0xf8) << 8 | (g & 0xfc) << 3 | b >> 3
LCD.erase()
while True:
LCD.set_font(tt32)
do.value(1)
u2.write(barray)
delay(1000)
if(u2.any()):
u2by=u2.read() # 返回的是答应帧的内容
aa=u2by
fenbei=int.from_bytes(aa[3:5],'big') #高位在前 转换
fenbei=fenbei/10 # 转换成10进制
print("dB",fenbei) # 工具看的 可以注销
LCD.chars(str(fenbei)+" dB ",70,100)
if fenbei > 65: #噪音大于65触发语音播报(触发值可以改,请根据实际情况修改)
LED(1).on()
do(1)
delay(100)
do(0)
delay(300)
while busy.value()==1:
delay(200)
do(1)
fenbei=0
delay(500)
else:
LED(1).off()
效果
当噪声值大于50,亮红灯,且播放语音
当噪声值小于50,红灯不亮,不播放语音
更多推荐
所有评论(0)