蓝牙物联网灯控设计方案

蓝牙技术是当前应用最广泛的无线通信技术之一,工作在全球通用的 2.4GHZ 的ISM 频段。蓝牙的工作距离约为 100 米,具有一定的穿透性,没有方向限制。具有低成本、抗干扰能力强、传输质量高、低功耗等特点。蓝牙技术组网比较简单,无需额外设置,只要两个蓝牙设备进入连接范围内,蓝牙就会自动搜索,实现配对连接,进行点对点信息传输。目前个人电脑、手机等终端设备都具有蓝牙通信功能,可以利用手机蓝牙对其他的蓝牙设备发送控制信号进行无线控制。

1蓝牙灯的总体设计

蓝牙物联网灯控

普通的照明灯泡没有蓝牙模块,没有办法接收蓝牙信号,所以本设计就是通过对普通灯泡的改造,让灯泡能接收蓝牙信号并被控制。蓝牙灯设计基本思路:手机与控制板通过蓝牙模块建立点对点的连接,然后手发送指令,控制板上的蓝牙模块接收到指令,最后操控连接在控制板上的灯泡。

蓝牙灯的总体结构分为手机终端 APP、蓝牙通信、MCU 控制3个部分。手机终端 APP部分实现用户对灯泡的远程操作指令的发送;蓝牙通信部分实现接收操作指令并传送到 MCU控制器:MCU 控制部分实现对接收到的操作指令进行处理。

2蓝牙灯的便件设计

2.1MCU 控制

MCU控制部门选用 Arduino 作为主控板。Arduino 是一款便捷灵活、方便上手的开放源代码的软硬件平台。硬件具有丰富的接口,有 3.3V和V 电源供电、数字口、模拟口,同时支持串口通信。软件编程语言没有复杂的单片机底层代码,直接调用简单实用的函数就能实现功能。以下设计以Arduino Uno 主控板为例。

2.2蓝牙通信

蓝牙模块分为主模块和从模块,主模块既能接收信号,也能发送信号,而从模块只能接收信号,而不能发送信号。本设计中灯泡只需要接收控制信号,选用 HC-06 蓝牙从模块来接收控制信号。HC-06 模块有四个引脚: VCC (3.3V)、GND(接地)、TXD(发送端)、RXD(接收端)。蓝牙模块与 Arduino 通过串口通信。Arduino 的数字端口01是开发板串口的RX(接收端)和 TX(发送端),分别与 HC-06 的 TXD、RXD 相连。

2.3 灯泡

灯泡属于大电流和高电压设备,无法直接用 Arduino 的数字端口进行驱动,所以选用继电器控制电灯的开和关。继电器是利用弱电信号控制继电器的吸起和落下,实现电路的闭合和断开。从而实现 Arduino 用弱信号控制大电流、高电压通断,间接控制灯泡回路中的电流通和断、灯泡的亮和灭的目的。

我国照明采用三相四线制供电系统,要求中线(零线)上不允许安装开关和保险(熔断器),继电器实际就是一个开关,所以将灯泡的电源正极的连线从中间断开,分别连接继电器的公共端和常开端。

Arduino 判断接收到的信号如果是“开灯”,相应的将数字端口(本文选用数字端口 8)赋高电平(I),高电平送到继电器 S端,继电器常开开关闭合,灯泡点亮:判断接收到的信号如果是“关灯”,相应的将数字口 8赋值底电平(0),底电平送到继电器 S端,继电器常开开关复位,灯泡熄灭。蓝牙灯具体硬件连接和程序:

2.4 蓝牙灯硬件测试结果

使用手机蓝牙串口调试助手,监控串口数据。根据 Arduino 蓝牙灯程序中的编写,在手机蓝牙中口调试助手窗口中输入 1时,收到“dengliang”字符串,继电器吸合,灯泡亮;输入 0时,收到“dengmie”字符串,继电器复位,灯泡灭。检测结果说明蓝牙灯硬件能实现接收信处理信号的功能。

3蓝牙灯手机 APP的设计

居家照明

