HarmonyOSConnect设备开发触控系列分享总帖< titlesplit >了解更多开源请访问:51CTO开源基础软件社区https://ost.51cto.com1.说明在宿舍全屋智能化开发的过程中,我对数字家政有了些许体会,想法还是比较多的。一方面,我从来没有写过APP,连门锁的UI都应用到了台灯上;另外,如果要添加自己的设备,需要按照配置文件,然后在服务器上进行配置。关键是你不知道服务器什么时候会罢工;最后,宿舍不完整的是一台运行HarmonyOS的设备。门锁和其他设备不能为整个宿舍服务。HarmonyOS连接设备。【HarmonyOSConnect设备开发-个人版】解读Pinch个人体验版系列,介绍如何实现自定义设备UI、Pinch拉起服务卡、设备网络配置、消息传递和设备控制。图1开发过程总结废话不多说,先上demo:图2-MRobot图3-SmartFan图2是经过几个晚上的折腾做出来的机器人。当然,为了突出教程的核心,我将介绍如何开发自己的智能风扇,如图3所示。了解一切,大家可以设计出更多有趣的作品。涉及到的软硬件如下:接下来默认准备好以上软硬件;设备开发测试OpenHarmony1.1.0源码支持Windows一站式开发,工具链可根据官方教程配置。2、第一天跑个人体验版,按照官方教程新建一个OneHop模板工程,源码烧录设备,运行测试,了解工作流程。1.新建模板工程-拉起服务新建一个基于OneHopTemplate的工程,按照官方教程AtomizationService完成。接下来就是AGC平台签名和真机操作了。需要注意的是,真机运行时需要选择多个hap包进行安装。真机运行APP后,如何使用NFC拉起服务?需要在平台华为开发门户配置关联意图。分为两步:申请ProductID【顺便写进nfc标签】,配置服务。如下图所示:接下来我们测试一下touch和pullup:如果有发现,我们目前还没有开发设备,所以我们可以实现touch和pullup。到这里大家应该能更好的理解touch其实是依赖于后台服务的。绑定服务意图后,nfc只是一个触发器。2、设备端的开发分为以下几点:获取openharmony1.1.0的源码。获取包含智能风扇的演示代码。修改工作。打开源码后,有几个地方需要修改:①将Hi3861开发板Demo代码中的“hals”和“winder”目录复制到源码工程中的applications/sample/wifi-iot/app/目录下:②修改device/在hisilicon/hispark_pegasus/hi3861_adapter/hals/communication/wifi_lite/wifiservice/source/wifi_device.c文件中,在HiWifiWpaEventCb函数中注释以下两段代码。③打开device/hisilicon/hispark_pegasus/sdk_liteos/build/config/usr_config.mk文件,发现CONFIG_I2C_SUPPORT没有设置,取消注释,修改为CONFIG_I2C_SUPPORT=y。④修改applications/sample/wifi-iot/app/BUILD.gn文件,将features字段中的startup改为winder,添加winder模块的indexdeps。配置示例如下所示。⑤修改vendor/hisilicon/hispark_pegasus/config.json文件,删除test子系统的内容和上面的逗号。⑥【可选】修改oled、温湿度初始化默认成功【以下操作只针对一个hi3861模块,想体验一下,因为源码需要连接oled、温湿度传感器,如果没有连接,会导致初始化失败如果通过,则不会进行网络配置。】编译烧录基本操作,视频中有展示,不多介绍。编程复位成功后,hi3861串口0会输出如下提示信息,表示一切正常:3、体验案例-控制风扇拿起手机,触摸写在ProductID中的NFC标签,设备界面会是正常打开,然后配置网络。顺利进入控制界面。点击相应的按钮,设备端就会收到相应的数据。4.开发解读可以看出,HarmonyOSConnect设备的开发主要分为南北两部分。先看北向代码框架。APP分为两个模块,一个是配网雾化服务,模板基于JS编写;另一种是控件原子化服务,依赖java实现。每个模块官方都给出了详细的设备分发网络雾化服务开发参考指南和设备控制雾化服务开发指南。这里整理一下南北开发流程,如下:原子化app源码框架:设备源码框架:查看template模板工程,可以看到设备控件UI交互逻辑依赖JAVA,模板为基于预设的UI控件开发的页面。可以使用对应的json文件。但是这样对于UI的自由开发来说,限制太大了,所以下一步就是抛开限制,转战JAVA,使用JS接口发送数据。3.几点说明:在此之前,我没有太多的APP开发经验,尤其是前端开发从未接触过,所以分享会以功能实现为主,不以优化为主;如果你和我一样是第一次写鸿蒙APP,恭喜你选择了一个入门门槛极低的开发平台。原因有三:①鸿蒙APP提供了丰富的API,基于ArkUI框架开发类似于绘画。②JS入门不难,花几个小时看看基础就可以了。③再烂也有可视化UI开发(北方经验,强烈推荐)。了解更多开源信息,请访问:51CTO开源基础软件社区https://ost.51cto.com。
