前言

原来是打算用nrf24来做树莓派和arduino的通讯,因为nrf24传的数据量有点小,现在改为用蓝牙来通讯

硬件准备(我的)

  • HC-05蓝牙
  • 树莓派3b+
  • Arduino UNO

Arduino连接蓝牙

参考:https://jingyan.baidu.com/article/86f4a73ebd829437d652690d.html

注意:
1.蓝牙的TX连接arduino的RX,RX连接TX

树莓派蓝牙准备

因为我的是3b+版本,所以可以直接从桌面来配对蓝牙,但是这里还是用终端来操作蓝牙吧
(树莓派自带有蓝牙)
参考:
https://blog.csdn.net/faust_cao/article/details/72872079
https://www.cnblogs.com/rayray/p/3157601.html

1.升级安装一下蓝牙的库

$sudo apt-get update
$sudo apt-get install bluetooth  bluez  python-bluez

2.打开蓝牙控制

$ bluetoothctl
[bluetooth]# agent on
Agent registered
[bluetooth]# default-agent
Default agent request successful

3.扫描蓝牙设备,找到HC-05的蓝牙id

[bluetooth]# scan on
Discovery started

复制红色方格中的id

4.配对蓝牙

[bluetooth]# pair xx:xx:xx:xx

输入PIN码(默认是1234)
最后会显示配对成功

5.连接蓝牙
我尝试用connect命令去连接蓝牙,但是会报错

$sudo rfcomm connect 0 00:14:01:10:10:32


这个地方蓝牙的连接是暂时不要着急的,可以先不连接,等到树莓派要向蓝牙发送信息或者蓝牙发信息过来给树莓派的时候系统就会自动连上

6.生成rfcomm0文件

//首先我们退出蓝牙控制
exit
//生成rfcomm0文件
sudo rfcomm bind 0 xx:xx:xx:xx(你的蓝牙ip)

然后你会发现在/dev目录下生成了一个新的文件

注意,这一步每次重启都要输入一次命令,因为重启之后那份文件自动被删除了

以上我们在硬件方面的准备就完成了,下面是代码
###树莓派向Arduino发送数据
树莓派要使用python文件,我们可以打开编程,然后编写一段python代码好,然后编译什么的自己可以去查(也可以直接打开这份文件)

树莓派代码

#coding=utf-8
import serial
from time import sleep
port='/dev/rfcomm0'
ser=serial.Serial(port,9600)while(1):    ser.write(bytes("A",'utf-8')) #serial只能传bytes了而不是stringsleep(.8) #防止串口阻塞

Arduino代码


void setup() {Serial.begin(9600);}void loop() {char a;if(Serial.available()){a=Serial.read();Serial.println(a);}delay(800);       }

效果

树莓派接受Arduino数据

树莓派代码

#coding=utf-8
import serial
from time import sleep
port='/dev/rfcomm0'
ser=serial.Serial(port,9600)
ser.flushInput() #初始清空一下串口
while(1):    n = ser.inWaiting() #自己去查查if(n):a=ser.read(n)print(a)sleep(.8)

Arduino代码

char a[200];
char b[200];
char c[200];void setup() {Serial.begin(9600);for(int i=0;i<200;i++){a[i]='1';b[i]='2';c[i]='3';}
}void loop() {for(int i=0;i<10;i++){Serial.write(a[i]);}for(int i=0;i<10;i++){Serial.write(b[i]);}for(int i=0;i<10;i++){Serial.write(c[i]);}   delay(800);       }

效果


小技巧:
HC-05连接之后闪烁变慢,未连接时候闪烁的很快

