树莓派python蓝牙_Fen9Pi-05.树莓派 UNO蓝牙通信
前言
這是一篇偏向教程的文章,若是實(shí)踐的話,需要一些電路知識,arduino的基礎(chǔ)知識,raspbain
Desktop 的基本使用基礎(chǔ)。若有問題歡迎公眾號后臺留言。
1.?目標(biāo)
arduino UNO 將 HC-SR501 MQ136 傳感器采集的數(shù)據(jù)
通過藍(lán)牙模塊 HC-06 發(fā)送,樹莓派調(diào)用python,使用 藍(lán)牙獲取數(shù)據(jù)并顯示。
2.?實(shí)現(xiàn)方法
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
2.3?arduino UNO 接線圖之 HC-06
VCC
VCCGND GNDTXD D10RXD D11
2.4 arduino 代碼實(shí)現(xiàn)
#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 樹莓派藍(lán)牙配置
樹莓派打開桌面,點(diǎn)擊 LX終端,輸入下面的命令bluetoothctl
進(jìn)入藍(lán)牙控制命令,依次輸入下面的操作
power
ondiscoverable?onagent?ondefault-agent
查詢 HC-06 的命令
scan on
執(zhí)行上述命令后,會得到 HC-06 的地址,記錄后備用
關(guān)閉掃描命令
scan off
將下面 xx:xx:xx:xx:xx:xx 替換為剛剛查到的 地址
pair
xx:xx:xx:xx:xx:xx
此處需要輸入密碼進(jìn)行配對,配對碼 1234
Device?xx:xx:xx:xx:xx:xx?Connected:?yesRequest
PIN code
[agent]
Enter PIN code: 1234 ENTER
密碼配對完成后,退出
exit
退出藍(lán)牙控制命令后,輸入命令,其中 xx:xx:xx:xx:xx:xx 為 HC-06 的地址sudo
rfcomm --raw connect 0 xx:xx:xx:xx:xx:xx 1
執(zhí)行成功結(jié)果,如下:
Connected /dev/rfcomm0 to xx:xx:xx:xx:xx:xx on channel
1Press?CTRL-C?for?hangup
2.6 樹莓派代碼實(shí)現(xiàn) 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終端?,執(zhí)行命令sudo
nano recv.py
將上述代碼復(fù)制粘貼到文件中,退出保存
運(yùn)行樹莓派接收端指令sudo
python?recv.py
--end--
聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過郵件及時和我們聯(lián)系刪除:freemanzk@qq.com
總結(jié)
以上是生活随笔為你收集整理的树莓派python蓝牙_Fen9Pi-05.树莓派 UNO蓝牙通信的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python模块matplotlib.p
- 下一篇: ole db 访问接口 sqlncli