查看: 1526|回复: 4

【智能家居挑战赛】+ 智家中控器 #1 “LWIP+LittleVGL“联合

[复制链接]

该用户从未签到

25

主题

64

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1025
最后登录
2024-3-31
发表于 2021-4-19 15:42:36 | 显示全部楼层 |阅读模式
1、项目名称:
”智家中控器“
2、项目简介
智家中控器是在智能家居中心,实时采样智能家居电器的信号并可以远传和远控的中心控制器。
3、硬件
3.1 NXP LPCXpresso54628
3.2 智能家居演示迷你屋,含灯光小电机等
3.3 后台远控系统采用云平台

4、 软件
4.1 MCUxpresso IDE 11.3.0,官网免费下载注册使用
4.2 SDK 2.9.0 LPCXpresso54628 ,使用SDK builder自定义生成,包含驱动和范例代码
4.3 GUI Builder for LVGL UI 开发

5、开发过程
5.1 安装MCUxpresso IDE 11.3.0和SDK 2.9.0 LPCXpresso54628
5.2 安装GUI Builder
5.3 首先使用范例代码,生成并输出GUI代码
5.4 创建一个新的工程,并用lvgl_guider作为模板程序
5.5 增加引脚定义,在board.c, board.h, pinmux.c, pinmux.h这个几个文件中正确定义选择的引脚,主要是添加enet对应以太网控制器的引脚。
5.6 添加lwip库,并加入到include,定义freeRTOS.h,正确定义freeRTOS,可以使用baremetal硬开发,不过还是freeRTOS更快,但是不省心,需要透彻了解thread和通信机制,以及正确设定ticktime,内存和heap的设定,只有全部设定正确才能启动的。
5.7 把GUI builder生成的代码合并到项目中去。
5.8 启动build,然后debugg,就可以下载到开发板中。

6、阶段工作展示
6.1 完成后正确启动了LCD屏,并可以正确工作。
1810577640.jpg
6.2 在console可以正确显示工作流程,并启动以太网控制器,开始ping远程的mqtt服务器,虽然失败,但是流程比较完整了。
1.PNG
6.3 主程序代码如下
  1. int main(void)
  2. {
  3.     BaseType_t stat;
  4.     static struct netif netif;
  5.                 #if defined(FSL_FEATURE_SOC_LPC_ENET_COUNT) && (FSL_FEATURE_SOC_LPC_ENET_COUNT > 0)
  6.     static mem_range_t non_dma_memory[] = NON_DMA_MEMORY_ARRAY;
  7.                 #endif /* FSL_FEATURE_SOC_LPC_ENET_COUNT */
  8.     ip4_addr_t netif_ipaddr, netif_netmask, netif_gw;
  9.     ethernetif_config_t enet_config = {
  10.         .phyHandle  = &phyHandle,
  11.         .macAddress = configMAC_ADDR,
  12.                 #if defined(FSL_FEATURE_SOC_LPC_ENET_COUNT) && (FSL_FEATURE_SOC_LPC_ENET_COUNT > 0)
  13.         .non_dma_memory = non_dma_memory,
  14.                 #endif /* FSL_FEATURE_SOC_LPC_ENET_COUNT */
  15.             };

  16.     CLOCK_EnableClock(kCLOCK_InputMux);
  17.     /* Init board hardware. */
  18.     /* attach 12 MHz clock to FLEXCOMM0 (debug console) */
  19.     CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH);

  20.     BOARD_InitPins();
  21.     BOARD_BootClockPLL220M();
  22.     BOARD_InitDebugConsole();
  23.     BOARD_InitSDRAM();

  24.     /************* MQTT task ****************/
  25.     generate_client_id();
  26.     mdioHandle.resource.csrClock_Hz = EXAMPLE_CLOCK_FREQ;
  27.     IP4_ADDR(&netif_ipaddr, 0U, 0U, 0U, 0U);
  28.     IP4_ADDR(&netif_netmask, 0U, 0U, 0U, 0U);
  29.     IP4_ADDR(&netif_gw, 0U, 0U, 0U, 0U);
  30.     tcpip_init(NULL, NULL);
  31.     mqtt_client = mqtt_client_new();
  32.     if (mqtt_client == NULL)    {
  33.             PRINTF("mqtt_client_new() failed.\r\n");
  34.             while (1)
  35.             {    }
  36.         }
  37.     netifapi_netif_add(&netif, &netif_ipaddr, &netif_netmask, &netif_gw, &enet_config, EXAMPLE_NETIF_INIT_FN, tcpip_input);
  38.     netifapi_netif_set_default(&netif);
  39.     netifapi_netif_set_up(&netif);
  40.     netifapi_dhcp_start(&netif);
  41.     PRINTF("...MQTT client is ready to go... \r\n");
  42.     if (sys_thread_new("lwip_task", lwip_thread, &netif, APP_THREAD_STACKSIZE, APP_THREAD_PRIO) == NULL)
  43.     {
  44.         LWIP_ASSERT("main(): Task creation failed.", 0);
  45.     }

  46.     /************** lvgl Task ****************/
  47.     PRINTF("...Try to create littlevgl task...\r\n");
  48.     stat = xTaskCreate(LVGL_thread, "littlevgl Task", configMINIMAL_STACK_SIZE + 800, NULL, tskIDLE_PRIORITY + 2, NULL);
  49.     if (pdPASS != stat)
  50.     {
  51.         PRINTF("Failed to create littlevgl task...\r\n");
  52.         while (1)
  53.             ;
  54.     }

  55.     vTaskStartScheduler();
  56.     for (;;)
  57.     {    }
  58.     /* should never get here */
  59. }
复制代码


6.4 主要程序附件如下,主要的程序目录压缩文件如附件供参考。 source.zip (14.72 KB, 下载次数: 2)
回复

使用道具 举报

  • TA的每日心情
    开心
    2022-5-25 16:03
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    8

    主题

    718

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3395
    最后登录
    2024-3-5
    发表于 2021-4-19 15:50:59 | 显示全部楼层
    支持      
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-11-4 13:30
  • 签到天数: 47 天

    [LV.5]常住居民I

    3

    主题

    167

    帖子

    0

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    379
    最后登录
    2024-4-16
    发表于 2021-4-26 15:15:07 | 显示全部楼层
    能否分享实际效果小视频
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2022-12-30 08:07
  • 签到天数: 87 天

    [LV.6]常住居民II

    0

    主题

    242

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    1097
    最后登录
    2022-12-30
    发表于 2021-5-19 08:02:46 | 显示全部楼层
    没看到实际效果视频
    生命不息,奋斗不止!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    25

    主题

    64

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1025
    最后登录
    2024-3-31
     楼主| 发表于 2021-5-19 14:16:51 | 显示全部楼层
    delei 发表于 2021-5-19 08:02
    没看到实际效果视频

    在最后一贴有视频
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-26 06:20 , Processed in 0.127748 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表