GD32VW553-v2 控制雷士 N2 吸顶灯

分享作者:tgcevgdf_7889
作者昵称:阿峰不坏
评测品牌:萤火工场
评测型号:GD32VW553-IOT-V2
发布时间:2026-08-14 15:46:26
1
视频链接
bilibili.com/video/BV1FEgw6NE7Z/ httpundefined
概要
Wifi-client接入+中控服务器+米家api-> 雷士N2吸顶灯
开源口碑分享内容

GD32VW553拥有wifi,本次学习了通过wifi client方式去连接wifi,这样测试起来不需要切换到开发板自己做wifi ap。

雷士NVC灯具支持米家app,加入后,就可以通过米家api方式去操控家中支持的电器,算是打开了一个新世界。


📄 核心代码片段

中控服务器端 (Python + Flask)

# 初始化设备
api = mijiaAPI()
lamp = mijiaDevice(api, did="696254036")


# 情景模式映射
SCENE_MAP = {
    "阅读": 9,   "影音": 8,   "温馨": 7,
    "冬暖": 16,  "夏凉": 17
}

@app.route('/api/light/control', methods=['POST'])
def control_light():
    data = request.get_json()
    action = data.get('action')
    if action == 'on':
        lamp.on = True
    elif action == 'scene':
        mode = SCENE_MAP.get(data['value'], 0)
        lamp.mode = mode
    return jsonify({"status": "success"})

GD32 嵌入式 C 语言 (HTTP 请求)

// 发送控制命令
void send_light_request(const char *json_body) {
    int sock = socket(AF_INET, SOCK_STREAM, 0);
    struct sockaddr_in server;
    server.sin_family = AF_INET;
    server.sin_port = htons(SERVER_PORT);
    inet_pton(AF_INET, SERVER_IP, &server.sin_addr);
    connect(sock, (struct sockaddr*)&server, sizeof(server));

    char request[512];
    snprintf(request, sizeof(request),
        "POST /api/light/control HTTP/1.1\r\n"
        "Host: %s:%d\r\n"
        "Content-Type: application/json\r\n"
        "Content-Length: %zu\r\n"
        "\r\n"
        "%s", SERVER_IP, SERVER_PORT, strlen(json_body), json_body);
    write(sock, request, strlen(request));
    close(sock);
}

// 调用示例
void light_set_scene(const char* scene) {
    char buf[64];
    snprintf(buf, sizeof(buf), "{\"action\":\"scene\",\"value\":\"%s\"}", scene);
    send_light_request(buf);
}


全部评论
暂无评论
0/144