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

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

3天内不再提示

Hi3861:智能录音笔【环境搭建+配网】

Harmony&嵌入式学习 来源:Harmony&嵌入式学习 作者:Harmony&嵌入式学 2023-06-14 10:23 次阅读

演示视频https://www.bilibili.com/video/BV1oS4y1z7Qv
环境搭建:哔哩哔哩:https://www.bilibili.com/video/BV1PY41147z8
一、课题详情
1、项目描述
基于OpenHarmony开发一款智能录音笔,功能如下:
1,能够支持录音
2,支持配网
3,支持录音上传生成文稿
2、项目产出
满足功能的实物硬件+软件
3、项目主要创新点
使用一句话识别API,翻译生成文稿并上传
二、设计思路与方案
1、作品设计思路(包含系统架构图、程序流程图、软硬件工具等)

Hi3861:智能录音笔【环境搭建+配网】-开源基础软件社区


Hi3861:智能录音笔【环境搭建+配网】-开源基础软件社区


图1 基本流程图
整体系统流程图如上,在上电初始化后判断是否能直接入网(flash存储掉电WIFI信息),若不能直接联网则进行配网操作,此时拒绝联网只能实现基础录音放音功能,当使用数字管家进行配网后,进行API的初始化,在进行录音后若选择文稿导出功能则上报数据和返回。
二、项目内容
(1)选用Hi3861芯片开发;
(2)使用Codec_Wm8978实现收音放音;
(3)使用WIFI_AP_STA实现WEB配网;
(4)使用云服务语音API识别实现语音识别
三、编译环境搭建(纯windows下开发)
详细操作流程可参考上方视频
四、WEB配网
哔哩哔哩视频:
https://www.bilibili.com/video/BV19L411M75o
CSDN:
https://blog.csdn.net/weixin_42193239/article/details/121717340
1、华为配网方式


Hi3861:智能录音笔【环境搭建+配网】-开源基础软件社区


通过NFC读取的方式,得到设备ID,拉起数字管家验证后进行连接,配网可分为下面两种:

Hi3861:智能录音笔【环境搭建+配网】-开源基础软件社区


包括NAN配网和AP配网,可理解为使用的WIFI能力按照固定协议传输要进行配网的热点的SSID和PASSWAD,实现设备的联网功能,在这个工程中按照既定协议实现UI的进度可视化。

Hi3861:智能录音笔【环境搭建+配网】-开源基础软件社区


搭配原子化服务卡片和实现上图的拉起效果。

2、WEB配网介绍

Hi3861:智能录音笔【环境搭建+配网】-开源基础软件社区


使用手机或其它第三方设备连接需配网设备产生的SoftAP热点,热点构造http协议下的web网页,通过网页的输入框和按钮等来实现配网,详细的补充如下图:

Hi3861:智能录音笔【环境搭建+配网】-开源基础软件社区


Hi3861:智能录音笔【环境搭建+配网】-开源基础软件社区


Hi3861:智能录音笔【环境搭建+配网】-开源基础软件社区


3、WEB配网程序
见文档头部的链接;
4、使用到的参考资料
小熊派开源项目:
https://gitee.com/bearpi/bearpi-hm_nano/tree/master/applications/BearPi/BearPi-HM_Nano/sample
润和开源项目:
https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Development/tree/master
五、配网过程
1.1项目描述
使用润和HI3861开发板实现WEB配网,具有输入路由器帐号密码进行连接,并掉电保存的功能,实现设备快速入网。
1.2资源获取
演示视频:https://www.bilibili.com/video/BV19L411M75o
程序代码:包括下面六个文件
https://pan.baidu.com/s/1zBl3zI-dmxMVD-Xsyy1YHw
提取码:1234
二. 解决方法
2.1基本流程

Hi3861:智能录音笔【环境搭建+配网】-开源基础软件社区


