2019-11-10 10:25:16 RiseC 阅读数 49
  • arduino实战

    学习如何在arduino中使用各种传感器,包括人体红外传感器,超声波传感器,舵机控制,温湿度传感器,激光接收传感器等,空气质量传感器,wifi模块等....课程内容会不断的更新增加,只要发现比较有趣的传感器就会做对应的实战视频

    406 人正在学习 去看看 陈贤能

HC-05的接线及使用

单个使用时只需接rx,tx,vcc,gnd四个引脚并将模块的rx与单片机的tx连接(硬串口或软串口),tx与单片机的rx连接(硬串口或软串口)

进入蓝牙的设置模式

在蓝牙模块通电之前按住蓝牙模块上的按键直到通电(慢闪)说明就进入了设置模式接下来就可以通过 以下代码进入AT

进入AT命令模式(设置蓝牙参数)

注意事项

  1. 一定要查看该蓝牙的传输波特率是多少。
  2. 串口的波特率一定要和程序的波特率一致。
  3. 把串口界面调成如下图所示
    在这里插入图片描述

进入AT模式的代码(注意在通电之前让蓝牙模块进入设置模式)

#include <SoftwareSerial.h>

// Pin10为RX,接HC05的TXD
// Pin11为TX,接HC05的RXD
SoftwareSerial BT(10, 11);
char val;

void setup() {
Serial.begin(9600);
Serial.println(“BT is ready!”);
// HC-05用AT命令查一下一般为9600或38400
BT.begin(38400);
}

void loop() {
if (Serial.available()) {
val = Serial.read();
BT.print(val);
}

if (BT.available()) {
val = BT.read();
Serial.print(val);
}

进入AT模式响应

打开arduino的串口监视器把波特率设置为与2,步骤中的波特率一致,输入以下命令,
回复OK说明模块正常工作在AT模式

常用AT命令如下

AT+UART?//查看蓝牙模块的波特率
AT+NAME=名称//设置/查询设备名称
设置/查询—模块角色:
AT+ ROLE?
0——从机(Slave)
1——主机(Master)
2——回环角色(Slave-Loop)
默认值:0

AT+ROLE=0//设置为从机(一般在用手机控制小车的蓝牙设置为从机)

AT+PSWD=配对码//设置
AT+ PSWD?//查询—配对码

AT+UART= //设置波特率
AT+ UART? //查询 串口(波特率)

完整小车蓝牙控制代码

请看资源(可私聊提供技术服务)

2019-01-18 18:04:17 xiang_123_ 阅读数 1963
  • arduino实战

    学习如何在arduino中使用各种传感器,包括人体红外传感器,超声波传感器,舵机控制,温湿度传感器,激光接收传感器等,空气质量传感器,wifi模块等....课程内容会不断的更新增加,只要发现比较有趣的传感器就会做对应的实战视频

    406 人正在学习 去看看 陈贤能

一、蓝牙模块与Arduino
主要分两步,第一步设置蓝牙模块(AT模式),如,设置成从动任何设备可连接,设置名称及密码等;第二步,编写相应的控制程序;
HC05(ZS-040)蓝牙模块与手机连接参考链接参考1

蓝牙模块AT设置相关参考3

蓝牙模块与手机进行通信参考2

以上几个参考链接,即可完成用手机蓝牙与arduino的通信,并控制对应舵机与led灯; (未在ubuntu上运行,待后续。。)

2014-11-20 21:53:00 weixin_33815613 阅读数 53
  • arduino实战

    学习如何在arduino中使用各种传感器,包括人体红外传感器,超声波传感器,舵机控制,温湿度传感器,激光接收传感器等,空气质量传感器,wifi模块等....课程内容会不断的更新增加,只要发现比较有趣的传感器就会做对应的实战视频

    406 人正在学习 去看看 陈贤能

蓝牙参数特点

1.蓝牙核心模块使用HC-06从模块,引出接口包括VCC,GND,TXD,RXD,预留LED状态输出脚,单片机可通过该脚状态判断蓝牙是否已经连接

2.led指示蓝牙连接状态,闪烁表示没有蓝牙连接,常亮表示蓝牙已连接并打开了端口

3.输入电压3.6~6V,未配对时电流约30mA,配对后约10mA,输入电压禁止超过7V!

4.可以直接连接各种单片机(51,AVR,PIC,ARM,MSP430等),5V单片机也可直接连接

5.在未建立蓝牙连接时支持通过AT指令设置波特率、名称、配对密码,设置的参数掉电保存。蓝牙连接以后自动切换到透传模式

6.体积 3.57cm*1.52cm

7.该蓝牙为从机,从机能与各种带蓝牙功能的电脑、蓝牙主机、大部分带蓝牙的手机、Android、PDA、PSP等智能终端配对,从机之间不能配对。

Arduino 与蓝牙模块连接方法

VCC:接Arduino的5V。
GND:接Arduino的GND。

TXD:发送端,一般表示为自己的发送端,接Arduino的RX。
RXD:接收端,一般表示为自己的接收端,接Arduino的TX。
正常通信时候本身的TXD永远接设备的RXD!正常通信时RXD接其他设备的TXD,

接下来就是写程序了。为了测试通讯,PC通过无线连接向arduino发送一个字符't',arduino收到后闪一下灯,并向PC反馈一个字符串"echo"。程序如下:

const int ledpin = 13;

const int pinRx = 0;

const int pinTx = 1; 

void setup()

{

Serial.begin(9600);

pinMode(ledpin, OUTPUT);

}

void loop()

{

int val = Serial.read();

if (val == 't')

{

digitalWrite(ledPin, HIGH);   // set the LED on

delay(500);

digitalWrite(ledpin, LOW);

delay(500);

Serial.println("echo");

}

}

  相对上一个程序,这里面有些新的东西,就是串口对象Serial,这个对象对应于0,1接口的串口设备;当然,其他3个串口也有对应的串口对象,名字分别为Serial1, Serial2, Serial3。编程参考可以看这个链接:http://arduino.cc/en/Reference/Serial。这里使用的对象接口函数很简单,Serial.begin(波特率),用于初始化串口并指定通讯的波特率;Serial.read()是从串口的接收缓冲区中读出一个字符,如果没有,返回-1;Serial.println(字符串)用于输出一个带回车符的字符串。需要提一下的是,arduino的第一个串口和FTDI USB-to-TTL串口芯片相接,也就是说这个串口设备可以通过USB线连接PC。

  程序写完,就可以上传运行了。蓝牙模块背面有2个灯,分别是power和state,通电后power就亮了,state灯却一直闪烁,这是因为蓝牙还没有连接。PC端这时需打开蓝牙管理,然后搜寻新的设备,会找到一个叫linvor的蓝牙设备。打开,这个设备只有一个蓝牙串口。点右键连接,跳出配对密码输入框,输入密码"1234"即可。连接完成后,可以看到蓝牙模块上的state灯长亮了,这表明连接正常,就可以进行通讯了。

  既然是通讯,PC端也要有个基于串口的通讯程序。除了使用arduino开发环境自带的Serial Monitor,自己也可以找一个流行的。咱是懒人,就用开发环境自带的好了,反正应用很简单,这个程序也够用了。点击开发环境最右面Serial Monitor那个图标,就跳出下面这个界面。不过要注意,在TOOL菜单下的COM选择,应该是对应蓝牙串口所用的那个串口编号,而不是USB的,否则,呵呵,就不是蓝牙无线通讯而是USB串口通讯了。

  最后补充一下,蓝牙模块的信息是可以通过AT命令来进行改动的,缺省情况下,蓝牙设备名是"linvor", 通讯波特率为9600,配对密码为"1234"。具体说明如下:

  通过串口与电脑连接,再通过串口调试助手给模块发送命令可以配置模块的一些参数,

具体的配置方式如下:

1)、测试通讯:发送AT 命令,返回ok