手机终端 APP 部分实现用户对灯泡的蓝牙远程操作。本设计采用某公司专门开发了-款图形化手机编程软件 App Inventor。这款软件不需要具备一定专业知识也可以使用,软件已经事先将按钮、文字输入输出等软件代码编写成不同的模块,用户只需根据自己的需求拼装就可以。

手机终端 APP 部分需要具有搜索蓝牙设备、连接蓝牙设备、断开蓝牙设备、灯泡的亮灭功能。

编写的 Android 程序,将生成 APK 文件,通过扫描二维码下载或者手机数据线下载到手机上。安装后,会在手机桌面形成蓝牙灯 APP 图标。打开图标进入到 APP 界面。

4蓝牙灯的调试

蓝牙灯 APP对灯泡硬件的完全控制,还需要两部分合起来进一步的调试。需要注意 APP中“开”和“关”按钮操作所代表的数值是“1”和“0”,而蓝牙灯控制部分 Arduino 程序中,也要对““1”和“0”做出判断。

首先,打开手机的蓝牙功能,让手机与 HC-06 配对,输入配对秘密“1234”,配对成功。其次,打开手机安装好的 ApP,点击“搜索蓝牙”按钮,连接蓝牙,提示 APP 已连接上 HC-06 蓝牙模块。最后,点击灯泡灭图片,灯泡亮:点击灯泡亮图片,灯泡灭。通过调试最终实现了手机App对蓝牙灯远程控制。

出处 电脑知识与技术

原标题 基于Arduino的蓝牙灯的设计与实现

作者 刘佳玲

参考资料

https://www.hooketech.com/bluetooth-light-control.html

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

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

相关文章

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(3)-训练yolov5模型(本地)

训练yolov5模型(本地) 训练文件 train.py训练如下图 一些参数的设置weights:对于weight参数,可以往Default参数中填入的参数有 cfg:(缩写)cfg参数可以选择的网络模型 data对于data hyp 超参数epochs 训练多…

托管在亚马逊云科技的向量数据库MyScale如何借助AWS基础设施构建稳定高效的云数据库

MyScale是一款完全托管于亚马逊云科技,支持SQL的高效向量数据库。MyScale的优势在于,它在提供与专用向量数据库相匹敌甚至优于的性能的同时,还支持完整的SQL语法。以下内容,将阐述MyScale是如何借助亚马逊云科技的基础设施&#x…

张量操作与线性回归

一、张量的操作:拼接、切分、索引和变换 (1)张量拼接与切分 1.1 torch.cat() 功能:将张量按维度dim进行拼接 • tensors: 张量序列 • dim : 要拼接的维度 torch.cat(tensors, dim0, outNone)函数用于沿着指定维度dim将多个张量…

simulink代码生成(六)——多级中断的配置

假如系统中存在多个中断,需要合理的配置中断的优先级与中断向量表;在代码生成中,要与中断向量表对应;中断相关的知识参照博客: DSP28335学习——中断向量表的初始化_中断向量表什么时候初始化-CSDN博客 F28335中断系…

【计算机毕业设计】SSM汽车维修预约平台

项目介绍 本项目分为前后台,前台为普通用户登录,后台为管理员登录; 管理员角色: 管理员登录,新增管理员信息,查看管理员信息,查询管理员信息,查看用户信息列表,查询用户信息,新增新闻公告,查看新闻公告,查询新闻公告,新增配件类…

matplotlib范围曲线简例

想在画(平均)loss 曲线时顺便表示方差,即每一个 epoch 的平均 loss 用 plot 画曲线,而在曲线周围用一个浅色区域表示方差。效果: 参考 [1-3],用到 matplotlib.pyplot.fill_between 函数。为显示对浅色区及…

不吹不黑,辩证看待开发者是否需要入坑鸿蒙

前言 自打华为2019年发布鸿蒙操作系统以来,网上各种声音百家争鸣。尤其是2023年发布会公布的鸿蒙4.0宣称不再支持Android,更激烈的讨论随之而来。 本文没有宏大的叙事,只有基于现实的考量。 通过本文,你将了解到: Har…

Python列表推导式(for表达式)及用法

for 表达式(列表推导式)用于利用其他区间、元组、列表等可迭代对象创建新的列表。 for 表达式的语法格式如下: [表达式 for 循环计数器 in 可迭代对象] 从上面的语法格式可以看出,for 表达式与普通 for 循环的区别有以下两点&a…

