智能家居挑战赛马上快要结束了,目前就开发了个小功能,还不是很完善,现在分享下,继上次分享的LPC55S16后,这次继续用这个现成的LPC55S16开发板开发。本次的云模块使用的是涂鸦智能的WiFi模块进行数据上传,同时配合涂鸦云开发。本次氛围灯使用上次接的P9813的RGB灯。本来其实是想使用WS2812的,结果时序上有点问题,就没弄了。 接下来直接看下整体图。 本次还是那个Arduino接口上堆叠了一块涂鸦的WB3S mcu模块,这个注意下就行,它这个模组可以是零代码开发的,所以要选择MCU版本,这样才能通信上。串口就是使用右下角的。 原理图上就是FC2功能里的串口。 本次开发也使用上了NXP家的MCUXpresso开发工具,因为其也是一套图形化配置,使用起来十分方便,入门的话需要自己去稍微找下视频学习下。上手之后开发还是特别方便。 上面也是可以看到我使用的一些管脚。用了一个绿色LED显示其WiFi模块状态的。 涂鸦云这边就是也是需要创建非零代码方案。然后可以自己添加功能,这里自己也偷懒了没有自定义了。但是其逻辑上有些功能,还是自定义使用起来方便。 之后的硬件开发上,选择应模组,然后就可以在底下下载开发资料了。 这里其生成的代码就是MCU_SDK了,下载下来之后添加到我们自己工程里。 就是这个样子的。我们需要修改其注释的几个地方,主要用户的交互功能都是在protocol.c中开发的。
- int main(void) {
- /* Init board hardware. */
- BOARD_InitBootPins();
- BOARD_InitBootClocks();
- BOARD_InitBootPeripherals();
- #ifndef BOARD_INIT_DEBUG_CONSOLE_PERIPHERAL
- /* Init FSL debug console. */
- BOARD_InitDebugConsole();
- #endif
- // PRINTF("Hello World\n");
- /* Force the counter to be placed into memory. */
- // volatile static int i = 0 ;
- USART_EnableInterrupts(FLEXCOMM2_PERIPHERAL, kUSART_RxLevelInterruptEnable | kUSART_RxErrorInterruptEnable);
- EnableIRQ(FLEXCOMM2_IRQn);
- wifi_protocol_init();
- if (SysTick_Config(SystemCoreClock / 1000000U))
- {
- while (1)
- {
- }
- }
- RGBLED_Show(0,0,0);
- /* Enter an infinite loop, just incrementing a counter. */
- while(1) {
- if (init_flag == 0)
- {
- time_cnt++;
- if (time_cnt % 6000 == 0)
- {
- time_cnt = 0;
- cnt ++;
- }
- wifi_stat_led(&cnt); // Wi-Fi状态处理
- }
- wifi_uart_service();
- }
- return 0 ;
- }
复制代码主函数中就非常简洁,一个是读取WiFi状态,一个是处理模块下发数据。其实还可以加一个按键配网。这里也省略了。 之后就是手机端下载APP,进行连接以及功能测试。 首先是配对,配对状态下,LED绿灯会快闪,同时添加设备可以自动搜索到。点击下一步连接2.4GWiFi才能配网成功。 这一步就是添加设备。 最后这个就是演示了,完成基本功能。代码写的比较乱,不具备太多参考价值,不过也发一下吧。
|