0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

与 M5Stack 和智能手机的双边蓝牙通信

杜喜喜 来源:tinlyxian 作者:tinlyxian 2022-07-28 10:29 次阅读

M5Stack 是与 Arduino 兼容的开源开发套件(参见图 1)。它可用于非常快速地创建应用程序。该套件包括主机、USB type-C 电缆和端口连接电缆。它配备了TFT-LCD,您可以通过它查看文本、绘图和图像。四个侧面都有连接到GPIO端口的连接器,在本项目中不会使用。电源由 AXP192 芯片处理。电池容量为 390 mAh,保证了良好的自主性,尤其是在不使用屏幕时。该设备还具有 SD 卡插槽和小型扬声器。可以在官方网站上找到很多其他信息

图 1:M5Stack 的优雅美学

在正确下载其库后,可以使用 Arduino IDE 对 M5Stack 进行编程。在 Arduino IDE 中安装 ESP32 Boards Manager 后,还必须实现 M5Stack 库。

蓝牙及其应用

蓝牙是在两个设备之间交换数据和信息的最常用技术之一。虽然它的稳定性和节能性并不出色,但如今有很多系统采用它。此方法用于传输文件和信息、视频、图像和音乐,以及管理鼠标和键盘以及一般的短距离广播。

项目目的

本文介绍的项目旨在展示 M5Stack 的巨大可能性及其一般功能。用户可以根据自己的需要进行修改。最重要的方面是充分了解其操作背后的理念,以便能够在其所有组件(包括软件和硬件)中扩展系统。该设备不提供任何外部连接,因为所有功能均由 M5Stack 硬件执行。事实上,草图同时使用按钮、声音和蓝牙,以及彩色屏幕。这是一个简单的清单,突出了这个小物体的巨大潜力,由于有一个小的内部电池,它甚至可以在没有电气连接的情况下工作。该项目的功能如下所示,也可以在图2:

如果 M5Stack 从智能手机接收到“A”代码,它的屏幕就会变白。

如果 M5Stack 从智能手机接收到“B”代码,它的屏幕就会变红。

如果 M5Stack 从智能手机接收到“C”代码,其屏幕将变为绿色。

如果 M5Stack 从智能手机接收到“D”代码,它的屏幕就会变成蓝色。

如果您按下 M5Stack 上的“1”键,智能手机会收到“Key A”消息。

如果您按下 M5Stack 上的“2”键,智能手机会收到“Key B”消息。

如果您按下 M5Stack 上的“3”键,智能手机会收到“Key 3”消息。

从智能手机到 M5Stack,反之亦然,使用 Google Play 商店中的众多应用程序之一发送字符串和信息。通过按下三个键,您可以获得设备本身产生的相同数量的声音。

图 2:应用程序功能

草图

源代码非常简短,附在本文后面。它是用 Arduino IDE 编写的,但通过在开头包含“M5Stack.h”文件来使用 M5Stack 库的一些功能。它提供了 M5Stack 的多项功能,例如按键压力管理、声音生成、蓝牙和屏幕着色。整个草图很小,要清晰简单。请记住,setup() 函数在固件执行期间仅重复一次,而 loop() 函数在此草图中每 100 毫秒循环执行一次。已启用行号显示,以便您可以对程序的每一行进行注释,如图 3 所示。现在,让我们检查源程序中最重要的部分:

第 1-2 行:这些行包含库“M5Stack.h”和“BluetoothSerial.h”。它们包含这两个附加元素的函数原型。

第 3 行:它创建了 BluetoothSerial 类型的 SerialBT 对象。它的工作方式与传统的串行连接完全一样,并且非常强大。

第 5 行:新的蓝牙会话立即以设备名称“M5Stack”开始。这显然可以由程序员修改。

第 6-7 行:一个新的 M5Stack 会话立即开始。

第 10 行:检查 BT 线上是否有智能手机发送的数据。

第 11 行:读取 BT 串行线上的字符。