2) 更改波特率

模块默认的波特率是9600

发送AT BAUD1 返回OK1200

发送AT BAUD2 返回OK2400

……

BAUD1------------1200

BAUD2------------2400

BAUD3------------4800

BAUD4------------9600

BAUD5------------19200

BAUD6------------38400

BAUD7------------57600

BAUD8------------115200

BAUD9------------230400

A--------------------460800

B--------------------921600

C--------------------1382400

不建议使用超过115200 的波特率,因为大多系统都没有提供高

于115200 的波特率,PC 机也是如此,波特率设置超过115200 以后,

电脑无法使用,要使用波特率高于115200 的系统才能重新发AT 命令

设置低的波特率,否则无法恢复低波特率了。

用AT 命令设置好波特率后,下次上电不需要再设置,掉电可以

保存波特率。

3)更改蓝牙名字

发送:AT NAMEname

返回:OKname

参数name:你所要设置的名字,也就是蓝牙被搜索到的名字,

20 个字符以内。

例:发送AT NAMEJYOO

返回返回JYOO

参数可以掉电保存,只需设置一次

4)更改蓝牙配对密码

发送:AT PINXXXX

返回:OKsetpin

参数XXXX:所需设置的密码4 位,只需更改一次,掉电保存。

转载于:https://www.cnblogs.com/wangh0802PositiveANDupward/p/4111613.html

2019-06-14 13:56:58 kitholee 阅读数 568
  • arduino实战

    学习如何在arduino中使用各种传感器,包括人体红外传感器,超声波传感器,舵机控制,温湿度传感器,激光接收传感器等,空气质量传感器,wifi模块等....课程内容会不断的更新增加,只要发现比较有趣的传感器就会做对应的实战视频

    406 人正在学习 去看看 陈贤能

关于

现在蓝牙设备是不可或缺的一部分,在这里我们将HC-05蓝牙模块与WiFi模块ESP8266连接,并通过蓝牙发送命令无线控制LED

需要的组件

ESP8266
HC-05蓝牙模块
Arduino
监控的程序

组件图

在这里插入图片描述

使用串行蓝牙终端

