本帖最后由 timo 于 2024-6-24 17:43 编辑
当初我在分享开发故事中,分享了我用esp32做的一个小夜灯,如图
原本,这次DIV作品是直接把代码迁移过来,直接在小安派也做这个灯,可惜,小安派的IO口要不不好接线,要不不能用,迁移失败
之前发帖搭建环境成功送板子,没好意思嫖,现在蓝瘦香菇了
眼看日期临近,就做了个中控端,负责给这个小夜灯发命令
之前是可以用小程序控制,这个再加个小安派控制
控制界面如图:
分别是开,关,AI,安,还有一个笑脸和哭脸
按下以后,对应文字会成为一个点,用来显示当前按下哪一个按钮
当按下按钮后,会给小夜灯发送UDP数据指令,实现对应功能
接下来是各个功能对应的照片
颜色可调,我是对应了安信可的主题色调,都设置成蓝色了
这是小程序控制图片,也补上来
接下来给大家介绍下项目
项目整体才用天气站的项目框架,当然还有论坛各位大佬的示例
不然对于我这个LVGL菜鸟来说,写这个项目真就蜀道难了
整体代码结构如图
别看代码文件多,真正我使用的代码不多,
我实际修改的就两处 demos里面的文件夹,还有wifi_event里面的wifi账号密码
外部的这些都不用管
demos就是lvgl的页面以及控制部分
这里使用NXP的 gui guider生成好页面数据
把项目文件夹里面的这两文件夹复制进/240X320_ui目录下
最后 修改图片引用,改成我图片这样就可以了
这样,直接复制我这个工程,你也就可以做LVGL了
最后说下我代码实现UDP发送代码
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <sys/socket.h>
- #include <arpa/inet.h>
- #include <unistd.h>
- #include <lwip/api.h>
- #include <lwip/arch.h>
- #include <lwip/opt.h>
- #include <lwip/inet.h>
- #include <lwip/errno.h>
- #include <netdb.h>
- #include "log.h"
- #include "utils_getopt.h"
- #include "bflb_mtimer.h"
- char *ip = "";
- int port = 7788;
- int UDPsocket(unsigned char data[], int size) {
- unsigned char message[size];
- for (int i = 0; i < size; i++) {
- message[i] = data[i];
- }
- int clientSock = socket(AF_INET, SOCK_DGRAM, 0);
- if (clientSock < 0)
- {
- LOG_I("udp create socket error\r\n");
- return;
- }
- struct sockaddr_in serverAddr;
- serverAddr.sin_family = AF_INET;
- serverAddr.sin_port = htons(port);
- serverAddr.sin_addr.s_addr = inet_addr(ip);
- sendto(clientSock, data, sizeof(message), 0, (struct sockaddr*)&serverAddr, sizeof(serverAddr));
- closesocket(clientSock);
- return 0;
- }
复制代码 开启Socket,创建UDP服务,最后发送数据,关闭socket
这里代码也基本能看懂,我就不一一注解了,
嗯,最讨厌的就是让我写注释,
更讨厌的就是别人写的代码没有注释
我终归活成自己讨厌的人了,哈哈
这里面的代码,大家有问题百度下就了解了
当然有问题也可以给我帖子下面回复,我一一解答
我的全部代码,其中 删了wifi账号密码 还有udp ip
RGB.zip
(147.65 KB, 下载次数: 2)
|