1、main.lua:程序入口,初始化 AirTalk 对讲系统
2、talk.lua:airtalk 对讲业务核心模块
3、audio_drv:音频设备初始化与控制
extalk.START -- 通话开始
extalk.STOP -- 通话结束
extalk.UNRESPONSIVE -- 对端未响应
extalk.ONE_ON_ONE -- 一对一来电
extalk.BROADCAST -- 广播
1、talk.lua 实现AirTalk对讲核心业务。
包括群组内联系人列表信息显示、对讲状态监控、音频设备控制等功能,实时显示对讲状态和设备信息。
按键处理:
(1)主动发起对讲:按一次Boot键选择指定设备,开始1对1对讲,再按一次Boot键或powerkey键结束对讲;按一次powerkey键开始一对多广播,再按一次Boot键或powerkey键结束广播。
(2)被动接听对讲:当其他设备呼叫本机时,自动接听对讲;按任意键(Boot或Power键)即可结束当前对讲。
3、audio_drv:定义所有硬件引脚常量,使用exaudio扩展库初始化音频设备。
2、main.lua 启动AirTalk对讲服务。
Air780EHM核心板/Air780EGH核心板+AirAUDIO_1010 音频扩展板+喇叭
2、TYPE-C USB数据线一根
3、Air780EHM核心板/Air780EGH核心板和AirAudio_1010 扩展板的硬件接线方式为:
| Air780EHM核心板/Air780EGH核心板 | AirAUDIO_1010扩展板 |
|---|---|
| 26/I2S_MCLK | I2S_MCLK |
| 30/I2S_BCK | I2S_BCK |
| 31/I2S_LRCK | I2S_LRCK |
| 32/I2S_DIN | I2S_DIN |
| 33/I2S_DOUT | I2S_DOUT |
| 67/I2C1_SCL | I2C_SCL |
| 66/I2C1_SDA | I2C_SDA |
| 25/GPIO26 | PA_EN |
| 23/GPIO2 | 8311_EN |
| 3V3 | VCC |
| GND | GND |
2、Air780EHM V2018版本固件,选择支持对讲功能的固件,不同版本区别
Air780EGH V2018版本固件,选择支持对讲功能的固件,不同版本区别
3、 luatos需要的脚本和资源文件
脚本和资源文件点我浏览所有文件
准备好软件环境之后,接下来查看 如何烧录项目文件到Air780EGH核心板 ,将本篇文章中演示使用的项目文件烧录到Air780EHM/Air780EGH核心板中。
4、lib 脚本文件:使用 Luatools 烧录时,勾选 添加默认 lib 选项,使用默认 lib 脚本文件;
1、搭建好硬件环境
2、创建群组:详情请见:Airtalk 第 5.2 章节--创建群组
3、main.lua 中,修改 PRODUCT_KEY 。
--到 iot.openluat.com 创建项目,获取正确的项目key
PRODUCT_KEY = "123"
4、talk.lua 中,修改目标设备终端ID。
-- 目标设备终端ID,修改为你想要对讲的终端ID
TARGET_DEVICE_ID = "78122397" -- 请替换为实际的目标设备终端ID
5、Luatools烧录内核固件和修改后的demo脚本代码
6、烧录成功后,自动开机运行
luatools会打印以下日志
I/talk.lua:185 初始化音频
I/audio_drv.lua:33 audio_drv 开始初始化音频设备化成功
I/audio_drv.lua:39 audio_drv 音频设备初始化成功
I/talk.lua:196 音频初始化成功
I/talk.lua:199 初始化extalk...
I/extalk.lua:431 设备信息 866965083769676 20250724030359A635078A5501877477
I/talk.lua:205 extalk初始化成功
I/talk.lua:207 对讲系统准备就绪
……
I/extalk.lua:83 MQTT发布 - 主题: ctrl/uplink/866965083769676/0001 内容: {"key":"123","device_type":1}
I/extalk.lua:83 MQTT发布 - 主题: ctrl/uplink/866965083769676/0002 内容:
I/talk.lua:37 联系人列表更新:
I/talk.lua:39 1. ID: 861556079986013, 名称:
I/talk.lua:39 2. ID: 74959320, 名称: 866965083769676
I/extalk.lua:462 对讲管理平台已连接
6、 点击BOOT 按键,会选择指定终端ID的目标设备,进行一对一对讲,再按一次Boot键或powerkey键结束对讲。
luatools会打印以下日志
I/talk.lua:154 开始一对一对讲
I/extalk.lua:555 向 861556079986013 主动发起对讲
I/extalk.lua:83 MQTT发布 - 主题: ctrl/uplink/866965083769676/0003 内容: {"type":"one-on-one","topic":"audio\/866965083769676\/78122397\/6395"}
I/extalk.lua:131 对讲模式 0
I/talk.lua:54 对讲开始
I/talk.lua:86 当前对讲状态: 正在对讲
……
I/talk.lua:60 对讲结束
I/extalk.lua:583 主动断开对讲
7、 点击POWERKEY按键,会进行广播,所有群组内的人,都会收到对讲消息,再按一次Boot键或powerkey键结束广播。
luatools会打印以下日志
I/talk.lua:150 开始一对多广播
I/extalk.lua:83 MQTT发布 - 主题: ctrl/uplink/866965083769676/8102 内容: {"result":"success","info":"","topic":"audio\/78122397\/all\/skkj"}
I/extalk.lua:131 对讲模式 1
I/talk.lua:54 对讲开始
I/talk.lua:86 当前对讲状态: 正在对讲
……
I/talk.lua:143 结束当前对讲
I/extalk.lua:583 主动断开对讲
8、当其他设备或手机/PC的web网页端对设备发起一对一对讲。
luatools会打印以下日志
I/talk.lua:73 对讲 来电
I/talk.lua:94 当前对讲状态: 正在对讲
I/extalk.lua:131 对讲模式 0
I/extalk.lua:83 MQTT发布 - 主题: ctrl/uplink/866965083769676/8102 内容: {"result":"success","info":"","topic":"audio\/78122397\/866965083769676\/yvh9"}
I/talk.lua:54 对讲开始
I/talk.lua:94 当前对讲状态: 正在对讲
……
I/extalk.lua:83 MQTT发布 - 主题: ctrl/uplink/866965083769676/8103 内容: {"info":"","result":"success"}
I/talk.lua:57 对讲结束
I/talk.lua:94 当前对讲状态: 空闲
9、当其他设备或手机/PC的web网页端对设备发起广播。
luatools会打印以下日志
I/talk.lua:91 对讲 开始广播
I/talk.lua:94 当前对讲状态: 正在对讲
I/extalk.lua:131 对讲模式 2
I/extalk.lua:83 MQTT发布 - 主题: ctrl/uplink/866965083769676/8102 内容: {"result":"success","info":"","topic":"audio\/78122397\/all\/rebu"}
I/talk.lua:56 对讲开始
I/talk.lua:94 当前对讲状态: 正在对讲
……
I/extalk.lua:83 MQTT发布 - 主题: ctrl/uplink/866965083769676/8103 内容: {"info":"","result":"success"}
I/talk.lua:60 对讲结束
I/talk.lua:94 当前对讲状态: 空闲
k.lua:57 对讲结束