在这里插入图片描述 点击连接后就可以发送消息了
在这里插入图片描述

编程NodeMCU ESP8266来连接蓝牙模块

要使用ArduinoIDE对NodeMCU ESP8266进行编程,只需使用Micro USB线从笔记本电脑插入,然后打开Arduino IDE。在本文中,将使用硬件串口和软件串口。硬件串口将用于向Arduino 串口监视器读取和写入数据,而软件串口将用于与HC-05通信。
在这里插入图片描述

代码

/* HC-05 interfacing with NodeMCU ESP8266
*/
#include <SoftwareSerial.h>
int D2,D3,D4;
SoftwareSerial btSerial(D2, D3); // Rx,Tx
int led = D4; // led also the internal led of NodemCU
int ledState = LOW; // led state to toggle
String ledB = “”;

unsigned long previousMillis = 0; // millis instaed of delay
const long interval = 500; // blink after ecery 500ms

void setup() {
delay(1000);
Serial.begin(9600);
btSerial.begin(9600); // bluetooth module baudrate
pinMode(D4, OUTPUT);
Serial.println(“Started…”);
}

void loop() {

if (btSerial.available() > 0) { // check if bluetooth module sends some data to esp8266
char data = btSerial.read(); // read the data from HC-05
switch (data)
{
case ‘B’: // if receive data is ‘B’
ledB = “blink”; // write the string
break;
case ‘S’: // if receive data is ‘S’
ledB = “stop”;
break;
default:
break;
}
}
unsigned long currentMillis = millis();
if (ledB == “blink”) { // if received data is ‘B’ the start blinking
Serial.println(“blinking started”);
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}
digitalWrite(led, ledState);
}
}
}




2016-08-02 18:50:39 mtobeiyf 阅读数 30133
  • arduino实战

    学习如何在arduino中使用各种传感器,包括人体红外传感器,超声波传感器,舵机控制,温湿度传感器,激光接收传感器等,空气质量传感器,wifi模块等....课程内容会不断的更新增加,只要发现比较有趣的传感器就会做对应的实战视频

    406 人正在学习 去看看 陈贤能

简介

蓝牙,顾名思义,蓝色的牙齿,并不能用来咬人,而是一种无线数据传输标准。
HC-05HC-06是现在使用较多的两种蓝牙模块。两者之间的区别是HC-05主从一体机,既能向自己的’主子’打小报告,也可以接收下达的命令;而HC-06只能工作在从机模式下,那就只能乖乖接收上级的命令啦。
在很多情况下,我们都想当“霸道总裁”,让下级乖乖听话就OK了,不需要他多废话。那就用HC-06就够了。
下面是HC-06的模块示意图:
HC-06模块

接线

可以看到它有4个引脚,那么它接线如下:
这里写图片描述

在这里,我并没有使用Arduino的0,1号口,而是使用了两个数字口。这样就不会占用Arduino自身的串口。

AT模式

在按照上面的接线之后,HC-06会自动进入AT模式,在这个模式下,可以通过串口对蓝牙模块进行一些诸如修改名称、密码的操作。
注意:AT命令一定要大写,中间的+不可省略

指令 返回 功能
AT OK 确认连接
AT+VERSION OKlinvorV1.8 查看版本
AT+NAMEOOO OKsetname 设置蓝牙名称
AT+PINOOOO OKsetPIN 设定密码
AT+BAUD1 OK1200 波特率设为1200
AT+BAUD2 OK2400 波特率设为2400
AT+BAUD3 OK4800 波特率设为4800
AT+BAUD4 OK9600 波特率设为9600
AT+BAUD5 OK19200 波特率设为19200
AT+BAUD6 OK38400 波特率设为38400
AT+BAUD7 OK57600 波特率设为57600
AT+BAUD8 OK115200 波特率设为115200

不建议设置更高的波特率,通信会不稳定

/*
 Name:    Bluetooth.ino
 Created: 2016/7/30 13:26:47
 Author:  Fing
*/
#include <SoftwareSerial.h>
//使用软件串口,能讲数字口模拟成串口
SoftwareSerial BT(8, 9);  //新建对象,接收脚为8,发送脚为9
char val;  //存储接收的变量

void setup() {
  Serial.begin(9600);   //与电脑的串口连接
  Serial.println("BT is ready!");
  BT.begin(9600);  //设置波特率
}

void loop() {
  //如果串口接收到数据,就输出到蓝牙串口
  if (Serial.available()) {
    val = Serial.read();
    BT.print(val);
  }

  //如果接收到蓝牙模块的数据,输出到屏幕
  if (BT.available()) {
    val = BT.read();
    Serial.print(val);
  }
}

连接Arduino,写入程序。进入串口,输入AT,看看是不是有OK返回。
之后就可以愉快地使用HC-06模块了。

手机连接调试蓝牙

通过SPP蓝牙助手可以实现连接蓝牙和与蓝牙之间的通信。
我用的是unWired Lite,可以在Play市场上下载到。

arduino与蓝牙模块

阅读数 1963

没有更多推荐了,返回首页