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);
}

开源社区 