第 12-19 行:接收到的命令类型决定了显示器的照明颜色。

第 21 行:更新按钮状态所需的功能。

第 22–33 行:按下 M5Stack 上的三个按钮之一会导致在 BT 线路上发送一条带有不同声音的特定消息。

图 3:顺序行编号便于理解程序。

现在,让我们检查一些相当感兴趣的程序行,以便对设备进行编程:

SerialBT.begin(“M5Stack”):该程序行启动蓝牙通信会话,为 BT 设备命名为“M5Stack”。搜索蓝牙设备时会显示在智能手机上,如图 4所示。

char ch = SerialBT.read():此函数从蓝牙线路读取一个字符。

SerialBT.println(“Key A”):它在蓝牙线路上发送一串字符。

M5.Lcd.fillScreen(GREEN):将 M5STack 的整个屏幕涂成绿色,在这种情况下。

M5.BtnA.isPressed():如果按下 M5Stack 的第一个按钮,则返回“TRUE”的布尔函数。

M5.Speaker.beep():在 M5Stack 上产生一个简单的哔声。

M5.Speaker.tone(1500, 200):产生持续 200 毫秒的 1,500-Hz 音调。

图 4:M5Stack 被智能手机识别为蓝牙设备。

要检查 BT 线上是否存在数据,使用以下代码:

if (SerialBT.available ()) {

char ch = SerialBT.read ();

if (ch == 'a' || ch == 'A')

M5.Lcd.fillScreen(白色);

…………..

…………..

}

相反,要检查是否按下了 M5Stack 的三个键之一(BtnA、BtnB 或 BtnC),使用以下代码:

如果(M5.BtnA.isPressed()){

…………..

…………..

}

该程序的其余部分非常简单且非常直观。您只需转录源代码,编译它,然后将其上传到设备。如果没有错误,它将立即开始执行。

智能手机上的蓝牙应用

必须在智能手机上设置并下载应用程序才能使系统正常工作。它管理双边蓝牙通信。当然,您也可以在配备 BT 密钥的 PC 上使用软件。为了测试系统,我们选择了“Serial Terminal via BT (FREE)”应用程序,它非常轻巧且易于使用。它在 Play 商店中可用,并且不会占用大量内存空间。此应用程序的一个特殊功能是它能够说话。事实上,多亏了语音输出功能,这个应用程序会用它的声音扫描它收到的字符串。可以通过设置菜单激活或停用此功能。此应用程序与“Arduino IDE 串行监视器”非常相似,但可以在智能手机上运行。可以在条目中设置行尾字符。当然,

执行

使用新创建的系统非常简单。只需打开设备并加载软件。按钮检测是实时执行的。图 5显示了运行中的设备。要从智能手机发送消息,必须启动“通过 BT(免费)的串行终端”应用程序或其他等效应用程序。因此,输入相关的字符串或字符,然后按 Enter。M5Stack 屏幕将改变颜色。相反,要从 M5Stack 发送命令,只需按下屏幕下方的三个按钮之一。该消息将立即收到并显示在电话应用程序上。

图 5:运行中的系统

结论

M5Stack 是一个不错的设备和一个非常强大的开发系统。它基于ESP32,确保安全运行。它已经装在一个优雅的外壳中,这为开发人员节省了大量的设计工作。用户可以根据自己的不同需求修改设备的功能。有很多可能性。例如,您可以将 LED 二极管连接到 ESP32 输出以模拟更重要的负载。

附件

附在这篇文章中,你会发现一个草图。在 Arduino IDE 上安装库后,只需复制、编译并上传到 M5Stack。附件是:

m5stack BT

另请注意,Arduino IDE 将“.ino”源存储在具有相同程序标题的文件夹中。

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 智能手机
    +关注

    关注

    66

    文章

    17988

    浏览量

    176864
  • 蓝牙通信
    +关注

    关注

    0

    文章

    27

    浏览量

    10869
