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

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

3天内不再提示

定位模组Air201——快速实现打电话!

青山老竹农 来源:jf_82863998 作者:jf_82863998 2024-12-16 15:23 次阅读

今天特别分享VoLTE通话功能示例,感兴趣的朋友一起来学。

VoLTE通话功能示例

Air201模组的4G通信功能,通过VoLTE技术实现高清语音通话,支持音频编解码、硅麦输入和喇叭输出。在通话过程中,声音信号通过MIC捕捉并转换为数字音频数据,经4G网络实时传输至对方设备。

这一应用广泛适用于物联网设备中的远程通信、语音交互等场景,提供便捷、高效的通话服务。

Air201最新资料下载

www.air201.cn

wKgZO2df0smAGY1vAAWHVRnfHbg744.png

注:Air201最大可支持8Ω 1.2W功率喇叭(默认),或者4Ω 2.5W功率喇叭。

本文将通过Air201+喇叭+扩展板进行相关演示,教你使用VoLTE通话功能示例,在实际开发中可根据具体情况灵活应用。

一. 搭建环境

新同学建议先看前期的基础知识相关教程,更有助于理解和操作。

可以在LuaTools项目管理中新建一个项目,重新选择底层CORE和脚本;或者在原有项目的基础上,不更换CORE,将原来的脚本删除,添加为demo/cc的脚本。

1.1 硬件准备:

Air201 PCBA

Air201-BTB扩展板(带一个FPC线)

配套USB_BOOT小板、喇叭

可正常上网及通话的SIM

带有数据通信功能的数据线

Win10及以上PC

Air201通过FPC线连接BTB扩展板,使用扩展板上的按键,接线如下所示:

wKgZPGdf0wKAFPbHAAWDIc_-QE8239.png

1.2 软件准备:

LuaTools调试工具:

https://docs.openluat.com/Luatools

最新固件:https://gitee.com/openLuat/LuatOS-Air201/tree/master/core

最新脚本:

https://gitee.com/openLuat/LuatOS-Air201/tree/master/demo/cc

API接口

https://docs.openluat.com/air201/luatos/api/core/cc

1.3 烧录操作:

由于Air201单板子没有复位键和BOOT键,所以数据线与Air201开发板之间还需要接一个USB_BOOT板(Air201套件里已包含)。

将Air201通过USB_BOOT小板连接电脑,如下图所示:

wKgZPGdf0xqAHFOwAAilXsf2xO4286.png

1.3.1 根据下方操作进行烧录

此时就需要大家先点击Luatools工具上的【下载脚本】或【 下载底层和脚本】,再执行下方操作了。

新同学请先学习LuaTools使用和烧录教程:

https://docs.openluat.com/Luatools/

开发板处于未开机状态:

此时先按住下载模式按键(BOOT键)不放,再长按开机键(POW键)开机。若不出意外开发板将会进入下载模式,LuaTools工具下载进度条会开始跑,这时便可以松开BOOT键和POW键,等到工具提示下载完成即可。

开发板已经处于开机状态:

此时可以先按住BOOT键不放,再短按复位键(RST键)后开发板会重启并进入下载模式。

1.3.2 不同模式下的端口显示

正常开机模式:

wKgZPGdf012ABJW0AAEQuxsxKiY759.png

下载模式:

wKgZO2df022AUlq0AADqU3bcw8g457.png


二. 示例代码

2.1 初始化驱动ES8311

Air201板子自带了ES8311音频编解码芯片(Audio Codec),所以硬件配置参数是固定的。

ES8311使用了I2C0,电源脚为GPIO2,PA控制脚为GPIO23:

wKgZPGdf062AOA4PAASjmaoxFc4590.png

2.2 订阅通话状态

通过sys.subscribe函数订阅了一个名为CC_IND的事件。当这个事件被触发时,会调用后面的匿名函数,传入一个参数 state,表示当前的通话状态。

wKgZO2df08iADcI6AATLooMIk18688.png

2.3 注册音频事件回调函数

wKgZPGdf09eAf48hAAMB_Rk4mI0094.png

2.4 通讯录列表

wKgZO2df0-OACD0mAACMC5SFZv8390.png

2.5 通话管理状态机

1)IDLE(空闲状态):

系统处于等待状态,准备接收来电或拨号。

转移条件:

wKgZO2df0_KAFNvvAACGJ8eysnI577.png

2)WAIT_CALLING(等待呼叫状态):

系统在等待后续的拨号操作。

转移条件:

wKgZO2df1AGAeqiwAADS142G4W4708.png

3)CALLING(拨号中状态):

正在拨打电话。

转移条件:

wKgZO2df1A2AFgX-AACUx5ZnErE878.png

4)PREPARE(准备通话状态):

准备接听来电或拨打电话。

转移条件:

wKgZO2df1CCAcL9vAADbHjWDrcI463.png