2.2实现原理
以HI3861芯片为核心,使用STA/AP兼容模式实现TCP服务器的功能,通过固定解析内容实现为网页服务器(可实现网页访问)。当手机或其它设备使用TCP连接设备产生的热点后,访问固定IP,即可打开固化在板子内部的HTML网页,输入目标帐号和密码后点击提交,此时数据读入芯片,验证是否可连接成功,若成功的话将该数据写入FLASH存储器,可掉电保存。
2.3解决方案
任何需要上网的场景应用,碰一碰配网暂时只支持鸿蒙系统的设备,而WEB配网在任何有能力访问互联网的设备上均可实现。
三. 代码结构
3.1 创建AP热点
手机/其它设备需要先连接设备产生的热点后才能实现TCP的连接,在HI3861中创建热点包括下面几步:
(1)注册回调
//注册wifi事件的回调函数
g_wifiEventHandler.OnHotspotStaJoin = OnHotspotStaJoinHandler;
g_wifiEventHandler.OnHotspotStaLeave = OnHotspotStaLeaveHandler;
g_wifiEventHandler.OnHotspotStateChanged = OnHotspotStateChangedHandler;
RegisterWifiEvent(&g_wifiEventHandler);
(2)装载热点名称与密码

#define AP_SSID “Lal_Han”
#define AP_PSK “12345678”
strcpy(config.ssid, AP_SSID);
strcpy(config.preSharedKey, AP_PSK);
config.securityType = WIFI_SEC_TYPE_OPEN;//选择不需要密码
config.band = HOTSPOT_BAND_TYPE_2G;
config.channelNum = 7;
SetHotspotConfig(&config);
在上面的程序中装载入创建热点的名称,虽然设定了密码,但在WIFI安全类型部分我们选择的开放式(无需密码即可连接),最后由SetHotspotConfig函数设定该部分设置。
(3)打开热点与分配IP设定
//启动wifi热点模式
error = EnableHotspot();
//启动dhcp
g_lwip_netif = netifapi_netif_find(“ap0”);
IP4_ADDR(&bp_gw,192,168,1,1);
IP4_ADDR(&bp_ipaddr,192,168, 1, 1);
IP4_ADDR(&bp_netmask, 255, 255, 255, 0);
netifapi_netif_set_addr(g_lwip_netif,&bp_ipaddr,&bp_netmask, &bp_gw);
netifapi_dhcps_start(g_lwip_netif, 0, 0);
我们在使用AP/STA模式时,创建热点可当做一个路由器来理解,需要设定IP段与网关,并且当其它设备连接的时候实现一个分配IP功能。
3.2 创建TCP服务器
在创建完热点后要实现的是TCP服务器功能,互联网上任何数据连接的底层基本都是TCP或UDP,例如网页访问、网络游戏和在线视频等等,都是通过TCP来实现数据按照固定协议的发送与解析来实现的。
在WEB配网中同样用到了TCP功能,设备作为TCP服务器后等待设备连接,连接成功后等待设备使用浏览器访问,再发回HTML网页界面,代码包括以下几个部分:
(1)创建socket接口
sock_fd = socket(AF_INET, SOCK_STREAM, 0);
bzero(&server_sock, sizeof(server_sock));
server_sock.sin_family = AF_INET;
server_sock.sin_addr.s_addr = htonl(INADDR_ANY);
server_sock.sin_port = htons(PROT);
//调用bind函数绑定socket和地址
bind(sock_fd, (struct sockaddr *)&server_sock, sizeof(struct sockaddr))
//调用listen函数监听(指定port监听)
listen(sock_fd, TCP_BACKLOG)
socket是TCP的另一种叫法,在该部分设定TCP服务器的IP(192.168.4.1)和端口(80),因为网页访问的默认端口都是80。例如访问百度网页(www.baidu.com),我们通过ping该域名得到ip(220.181.38.148)。在浏览器中输入http://220.181.38.148:80/会发现打开的确实是百度的页面,这就是网页访问发起的实际地址。
(2)等待客户端连接
new_fd = accept(sock_fd, (struct sockaddr *)&client_sock, (socklen_t *)&sin_size))
cli_addr = malloc(sizeof(struct sockaddr));
memcpy(cli_addr, &client_sock, sizeof(struct sockaddr));
使用accept函数等待客户连接,连接成功后把客户地址传入cli_addr变量并创建处理序号new_fd,以便接下来处理。
(3)处理接受到的数据
ret = recv(new_fd, recvbuf, sizeof(recvbuf), 0))
使用recv函数即可实现对接受到数据的数据内容进行读取,此时准备进入模拟网页阶段。
3.3 模拟网页访问并读取传入数据

Hi3861:智能录音笔【环境搭建+配网】-开源基础软件社区
审核编辑黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 录音笔
    +关注

    关注

    0

    文章

    86

    浏览量

    12917
