基于HT32的智能家居demo(蓝牙上位机)

        参加合泰杯作品的部分展示,基于HT32的智能家居,这里展示灯光的相关控制,是用蓝牙进行的数据透传,参考了一些资料,美化封装了一下之前的上位机界面。

        成果展示

        点击主界面的蓝牙设置,进行连接,下面已经成功连接上,并且接收到了HT32单片机测量到的温湿度数据。

LED关闭 最右侧的LED

 LED打开

开关灯的协议指令,控制台输出

 

        设计过程

                HT32单片机部分 (仅展示LED)

                        使用的是开发板自带的LED,只需要控制对于引脚输出的电平就可以控制LED的亮灭。

#ifndef _LED_H_
#define _LED_H_#include "ht32f5xxxx_ckcu.h"
#include "ht32f5xxxx_gpio.h"//端口号定义
#define HT_GPIO_PORT HT_GPIOC 
//LED引脚定义
#define HT_GPIO_PIN  (GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_10|GPIO_PIN_11)//LED1 LED2 宏定义开和关
#define LED1_ON() 	GPIO_WriteOutBits(HT_GPIO_PORT,GPIO_PIN_14,RESET)
#define LED1_OFF()  GPIO_WriteOutBits(HT_GPIO_PORT,GPIO_PIN_14,SET)#define LED2_ON() 	GPIO_WriteOutBits(HT_GPIO_PORT,GPIO_PIN_15,RESET)
#define LED2_OFF()  GPIO_WriteOutBits(HT_GPIO_PORT,GPIO_PIN_15,SET)#define A1_ON() 	GPIO_WriteOutBits(HT_GPIO_PORT,GPIO_PIN_11,RESET)
#define A1_OFF()  GPIO_WriteOutBits(HT_GPIO_PORT,GPIO_PIN_11,SET)#define B1_ON() 	GPIO_WriteOutBits(HT_GPIO_PORT,GPIO_PIN_12,RESET)
#define B1_OFF()  GPIO_WriteOutBits(HT_GPIO_PORT,GPIO_PIN_12,SET)
void Led_Init(void);
#endif

                蓝牙模块使用的是BT04,本来打算采用官方的模块,奈何焊接技术不行,

                使用的单片机引脚接入,  PA2 rX 和  PA3 tX 串口0 printf指向蓝牙(进行单片机向上位机的数据传输)这里简单的配置一下串口就行,和stm32类似。

                 QT蓝牙上位机部分 

                    目录展示:目录有四部分

        先进行的是my_custom的设计,里面设计了按钮开关(之前的博客做过)和其他需要使用的控件,因为qt本身的控件并没有滑动开关,所以这里重写绘画和鼠标点击事件进行滑动按钮的设置,在外面进行调用即可,QT可以进行封装到其他项目使用(但是我没有成果,所以只能在项目中进行调用)

        之后我进行的是device文件夹的设计,里面就是设计的是灯相关的,需要调用my_custom里卖弄的控件,所以放在第二步,这里很关键的一点是要设置一个信号(可以后面设计了蓝牙再进行添加),用于进行蓝牙的数据传输(我直接在这里面调用蓝牙的socket进行传输失败(遇到数不清的erro),还是得在主界面里面使用信号槽机制)

                        

                     

        然后是设计的蓝牙部分,蓝牙部分就是之前博客做的蓝牙上位机直接移植了过来。区别是这里要添加一个槽函数,用于发送信息。

                

             最后是再主界面中进行编写,将两边connect起来

                      (上位机部分参考了b站老徐的作品:链接(博主使用的是tcp)【开源项目】Qt智能家居案例。源码请从简介获取。_哔哩哔哩_bilibili)

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

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

相关文章

Rust调用同级目录中的rs文件和调用下级目录中的rs文件

