前言

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

硬件准备(我的)

HC-05蓝牙

树莓派3b+

Arduino UNO

Arduino连接蓝牙

image.png

注意:

1.蓝牙的TX连接arduino的RX,RX连接TX

树莓派蓝牙准备

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

image.png

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

[bluetooth]# scan on

Discovery started

image.png

复制红色方格中的id

4.配对蓝牙

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

image.png

输入PIN码(默认是1234)

最后会显示配对成功

5.连接蓝牙

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

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

image.png

image.png

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

6.生成rfcomm0文件

//首先我们退出蓝牙控制

exit

//生成rfcomm0文件

sudo rfcomm bind 0 xx:xx:xx:xx(你的蓝牙ip)

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

image.png

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

以上我们在硬件方面的准备就完成了,下面是代码

树莓派向Arduino发送数据

树莓派要使用python文件,我们可以打开编程,然后编写一段python代码好,然后编译什么的自己可以去查(也可以直接打开这份文件)

image.png

树莓派代码

#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了而不是string

sleep(.8) #防止串口阻塞

Arduino代码

void setup() {

Serial.begin(9600);

}

void loop() {

char a;

if(Serial.available()){

a=Serial.read();

Serial.println(a);

}

delay(800);

}

效果

image.png

树莓派接受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);

}

效果

image.png

小技巧:

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

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

  1. arduino服务器_如何使用Arduino检查Web服务器的响应状态

    arduino服务器 by Harshita Arora 通过Harshita Arora 如何使用Arduino检查Web服务器的响应状态 (How to use Arduino to check ...

  2. arduino nano 蓝牙_贸泽开售结合蓝牙5.2与USB 2.0的 Nordic Semiconductor nRF52820多协议SoC...

    专注于引入新品并提供海量库存的电子元器件分销商贸泽电子 (Mouser Electronics) 即日起开售Nordic Semiconductor的nRF52820多协议片上系统 (SoC).此款S ...

  3. arduino绘图_如何使用Arduino构建绘图仪

    arduino绘图 回到学校后,在科学系的一个壁橱里藏着一台HP绘图仪. 我玩了一段时间,一直想拥有自己的一个. 快进很多年. 步进电机很容易买到,我又开始使用电子设备和微控制器做事,最近我看到有人用 ...

  4. arduino液位传感器_如何使用Arduino + VL53L0X来制作液位感应设备

    在本篇文章中,您将学习到如何使用Arduino开发板.OLED显示屏和VL53L0X传感器模块制作非接触式液位感应设备.该感应器设备能够检测任何种类的容器中的液位! 液位测量的不同方法 大多数时候,工 ...

  5. arduino 电压表_如何使用Arduino制作数字电压表

    arduino 电压表 by Harshita Arora 通过Harshita Arora 如何使用Arduino制作数字电压表 (How to make a digital voltmeter u ...

  6. visual 对话框之间调用_两套S71200之间实现S7通讯的方法

    S7-1200 的 PROFINET 通信口可以做 S7 通信的服务器端或客户端(CPU V2.0及以上版本).S7-1200 仅支持 S7 单边通信,仅需在客户端单边组态连接和编程,而服务器端只准备 ...

  7. mtu蓝牙_一分钟读懂低功耗蓝牙(BLE)MTU交换数据包

    一分钟读懂低功耗蓝牙连接数据 包 " ) 做个对比就可以知道 BLE MTU 比较小(不过新的 BLE 标准 MTU 已经大幅提升,详见 即将发表在 VIEWTOOL BBS 上的后续文章) ...

  8. 树莓和Arduino之间的蓝牙通讯

    前言 原来是打算用nrf24来做树莓派和arduino的通讯,因为nrf24传的数据量有点小,现在改为用蓝牙来通讯 硬件准备(我的) HC-05蓝牙 树莓派3b+ Arduino UNO Arduin ...

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

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

  10. arduino nano 蓝牙_用Arduino玩转掌控板(ESP32):ESP32概述与Arduino软件准备

    前言 近年来,掌控板(英文名:mPython)在创客教育中应用越来越广泛.掌控板集成了 ESP32 高性能双核芯片,具备 WiFi 和蓝牙连接功能,同时在板子上又配置了丰富的传感器,最重要的是它是专门 ...

最新文章

  1. 《JavaScript面向对象精要》读书笔记
  2. CV:基于Keras利用CNN主流架构之mini_XCEPTION训练性别分类模型hdf5并保存到指定文件夹下
  3. java的数据类型如下所示
  4. java8 迭代set集合_JavaSE(八)集合之Set
  5. 单片机中存储器扩展位地址线怎么算_51单片机CPU结构各部件的原理详细分析
  6. 用于存储过程的ASP.NET Core Blazor和EF Core原始SQL查询
  7. 大数据 (016)Hadoop-MR编程 -- 【使用hadoop计算微博用户可能喜欢的关键词----编程】
  8. Juniper Junos与思科IOS对比配置逻辑合理性
  9. 初学者用什么数位板好,手绘板选择注意什么?
  10. python画球matplotlib_python – matplotlib中的球面坐标图
  11. 为什么文本框里的字只显示一半_word字体显示不全及显示一半怎么回事?
  12. Python3.7在 Geany下编译出现SyntaxError: Non-UTF-8 code starting with '\xb3'错误及实例化方法时提示没有实参的解决方法。
  13. 数学与泛型编程(6)编程的基本概念
  14. [跨境工具通]SHOPIFY有哪些好用的流量推广工具?10款免费工具了解一下~
  15. win8安装sql server2005方法
  16. (301,302,304,404,500)等HTTP状态码含义
  17. Unity3D - 【Terrain】树木与草地
  18. 示例:WPF开发的步骤进度控件
  19. Opportunity
  20. Navbar:导航栏的位置

热门文章

  1. 13.PHP核心技术与最佳实践 --- Hash 算法与数据库实现
  2. 3.GitLab 用户管理
  3. 19.go fix 和 go tool fix
  4. 4.ES 相关插件安装
  5. 36. LatencyTOP
  6. 20.变量及数据类型
  7. 14.http 304优化,了解客户端缓存
  8. SqlParameter类——带参数的SQL语句
  9. VUE中使用lib-flexible和 px2rem-loader
  10. IDEA导入eclipse项目并部署到tomcat