本项目基于STM32F0系列MCU设计了一款完整的智能马桶主控系统,功能覆盖电控加热、风机控制、阀体控制、蓝牙通信、健康数据上报等模块,同时提供配套Flutter手机App用于交互。...1.蓝牙ID配置修改conBan.dart中的蓝牙ID即可完成配对:展开代码语言:DartAI代码解释var_BTid="00:15:83:00:AB:00";如果不知道设备ID,可直接运行调试模式,App...会自动scan并打印扫描到的蓝牙地址,在控制台查看后填入即可。...2.按键事件与电池hold动作冲突由于按键IO与hold电池供电逻辑共用部分通道,可能导致:冲水动作中断电→冲水无法停止需要再次按下按键才能恢复临时解决方案:除停电冲水外,不持续holddcs_pin。...3.风温档位切换会导致计时器停止原因:计时器设置了“为0后自动停止”,切换档位时触发该逻辑导致停止。将在项目收尾后统一更新。
蓝牙是短距离无线通信的一种方式,支持蓝牙的两个设备必须配对后才能通信。HarmonyOS蓝牙主要分为传统蓝牙和低功耗蓝牙(通常称为BLE,Bluetooth Low Energy)。...传统蓝牙 HarmonyOS传统蓝牙提供的功能有: 传统蓝牙本机管理:打开和关闭蓝牙、设置和获取本机蓝牙名称、扫描和取消扫描周边蓝牙设备、获取本机蓝牙profile对其他设备的连接状态、获取本机蓝牙已配对的蓝牙设备列表...通常发送广播的外围设备作为服务端,负责扫描的中心设备作为客户端。 HarmonyOS低功耗蓝牙提供的功能有: BLE扫描和广播:根据指定状态获取外围设备、启动或停止BLE扫描、广播。...约束与限制 调用蓝牙的打开接口需要ohos.permission.USE_BLUETOOTH权限,调用蓝牙扫描接口需要ohos.permission.LOCATION权限和ohos.permission.DISCOVER_BLUETOOTH...传统蓝牙本机管理 场景介绍 传统蓝牙本机管理主要是针对蓝牙本机的基本操作,包括打开和关闭蓝牙、设置和获取本机蓝牙名称、扫描和取消扫描周边蓝牙设备、获取本机蓝牙profile对其他设备的连接状态、获取本机蓝牙已配对的蓝牙设备列表
开始连接某设备时停止扫描设备,停止循环获取已连接设备; 连接成功后停止扫描设备,停止循环获取已连接设备。...获取已配对的蓝牙设备 需要注意的是,参数 services(Array)是必填的,但是官方示例中以及各种坑爹 demo 里从没见过有谁填写。不填写这个属性此方法,将无法获取到任何已配对设备。...开启连接后,为了避免出现冲突,一旦开启连接,则需要终止扫描附近蓝牙设备、终止读取本机已配对设备。 7....意外处理 如果扫描到的设备中没有想要连接的设备,可以尝试使用系统蓝牙手动配对,然后再小程序中调用 getConnectedBluetoothDevices() 获取本机已配对的蓝牙设备,然后过滤设备(可能获取多个已配对的蓝牙设备...这时候,我们需要则开启重新获取已配对蓝牙设备,并开启扫描附近蓝牙设备。 ? 10.
以前开发蓝牙通讯,还需要实现蓝牙配对。需要主动跳转到手机设置界面进行PIN码配对,然后配对通过之后才能进行蓝牙链接。...} 其实,我们只需要蓝牙状态的监听就可以了BluetoothAdapter.ACTION_STATE_CHANGED 其他的设备查找,配对。...也就是说这个方法中会触发多次回调, 所以建议,在扫描到我们的蓝牙设备之后,主动调用scanner.stopScan(callback);停止扫描。 PS:这种查找方式,不会触发蓝牙的遍历广播。...我们通过bluetoothAdapter 查找到蓝牙设备之后,再通过GATT服务进行蓝牙设备与手机之间的配对。直接比对UUID,而不再需要PIN码进行配对了。...(PS:有些安全性要求比较高的设备,还是会需要主动进行PIN码配对。PIN配队就只能通过系统设备界面中的蓝牙功能项进行操作了。) 通过GATT服务连接成功后。
事实上,您无需通过编码来启用 Fast Pairing,除非您希望在自己的配套应用中处理配对操作,而不是让 API 来帮您完成配对。 配对过程只有三个步骤: 确保您的外围设备符合所有的注册要求。...设备型号已在 Google 注册完毕。 当用户需要配对时,您的设备会呈现在他们的手机上。(如图 1 所示,步骤 1 中收集到的信息将会展示给用户)。...您的用户只需要点击该按钮即可实现设备配对,随后他们就可以享受愉快与轻松的体验了。...这是可选的,因为使用此功能时,您的外围设备需要告知中枢设备数据缓冲区已满——这意味着外围设备的固件和配套应用需要做一些工作,才能对数据执行任意处理。...除了让配对更加方便以外,Fast Pair 还提供了其他一些很棒的功能,包括帮助用户定位到放错位置的设备,并提示设备安装对应的配套应用等。
3、 判断蓝牙适配器可用时开启扫描蓝牙设备和开启获取已连接的蓝牙设备 4、 如果开启扫描蓝牙设备失败5s后自动再次开启扫描 5、 开启扫描蓝牙设备成功后开启监听已扫描的设备 6、 如果已扫描到的新设备含...9、 开始连接某设备时停止扫描设备,停止循环获取已连接设备。 10、连接成功后停止扫描设备,停止循环获取已连接设备。 示意图: ?...开启连接后为了避免出现冲突,一旦开启连接则终止扫描附近蓝牙设备,终止读取本机已配对设备。...则开启重新获取已配对蓝牙设备,并开启扫描附近蓝牙设备。...11、手动连接,上文介绍的方法是为了直接自动连接,如果不需要自动连接,可在使用方法getBluetoothDevices() 将会获取到已扫描到的蓝牙设备的列表,可以做个页面显示出设备名,点击该设备开始连接
蓝牙设备连接 蓝牙的连接过程 获取->配对->连接 权限 首先需要AndroidManifest.xml文件中添加操作蓝牙的权限。...// mBluetoothAdapter.enable(); } 获取本地蓝牙信息和已配对设备 连接中的设备不能在搜索回调中获取 只能在以配对设备中获取 //获取本机蓝牙名称 String name...停止搜索 mBluetoothAdapter.cancelDiscovery(); 设置蓝牙可见性 有时候扫描不到某设备,这是因为该设备对外不可见或者距离远,需要设备该蓝牙可见,这样该才能被搜索到。...而通过listenUsingInsecureRfcommWithServiceRecord创建的RFCOMM Bluetooth socket是不安全的,连接时不需要进行配对。...先扫描周围的蓝牙设备,如果扫描到指定设备则进行连接。
##鸿蒙开发能力 ##HarmonyOS SDK 应用服务 ##鸿蒙金融类应用 (金融理财 #一、蓝牙配对业务流程1.设备进入可被发现模式:首先,设备需要进入可被发现模式,这样周围的蓝牙设备才能识别到它...一方设备(如手机)会主动搜索附近的蓝牙设备,并列出所有可用的配对选项。2.选择并触发配对请求:用户从列表中选择想要连接的设备,并触发配对请求。...此时,双方设备会交换一系列的身份验证信息,以确保彼此的身份安全无误。在这个过程中,可能会要求用户输入配对码(如PIN码)或在设备上确认配对请求。...蓝牙配对通常是一次性的,即一旦设备成功配对,它们会在后续的连接中自动识别并连接,无需再次进行配对过程(除非设备被重置或用户手动取消配对)以下是传统的蓝牙配对流程图仅供参考:二、常规蓝牙配对Demo效果:...(err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message); } } /** * 停止蓝牙扫描
每个设备上的SVR数据库中的oic.sec.cred资源也应该持有用于相互验证和证书验证的凭据。在两台设备通过配套应用程序配对时,客户端凭据会被交换并安装在服务器上。...为了能让设备和配套应用在随后的交互期间相互认证,我们需要将所有者凭据提供给设备。...[图10:使用Companion应用程序与无主服务器建立所有权] 将客户端与服务器配对 客户端和服务器设备同时启用后,配套应用的凭证已安装到两台设备的oic.sec.cred资源中,现在,配套应用已被客户端和服务器所信任...但是,为了能让客户端和服务器通过相互认证的安全通道进行交互,他们还需要拥有对方的凭据。 配套应用通过Device ID来识别客户端和服务器。单击所需设备的复选框,然后按菜单栏中的按钮将所选设备配对。...加入网络的其他客户端需要经过相同的认证过程才能进行访问服务器。 通过这些技术,包括相互认证,资源访问控制,数据传输层保护机制等,OCF完成了物联网设备间资源机密性保护,确保了消息的完整性和稳健性。
无需 iPhone 配套应用,利用您已有的设备即可实现智能化的安全防护。功能特性自动解锁:当配对的 BLE 设备靠近 Mac 时,自动为您解除登录屏幕锁定。...自动锁定:当配对的 BLE 设备离开 Mac 一定距离后,自动锁定屏幕。广泛兼容:支持任何定期发送信号且具有静态 MAC 地址的 BLE 设备,无需专用 App。...使用说明首次运行 BLEUnlock 需要进行以下设置:授予权限:应用会依次请求必要的系统权限,请务必全部允许:蓝牙:用于扫描和连接设备。辅助功能:用于模拟按键以解锁屏幕。...选择设备:点击菜单栏中的 BLEUnlock 图标。从“设备”子菜单中,选择“扫描设备...”。从扫描到的列表中选择您要用于触发解锁/锁定的 BLE 设备(如您的 iPhone)。...配对成功后,图标将变为实心,功能即刻生效。配置选项(通过菜单栏图标):解锁信号强度:设置触发解锁所需的蓝牙信号强度阈值。值越大,设备需要离 Mac 越近才能解锁。
) 与外设搭建RFCOMM通道(射频通道) 蓝牙设备双向数据传输 蓝牙聊天室案例框架 蓝牙权限 执行蓝牙通信需要权限BLUETOOTH, 例如:请求连接、接收连接和传输数据等; 如果需要启动设备...——查找配对过的设备 getBondedDevices():返回已配对设备的一组BluetoothDevice Set pairedDevices = mBluetoothAdapter.getBondedDevices...,令之停止扫描,重新开始扫描 mBluetoothAdapter.cancelDiscovery(); }...mBluetoothAdapter.startDiscovery();//异步函数 } }); 运行之后点击“已配对设备”按钮,显示已配对蓝牙设备的信息: ?...,令之停止扫描,重新开始扫描 mBluetoothAdapter.cancelDiscovery(); }
其实,在进行扫描后,获取的设备列表与可配对设备列表缓存在一起,这部分在介绍扫描处介绍 ii>,设备列表加载到屏幕 现在不论是已配对设备或是附近可用设备均缓存在同一列表,所以两个列表的加载类似,附近可用设备列表显示时会有一个...,监听蓝牙相关的变化,比如蓝牙状态改变ACTION_STATE_CHANGED等等,有需要的可以看下。...如果没有配对,就进行配对 配对程序如下,在进行配对时首先检查远程设备是否正在配对,如果是,就返回true,如果没有在配对就现将本机的蓝牙配对状态设为true表示正在配对,紧接着停止蓝牙的扫描操作,与远程设备进行配对...停止扫描:BluetoothAdapter----cancelDiscovery(). 判断是否正在扫描:BluetoothAdapter----isDiscovery()....停止对BLE设备的扫描:BluetoothAdapter----stopLeScan(mLeScanCallBack). ii>,各种广播相关参考网址,这是一个API在线文档,解释的很清楚 http:/
); registerReceiver(mBluetoothReceiver, filter); 监听扫描结果 通过广播接收者查看扫描到的蓝牙设备,每扫描到一个设备,系统都会发送此广播(BluetoothDevice.ACTION_FOUNDE...,这是因为该设备对外不可见或者距离远,需要设备该蓝牙可见,这样该才能被搜索到。...而通过listenUsingInsecureRfcommWithServiceRecord创建的RFCOMM Bluetooth socket是不安全的,连接时不需要进行配对。...先扫描周围的蓝牙设备,如果扫描到指定设备则进行连接。...连接过程中会自动进行配对,需要双方同意才可以连接成功。
.蓝牙配对 搜索到蓝牙设备后,将设备信息填充到listview中,点击listiew则请求配对 蓝牙配对有点击配对和自动配对,点击配对就是我们选择设备两个手机弹出配对确认框,点击确认后配对 ...自动配对就是搜索到蓝牙设备后自动配对不需要输入pin码,但在基本开发中都不采用这种方式,所以这里说的是第一种配对方式 点击配对,调用 BluetoothDevice.class.getMethod...同样的,如果我们想要配对的设备取消配对 只需要将creatBond改为removeBond 2.蓝牙连接: 配对成功之后,就可以进行蓝牙连接了,蓝牙连接操作比较耗时,可以在一个线程中进行: 调用自己定义的...连接的时候要先判断蓝牙是否在扫描,如果在扫描就停止扫描,并且没有连接才进行连接,代码如下: if (bluetoothadapter.isDiscovering()) { bluetoothadapter.cancelDiscovery...在这里我们需要注意的是,当连接成功时,我们要让被连接的那部手机也自动跳转到聊天页面,所以我们要开启蓝牙服务端等待设备的连接,当设备连接时,自动跳转页面,蓝牙服务端代码如下: /** * 开启服务端
蓝牙配对 搜索到蓝牙设备后,将设备信息填充到listview中,点击listiew则请求配对 蓝牙配对有点击配对和自动配对,点击配对就是我们选择设备两个手机弹出配对确认框,点击确认后配对...自动配对就是搜索到蓝牙设备后自动配对不需要输入pin码,但在基本开发中都不采用这种方式,所以这里说的是第一种配对方式 点击配对,调用 BluetoothDevice.class.getMethod...: 同样的,如果我们想要配对的设备取消配对 只需要将creatBond改为removeBond 2.蓝牙连接: 配对成功之后,就可以进行蓝牙连接了,蓝牙连接操作比较耗时,可以在一个线程中进行: 调用自己定义的...连接的时候要先判断蓝牙是否在扫描,如果在扫描就停止扫描,并且没有连接才进行连接,代码如下: if (bluetoothadapter.isDiscovering()) { bluetoothadapter.cancelDiscovery...: 在这里我们需要注意的是,当连接成功时,我们要让被连接的那部手机也自动跳转到聊天页面,所以我们要开启蓝牙服务端等待设备的连接,当设备连接时,自动跳转页面,蓝牙服务端代码如下: /** * 开启服务端
在一个典型IoT场景中,用户需要首先将IoT设备与其配套的手机App进行连接,将手机作为IoT设备与网络通信的桥梁。...而根据蓝牙协议的规定,BLE设备在配对前需要广播它的UUID,报告其设备类型,移动应用据此寻找其支持的IoT设备并发起连接。 这个配对过程存在一个根本缺陷。...作者最终在Google应用商店的200万个应用中,识别到18166个应用中存在对BLE设备的扫描、连接行为,在这些应用中提取并去重后得到了13566个UUID。...这两种脆弱性存在的前提,是设备采用了Just Works方式配对,因为只有通过这种方式配对的连接,存在LTK被攻击者嗅探、通信被窃听的风险。 安卓BLE开发指南说明了两种安全的蓝牙配对方式。...针对IoT设备配套应用,对IoT设备配套应用的加固可以较好的防护攻击者的逆向分析与信息提取,大大增加自动化信息收集的难度。
使用场景:适用于需要了解或监控蓝牙设备page操作策略的场景。例如,在蓝牙设备配对过程中,了解page超时时间有助于判断配对过程是否成功以及是否需要延长超时时间以增加配对成功率。...使用场景:适用于需要了解蓝牙设备page扫描行为的应用场景,如蓝牙设备配对过程中,可以读取page扫描活动参数以优化配对速度和成功率。...通过调整超时时间,可以控制设备在多长时间内保持认证状态。 使用场景:在需要调整蓝牙设备认证状态保持时间的应用场景中,可以使用此命令。...Write Authentication Enable command 功能:该命令用于设置蓝牙设备是否启用认证功能。通过启用认证功能,可以确保只有经过验证的设备才能与蓝牙设备建立连接和通信。...通过调整这些参数,可以控制设备在何时进入保持模式以及在该模式下保持多长时间。 使用场景:在需要调整设备电源管理策略以优化性能和电池寿命的场景中,可以使用此命令。
实际通信只需要VCC、GND、TXD、RXD 四个引脚即可。 二、AT模式 HC-05有两种方式进入AT模式: 按下KEY键,然后再上电,上电后便进入AT模式,波特率38400。...正常上电,需要发送AT指令时,先按下KEY键再发送,波特率和当前通信波特率一致,默认值为9600。...,Param3 OK Param1:波特率(bits/s) Param2:停止位 Param3:校验位 AT+CMODE=Param OK Param:0——指定蓝牙地址连接模式(指定蓝牙地址由绑定指令设置...AT+INQ +INQ: Param1,Param2,Param3,OK 扫描蓝牙设备 Param1:蓝牙地址 Param2:设备类 Param3:RSSI信号强度 AT+INQC OK 取消扫描设备...s;停止位:1 位;校验位:无 ⑥.配对码:“1234” ⑦.设备名称:“HC-05”
GetDeviceMacAddress获取设备的MAC地址。AdvanceScan根据指定参数启动Wi-Fi扫描。...BleStopAdv停止发送广播。BleUpdateAdv更新advertising参数。BleSetSecurityIoCap设置蓝牙的IO能力为NONE,配对方式为justworks。...BleSetSecurityAuthReq设置蓝牙是否需要配对绑定。BleGattSecurityRsp响应安全连接请求。ReadBtMacAddr获取设备MAC地址。...BleSetScanParameters设置扫描参数。BleStartScan开始扫描。BleStopScan停止扫描。...BleGattsStopServiceEx传入gatt服务句柄,停止gatt服务。说明:不同版本接口可能存在差异,需要根据当前版本的具体文件进行适配。
Moltbot 是一个开源的个人 AI 助理,它的核心理念是“在你自己的设备上运行”。...AI Agent 决定是直接回复,还是需要使用工具来完成任务(例如,浏览网页、读取文件)。 如果需要使用工具,Gateway 会调用相应的工具模块执行操作。...GateWay 服务 可以使用以下命令来控制 Gateway 服务: 安装 Gateway: moltbot gateway install 启动 Gateway: moltbot gateway start 停止...相反,它会回复一个简短的、一次性的配对码。 你需要通过命令行手动批准这个用户,才能让他或她成为可信赖的联系人。...配套 AppMoltbot 提供了 macOS、iOS 和 Android 的配套应用。