树莓和Arduino之间的蓝牙通讯相关推荐

  1. 树莓派3B+与Arduino Mega 2560蓝牙通讯

    树莓派3B+与Arduino Mega 2560蓝牙通讯 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 树莓派3B+与Arduino Mega 2560蓝牙通讯 前言 一 ...

  2. arduino蓝牙通讯代码_在两块Arduino开发板之间实现蓝牙通信

    HC-05蓝牙模块是任何Arduino项目必不可少的蓝牙模块!很容易进行连接以及在Arduino IDE中编写代码.在大多数项目中,我们通常将HC05连接至Arduino,并使用它与其他智能设备(如手 ...

  3. arduino陀螺仪蓝牙通讯手势小车

    新的改变 目录 手势小车 1 一.学习目标 2 知识目标 2 技能目标 2 二.背景知识 2 三.知识储备 3 ARDUINO NANO 2 ARDUINO UNO 4 面包板 6 智能小车模块 4 ...

  4. arduino蓝牙通讯代码_一种基于Arduino的蓝牙通信系统的制作方法

    本实用新型涉及无线通信技术领域,具体来说,涉及一种基于Arduino的蓝牙通信系统. 背景技术: 随着通信技术的发展,无论是在物联网,还是互联网,传统的有线传输技术已经越来越不能满足企业和个人的需求. ...

  5. microbit编程_使用图形化编程实现主控板与手机蓝牙通讯(2019.3.25)

    本文转自:DFRobot创客社区 原文链接: [Mind+]使用图形化编程实现主控板与手机蓝牙通讯-Mind+论坛-DF创客社区​mc.dfrobot.com.cn 本帖最后由 Forgotten 于 ...

  6. Android BLE(1)---蓝牙通讯学习

    Android BLE蓝牙通讯学习 在app应用的开发过程中,一般和蓝牙接触的不多,但是随着智能穿戴设备的发展,穿戴设备和手机关联的app越来越多,之前也是没怎么接触过这一块的东西,正好最近需要做一个 ...

  7. 安卓端和IOS端小程序蓝牙通讯问题

    关于微信小程序中安卓端和IOS端蓝牙通讯问题 微信小程序所提供的蓝牙通讯接口并不区分安卓端和IOS端,但是由于安卓和IOS之间的底层区别,有时候会导致即使使用同一份代码,但IOS端连接正常而安卓端连接 ...

  8. Arduino智能小车——蓝牙小车

    Arduino智能小车--蓝牙小车 Arduino智能小车系列教程时空门: Arduino智能小车--拼装篇 点击跳转 Arduino智能小车--测试篇 点击跳转 Arduino智能小车--调速篇 点 ...

  9. Arduino ESP32 WIFI 蓝牙模式触控按键切换

    Arduino ESP32 WIFI &蓝牙模式触控按键切换 相关篇<Arduino ESP32自带触摸传感器功能测试> <ESP32电容式触摸传感器引脚实例> ESP ...

最新文章

  1. UITextField详解
  2. 关于actionprovider
  3. 利用深度学习从大脑活动合成语言,应对人类语音挑战
  4. java8的新特性详解-----------Lamda表达式
  5. linux: 空指令(:)
  6. ubuntu播放文件需要MPEG-4 AAC解码器
  7. 2022最新短视频去水印解析API接口支持各大小程序
  8. 《Go语言圣经》阅读笔记:第三章基础数据类型
  9. HTML特效文字代码大全
  10. 小班安全使用计算机教案,幼儿园小班安全教案(精选5篇)
  11. IDEA中修改项目与Moudle名称方法总结
  12. 爱征信,就是爱自己 | 个人征信怎么查?攻略在这里!
  13. Windows 修改MAC地址
  14. java 过滤字符串_java 过滤字符串方法实现
  15. 江苏省版权申请费用明细以及版权申报流程
  16. 【面试 - 八股文】Linux 高频面试题,助你吊打面试官系列
  17. c位边上还有什么位_章泽天聚会站边位,被称太委屈,看清C位的万宝宝后就明白了...
  18. IE出现“XMLHttpRequest: 网络错误 0x80070005, 拒绝访问”的解决方案
  19. 博客大巴,自动登录,并发布信息开发小计。
  20. Schlumberger.PIPESIM.2017.1.932.Win64 1DVD

热门文章

  1. 【300+精选大厂面试题持续分享】大数据运维尖刀面试题专栏(八)
  2. c51语言1秒延时程序,KeilC51程序设计中几种精确延时方法
  3. 基于皮肤分割的磨皮算法
  4. 小程序离屏canvas(createOffscreenCanvas)生成推广海报
  5. 作为一名成熟的云原生布道师,我是这么写作的
  6. 卖罐头(冬季每日一题 32)
  7. C语言-学生学号成绩读入程序(输出了学生总分、平均分、名次以及学生信息的查询)
  8. python3进阶篇(二)——深析函数装饰器
  9. 微服务网关分发请求至子服务的两种方式
  10. single-row subquery returns more than one row