玩转OpenHarmony智能家居:如何实现树莓派“碰一碰”设备控制

玩转OpenHarmony智能家居:如何实现开发版“碰一碰”设备控制 碰一碰”设备控制,依托NFC短距通信协议,通过碰一碰的交互方式,将OpenAtom OpenHarmony(简称“OpenHarmony”)标准系统设备和全场景设备连接起来,解决了应用与设备之间接续慢、传输难的问题,实现一碰拉起应用,为用户带来无缝切换的流畅体验。本文介绍了如何使用NFC实现OpenHarmony“碰一碰”设备控制。首先,需要基于A PN532模块驱动开发NFC智能感知的应用,实现设备间碰一碰发现的功能。 阅读详情

目录

一、简介

二、“碰一碰”设备控制场景

三、NFC拉起应用功能实现

四、LED小灯应用功能实现

五、总结

参考地址


一、简介

“碰一碰”设备控制,依托NFC短距通信协议,通过碰一碰的交互方式,将OpenAtom OpenHarmony(简称“OpenHarmony”)标准系统设备和全场景设备连接起来,解决了应用与设备之间接续慢、传输难的问题,实现一碰拉起应用,为用户带来无缝切换的流畅体验。

二、“碰一碰”设备控制场景

(1)使用效果

当树莓派开发板靠近小熊派开发板,树莓派中应用程序被拉起,进入LED小灯控制界面。然后,控制端和设备端完成配网通信连接,点击打开小熊派LED小灯点亮,点击关闭LED小灯熄灭。

(2)操作流程

• 在小熊派的NFC被动贴片中写入控制端应用信息

• 将树莓派的PN532主动板靠近小熊派NFC贴片,读取贴片中的应用信息,拉起对应的小灯控制应用

• 控制端和设备端完成配网通信连接

• 点击打开小熊派LED小灯点亮,点击关闭LED小灯熄灭

三、NFC拉起应用功能实现

近场通信(Near Field Communication,简称NFC),是一种新兴的技术,使用了NFC技术的设备可以在彼此靠近的情况下进行数据交换,是由非接触式射频识别(RFID)演变而来。NFC技术在现实场景中被广泛使用,通过在单一芯片上集成感应式读卡器、感应式卡片和点对点通信的功能,利用移动终端实现移动支付、门禁、移动身份识别、防伪等应用。NFC的点对点模式需要主动板和被动板两个模块,该案例中树莓派的PN532模块是主动板用于读取信息,小熊派开发板的NFC贴片是被动板用于保存信息。

int main(int argc, char **argv) {
    uint8_t buff[255];
    uint8_t uid[MIFARE_UID_MAX_LENGTH];
    int32_t uid_len = 0;
    PN532 pn532;
    PN532_I2C_Init(&pn532);
    if (PN532_GetFirmwareVersion(&pn532, buff) == PN532_STATUS_ERROR) {
        return -1;
    }
    PN532_SamConfiguration(&pn532);
    while (1) {
        while (1) {
            // 判断NFC模块是否靠近
            if (PN532_ReadPassiveTarget(&pn532, uid, PN532_MIFARE_ISO14443A, 1000) != PN532_STATUS_ERROR) {
                break;
            }
            usleep(100);
        }

        HILOGI("开始调起应用\r\n");
        pthread_t id1;
        int ret = pthread_create(&id1, NULL, (void *)mythread1, NULL);
        if (ret) {
            HILOGE("创建线程失败\r\n");
        }

        sleep(4);
    }
}
/*
 *拉起设备控制应用的线程
*/
void *mythread1(void) {
    char arg[500] = "aa start -d 1 -a com.huawei.ohos_car_controller.default -b ohos.samples.jshelloworld";
    system(arg);
    return NULL;
}

上述代码中,NFC功能的实现需要调用驱动文件中相应的接口函数。I2C_Init函数实现树莓派PN532模块的初始化。PN532_ReadPassiveTarget函数用于实现循环读取NFC贴片的UID信息,当读到小熊派NFC贴片信息时,创建新的线程拉起对应的LED灯应用。

