Skip to content

由 sujingliang 贡献,Ai-Thinker 进行整理

【Ai-WB2评测】爱星物联平台实践

目前爱星物联主要采用模块固件+MCU SDK方式实现物联网应用。

本文用Ai-WB2模块+PICO2实践这一过程。

一、平台准备

爱星物联地址:https://www.iot-aithings.com/

1、爱星物联注册个用户创建产品

可以创建产品,也可以直接利用彩灯_demo,点击彩灯_demo进入配置

2、硬件开发

选择WB232S模组,固件版本选择1.2.6,然后下载。

这个固件需要烧录到Ai-WB2中,烧录过程略。

固件协议参见:串口协议文档

3、MCU SDK下载

需要下载这个MCU SDK

我使用PICO2开发,所以需要将下载的SDK加入到PICO2的工程中。

4、三元组

生产管理中:生成一个三元组

通过串口工具发送AT指令,将三元组在模组中激活

完成了模块固件下载和三元组激活,Ai-WB2的准备工作已经完成。下面主要是PICO2的内容。

二、PICO2软件准备

MCU SDK中包括:

src文件:mcu_api.c;protocol.c;system.c

inc文件:config.h;mcu_api.h;protocol.h;system.h

按照MCU SDK开发手册,需要实现如下内容:

1、UartProtocolInit()函数需要在MCU启动后立即初始化,如此方可接收并处理串口数据

📜 点击展开完整代码
java
int

main
()
 {

    UartProtocolInit();
//按MCU SDK要求调用初始化

    stdio_init_all();

    uart1_init();
    lcd_init();

    xTaskCreate(led_task,
"LED_Task"
,
256
, NULL,
1
, NULL);
    xTaskCreate(uart_task,
"Uart_Task"
,
256
, NULL,
1
, NULL);
    vTaskStartScheduler();

while
(
1
){};
}

main函数中初始化UartProtocolInit函数,并初始化uart1用于PICO2和Ai-WB2通信。

2、UartProcessPro()需要轮询处理

📜 点击展开完整代码
java
void

uart_task
()
 {

while
 (
true
) {
        UartProcessPro();
        vTaskDelay(
100
);
    }
}

3、在uart1中断接收函数中调用UartRevOneByte()

📜 点击展开完整代码
java
// RX interrupt handler

void

on_uart_rx
()
 {

while
 (uart_is_readable(UART_ID)) {

uint8_t

ch

=
 uart_getc(UART_ID);
        UartRevOneByte(ch);
        putchar(ch);
    }
}

4、实现protocol.c中的UartWriteData函数

📜 点击展开完整代码
java
char

UartWriteData
(unsigned
char
 *dataBuff, unsigned
char
 dataLen)

{

//"请将MCU串口发送函数填入该函数,并删除该行"

    uart1_send_string(dataBuff, dataLen);

return

0
;
}

需要注意的是uart1发送函数不需要在字符串后发送回车换行字符。

📜 点击展开完整代码
html
void uart1_send_string(unsigned char *dataBuff, unsigned char dataLen)
{
    uint8_t i;
    for(i=0;i<dataLen;i++)
    {
        uart_putc(UART_ID, dataBuff[i]);
    }
}

5、protocol.c中实现点灯处理

📜 点击展开完整代码
html
static void ControlPowerstateState(unsigned char *value)
{
    powerstate_status = ProGetdpidValueBool(value);
    if(powerstate_status)
    {
        // 开关开状态
        lcd_set_cursor(0,0);
        lcd_print("light on ");
        gpio_put(25U, 1);
    }
    else
    {
        // 开关关闭状态
        lcd_set_cursor(0,0);
        lcd_print("light off");
        gpio_put(25U, 0);
    }

    UartReportBoolTypeData(CMD_POWERSTATE, powerstate_status);
}

三、运行

手机上安装爱星物联APP,下面图乱了。

基本就是完成添加设备,然后就可以用手机控制PICO2上LED亮灭和LCD1602的显示内容。

Released under the MIT License. Build Time 2026-09-11 14:52:23