【深海王国】小学生都能玩的单片机?零基础入门单片机Arduino带你打开嵌入式的大门!(9)

Hi٩(๑o๑)۶, 各位深海王国的同志们,早上下午晚上凌晨好呀~辛勤工作的你今天也辛苦啦

(o゜▽゜)o☆ 今天大都督继续为大家带来系列——小学生都能玩的单片机!带你一周内快速走进嵌入式的大门,let’s go!

(9)实战:使用软串口与蓝牙APP串口通讯

通过前面八节的学习,相信大家已经对Arduino是什么、怎么用很熟悉了。那么恭喜你离入门Arduino就差最后一步了。接下来最后两节,我们将实际编写程序与蓝牙APP进行通信并总结一下学习Arduino时常踩的坑,大家再加把劲!

准备工作:

如果大家有兴趣自己做一个蓝牙APP,可以关注一下大都督的另一个系列

【深海王国】小学生都能做的APP?AppInventor、BLE蓝牙、Arduino联合开发你的第一个手机远程控制程序(1)

赶时间的也可以直接在「深海大都督」里回复「蓝牙APP」获取安卓安装包就可以啦。

安卓好蓝牙APP以后,需要打开手机定位和蓝牙,并且记得给权限。然后APP主页面长这样:

在这里插入图片描述

然后Arduino的接线如图:

在这里插入图片描述

ArduinoBLE蓝牙模块
2 (RX)TX
3 (TX)RX
3.3V3.3V
GNDGND

所用蓝牙为BLE低功耗蓝牙,相关材料购买链接在「深海大都督」里回复「BLE蓝牙」(大都督个人购买,仅供参考,无广)。

Arduino程序:

这些程序作为参考提供给大家,用到的函数都在上节里提到啦,详见(8)软串口与SoftwareSerial库使用