收藏 人收藏

    评论

    相关推荐

    智能手机+平板电脑,商机?!

    电脑与智能手机他们会有各自的市场,5寸屏相当于一个分界点也是一个交集。智能手机超过5寸,特别是女孩子打电话就会很困难,说严重点即是用户体验不好。其次,
    发表于 01-06 17:46

    智能手机

    智能手机图纸谁有呢能看清
    发表于 06-23 19:55

    智能手机如何判断人脸的贴近

    智能手机里应用的传感器是多种多样的,其中距离传感器就是智能手机里面经常应用的一种传感器,距离传感器有什么作用呢?我们都知道,智能手机都是触屏手机,当人体接触屏幕时,能激活相应用的应用软
    发表于 09-30 16:03

    智能手机加平板

    怎样把智能手机中的蓝牙和GPS.sim通讯硬件和软件移植到平板电脑里、望高手赐教、给个思路
    发表于 10-15 18:20

    模拟智能手机

    STM32单片机模拟智能手机
    发表于 09-26 10:19

    你怎么定义智能手机壳,觉得高科技+手机壳=智能手机壳吗?!

    搜到的这个宝就是MOPIC的3D智能手机壳,瞬间感觉这就是为我准备滴^&^~为啥说它是个宝,一起来看看就知道了。你怎么定义智能手机壳,觉得高科技+手机壳=智能手机
    发表于 01-05 09:56

    基于NFC技术的智能手机设计

    智能手机已成为终端厂商最关注的IT产品之一,如何以最有效率的方式推出各种不同新机型,满足客户营销及市场需求,已成为最重要的挑战之一。本文以案例分析的方式,说明如何利用飞利浦近距无线通信技术(Near
    发表于 06-19 06:30

    自动对焦在智能手机的应用

    作者:高级产品营销经理Jason Whetstone当今最想要的智能手机特性对于许多用户,相机性能已成为一台智能手机最重要的方面。社交媒体和线上业务使每个人都成为摄影师或影片导演,辅以几百万像素
    发表于 07-16 08:50

    从0到1学习M5stack系列教程(一)Hello World

    `是否你已经厌倦了传统的开发板,是否你需要一种更快捷的方式来堆叠硬件、编写程序?本系列教程带你认识一种全新的开发硬件——M5Stack。上图就是M5Satck和具备各种功能的模块,根据使用需要进行
    发表于 08-09 20:00

    智能手机怎么才能更加智能

    很明显,智能手机不仅融入了我们的日常商业活动,而且融入了我们的日常生活。过去,智能手机被定义为采用专用操作系统(OS)的蜂窝电话。这意味着智能手机可以增加或安装/删除应用软件,虽然这种定义稍嫌简单了点。今天的
    发表于 08-20 08:32

    M2M通信技术植入智能手机平台,不看肯定后悔

    M2M通信技术植入智能手机平台,不看肯定后悔
    发表于 05-25 06:12

    智能手机蓝牙控制家电开关设计方案

    智能家居方面。1、智能手机蓝牙控制家电开关设计方案本文利用所学51 单片机基础知识结合自动控制技术和蓝牙2.0 通信技术设计完成一套无线遥控
    发表于 07-19 09:04

    用8051通过HC-05蓝牙模块与智能手机通信控制门锁

    描述使用8051的蓝牙门锁使用您的智能手机通过蓝牙控制您家的门锁。 系统使用 8051 通过 HC-05 蓝牙模块与智能手机
    发表于 09-14 06:45

    是否有机会看到ESP BASIC的ESP32或M5Stack版本?

    我们是否有机会看到 ESP BASIC 的 ESP32 或 M5Stack 版本?如果在 M5Stack 中安装带有 FACES 键盘的解释器,那将是不可思议的!
    发表于 05-10 08:22

    配备M5Stack智能工厂

    电子发烧友网站提供《配备M5Stack智能工厂.zip》资料免费下载
    发表于 12-09 10:19 0次下载
    配备<b class='flag-5'>M5Stack</b>的<b class='flag-5'>智能</b>工厂