树莓派python蓝牙_Fen9Pi-05.树莓派 UNO蓝牙通信

本文是一篇关于如何使用Arduino UNO搭配HC-SR501和MQ-136传感器,通过HC-06蓝牙模块将数据发送到树莓派的教程。树莓派通过Python脚本接收数据并显示。首先,介绍Arduino的硬件接线和代码实现,然后详细阐述树莓派的蓝牙配置及Python代码。整个过程中,读者需要具备基本的电路和编程知识。
摘要由CSDN通过智能技术生成

前言

这是一篇偏向教程的文章,若是实践的话,需要一些电路知识,arduino的基础知识,raspbain

Desktop 的基本使用基础。若有问题欢迎公众号后台留言。

1. 目标

arduino UNO 将 HC-SR501 MQ136 传感器采集的数据

通过蓝牙模块 HC-06 发送,树莓派调用python,使用 蓝牙获取数据并显示。

2. 实现方法

2.1 arduino UNO 接线图之 MQ-136

Ardunio A0 pin     Sensor A0Arduino 5V pin     Sensor VccArduino GND pin    Sensor GND

2.2 arduino UNO 接线图之 HC-SR501

12145241A-0.jpg

2.3 arduino UNO 接线图之 HC-06

VCC

VCCGND GNDTXD D10RXD D11

2.4 arduino 代码实现

#include

SoftwareSerial BT(10, 11);int sensor=A0; //analog in mq-136int

sensorValue = 0; // intial sensor valueint pirPin = 7; //

HC-SR501int pirValue; //inital sensor value// creates a "virtual"

serial port/UART// connect BT module TX to D10// connect BT module

RX to D11// connect BT Vcc to 5V, GND to GNDvoid setup(){// set

digital pin to control as an outputpinMode(13, OUTPUT);// set the

data rate for the SoftwareSerial portBT.begin(9600);// Send test

message to other deviceBT.println("Hello from Arduino");}

char a; // stores incoming character from other devicevoid

loop(){if (BT.available()) // if text arrived in from BT

serial...{a=(BT.read());if (a=='1') // raspberry send "1" ,then UNO

reply datas{//digitalWrite(13, HIGH);//BT.println("LED

on");sensorValue=analogRead(sensor); //read input from

MQ-136pirValue = digitalRead(pirPin); //get value from

HC-SR501delay(1000); // slow down serial

port{BT.print("MQ135:");BT.println(sensorValue,DEC); //print MQ-135

sensorValue BT.print("HC-SR501:");BT.println(pirValue); // print

the HC-SR501}}}}

2.5 树莓派蓝牙配置

树莓派打开桌面,点击 LX终端,输入下面的命令bluetoothctl

进入蓝牙控制命令,依次输入下面的操作

power

ondiscoverable onagent ondefault-agent

查询 HC-06 的命令

scan on

执行上述命令后,会得到 HC-06 的地址,记录后备用

关闭扫描命令

scan off

将下面 xx:xx:xx:xx:xx:xx 替换为刚刚查到的 地址

pair

xx:xx:xx:xx:xx:xx

此处需要输入密码进行配对,配对码 1234

Device xx:xx:xx:xx:xx:xx Connected: yesRequest

PIN code

[agent]

Enter PIN code: 1234 ENTER

密码配对完成后,退出

exit

退出蓝牙控制命令后,输入命令,其中 xx:xx:xx:xx:xx:xx 为 HC-06 的地址sudo

rfcomm --raw connect 0 xx:xx:xx:xx:xx:xx 1

执行成功结果,如下:

Connected /dev/rfcomm0 to xx:xx:xx:xx:xx:xx on channel

1Press CTRL-C for hangup

2.6 树莓派代码实现 python

具体代码如下:import

serialfrom time import sleep

bluetoothSerial = serial.Serial( "/dev/rfcomm0", baudrate=9600

)

sleep(1)while True:print "OK"bluetoothSerial.write("1")print "recv

from arduino : %s " %(bluetoothSerial.readline())sleep(2)

新打开一个 LX终端 ,执行命令sudo

nano recv.py

将上述代码复制粘贴到文件中,退出保存

运行树莓派接收端指令sudo

python recv.py

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值