一、Rust调用同级目录中的rs文件 Rust新建工程demo02,src文件夹下面新建test.rs文件,这样main.rs文件与它属于同级目录中。 关键点:导入test文件和test文件中的Ellipse模块 mod test;//导入test模块(文件) use test…

iview碰到的一些问题总结

iview tabs嵌套使用问题 tabs嵌套使用的时候不是直接套用行了&#xff0c;直接套用会出现内层tab都集成到一级tab去&#xff0c;需要设置该属性指向对应 Tabs 的 name 字段(需要版本大于3.3.1) <Tabs name"tab1" ><TabPane label"标签1" tab&qu…

【程序员英语】【美语从头学】初级篇(入门)(笔记)Lesson 16 At the Shoe Store 在鞋店

《美语从头学初级入门篇》 注意&#xff1a;被 删除线 划掉的不一定不正确&#xff0c;只是不是标准答案。 文章目录 Lesson 16 At the Shoe Store 在鞋店对话A对话B笔记会话A会话B替换 Lesson 16 At the Shoe Store 在鞋店 对话A A: Do you have these shoes in size 8? B:…

FL Studio All Plugins Edition2024中文完整版Win/Mac

FL Studio All Plugins Edition&#xff0c;常被誉为数字音频工作站&#xff08;DAW&#xff09;的佼佼者&#xff0c;是音乐制作人和声音工程师钟爱的工具。它集音频录制、编辑、混音以及MIDI制作为一体&#xff0c;为用户提供了从创作到最终作品输出的完整工作流程。这个版本…

第 1 章 微信小程序与云开发从入门到实践从零开始做小程序——开发认识微信小程序

小北的参考工具书 小程序开发的图书并不少&#xff0c;这本书仍然值得你拥有&#xff01; 首先&#xff0c;这是一本全栈小程序开发教程&#xff0c;循序渐进&#xff0c;由浅入深&#xff0c;介绍了小程序开发你想了解的方方面面&#xff0c;包括近其小程序开发的各种新技术应…

如何避免在绩效考核评分时“脸盲”

对于大型企业来说&#xff0c;如何保证在绩效考核评分时准确快速地回忆起员工的日常表现&#xff0c;已经成为困扰管理者的难题。由于大型企业员工数量众多且业务模块繁杂&#xff0c;公司领导很难对每个员工的工作情况都了如指掌。这导致在绩效考核评分时&#xff0c;公司领导…

利用R语言进行典型相关分析实战

&#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#xff0c;参与研究经费10w、40w级横向 文…

Python爬虫实战:从API获取数据

引言 在现代软件开发中&#xff0c;API已经成为获取数据的主要方式之一。API允许不同的软件应用程序相互通信&#xff0c;共享数据和功能。在本文中&#xff0c;我们将学习如何使用Python从API获取数据&#xff0c;并探讨其在实际应用中的价值。 目录 引言 二、API基础知识 …

辽宁博学优晨教育视频剪辑培训探索学习新意义

在当今数字化快速发展的时代&#xff0c;视频已成为信息传达的重要载体。辽宁博学优晨教育视频剪辑培训应运而生&#xff0c;不仅为学员提供了专业的学习平台&#xff0c;更在探索学习的意义方面赋予了新的内涵。 视频剪辑作为现代媒体行业的重要技能&#xff0c;其学习意义不仅…

【计算机图形学】Where2Act: From Pixels to Actions for Articulated 3D Objects

文章目录 1.论文做了件什么事儿2. 论文为什么要做这件事3. 介绍Introduction4. 相关工作预测语义表达推理几何和物体属性从被动观察中学习Affordance从交互中学习感知 5. 问题陈述6. 方法6.1 网络模块主干特征提取器可运动性评分模块运动建议模块运动评分模块 6.2 训练数据收集…

编曲学习:高叠和弦 挂留和弦 和弦实战应用

