Adurion两个HCO5蓝牙模块之间互相通信

简介: Adurion两个HCO5蓝牙模块之间互相通信

实验器材:


超声波模块,两个HC05蓝牙模块(注意不要买到盗版的了),小灯,液晶显示屏LCD,蜂鸣器

实现功能:


从机读取超声波距离,在液晶屏上面显示,并通过蓝牙协议传入到从机,主机通过串口可显示出来,如果距离大于20cm,小灯亮,且蜂鸣器叫。

实验步骤:

1,用AT指令先进行两个蓝牙模块之间的配对,两个灯两闪一灭就成功配对了

2,连线,注意蓝牙的RX和TX与板子是反起接的

3,烧入下列代码(代码有些累赘,使用可自己修改)

主机代码

#include <SoftwareSerial.h>
#include "dht11.h"
#include <Wire.h>
#define Software_TX 2
#define Software_RX 3
int led= 8;
int buzzer=7;
String A,C;
byte read_dat, jdy_dat,q;
SoftwareSerial BLE_JDY_16(Software_RX, Software_TX);
dht11 DHT11;
int a,b,f;
char x,m,v;
void setup()
 { 
     pinMode(8,INPUT);
     pinMode(buzzer,OUTPUT);
     Serial.begin(9600);
     BLE_JDY_16.begin(9600);
   pinMode(motor,OUTPUT);
 }
int i=0;
void loop()
 {
     if (BLE_JDY_16.available()) {
          x=BLE_JDY_16.read();
          int a=x-'0';
        Serial.println("超声波距离:");        
        Serial.println(a);
         delay(300);
        if(a>20){             
          digitalWrite(buzzer, HIGH); }
          else   {digitalWrite(buzzer, LOW);}    // turn the LED off by making the voltage LOW  
     }                        
 }

 

从机代码


#include <SoftwareSerial.h>
#include "dht11.h"
#include <Wire.h>
#define Software_TX 2
#define Software_RX 3
#define DHT11PIN 8
#include "LiquidCrystal_I2C.h"
byte read_dat, jdy_dat;
SoftwareSerial BLE_JDY_16(Software_RX, Software_TX);
dht11 DHT11;
int a,b,d;
int led=7;
char x,r;
int buzzer=8;
int distance;
const int TrigPin=10;
const int EchoPin=9;
LiquidCrystal_I2C lcd(0x27, 16, 2); 
void setup()
 { 
    pinMode(led,INPUT);
    pinMode(buzzer,OUTPUT);
    pinMode(DHT11PIN,INPUT);
     Serial.begin(9600);
     BLE_JDY_16.begin(9600);
   lcd.init();        //初始化lcd              
    lcd.backlight();//点亮lcd   
     pinMode(TrigPin,OUTPUT);
  pinMode(EchoPin,INPUT);
 }
void loop()
 {
  digitalWrite(TrigPin,LOW);
  delayMicroseconds(2);
  digitalWrite(TrigPin,HIGH);
  delayMicroseconds(10);
  digitalWrite(TrigPin,LOW);
  distance=pulseIn(EchoPin,HIGH)/58.00;
  if(distance>50){
    digitalWrite(led,HIGH);
    }
    else{
      digitalWrite(led,LOW);
      }
  Serial.print("diatance is :");
  Serial.print(distance);
  Serial.print("cm");
  Serial.println("");
      a =distance;
      x=a+'0';
      delay(1000); 
    //  A += (char)chk; 
     // a=A.toInt();
      BLE_JDY_16.write(x);
    lcd.setCursor(0, 0);
    lcd.print("T: ");
    lcd.print(a);
    lcd.print(" %");
     if (BLE_JDY_16.available()) {
        r = BLE_JDY_16.read();
       d=r-'0';
        lcd.setCursor(0, 1);
    lcd.print("s: ");
    lcd.print(d);
    lcd.print(" %");
     }
 }

相关文章
|
分布式计算 Hadoop 关系型数据库
Sqoop入门(一篇就够了)(下)
Sqoop入门(一篇就够了)(下)
290 0
|
10月前
|
人工智能 监控 开发者
详解大模型应用可观测全链路
阿里云可观测解决方案从几个方面来尝试帮助使用 QwQ、Deepseek 的 LLM 应用开发者来满足领域化的可观测述求。
2363 157
详解大模型应用可观测全链路
|
7月前
|
前端开发 Java 微服务
2025 版 Java 学习路线图之技术方案与实操指南详解
这是一份详尽的Java学习路线图,涵盖从入门到精通的全流程。基础阶段包括环境搭建、语法基础与面向对象编程;进阶阶段深入数据结构、算法、多线程及JVM原理;框架阶段学习Spring、MyBatis等工具;数据库阶段掌握SQL与NoSQL技术;前端阶段了解HTML、CSS及JavaScript框架;分布式与微服务阶段探讨容器化、服务注册与发现;最后通过项目实战提升性能优化与代码规范能力。资源地址:[https://pan.quark.cn/s/14fcf913bae6](https://pan.quark.cn/s/14fcf913bae6)。
642 7
|
11月前
|
存储 安全 数据安全/隐私保护
STM32 Customer BootLoader 刷新项目 (一) STM32CubeMX UART串口通信工程搭建
本文介绍了基于STM32的Customer BootLoader刷新项目的第一部分:使用STM32CubeMX搭建UART串口通信工程。项目采用正点原子探索者v2开发板,通过USB串口与上位机通信,实现固件刷新功能。主要内容包括: 1. 硬件原理图介绍:详细描述了开发板的串口连接方式及电路图。 2. STM32CubeMX工程搭建:从创建新工程、配置系统时钟、USART串口设置到生成代码,一步步详细说明。 3. 代码编写:展示了如何使用HAL库实现串口接收和发送数据,并提供了main.c的完整代码。 4. 工程下载和调试:编译并下载工程到开发板,通过串口调试助手验证通信功能。
STM32 Customer BootLoader 刷新项目 (一) STM32CubeMX UART串口通信工程搭建
tf.keras.layers.Dense
【8月更文挑战第19天】tf.keras.layers.Dense。
309 1
|
网络协议 物联网 虚拟化
|
Unix Linux 异构计算
用于实时 Linux® 的 TwinCAT Runtime,基于 Linux® 的实时控制器开辟了新的应用可能性
**TwinCAT Runtime for Linux®** 打开了倍福实时控制的新领域,支持在同一PC上运行多个独立实例,促进硬件整合和效率提升。基于Debian的定制Linux发行版,内置实时内核,允许GPU驱动的高速应用如机器视觉。利用Docker等容器技术,实现模块化控制和资源优化,降低工程成本。此发行版将逐步扩展到更多倍福设备,为Linux用户提供熟悉的TwinCAT编程环境和增强的灵活性。
|
Java C语言
STM32使用printf重定向到USART(串口)并打印数据到串口助手
STM32使用printf重定向到USART(串口)并打印数据到串口助手
1931 0
|
机器学习/深度学习
深度学习:张量 介绍
深度学习:张量 介绍
|
运维 Cloud Native 安全
笔记 - 《阿里云云原生架构实践》
《阿里云云原生架构实践》的笔记