四、LED小灯应用功能实现

该案例中LED小灯应用,主要基于TCP通信协议实现对小熊派LED小灯的打开和关闭控制。

import led_controller from '@ohos.led_controller';
export default {
    onShow() {
        this.tcpConnect();
    },
    onDestroy() {
        this.tcpDistroy();
    },
    tcpConnect() {
        let promise_connect = led_controller.Connect();
        promise_connect.then((results) => {
            setTimeout(this.changeText(), 9000);
        }).catch(err => {
            console.log('[led Controller]' + err)
        })
    },
    tcpSend(message) {
        let promise_send = led_controller.Send({
            data: message
        })
        promise_send.then((results) => {
            if (results.send_status == 1) {
                console.log("[led Controller] send success")
            }
        }).catch(err => {
            console.log("[led Controller]" + err)
        })
    },
    tcpDistroy() {
        let promise_disconnect = led_controller.Close()
        promise_disconnect.then((results) => {
            if (results.close_status == 1) {
                ConnectionStatus = 0
                prompt.showToast({
                    message: "网络断开",
                });
            }
        }).catch(err => {
            console.log("[led Controller]" + err)
        })
    },
    ledOpen() {
       this.tcpSend("1")
    },
    changeText() {
        prompt.showToast({
            message: "配网成功",
        });
    },
    ledClose() {
        this.tcpSend("0")
    }
}

上述代码中,通过import led_controller from '@ohos.led_controller'引入NAPI动态库,led_controller动态库中封装TCP通信相关的接口函数。

五、总结

本文介绍了如何使用NFC实现OpenHarmony“碰一碰”设备控制。首先,需要基于树莓派PN532模块驱动开发NFC智能感知的应用,实现设备间碰一碰发现的功能。然后,基于NAPI开发设备间的TCP通信业务,并在应用层调用接口函数实现LED小灯的开闭。除了文中分享的样例,开发者还可以通过拓展其他相关的属性和方法,实现更多好玩的、高性能的样例。

代码地址:

led-contrller-device: device:NFC框架中设备端应用代码

led-controller-application: application:NFC框架中控制端应用代码

参考地址

设备端源码

led-contrller-device: device:NFC框架中设备端应用代码

应用端源码

led-controller-application: application:NFC框架中控制端应用代码

知识体系

knowledge: 为OpenHarmony社区共建学习路径,开发样例,三方库,深度文章,直播课程,素材拓展等内容,并依托OpenHarmony官网呈现给开发者,帮助开发者快速查找学习资源,共同繁荣OpenHarmony社区。

鸿蒙OpenHarmony【@ohos.nfc.controller (标准NFC)】ArkTS API 本模块主要用于管理NFC状态,包括打开和关闭NFC,读取NFC的状态等。 阅读详情

相关推荐

OpenHarmony(鸿蒙南向开发)——标准系统移植指南(二)Linux内核

本文面向希望将OpenHarmony移植到三方芯片平台硬件的开发者,介绍一种借助三方芯片平台自带Linux内核的现有能力,快速移植OpenHarmony到三方芯片平台的方法。

maniuT的博客 1833

在树莓派4b上运行OpenHarmony3.2 Release

本篇主要讲解如何将OpenHarmony3.2 Release在树莓派4b上运行起来。

pjie131_的博客 3281

分享一种快速移植OpenHarmony Linux内核的方法

介绍一种借助三方芯片平台自带 Linux 内核的现有能力,快速移植 OpenHarmony 到三方芯片平台的方法。

m0_64420071的博客 2139

OpenHarmory数字管家碰一碰之读取NFC设备信息

通过NFC写入的应用调测助手可以看到DeviceId=ProductId_NodeId,而密钥也在其中,都写入到了NFC里面,那是不是开发板的程序不再写死ID和Secret,而是通过调测助手写入的内容读出来?内部已经集成了一个NFC的读写模块,其中的方法只是对应着小熊派Nano上的NFC的,其中已经写好了一段读取JSON配置的代码。因为不知道实际写入NFC是什么格式内容,只能尝试一下。这样就可以得到NFC里面的设备信息了,主函数再做些改造,能读取里面信息,也可以联网后保存在开发板中,脱离每次依赖NFC。