5)CONNECTING(通话中状态):

准备接听来电或拨打电话。

转移条件:

wKgZPGdf1DKATqO_AADa1VcImmI847.png

6)DISCONNECTING(挂断流程状态):

处理挂断电话的流程。

转移条件:

wKgZPGdf1ECAG4qQAABZQP-qgZk455.pngwKgZPGdf1FiATj1aAAUwZHz6V78101.pngwKgZPGdf1HSAY3n0AARDcDVVU1s683.pngwKgZO2df1JGAXJsVAAUAHPruzVw864.pngwKgZPGdf1KiAes5iAANvV68Eptk167.png

2.6 呼叫,挂断按键配置

wKgZPGdf1LaARMHNAAIqO8vdTJI033.png

2.7 运行结果展示

通过LuaTools工具,查看相关运行结果。

1)模组主动拨打电话

空闲状态下按下按键1,默认拨打通讯录第一位联系人,日志打印显示如下:

wKgZO2df1MSAf22hAAR3x6pleyE218.png

2)模组主动挂断电话

通话状态下按下按键2,挂断电话,日志打印显示如下:

wKgZO2df1NKAd2C5AALgjs3omUU767.png

3. 总结

CC库的通话管理API接口共同构成了通话控制的核心功能,使开发者能够高效地管理通话的启动、挂断、接听、参数配置以及附加的通话处理功能。

通过合理利用这些接口,开发者可以构建出具备出色通话体验的应用程序,满足用户在多种通话场景下的需求。同时,也需关注接口之间的协同配合,以确保通话功能的流畅性和可靠性。

今天的分享就到这里了~

审核编辑 黄宇

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

    关注

    5

    文章

    1331

    浏览量

    35382
  • 模组
    +关注

    关注

    6

    文章

    1496

    浏览量

    30408
  • VoLTE
    +关注

    关注

    1

    文章

    159

    浏览量

    35967