高叠和弦 挂留和弦 和弦实战应用小鹅通-专注内容付费的技术服务商https://app8epdhy0u9502.pc.xiaoe-tech.com/live_pc/l_65d4826fe4b04c10a1310517?course_id=course_2XLKtQnQx9GrQHac7OPmHD9tqbv 七和弦 以三和弦举例,三和弦上面叠一个三度的音,就变成了七和弦。 从下到…

消息中间件篇之Kafka-高可用机制

一、 集群模式 1. Kafka的服务器端由被称为Broker的服务进程构成&#xff0c;即一个Kafka集群由多个Broker组成。 2. 这样如果集群中某一台机器宕机&#xff0c;其他机器上的 Broker 也依然能够对外提供服务。这其实就是 Kafka 提供高可用的手段之一。 二、分区备份机制 1. 一个…

英语四级,求职的必备项?【文章底部添加可得内推码汇总表】

目录 英语四级&#xff1a;求职的砝码 提升职业竞争力 国内外机会双丰收 系统备考英语四级 实际运用英语 强调英语四级证书 在当今全球化的职场中&#xff0c;英语四级证书愈发成为求职的必备项。它不仅仅是一张证书&#xff0c;更是通向更广阔职业世界的关键通行证。本文…

【自然语言处理四-从矩阵操作角度看 自注意self attention】

自然语言处理四-从矩阵操作角度看 自注意self attention 从矩阵角度看self attention获取Q K V矩阵注意力分数softmax注意力的输出再来分析整体的attention的矩阵操作过程从矩阵操作角度看&#xff0c;self attention如何解决问题的&#xff1f;W^q^ W^k^ W^v^这三个矩阵怎么获…

前后端分离nodejs+vue高校教材征订系统47nia

本教材管理网站是为了提高用户查阅信息的效率和管理人员管理信息的工作效率&#xff0c;可以快速存储大量数据&#xff0c;还有信息检索功能&#xff0c;这大大的满足了学生、教师和管理员这三者的需求。操作简单易懂&#xff0c;合理分析各个模块的功能&#xff0c;尽可能优化…

Window系统本地搭建LightPicture网站并实现远程上传下载本地图片

文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进&#xff0c;功能也越来越多&#xff0c;而手机…

leetcode 2867. 统计树中的合法路径数目【筛质数+贡献法】

原题链接&#xff1a;2867. 统计树中的合法路径数目 题目描述&#xff1a; 给你一棵 n 个节点的无向树&#xff0c;节点编号为 1 到 n 。给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges &#xff0c;其中 edges[i] [ui, vi] 表示节点 ui 和 vi 在树中有一条边。 …

【服务器数据恢复】ext3文件系统下硬盘坏道掉线的数据恢复案例

服务器数据恢复环境&#xff1a; 一台IBM某型号服务器上有16块FC硬盘组建RAID阵列。上层linux操作系统&#xff0c;ext3文件系统&#xff0c;部署有oracle数据库。 服务器故障&检测&#xff1a; 服务器上跑的业务突然崩溃&#xff0c;管理员发现服务器上有2块磁盘的指示灯…

PyQt6的开发流程(密码生成小程序为例)

PyQt6的开发流程&#xff08;密码生成小程序为例&#xff09; 文章目录 PyQt6的开发流程&#xff08;密码生成小程序为例&#xff09;一、流程介绍与概览1. 界面与逻辑分离的开发流程2. PyQt6的开发流程 二、打开 designer.exe 创建文件三、用QT设计师绘制界面保存成ui1. QT常用…

Android之UI Automator框架源码分析(第九篇:UiDevice获取UiAutomation对象的过程分析)

前言 通过UiDevice的构造方法&#xff0c;UiDevice对象持有的几个对象一部分是在构造方法中创建的&#xff08;初始化&#xff09;&#xff0c;它持有的每个对象都是分析的重点 备注&#xff1a;当前对象持有的对象&#xff0c;它的位置一般在实例变量创建时或者构造方法中&…