0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

OpenAtom OpenHarmony 来源:未知 2022-12-26 23:05 次阅读

开源项目 OpenHarmony是每个人的 OpenHarmony 828fa8c6-852d-11ed-bfe3-dac502259ad0.jpg

贾振兴

中国科学院软件研究所

OpenHarmony知识体系工作组

以下内容来自嘉宾分享,不代表开放原子开源基金会观点

一、简介

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

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

82a30416-852d-11ed-bfe3-dac502259ad0.png (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("开始调起应用
");
    pthread_t id1;
    int ret = pthread_create(&id1, NULL, (void *)mythread1, NULL);
    if (ret) {
      HILOGE("创建线程失败
");
    }


    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小灯的打开和关闭控制。 82b4d358-852d-11ed-bfe3-dac502259ad0.png  
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小灯的开闭。除了文中分享的样例,开发者还可以通过拓展其他相关的属性和方法,实现更多好玩的、高性能的样例。

代码地址:

https://gitee.com/isrc_ohos/led-contrller-device

https://gitee.com/isrc_ohos/led-controller-application

参考地址

设备端源码

https://gitee.com/isrc_ohos/led-contrller-device

应用端源码

https://gitee.com/isrc_ohos/led-controller-application

知识体系

https://gitee.com/openharmony-sig/knowledge


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

文章出处:【微信公众号:OpenAtom OpenHarmony】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙
    +关注

    关注

    55

    文章

    2090

    浏览量

    42263
  • OpenHarmony
    +关注

    关注

    24

    文章

    3479

    浏览量

    15400

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

文章出处:【微信号:gh_e4f28cfa3159,微信公众号:OpenAtom OpenHarmony】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    那些在智能家居领域大放异彩的SoC

    电子发烧友网报道(文/黄山明)如今,智能家居已经不算一个新鲜的概念了,而智能家居的“智能化”则是由里面的芯片来支撑,这些芯片能够实现智能家居
    的头像 发表于 08-01 00:56 1553次阅读

    复位管脚的上拉电阻会引起复位,为什么?

    我发现个很奇怪的现象,每当我用万用表的其中个表笔去触复位管脚10K的上拉电阻,触端在5V的电源端那边,单片机就复位。而靠近管脚端却不会。不知这种现象正不正常。
    发表于 05-08 06:47

    智能家居灯光控制系统功能特点

    ,为环保事业做出贡献。 智能家居灯光控制系统解决方案,基于物联网通信技术,使用智能照明控制终端等智能硬件,
    的头像 发表于 04-25 16:21 448次阅读

    OpenHarmony南向开发案例:【智能中控屏】

    基于Hi3516开发板,使用开源OpenHarmony开发的应用。通过控制面板可以控制同一局域网内的空调,窗帘,灯等智能家居设备
    的头像 发表于 04-17 16:12 194次阅读
    <b class='flag-5'>OpenHarmony</b>南向开发案例:【<b class='flag-5'>智能</b>中控屏】

    【Longan Pi 3H 开发板试用连载体验】基于 Longan Pi 3H 开发板完成智能家居控制小型项目

    和存储空间显示为4GB+32G,如图 三、项目计划 我的试用项目是基于 Longan Pi 3H 开发板完成智能家居控制小型项目目标如下: 通过 Longan Pi 3H 开发板实现模拟家庭
    发表于 04-02 22:37

    深入探讨机智云物联网智能家居系统的优化方案

    技术连接家居设备到终端,实现智能操作。智能家居控制系统采用无线网络技术,受环境影响小,建设周期短
    发表于 03-29 12:35

    智能家居控制方案功能与应用

    是以物联网作为核心技术支撑,利用网络通信手段,实现对住宅中各种设备与建筑设施进行自动控制与管理。集成开发智能家居控制方案,快速启动、多种人机
    的头像 发表于 02-29 16:18 375次阅读

    智能家居控制解决方案应用

    随着物联网和人工智能技术的发展,各个具有特色智能终端通过系统集成,实现了互联互通互控,智能家居逐渐开始走进千家万户。 智能家居
    的头像 发表于 02-19 17:46 365次阅读

    集中电源控制器在智能家居中的应用

    集中电源控制器在智能家居中也有广泛的应用。随着智能家居的普及,各种家电设备、照明系统、安防系统等都需要电源支持,而集中电源控制器可以提供集中
    的头像 发表于 01-30 15:05 472次阅读
    集中电源<b class='flag-5'>控制</b>器在<b class='flag-5'>智能家居</b>中的应用

    智能家居控制系统原理与应用

    智能家居控制系统是指利用先进的计算机科学和通信技术,将各种家居设备和系统进行连接和集成,实现智能
    的头像 发表于 01-10 11:44 1233次阅读

    【飞腾4G版免费试用】5.智能家居之IP摄像头

    款开源的智能家居平台,旨在提供个集成、可定制且易于使用的解决方案,用于控制和自动化家庭中的各种设备和服务。它支持众多智能
    发表于 12-28 17:14

    智能家居管理系统设计资料

    智能家居管理系统设计(原理图+APP+源代码等)使用51单片机作为主控 提供完整源码 可实现智能家居控制网上下载的资源 侵权删!
    发表于 10-07 08:22

    STM32单片机实现智能家居控制系统的方案

    详细介绍的是使用STM32单片机实现智能家居控制系统的方案介绍和源代码等资料合集
    发表于 09-25 06:23

    无线传感器网络在智能家居系统中的应用介绍

    问题,将会使得智能家居系统实现真正的“智能”,同时也使得无线传感器网络的应用范围进步扩大.智能家居网络是
    发表于 09-19 06:02

    OpenHarmony轻量系统书籍推荐《OpenHarmony轻量设备开发理论与实战》

    最近大家问的智能家居套件方面有没有可以参考的资料,这里给大家统一回复一下 推荐大家可以看这本书 《OpenHarmony轻量设备开发理论与实战》 本书系统地讲授OpenHarmony
    的头像 发表于 07-20 12:43 822次阅读