蓝牙物联网灯控设计方案

蓝牙技术是当前应用最广泛的无线通信技术之一,工作在全球通用的 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.rhkb.cn/news/228646.html

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

相关文章

Unity坦克大战开发全流程——结束场景——失败界面

结束场景——失败界面 在玩家类中重写死亡函数 在beginPanel中锁定鼠标

关键字:throw关键字

在 Java 中,throw关键字用于抛出异常。当程序执行过程中发生意外情况,如错误的输入、资源不足、错误的逻辑等,导致程序无法正常执行下去时,可以使用throw关键字抛出异常。 以下是使用throw关键字的一些示例: 抛出异常…

【Linux--多线程同步与互斥】

目录 一、线程互斥1.1相关概念介绍1.2互斥量mutex1.3互斥量接口1.3.1初始化互斥量1.3.2销毁互斥量1.3.3互斥量加锁1.3.4互斥量解锁1.3.5使用互斥量解决上面分苹果问题 1.4互斥原理 二、可重入与线程安全2.1相关概念2.2常见线程不安全的情况2.3常见不可重入的情况2.4 可重入与线…

Python+Django 构建实验室药品管理和预警系统【源码】

人生苦短,我用 Python。 今天给大家分享一个完整的实战案例:Python实现实验室药品管理和预警系统,文末附完整代码! 在线演示环境 项目演示地址:http://101.34.18.118:8002/ (图片未压缩,所以加载有点慢&…

穷举vs暴搜vs深搜vs回溯vs剪枝

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析(3) 目录 👉🏻全排列👉&#…

浅析锂电池保护板(BMS)系统设计思路(四)SOC算法-扩展Kalman滤波算法

1 SOC估算方法介绍 电池SOC的估算是电池管理系统的核心,自从动力电池出现以来,各种各样的电池SOC估算方法不断出现。随着电池管理系统的逐渐升级,电池SOC估算方法的效率与精度不断提高,下面将介绍常用几种电池SOC估算方法[1]&…

unknown variable ‘authentication_policy=mysql_native_password‘

unknown variable authentication_policymysql_native_password 背景解决尝试一尝试二(解决) 总结 背景 mac上安装多个版本数据库。我是通过dmg安装的,先装的5.7,再装的5.8,然后5.8的能正常用,5.7的启动不起来。报错信息为如下 …

Django 学习教程- Django模板(Template)

系列 Django 学习教程-介绍与安装-CSDN博客 Django 学习教程- Hello world入门案例-CSDN博客 前言 在上一章节中我们使用django.http.HttpResponse() 来输出 "Hello World!"。该方式将数据与视图混合在一起,不符合 Django 的 MTV 思想。 本…

node 项目中 __dirname / __filename 是什么,为什么有时候不能用?

__dirname 是 Node.js 中的一个特殊变量,表示当前执行脚本所在的目录的绝对路径。 __filename 同理,是 Node.js 中的一个特殊变量,表示当前执行脚本的绝对路径,包括文件名。 在 Node.js 中,__dirname / __filename是…

Primavera Unifier 项目控制延伸:Phase Gate理论:2/3

阶段Gate的具体内容: 阶段0 根据公司需要和资源现状,决定开展哪些项目。在这个阶段,公司一般需要开展一些脑力风暴或者团队集思广益的活动以获得足够多的点子。一旦团队决定采用某个想法,必须从各个维度去完善它,并使…

Linux服务器搭建笔记-006:拓展/home目录容量

一、问题说明 Ubuntu服务器在使用过程中创建的新用户,每位用户会在/home目录下生成一个属于其个人的主文件夹。如果不限制各个用户的使用空间,所有的用户都会共用/home所挂载的硬盘。在这种多用户情况下,会很快的填满/home目录,导…

B2005 字符三角形(python)

a input() print( a) print( a a a) print(a a a a a)python中默认输入的是字符型,第一句就是输入了一个字符赋给a python中单引号内的也是字符串,用print输出需要连接的字符串时用加号加在后面即可

HarmonyOS应用开发-搭建开发环境

本文介绍如何搭建 HarmonyOS 应用的开发环境,介绍下载安装 DevEco Studio 开发工具和 SDK 的详细流程。华为鸿蒙 DevEco Studio 是面向全场景的一站式集成开发环境,面向全场景多设备,提供一站式的分布式应用开发平台,支持分布式多…

2024年人工智能领域10大预测

2023年人工智能领域如果只能筛选一个关键词的话,恐怕非“大模型”莫属。大模型的发展在过去一年中,让各行各业发生了天翻地覆的变化,有企业因大模型而新生,有企业因大模型而消亡。企业的变迁跟技术迭代息息相关,而大模…

C# MVC +Layui侧边导航栏的收缩及展开

目录 1、头部代码 2、侧边栏&#xff08;例子只写了一级导航&#xff0c;需要多级可自行添加&#xff09; 3、body内容填充 4、 JS 1、头部代码 <div class"layui-layout layui-layout-admin"> <div class"layui-header"> …

27 UVM queue

uvm_queue类构建一个动态队列&#xff0c;该队列将按需分配并通过引用传递。 uvm_queue类声明&#xff1a; class uvm_queue #( type T int ) extends uvm_object 1 uvm_queue class hierarchy 2 uvm_queue class Methods 3 UVM Queue Example 在下面的示例中&#xff0c;…

MySQL 数值函数,字符串函数与多表查询

MySQL像其他语言一样,也提供了很多库函数,分为单行函数和分组函数(聚合函数),我们这里先简易介绍一些函数,熟悉就行,知道怎么使用即可. 数值函数 三角函数 指数与对数函数 进制间的转换函数 字符串函数 注:LPAD函数是右对齐,RPAD函数是左对齐 多表查询 注:如果为表起了别名,就…

easyx的窗口函数

文章目录 前言一、EasyX的颜色二、EasyX的坐标和设备1&#xff0c;EasyX的坐标2&#xff0c;EasyX的设备 三、窗口函数1&#xff0c;初始化窗口函数2&#xff0c;关闭绘图窗口3&#xff0c;设置窗口背景板颜色4&#xff0c;清空绘图设备 前言 easyx是针对c的图形库&#xff0c;…

[ffmpeg系列 02] 音视频基本知识

一 视频 RGB&#xff1a; AV_PIX_FMT_RGB24, ///< packed RGB 8:8:8, 24bpp, RGBRGB… Y&#xff1a;明亮度, Luminance或luma, 灰阶图&#xff0c; UV&#xff1a;色度&#xff0c;Chrominance或Chroma。 YCbCr: Cb蓝色分量&#xff0c;Cr是红色分量。 取值范围&#xff…

判断电话号码是否重复-excel

有时候重复的数据不需要或者很烦人&#xff0c;就需要采取措施&#xff0c;希望以下的方法能帮到你。 1.判断是否重复 方法一&#xff1a; 1&#xff09;针对第一个单元格输入等号&#xff0c;以及公式countif(查找记录数的范围&#xff0c;需要查找的单元格&#xff09; 2…