什么是JavaScript

文章目录 一、❄️什么是JavaScript?二、❄️JavaScript的特点三、❄️JavaScript的组成🧫1、核心(ECMAScript)🧿2、文档对象模型(DOM)🥏3、浏览器对象模型(BOM&#xff…

深入理解MySQL索引底层数据结构

听课问题(听完课自己查资料) 什么是二叉树 二叉树是怎么存储数据的一个链表是一个集合的数据结构 List是怎么便利找到指定下标元素为什么会快?什么是红黑树 红黑树是怎么存储数据的什么是B TREE 是怎么存储数据的什么是BTREE 是怎么存储数据的 疑惑答案 a. 二叉树…

SQL性能优化-索引

1.性能下降sql慢执行时间长等待时间长常见原因 1)索引失效 索引分为单索、复合索引。 四种创建索引方式 create index index_name on user (name); create index index_name_2 on user(id,name,email); 2)查询语句较烂 3)关联查询太多join&a…

如何学习TS?

文章目录 一. 8种内置基础类型.ts二. void、never、any、unknown类型void类型never类型any类型unknown类型总结:void和any在项目中是比较常见的,never和unknown不常用。 三. 数组和函数类型定义.ts四. 元组与交叉类型使用元组数组一般有同类型的值组成&a…

ubuntu 20.04 自由切换 python 的版本

问题描述 当前 ubuntu 20.04 默认安装了多个 python 的版本,执行 python 时,默认版本是 Python 2.7.18 zhangszzhangsz:~$ python Python 2.7.18 (default, Jul 1 2022, 12:27:04) [GCC 9.4.0] on linux2 Type "help", "copyright&quo…

url编码未转义导致参数丢失

原来的请求: "&url${ctx}/loanform/risk/loanItemRiskItemReport/main.ht?baseProductType${baseProductType}""&itemReportId"itemReportId修改后: 原因:请求地址拼接时,会判断name为url的属性是…

多模态大模型的前世今生

1 引言 前段时间 ChatGPT 进行了一轮重大更新:多模态上线,能说话,会看图!微软发了一篇长达 166 页的 GPT-4V 测评论文,一时间又带起了一阵多模态的热议,随后像是 LLaVA-1.5、CogVLM、MiniGPT-5 等研究工作…

Impala4.x源码阅读笔记(三)——Impala如何管理Iceberg表元数据

前言 本文为笔者个人阅读Apache Impala源码时的笔记,仅代表我个人对代码的理解,个人水平有限,文章可能存在理解错误、遗漏或者过时之处。如果有任何错误或者有更好的见解,欢迎指正。 上一篇文章Impala4.x源码阅读笔记&#xff0…

simulink代码生成(五)——ePWM模块初级应用

前面分别讲到了SCI及ADC的配置及使用,现在梳理一下ePWM的配置和使用; 先打一些基础的DSP28335的基础知识; F28335 关于ePWM中断与SOC采样信号的一些思考_socasel-CSDN博客 F28335 ePWM模块简介——TMS320F28335学习笔记(四&…

软件开发必知必会的计算机基础

1.计算机基本介绍 1.1 什么是计算机 计算机(Computer)俗称为电脑,计算机是一种高速计算的电子机器,计算机可以进行数值运算,逻辑判断,接收或者是存储信息数据(文本、图片、音频、视频),按照存储在其内部的程序对海量的…

5.微服务代码模型

1.微服务代码模型 代码分层 在微服务代码模型里,我们分别定义了用户接口层、并分别为它们建立了interfaces、application、domain和infrastructure四个一级代码目录; interfaces(用户接口层): 它主要存放用户接口层与前端应用交互、数据转换和交互相关…

Ultra ISO 虚拟光驱修改光盘盘符

windows xp 环境 ultra iso 虚拟光驱修改光盘盘符 method 1. 在ultra iso 中 [选项]->[配置]->[虚拟光驱],在新盘符里选指定盘符 ->[修改] method 2. 打开命令行,进入安装目录,如 "C:\Program Files\UltraISO\drivers"&…