937

鸿蒙OpenHarmony【@ohos.nfc.cardEmulation (标准NFC-cardEmulation)】ArkTS API

本模块主要提供NFC卡模拟业务,包括判断支持哪种卡模拟类型,HCE卡模拟的业务实现等。 HCE(Host Card Emulation),称为基于主机的卡模拟,表示不依赖安全单元芯片,应用程序模拟NFC卡片,可以通过NFC服务和NFC读卡器通信。

hhhhhh2323的博客 1181

HarmonyOS开发:【NFC配置流程】

碰一碰是HarmonyOS具备的多终端业务协同技术。其依托NFC短距通信协议,通过碰一碰的交互方式,将手机和全场景设备连接起来。然后通过手机端的原子化服务能力,快速完成配网、远程控制的能力,解决了应用与设备之间接续慢、配网复杂、传输难的问题,为用户带来无缝切换的流畅体验。设备信息内容包括:华为IoTDA平台的Product ID、NodeID、配网方式以及对应的参数信息,如下列表格;所有信息需要写入到调测助手的自定义数据。

m0_62167422的博客 4292

搭建开源物联网平台教程

开源鸿蒙OpenHarmony 3.0 成功适配龙芯1C300B 芯片 物联网等领域。IT之家获悉,OpenHarmony 是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。目前OpenHarmony 最新的3.0 代码已支持ARM、破解IoT安全分析困境京东安全麒麟框架获国际安全界认可 搭建模拟环境,麒麟框架(Qiling Framework)的出现可谓解决了Io

神经网络爱好者 1227

鸿蒙HarmonyOS关于NFC碰一碰拉起FA

NFC碰一碰拉起FA

qq2582494的博客 2194

OpenHarmony 3.2realease for 树莓派4B下拉代码并编译遇到的问题及解决方法

报错如下:throw err:Error: Cannot find module 'semver'从官网下载nodejs替换到repo sync的安装路径下。

qq_38339669的博客 1396

RK3568 OpenHarmony3.2 NFC 适配(PN7150)I

接下来将会介绍基于RK3568、OpenHarmony3.2的NFC整体南向适配,这里采用的型号为PN7150。主要内容包括底层驱动移植,这里采用Linux Driver。上层则包括HDI实现层、框架层以及设备适配层的代码修改与实现。具体包括vendor_adaptor、hdi_service等;以及foundation下的frameworks、services等。除此之外,还包括相关三方库libnfc-nci在鸿蒙平台的移植和适配;整体相对比较复杂,将会分几篇文章介绍大致流程以及调试思路。

Martian_Jonas的博客 1749

RK3568 OpenHarmony3.2 NFC 驱动适配(PN7150)II

承接上文《RK3568 OpenHarmony3.2 NFC 驱动适配(PN7150)I》,继续PN7150 NFC模块的整体适配。本文主要介绍包括HDI实现层、框架层以及设备适配层的代码修改思路。具体包括vendor_adaptor、hdi_service等;以及foundation下的frameworks、services等。此外还包括相关三方库libnfc-nci在鸿蒙平台的移植和适配。需要注意的是,当前nfc适配只是基于作者手上的RK3568平台以及相关OpenHarmony3.2的代码。

Martian_Jonas的博客 1359

OpenHarmony3.0在树莓派3B上的烧录与通讯

OpenHarmony3.0已于2021年9月30号正式发布,本篇文章详细给出OpenHarmony3.0在树莓派3B上的烧录与通讯步骤,对其中使用的指令进行详细解释,同时附有烧录与通讯过程中使用的各类软件的下载链接,欢迎各位浏览指正。 1、OpenHarmony3.0编译及烧录 1.1 安装必要的依赖包 (1)安装必要的依赖包 执行sudo的apt update命令,用来检查已安装的软件包是否有可用的更新;再执行sudo的apt install -y命令,用来下载...

VincenZsw的博客 1万+