收藏 人收藏

    评论

    相关推荐

    鸿蒙OpenHarmony【轻量系统 环境搭建】 (基于Hi3861开发板)

    除上述[安装库和工具集]和[安装编译工具]外,针对Hi3861开发板还需要安装特定的编译工具。
    的头像 发表于 04-26 17:47 603次阅读
    鸿蒙OpenHarmony【轻量系统 <b class='flag-5'>环境</b><b class='flag-5'>搭建</b>】 (基于<b class='flag-5'>Hi3861</b>开发板)

    专业设计录音笔

    `本人专业设计录音笔,包括软件硬件!主要开发炬力 安凯等方案!开发设计过联想 纽曼 现代等多家知名品牌的录音笔!如有需要请QQ1292841172。`
    发表于 03-07 15:29

    录音笔

    我现在在做一个录音笔,有一个MP3模式和一个录音模式,现在只能一个键控制一个模式打开,而且还是复位之后才能控制,现在我想让一个按键控制这两个模式的切换,哪位大神有写过这样的程序给指导一下呗
    发表于 11-27 14:32

    Hi3861 实现手机APP功能

    本节主要讲如何去实现Hi3861 APP功能。需要说明的是,本人实现这个功能主要是用于学习,所涉及知识包括Hi3861的WiFi操作,AP模式、STA模式、按键功能、网络编程、JS
    发表于 10-04 15:10

    【HarmonyOS HiSpark Wi-Fi IoT套件】 Hi3861 实现手机APP功能

    的ssid和密码3、Hi3861通过 UDP 包获取配置信息,切换网络模式连接 WIFI 后完成代码实现(1)代码结构代码主要由3个文件组成ap_mode.c:主要实现AP模式,并实现一个简单的UDP
    发表于 10-09 17:16

    Hi3861Hi3516、Hi3518 新手指引

    一、Hi3861 WiFi-IoTHi3861开发板介绍Hi3861开发板环境搭建Hi3861
    发表于 11-03 22:33

    鸿蒙硬件HI3861开发环境搭建 精选资料分享

    鸿蒙HI3861开发环境搭建1.板子在哪里买https://item.taobao.com/item.htm?spm=a1z09.2.0.0.6b0a2e8d93tcAY&id
    发表于 07-22 06:42

    HI3861 鸿蒙开发环境怎么搭建

    Hi3861的鸿蒙开发环境怎么搭建,有没详细说明交叉编译工具包在哪下载鸿蒙设备开发网上没搜索到新人刚学,请指点下
    发表于 05-08 20:25

    HI3861 环境怎么搭建

    HI3861 环境怎么搭建交叉编译工具包是什么
    发表于 05-08 20:33

    Hi3861:智能录音笔环境搭建+

    演示视频:环境搭建:哔哩哔哩:一、课题详情1、项目描述基于OpenHarmony开发一款智能录音笔,功能如下:1,能够支持录音2,支持
    发表于 12-31 10:35

    Hi3861编译烧录更快捷

    望而却步。 1、源码编译烧录更快捷 DevEco Device Tool 3.1 Beta2支持纯Windows环境开发Hi3861,我们可以将环境搭建精简为三步——开发
    发表于 02-10 10:32

    Hi3861V100/Hi3861LV100 SDK开发环境搭建

    Hi3861V100/Hi3861LV100 SDK开发环境搭建 用户指南
    发表于 05-31 16:26 9次下载

    Hi3861编译烧录更快捷

    纯Windows环境开发Hi3861,显著提升编译、烧录效率,同时还带来了更多实用的功能及模板,为广大开发者朋友带来更加高效、便捷的开发体验。接下来,让我们来看看吧! 纯Windows环境开发
    的头像 发表于 02-11 13:25 645次阅读

    纯Windows环境开发Hi3861,编译烧录更快捷

    纯Windows环境开发Hi3861,显著提升编译、烧录效率,同时还带来了更多实用的功能及模板,为广大开发者朋友带来更加高效、便捷的开发体验。接下来,让我们来看看吧! 纯Windows环境开发
    的头像 发表于 02-11 14:45 1298次阅读

    HMDTU-OpenHarmony-Hi3861环境搭建

    HMDTU-OpenHarmony-Hi3861环境搭建
    的头像 发表于 05-06 12:51 486次阅读
    HMDTU-OpenHarmony-<b class='flag-5'>Hi3861</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>