树莓派3b+串口/TTL采集噪声传感器PG-760/ZY-C python程序

需要准备的东西
1.树莓派3b+;
2.噪声传感器,我用的是串口/TTL款的,5V供电;

硬件接线

在这里插入图片描述## 实物接线图

在这里插入图片描述

树莓派串口配置

此节参考添加链接描述

1)修改cmdline.txt文件
编辑cmdline.txt文件
$ sudo nano /boot/cmdline.txt
原来cmdline.txt文件的内容如下:
console=serial0,115200 console=tty1 root=PARTUUID=a05c3c8f-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
将有关console的内容全部删掉,修改后的cmdline.txt文件内容如下:
root=PARTUUID=a05c3c8f-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
 
(2)关闭板载蓝牙
禁用蓝牙功能
$ sudo systemctl disable hciuart
编辑config.txt文件
$ sudo nano /boot/config.txt
增加如下一行:
dtoverlay=pi3-disable-bt
 
重启树莓派!!!
(先重启再进行下一步)
 
(3)禁用串口的控制台功能
编辑config.txt文件,增加如下一行:
enable_uart=1

python代码

import time
import serial
import sys
import RPi.GPIO as GPIO
port="/dev/ttyAMA0"
usart=serial.Serial(port,9600,timeout=None)
usart.flushInput()
sendbuf = bytearray.fromhex("02 03 00 00 00 01 84 39")## 标题
while True:
    usart.write(sendbuf)
    recvbuf = bytearray(usart.read(7))
    b1 = int(recvbuf[3])
    b0 = int(recvbuf[4])
    result = (b1<<8) | b0
    print('noise=',(result-200.0)/10.0,'dB')
    time.sleep(.5)
GPIO.cleanup()

运行结果

在这里插入图片描述
实验室环境噪声50左右,喊话后可以到70多分贝。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 答:要写一份树莓派3B 串口收发程序,可以使用C语言,首先需要使用树莓派的wiringPi库,它可以帮助你访问树莓派串口端口,然后使用C的标准输入/输出函数(I/O)来操作串口。最后,你需要根据你的应用程序的要求,编写相应的代码来实现收发数据功能。 ### 回答2: C语言可以使用wiringPi库来实现树莓派3B串口收发程序。以下是一个简单的示例代码: #include <stdio.h> #include <wiringPi.h> #include <wiringSerial.h> int main(void) { int serial; char data; wiringPiSetup(); // 打开串口 serial = serialOpen("/dev/ttyAMA0", 115200); // 设置串口的波特率 serialPrintf(serial, "AT+BAUD4"); // 设置波特率为9600 // 发送数据 serialPrintf(serial, "Hello, Raspberry Pi!"); // 接收数据 data = serialGetchar(serial); // 输出接收到的数据 printf("Received Data: %c", data); // 关闭串口 serialClose(serial); return 0; } 上述代码首先引入了需要的头文件,接着在main函数中进行了一些初始化操作。wiringPiSetup函数用于初始化wiringPi库,serialOpen函数用于打开串口(这里使用的是树莓派的默认串口/dev/ttyAMA0),serialPrintf函数用于向串口发送数据,serialGetchar函数用于从串口接收数据,最后使用serialClose函数关闭串口。 在实际使用中,可以根据需要修改波特率,发送和接收的数据内容等。以上是一个基本的串口收发程序的示例,可以根据具体需求进行修改和扩展。 ### 回答3: 树莓派是一款基于Linux系统的开源电脑板,内置有UART(串口)接口,可以通过编程语言实现串口通信。下面我将使用C语言编写一份树莓派3B串口收发程序。 首先,在C语言中,我们可以使用文件描述符(File Descriptor)来操作串口设备。在Linux系统中,串口设备的文件描述符一般为"/dev/ttyAMA0"。我们可以通过打开文件的方式获取串口设备的文件描述符,并进行相应的配置。 接下来,我们需要定义相应的变量和常量,以及函数来实现串口的收发。例如,我们可以使用变量fd来存储串口设备的文件描述符,在打开文件时,使用open函数并传递文件路径"/dev/ttyAMA0"来打开串口设备,成功时会返回一个非负整数,即为文件描述符;而失败时,会返回-1。 在打开串口设备之后,我们可以使用函数tcgetattr和tcsetattr来设置串口的属性,例如波特率、数据位、停止位、校验位等。通过修改相应的结构体tcgetattr的属性,然后传递给tcsetattr函数,即可实现设置串口属性的功能。 接下来,我们可以使用函数write和read来实现串口的发送和接收。通过write函数,我们可以将数据发送给串口设备,需要传递fd、buffer和size三个参数分别表示文件描述符、数据缓冲区和发送数据大小。而通过read函数,我们可以从串口设备中读取数据,并存储在buffer中,需要传递fd、buffer和size三个参数分别表示文件描述符、数据缓冲区和读取数据的大小。 在实际编程时,我们可以通过连接外部设备到树莓派串口接口,然后在程序中分别调用write和read函数实现串口的发送和接收。通过循环调用这两个函数,我们可以实现持续的串口通信。 最后,在程序结束时,我们需要关闭串口设备,通过调用close函数,并传递文件描述符fd作为参数,即可实现关闭串口设备的功能。 总结起来,我们需要通过文件描述符来打开串口设备、设置串口属性、发送和接收数据,并在程序结束时关闭串口设备。这样,就可以编写一份树莓派3B串口收发程序

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值