由 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启动后立即初始化,如此方可接收并处理串口数据
📜 点击展开完整代码
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()需要轮询处理
📜 点击展开完整代码
void
uart_task
()
{
while
(
true
) {
UartProcessPro();
vTaskDelay(
100
);
}
}3、在uart1中断接收函数中调用UartRevOneByte()
📜 点击展开完整代码
// 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函数
📜 点击展开完整代码
char
UartWriteData
(unsigned
char
*dataBuff, unsigned
char
dataLen)
{
//"请将MCU串口发送函数填入该函数,并删除该行"
uart1_send_string(dataBuff, dataLen);
return
0
;
}需要注意的是uart1发送函数不需要在字符串后发送回车换行字符。
📜 点击展开完整代码
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中实现点灯处理
📜 点击展开完整代码
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的显示内容。







