亚马逊Alexa Connect Kit(ACK)

什么是ACK:
Alexa Connect Kit(ACK)是亚马逊提供的一项托管服务。 通过ACK,开发者无需编写 Alexa技能(Alexa skill)、管理云服务、或开发复杂的网络和安全固件,即可轻松将产品连接到 Alexa。只需要将ACK模块集成到产品中,并支付一次性固定成本。ACK提供托管服务、软件和工具,可用于持续开发和管理Alexa connected智能产品。ACK使创建和管理Alexa控制的Wi-Fi的智能设备变得更简单、更快速、更具有经济效益。
使用 ACK 构建的产品包括通过语音和移动应用程序(Alexa App)进行的Alexa控制, 亚马逊简易配网(Amazon Frustration-Free Setup),亚马逊Wi-Fi简单设置(Amazon Wi-Fi Simple Setup),亚马逊快速补充服务(Amazon Dash Replenishment Service)。

ACK产品组成部分:
在这里插入图片描述

  • ACK模块–集成到基于 ACK 的设备中的 Amazon 管理的硬件组件。ACK模组出厂前将烧录 ACK 固件,并预配置连接到 ACK 托管的云服务授权。亚马逊的 ACK 固件提供了各种开箱即用功能,支持用户轻松构建支持 Alexa 的物联网设备,无需管理云服务、编写 Alexa Skill、手机 APP 或其他复杂设备。目前有ESP32-PICO-V3-ZERO,MT7697H两款ACK模组可以选择。

  • ACK设备 SDK–Amazon提供的设备SDK,可在你的设备微控制器(HMCU)上运行并处理 Alexa 命令、管理设备状态并实施 ACK 功能。 HMCU 可通过 UART 接口连接 ACK 模组,然后实现与外设的连接。

  • ACK 托管服务–亚马逊为您提供基于云的 ACK 托管服务和合作,以及特定的设备的后端功能。这包括 Alexa 功能管理工具、用于为基于 ACK 的设备定义、收集和存储日志和指标的工具,以及用于支持服务以监控 ACK 设备的性能和健康状况及其与互联网和亚马逊服务的连接的工具.

  • ACK开发者控制台–亚马逊管理的在线门户,允许您配置和管理基于 ACK 的产品和设备。

HMCU的选择:
HMCU有多种选择,亚马逊官网上推荐了5个HMCU,亚马逊官网下载的SDK里面有STM32和Arduino版本的HMCU软件。其它型号的HMCU程序需要从MCU公司的网站上下载。
在这里插入图片描述
设备SDK的软件构架:
由上图可知,ACK的软件大部分是由亚马逊开发和维护的,对于开发者来说,只要修改和编写HMCU的软件(ACK设备SDK), ACK设备SDK由两部分组成:

  • ACK主机MCU实现核心(ImplCore),您可以将其集成到设备的HMCU应用程序中。
  • ACK主机MCU示例应用程序,可作为设备HMCU应用程序的起点或参考。

ACK设备SDK整体架构如图所示。橙色部分表示开发者需要实现的组件
在这里插入图片描述
设备SDK源代码结构:

  • 根目录:各种自述文件(readme)和开源软件版权相关的通知。

  • applications:ACK主机MCU示例应用程序,演示如何在各种设备上使用ACK设备SDK。这些只是源代码;针对具体的HMCU的掩饰代码位于user\platform目录下。

  • core:核心的主体。将所有这些文件编译到HMCU应用程序中。确保core、core\generated和core\generated\v3avs_capabilities在编译器的包含路径中。

  • doc:ACK设备SDK的说明文档。

  • external:开源软件,将所有这些文件编译到HMCU应用程序中。确保external\nanopb在编译器的include路径中。

  • include: 使用ImplCore需要含在HMCU应用程序中的C语言头文件,。

  • user:和具体平台(HMCU)相关的示例应用程序源代码和项目结构。具体平台的示例源代码主要有两部分,应用程序(Application)和引导加载程序(Bootloader)。

User/main.c源代码片段

int main(void)
{
  /* USER CODE BEGIN 1 */
  /* USER CODE END 1 */
  /* MCU Configuration--------------------------------------------------------*/
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */
  /* USER CODE END Init */
  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */
  /* USER CODE END SysInit */
  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART2_UART_Init();
  MX_USART1_UART_Init();
  MX_CRC_Init();

  /* Initialize interrupts */
  MX_NVIC_Init();
  /* USER CODE BEGIN 2 */
  void setup(void);
  setup();
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    void loop(void);
    loop();
  }
  /* USER CODE END 3 */
}

Application/SmartLight.c

// Called once, for one-time initialization.
void setup(void)
{
    // Initialize ACK Host MCU Implementation Core.
    ACK_Initialize();

    // Initialize the previous tick.
    g_previousTick = ACKPlatform_TickCount();
}

// Called over and over, for main processing.
void loop(void)
{
    ACK_Process();

    // Timers are checked every loop iteration.
    CheckShutoffTimer();
    CheckBlinkingMode();

    // In order to work with timers, we save time of the previous tick and calculate the difference.
    uint32_t newTick = ACKPlatform_TickCount();
    g_timerGap = newTick - g_previousTick;
    g_previousTick = newTick;
}

在这里插入图片描述

ACK产品认证:
Alexa Connect Kit(ACK)的设备在开始制造和发布之前,必须通过 Works with Alexa (WWA) 和 Frustration-Free Setup (FFS) 认证您的设备。

参考资料:
https://developer.amazon.com/en-US/alexa/devices/connected-devices/development-resources/alexa-connect-kit
https://github.com/OpenNuvoton/ACK-HMCU

CSDN博客仅作为本人工作学习之余的笔记使用,无任何商业目的,如果侵犯了你的隐私或权益,请随时联系作者,本人将及时删除相关内容

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值