OpenHarmony NFC Tag驱动深度剖析:从HDF框架到NDEF读写全流程实战

Connected NFC Tag 驱动模块是 OpenHarmony系统中负责 NFC 标签功能的核心驱动组件,提供了与 NFC 标签交互的标准化接口,支持 NDEF (NFC Data Exchange Format) 数据的读取和写入操作。该模块作为 HDF (Hardware Driver Foundation) 子系统的一部分,遵循 OpenHarmony 的驱动框架规范,实现了硬件抽象层与上层应用之间的通信桥梁。

m0_67505153的博客 192

深入浅出OpenHarmony NFC:技术详解与开发实践

近场通信(Near Field Communication,NFC)是一种短距离高频无线通信技术,允许电子设备在极近的距离内(通常小于4厘米)进行非接触式点对点数据交换。NFC技术基于RFID(射频识别)技术演变而来,工作在13.56MHz频段,数据传输速率可达106kbps、212kbps或424kbps。NFC技术由飞利浦、索尼和诺基亚共同开发,并于2004年成立了NFC论坛,致力于推广NFC技术的标准化和应用。随着智能手机的普及,NFC技术已广泛应用于移动支付、门禁系统、数据交换、标签识别等领域。

m0_67505153的博客 1755

深信服AC1000-B1200到手第一步:从开箱到激活上网的保姆级图文指南

本文提供深信服AC1000-B1200企业级行为管理设备的详细开局使用指南,涵盖从开箱验机、物理连接到网络配置、安全加固及设备激活的全流程。通过图文并茂的步骤解析,帮助用户快速完成设备初始化并实现安全上网,特别适合初次接触该设备的网络管理员参考。

weixin_42546392的博客 544

DNS入侵检测 datacon2020

DNS入侵检测 datacon2020。

weixin_51491521的博客 522

OpenHarmony开源图形驱动SIG成立&Mesa使能树莓派开发板GPU渲染

OpenHarmony开源图形驱动SIG成立

huangranbj的博客 2830

常用的集成TTL门电路

本篇主要分析了常用的逻辑门电路与非门,详细分析了电源原理。值得收藏。

ManagerUser的博客 5086

Open Harmony开发之分布式账本

Demo基于Open Harmony系统使用ETS语言进行编写,本Demo主要通过设备认证、分布式拉起、分布式数据管理等功能来实现。

maniuT的博客 1158

ES8311音频Codec避坑指南:从I2C通信、电平匹配到回环测试的保姆级调试笔记

本文详细解析了ES8311音频编解码芯片的调试全流程,涵盖I2C通信建立、电平匹配、主从模式配置等关键环节。通过真实案例和实用技巧,帮助工程师快速定位和解决音频Codec常见问题,提升硬件调试效率。特别针对回环测试、功耗分析等高频故障点提供了可复用的排查方法论。

weixin_42532938的博客 274

PLCopen运动控制避坑指南:单轴功能块常见报错排查(基于SM3_Basic函数库)

本文深入解析PLCopen运动控制中单轴功能块的常见报错问题,基于SM3_Basic函数库提供实用排查指南。从功能块逻辑错误与硬件报错的甄别技巧到高频报错场景的解决方案,帮助工程师快速定位并解决运动控制系统中的稳定性问题,提升工业自动化设备的运行效率。

weixin_33686714的博客 314

OpenHarmony之有源NFC-connected_nfc_tag模块详解

Connected NFC Tag模块是OpenHarmony NFC子系统的一部分,专门用于处理有源NFC标签的读写操作。与基础NFC模块不同,该模块专注于与已连接的有源NFC标签进行交互,提供更高层次的API供应用层使用。设备必须具备有源NFC标签芯片,才能使用有源NFC标签的读和写服务。

m0_67505153的博客 1044

C++继承与多态 - 继承多态原理01

C++继承多态原理讲解

大秦坑王的专栏 2977
上一篇: 带你玩转OpenHarmony AI:打造智能语音子系统
下一篇: 玩转OpenHarmony社交场景:即时通讯平台
OpenHarmony开发者
博客等级 码龄5年 625粉丝 221原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值