# 基于stm32mqtt控制智能家居 **Repository Path**: chaim-pp/stm32mqtttkoz ## Basic Information - **Project Name**: 基于stm32mqtt控制智能家居 - **Description**: 使用 STM32F103C8T6主控芯片、L298N、小马达、DS18B20、0.96寸OLED、1.5寸tft、TM1638、esp8266半导体制冷片借以链表索引表写成多级菜单实现屏幕按键终端控制多个家器的功能。实现风扇pwm调速、空调制冷加热、开关灯、调节TFT屏幕亮度、定时自动升高温度等功能。并通过onenet的mqtt实时上传数据流到微信小程序,也可小程序远程下发指令控制。 - **Primary Language**: C - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 12 - **Created**: 2022-12-31 - **Last Updated**: 2022-12-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **# stm32_ToOneNetByMqtt** **简介:** 实现风扇pwm调速、空调制冷加热、开关灯、调节TFT屏幕亮度、定时自动升高温度等功能。并通过onenet的mqtt实时上传数据流到微信小程序,也可小程序远程下发指令控制。 #### 1. 相关连接: 1. Bilibili(视频演示):https://b23.tv/BV1qq4y1g7e9 #### 2. 具体功能: 1. DS18B20采集温度和各种灯开关风扇档位空调状态上传到onenet,本地上位机控或者微信小程序控制 2. 串口显示相关数据信息 #### 3. 硬件环境: 1. STM32F103C8T6 2. DS18B20温度传感器 3. ESP8266-01S无线模块 4. L298N 5. 0.96寸OLED 6. 1.5寸tft 7. TM1638 8. 半导体制冷片 9. 小马达 #### 4.展示: 1. **数据流**![输入图片说明](%E5%9B%BE%E7%89%87/55daab1ff86cf53b0400c3d3cc51173.png) 2. **微信小程序** ![输入图片说明](%E5%9B%BE%E7%89%87/ac9c413bdf297bace405bbe0a5c46b7.jpg) 3. **状态显示屏** ![输入图片说明](%E5%9B%BE%E7%89%87/dca1d484c10bce7cc82285b9af32603.jpg) - stm32f10x_it.c:中断处理函数 - usart1.c:与上位机通信 - usart2.c:与ESP8266通信,串口2接收中断处理上位机发送来的数据 - timer1.c:定时器2pwm, - timer2.c:定时器2中断用来发送温湿度数据,10S - timer3.c:定时器3中断用来发送心跳包(ping,用于保持和服务器连接,长时间没给服务器发送数据会被踢下线),2s和30s两种模式 - timer4.c:将串口2接收到的服务器数据依次存放在MQTT接收缓存数组中,50ms - control.c:控制LED灯,并且发送LED灯开关信号 1. mqtt.h : ```c #define PRODUCTID "zzzzzz" //自己的产品ID #define DEVICEID "660024974" //自己的设备ID #define AUTHENTICATION "123456" //自己的鉴权信息(创建设备的时候设置) ``` 2. wifi.h ```c #define SSID "y" //路由器SSID名称 #define PASS "11111111" //路由器密码 ``` 3. mqtt.c sprintf(ServerIP,"%s","183.230.40.39"); //构建服务器域名(ONENET的) ServerPort = 6002; //服务器端口号6002