1.将电脑端串口接受到的char字符指令发送给APP
#include <SoftwareSerial.h>  //引用库文件
SoftwareSerial Serial1(2, 3);  // 定义软串口RX为2, TX为3和软串口对象Serial1void setup(){Serial.begin(9600); //Arduino与电脑通信的波特率Serial1.begin(9600);  //Arduino与BLE蓝牙通信的波特率
}void loop(){char data = ' ';if(Serial.available()){  //如果电脑串口接收到数据data = char(Serial.read());  //将电脑端接受到的数据转化为char类型Serial1.print(data);  //将电脑接收到的数据发送到蓝牙APP上}
}

运行效果:
通过Arduino IDE的串口监视器发送字符’A’给APP,APP接受。
在这里插入图片描述

2.接受蓝牙APP串口发送过来的char字符指令
#include <SoftwareSerial.h>  //引用库文件
SoftwareSerial Serial1(2, 3);  // 定义软串口RX为2, TX为3和软串口对象Serial1void setup(){Serial.begin(9600); //Arduino与电脑通信的波特率Serial1.begin(9600);  //Arduino与BLE蓝牙通信的波特率
}void loop(){char data = ' ';if(Serial1.available()){  //如果蓝牙串口接收到数据data = char(Serial1.read());  //将蓝牙端接受到的数据转化为char类型Serial.print(data);  //将接收到的数据发送到电脑上}
}

运行效果:
通过APP发送字符’A’给Arduino,Arduino串口监视器上显示。
在这里插入图片描述

3.将电脑端串口接受到的String字符串指令发送给APP
#include <SoftwareSerial.h>  //引用库文件
SoftwareSerial Serial1(2, 3);  // 定义软串口RX为2, TX为3和软串口对象Serial1void setup(){Serial.begin(9600); //Arduino与电脑通信的波特率Serial1.begin(9600);  //Arduino与BLE蓝牙通信的波特率
}void loop(){String data_S = " ";if(Serial.available()){  //如果蓝牙串口接收到数据data_S = char(Serial.read());  //将蓝牙端接受到的数据转化为char类型Serial1.print(data_S);  //将接收到的数据发送到电脑上}
}

运行效果:
通过Arduino IDE的串口监视器发送字符串"ABCD"给APP,APP接受。
在这里插入图片描述

4.接受蓝牙APP串口发送过来的String字符串指令
#include <SoftwareSerial.h>  //引用库文件
SoftwareSerial Serial1(2, 3);  // 定义软串口RX为2, TX为3和软串口对象Serial1void setup(){Serial.begin(9600); //Arduino与电脑通信的波特率Serial1.begin(9600);  //Arduino与BLE蓝牙通信的波特率
}void loop(){String data_S = " ";while(Serial1.available()){  //如果蓝牙串口接收到数据data_S += char(Serial1.read());  //将蓝牙端接受到的数据转化为char类型,并累加到data_S中Serial.print(data_S);  //将接收到的数据发送到电脑上}
}

注:c语言中+=是代表两个变量相加,并将答案记录在左边的变量里。比如x+=y实际代表的表达式为:x=x+y。

运行效果:
通过APP发送字符串"ABCD"给Arduino,Arduino串口监视器上显示。
在这里插入图片描述

今天的学习到这里就差不多啦,下节就是本系列的最后一节,大都督会为大家分享一下学习Arduino时常踩的坑,看到这里的你辛苦啦,加油٩(ˊᗜˋ)و✧。

哈哈,让焦虑不再蔓延,信息不再高壁,如果你觉得这篇文章对你有帮助,就来个免费的点赞吧!

(◍˃̶ᗜ˂̶◍)✩我深海大都督正式授予你深海王国公民的身份~

(・ω< )★ 加入深海大家庭,快乐摆烂每一天!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/35268.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

殷山:摩斯大模型隐私保护技术和应用探索

背景介绍 6月20日下午&#xff0c;“2024信通院数据智能大会”圆满落幕&#xff0c;摩斯技术负责人殷山在论坛上分享了摩斯在大模型隐私保护技术和行业应用的探索。 殷山发表“大模型隐私保护”主题演讲 摩斯技术负责人殷山在“数据智能安全主题论坛“上&#xff0c;带来“大…

web学习笔记(六十八)项目总结

目录 1.如何取到对象的第一项的键名 2.如何在键名不确定的情况下取到对象的第一项的值 3.如何获取对象的长度 4.计算属性和watch监听监听深层数据 5.样式穿透 1.如何取到对象的第一项的键名 可以通过Object.keys将对象转化为一个包含对象所有可枚举属性名的数组&#xff…

Java中的微服务架构实现方法

Java中的微服务架构实现方法 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在当今软件开发的环境中&#xff0c;微服务架构已经成为了构建大型应用程序的主流…

NIVision-LabVIEW在灰度图上画圆

问题来源 在csdn上看到的这样一个问题&#xff0c;好像也没个正经答案&#xff0c;都用chatGPT回答&#xff0c;挺没劲的。不说提供个vi源代码&#xff0c;至少也来张截图嘛。我想着问题也不难&#xff0c;就自己动动手吧。 代码展示1 1、首先使用imaq ArrayToImage.vi创建了一…

java error ConcurrentModificationException 并发修改异常

ConcurrentModificationException 概述 这个异常在 Java 中通常发生在以下场景&#xff1a;当某个线程在遍历一个集合&#xff08;如 ArrayList、HashMap 等&#xff09;的过程中&#xff0c;另一个线程尝试修改这个集合的结构&#xff08;如添加、删除元素&#xff09;&#…

java中处理RunTimeException类的方式

在Java中&#xff0c;RuntimeException是所有运行时异常的父类。一些常见的RuntimeException子类包括&#xff1a; NullPointerException&#xff08;空指针异常&#xff09;&#xff1a;当试图访问空对象的属性或调用空对象的方法时抛出。IllegalArgumentException&#xff0…

sheng的学习笔记-AI-学习向量量化

AI目录 sheng的学习笔记-AI目录-CSDN博客 需要学习前置知识&#xff1a;聚类&#xff0c;可参考 sheng的学习笔记-AI-聚类(Clustering)-CSDN博客 什么是学习向量量化 “学习向量量化”&#xff08;Learning Vector Quantization&#xff0c;简称LVQ&#xff09;是试图找到一…

【Android面试八股文】ViewHolder为什么要被声明成静态内部类?

文章目录 ViewHolder为什么要被声明成静态内部类?1. 避免隐式引用导致的内存泄漏2. 提高性能3. 代码可读性和维护性实例代码总结ViewHolder为什么要被声明成静态内部类? 将 ViewHolder 声明为静态内部类有几个重要的原因,这样做可以提高性能并避免潜在的内存泄漏。下面是详…

Qt | 子类化 QStyle(Qt自带图标大全)

01、简介 1、把绘制自定义部件外观的步骤大致分为三大板块,如下: ①、样式元素:即指定需要绘制的图形元素(比如焦点框、按钮,工具栏等)。样式元素使 用 QStyle 类中的一系列枚举(共有 11 个枚举)进行描述。 ②、样式选项:包含了需要绘制的图形元素的所有信息,比如包含…

Tomcat 下载部署到 idea

一、下载Tomcat Tomcat 是Apache 软件基金会&#xff08;Apache Software Foundation&#xff09;下的一个核心项目&#xff0c;免费开源、并支持Servlet 和JSP 规范。属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发…

启动VMWare虚拟机报错

1. 无法打开内核设备“\\.\VMCIDev\VMX”: 操作成功完成。是否在安装 VMware Workstation 后重新引导? 模块“DevicePowerOn”启动失败。 未能启动虚拟机。 解决办法: 解决办法: 将 Ubuntu 64 位.vmx 找到vmci0.present"TRUE"这行改成 vmci0.present "FAL…

wireshark工具获取设备IP地址

背景&#xff1a; 一个网口抓包工具&#xff0c;主要是升级XX设备时候不知道网口的ip地址。每次需要一个一个试&#xff0c;比较麻烦。 使用步骤&#xff1a; 1、连接好XX设备与笔记本&#xff0c;在网络连接里面找到以太网&#xff0c;没有出现红色X号&#xff0c;表示网线连…

文心一言 VS 讯飞星火 VS chatgpt (289)-- 算法导论21.3 2题

二、写出使用路径压缩的 FIND-SET 过程的非递归版本。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 在并查集&#xff08;Union-Find&#xff09;数据结构中&#xff0c;路径压缩&#xff08;Path Compression&#xff09;是一种优化技术&#xff0c;用于减少…

智能仓储:立体仓WCS设计

自动化立体仓库简称高架仓库&#xff0c;是采用高层货架存放货物&#xff0c;以巷道堆垛起重机为主&#xff0c;结合入库出库周边设备来进行作业的一种仓库。 立体仓主体由货架、巷道式堆垛机、输送机等组成。 电气控制系统、上位监控系统&#xff08;Warehouse Control Syste…

【前后端实现】AHP权重计算

AHP权重计算&#xff1a; 需求&#xff1a;前端记录矩阵维度、上三角值&#xff0c;后端构建比较矩阵、计算权重值并将结果返回给前端 比较矩阵构建 如果你想要根据上三角&#xff08;不包括对角线&#xff09;的值来构建对称矩阵&#xff0c;那么你可以稍作修改上述的generate…

.NET 语言特定指南

.NET Language-Specific Guide 本指南将教您如何使用 Docker 创建容器化的 .NET 应用程序。通过本指南&#xff0c;您将学习如何&#xff1a; 容器化并运行 .NET 应用程序设置本地环境以使用容器开发 .NET 应用程序使用容器运行 .NET 应用程序测试使用 GitHub Actions 配置容…

量化交易面临的难题

量化交易面临的难题 1、监管机构对于算法交易、量化交易的监管越来越严格3、回测场景于实盘交易场景的不匹配性4、策略并非100%有效&#xff0c;并非100%的收益5、股票、基本面、市场新闻之间的关系时刻在变化并且难以捉摸6、很难使用一套通用的交易规则去匹配所有的股票/市场/…

U盘数据恢复实战:两大方案助您找回珍贵数据

在数字化时代&#xff0c;U盘作为我们随身携带的数据存储工具&#xff0c;承载着无数重要的文件和信息。然而&#xff0c;由于误操作、系统崩溃或硬件故障等原因&#xff0c;U盘中的数据可能会突然消失&#xff0c;给我们带来极大的困扰。本文将深入探讨U盘数据恢复的概念、方法…

常见大功率蓝牙应用有哪些?

在无线通信技术飞速发展的今天&#xff0c;蓝牙技术以其低功耗和易用性优势成为短距离无线通信的佼佼者。然而&#xff0c;随着智能家居、工业4.0等新型应用的兴起&#xff0c;蓝牙应用设备对通信距离和稳定性的要求越来越高。为了满足更大范围的无线通信需求&#xff0c;大功率…

山寨币大额解锁抛压拖累比特币:10X Research 深度剖析市场动荡

加密货币市场大幅下跌&#xff0c;山寨币损失惨重 在经历了几个月的强劲表现后&#xff0c;加密货币市场最近经历了一轮大幅下跌&#xff0c;特别是山寨币损失惨重。10X Research 最近在其Newsletter中发表了观点&#xff0c;认为山寨币大额解锁所带来的抛压正在拖累比特币。本…