收藏 人收藏

    评论

    相关推荐

    深入了解Air201定位模块的电池问题!

    今天主要分享Air201电池相关问题,希望对大家的实际应用开发有所帮助。
    的头像 发表于 12-14 09:32 205次阅读
    深入了解<b class='flag-5'>Air201</b><b class='flag-5'>定位</b>模块的电池问题!

    Air201定位模组LuatOS轻松搞定超低功耗模式!

    今天我们要学习的是定位模组Air201的超低功耗模式下,定时三分钟上传以及G-senser拓展示例;更多低功耗模式的玩法,等你来探索。接下来,我们讲解相关示例的具体使用。
    的头像 发表于 12-01 15:38 174次阅读
    <b class='flag-5'>Air201</b><b class='flag-5'>定位</b><b class='flag-5'>模组</b>LuatOS轻松搞定超低功耗模式!

    Air201模组教程:SPI通信与外部Flash的连接之道!

    今天我们要学习的是Air201定位模组LuatOS快速入门,本文将通过Air201+扩展板读写外部flash的演示,教你使用SPI示例,可根
    的头像 发表于 11-18 00:23 257次阅读
    <b class='flag-5'>Air201</b><b class='flag-5'>模组</b>教程:SPI通信与外部Flash的连接之道!

    Air201:MQTT实用示例的终极指南

    今天我们学习的是关于Air201的MQTT实用示例的终极指南。
    的头像 发表于 11-07 19:30 177次阅读
    <b class='flag-5'>Air201</b>:MQTT实用示例的终极指南

    你要的录音&amp;播放录音功能,直接用!Air201资产定位模组LuatOS快速入门

    ​ 超低功耗、精准定位快速量产——迷你小巧的合宙Air201,正给越来越多的行业客户带来高效开发体验。 此前有小伙伴问:是否支持录音、播放录音功能? 高集成化设计的Air201自带了
    的头像 发表于 09-27 07:06 285次阅读
    你要的录音&amp;播放录音功能,直接用!<b class='flag-5'>Air201</b>资产<b class='flag-5'>定位</b><b class='flag-5'>模组</b>LuatOS<b class='flag-5'>快速</b>入门

    合宙Air201资产定位模组LuatOS课程(六):PWRKEY控制解决关机难问题

    进一步学习合宙Air201应用示例**——PWRKEY控制关机功能** ** PWRKEY控制关机功能** [ ] 编辑 合宙Air201资产定位模组 ——是一个集成超低功耗4G通信、
    的头像 发表于 09-18 07:06 452次阅读
    合宙<b class='flag-5'>Air201</b>资产<b class='flag-5'>定位</b><b class='flag-5'>模组</b>LuatOS课程(六):PWRKEY控制解决关机难问题

    合宙Air201资产定位模组LuatOS快速入门(五):玩转扩展库,温湿度传感器篇!

    、I2C、UART等多种接口全部支持。 本期,我们将学习合宙Air201的扩展应用之一 ——I2C驱动AHT10温湿度传感器 Air201驱动AHT10温湿度传感器 ​ 编辑 合宙Air201资产
    的头像 发表于 09-18 07:05 358次阅读
    合宙<b class='flag-5'>Air201</b>资产<b class='flag-5'>定位</b><b class='flag-5'>模组</b>LuatOS<b class='flag-5'>快速</b>入门(五):玩转扩展库,温湿度传感器篇!

    合宙Air201资产定位模组LuatOS课程:远程控制

    很多小伙伴已经学习了前两期教程hello world、点灯,对合宙Air201这款低功耗资产定位模组的LuatOS开发已有一定了解,大家的实操反馈是:真的很简单! 那么,这一期我们要一起体验更有
    的头像 发表于 09-14 16:28 1128次阅读
    合宙<b class='flag-5'>Air201</b>资产<b class='flag-5'>定位</b><b class='flag-5'>模组</b>LuatOS课程:远程控制

    合宙Air201资产定位模组LuatOS课程:点灯仪式

    定位模组——是一个集成超低功耗4G通信、语音通话、超低功耗定位、计步、震动、Type-C、充电、放音、录音等功能的超小PCBA。 内部集成高效、简单、可靠的LuatOS语言,旨在帮助客户降低开发难度,降低研发成本,以及打造超小超
    的头像 发表于 09-14 16:24 340次阅读
    合宙<b class='flag-5'>Air201</b>资产<b class='flag-5'>定位</b><b class='flag-5'>模组</b>LuatOS课程:点灯仪式

    合宙Air201资产定位模组LuatOS快速入门:GPS/LBS/Wi-Fi定位,全安排!​

    教程   合宙Air201资产定位模组 ——是一个集成超低功耗4G通信、语音通话、超低功耗定位、计步、震动、Type-C、充电、放音、录音等功能的超小PCBA。 内部集成高效、简单、可
    的头像 发表于 09-14 07:56 475次阅读
    合宙<b class='flag-5'>Air201</b>资产<b class='flag-5'>定位</b><b class='flag-5'>模组</b>LuatOS<b class='flag-5'>快速</b>入门:GPS/LBS/Wi-Fi<b class='flag-5'>定位</b>,全安排!​

    资产定位 | 合宙Air201模组LuatOS快速入门01-hello world

    合宙的Air201模组,功耗低,品质稳定,购买样品也方便,且资料全开放。
    的头像 发表于 09-13 15:21 413次阅读
    资产<b class='flag-5'>定位</b> | 合宙<b class='flag-5'>Air201</b><b class='flag-5'>模组</b>LuatOS<b class='flag-5'>快速</b>入门01-hello world

    玩转扩展库,温湿度传感器篇!—合宙Air201资产定位模组LuatOS快速入门05

    随着LuatOS快速入门系列教程的推出,小伙伴们学习热情高涨。 合宙Air201不仅支持三种定位方式,还具有丰富的扩展功能,通过外扩BTB链接方案,最多可支持21个IO接口:SPI、I2C、UART
    的头像 发表于 09-12 12:11 441次阅读
    玩转扩展库,温湿度传感器篇!—合宙<b class='flag-5'>Air201</b>资产<b class='flag-5'>定位</b><b class='flag-5'>模组</b>LuatOS<b class='flag-5'>快速</b>入门05

    GPS/LBS/Wi-Fi定位,全安排!—合宙Air201资产定位模组LuatOS快速入门04

    程/固件。   Air201定位示例教程     合宙Air201资产定位模组 ——是一个集成超低功耗4G通信、语音通话、超低功耗
    的头像 发表于 09-12 12:04 1280次阅读
    GPS/LBS/Wi-Fi<b class='flag-5'>定位</b>,全安排!—合宙<b class='flag-5'>Air201</b>资产<b class='flag-5'>定位</b><b class='flag-5'>模组</b>LuatOS<b class='flag-5'>快速</b>入门04

    远程控制,就是这么简单—合宙Air201资产定位模组LuatOS快速入门03

    通过前两期教程hello world、点灯,大家对合宙Air201这款低功耗资产定位模组的LuatOS开发已有一定了解,实操反馈是:真的很简单! 那么,这一期我们要一起体验更有趣的 ——远程
    的头像 发表于 09-12 11:54 284次阅读
    远程控制,就是这么简单—合宙<b class='flag-5'>Air201</b>资产<b class='flag-5'>定位</b><b class='flag-5'>模组</b>LuatOS<b class='flag-5'>快速</b>入门03

    合宙Air201定位模组,千万不要忘记设置这个......

    合宙Air201定位模组,千万不要忘记设置这个:AT+WIFILOC设置wifi定位优先
    的头像 发表于 08-09 18:01 1519次阅读
    合宙<b class='flag-5'>Air201</b><b class='flag-5'>定位</b><b class='flag-5'>模组</b>,千万不要忘记设置这个......