芯查查logo
  • 物料选型
  • 数据服务
    1. 新产品
    2. 查替代
    3. 丝印反查
    4. 查品牌
    5. PCN/PDN
    6. 查方案
    7. 查代理
    8. 数据合作
  • SaaS/方案
      SaaS产品
    1. 供应链波动监测预警
    2. 半导体产业链地图
    3. BOM管理
    4. 解决方案
    5. 汽车电子
    6. 政府机构
    7. 数据API
  • 商城
  • 行业资讯
    1. 资讯
    2. 直播
  • 论坛社区
    1. 论坛
    2. 学习
    3. 测评中心
    4. 活动中心
    5. 积分商城
  • 查一下
修充电器上瘾
【树莓派pico 2评测】3、物联网应用

爱星物联平台支持BLE+WIFI模块固件+MCU SDK方式实现物联网应用。

本文通过pico2 + Ai-WB2模块访问爱星物联平台,并用通过爱星物联APP发送控制指令。

连线图:

 

 

一、平台准备

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

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

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

6.png

2、硬件开发

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

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

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

7.png

3、MCU SDK下载

需要下载这个MCU SDK

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

8.png

10.png

4、三元组

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

9.png

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

11.png

完成了模块固件下载和三元组激活,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的显示内容。

 

 

 

 

开发板测评 树莓派pico 2
版块: 开发板测评
2025/04/10 11:34
  • 举报
😁😂😃😄😅😆😉😊😋😌😍😏😒😓😔😖😘😚😜😝😞😠😡😢😣😤😥😨😩😪😫😭😰😱😲😳😵😷😸😹😺😻😼😽😾😿🙀🙅🙆🙇🙈🙉🙊🙋🙌🙍🙎🙏✂✅✈✉✊✋✌✏✒✔✖✨✳✴❄❇❌❎❓❔❕❗❤➕➖➗➡➰🚀🚃🚄🚅🚇🚉🚌🚏🚑🚒🚓🚕🚗🚙🚚🚢🚤🚥🚧🚨🚩🚪🚫🚬🚭🚲🚶🚹🚺🚻🚼🚽🚾🛀Ⓜ🅰🅱🅾🅿🆎🆑🆒🆓🆔🆕
@好友

全部评论

加载中
游客登录通知
已选择 0 人
自定义圈子
移动
发布帖子
发布动态
发布问答
最新帖子
【星允派 NEBULA PI】09:USB虚拟CDC与串口1【星允派 NEBULA PI】15:高级定时器输出PWM【星允派 NEBULA PI】14:使用DMA方式读取ADC【有奖话题35期】明明硬件比软件难,但为什么待遇还不如软件?【星允派 NEBULA PI】12:添加时间任务调度器
热门版块
查看更多
问型号
问技术
问行情
电子DIY
汽车电子工程师论坛
工业电子专区
新手入门指南
单片机/MCU论坛
PCB设计
开源项目

110

收藏

分享

微信扫码
分享给好友

评论