1.暖风机功能简介
基于STM32的便携式取暖器是一种集成了现代微控制器技术和取暖功能的智能设备。以STM32微控制器为核心,该微控制器具有高性能、低功耗和易于编程的特点。此外,取暖器还配备了温度传感器(如DS18B20)、显示屏(如LCD1602或OLED)、加热元件、控制按键以及可能的无线通信模块(如Wi-Fi或蓝牙)等关键组件。通过STM32微控制器实时读取温度传感器的数据,精确监测环境温度。用户可以通过控制面板或远程APP设定目标温度,当环境温度低于设定值时,取暖器自动启动加热功能;当环境温度达到或超过设定值时,取暖器自动停止加热,实现智能温控。取暖器配备有显示屏,用于显示当前温度、设定温度以及工作状态等信息。用户可以通过控制面板上的按键进行温度设定、开关机等操作。部分高端型号还支持通过蓝牙或Wi-Fi连接智能手机APP,实现远程控制和监控。采用轻便的材质和结构设计,方便用户携带和移动。同时,其内置的电池或可充电电源系统使得取暖器可以在无电源插座的环境下使用,提高了使用的便捷性。
随着生活水平的提高,消费者对取暖设备的需求日益多样化。便携式取暖器因其小巧、轻便、易于携带的特点,满足了人们在不同场景下对取暖的需求。特别是在户外露营、家庭旅行、办公室取暖等场景中,便携式取暖器具有广泛的应用前景。
根据市场调研数据,取暖设备行业的市场规模在过去几年中呈现出快速增长的趋势。预计未来几年,随着消费者对取暖设备需求的不断增加和技术的持续创新,市场规模将继续扩大。越来越多的企业进入取暖器市场,市场竞争日益激烈。这要求取暖器企业不断提升产品质量、创新技术和服务水平,以满足消费者的需求和期望。智能化和绿色化是未来取暖器行业的发展趋势。基于STM32的便携式取暖器通过集成智能控制技术和采用高效节能技术,符合这一发展趋势,具有广阔的市场前景。
未来几年,便携式取暖器行业有望继续保持增长态势。随着技术的不断进步和市场的不断扩大,行业的竞争格局也将发生深刻变化。一方面,国际知名品牌和地区性品牌之间的竞争将更加激烈;另一方面,新兴技术和创新模式也将不断涌现,为行业带来新的发展机遇。
2.硬件选择
主控板:RA4M2
温湿度采集:DHT11/SHT30
发热片:PTC加热器电发热片
显示屏幕:OLED屏幕
其它:海凌科语音识别模块、电容式触摸按钮
3.PTC加热器电发热片
风扇陶瓷PTC加热器利用PTC陶瓷材料的正温度系数特性,即电阻随温度升高而增加,通过电流激发PTC陶瓷发热元件产生热量。同时,内置的风扇将热空气吹出,形成热风,从而加速热量的传递和扩散,达到取暖的效果。

4.thingsCloud连接
ThingsCloud 是新一代物联网设备统一接入平台,帮助企业在极短的时间内搭建个性化的物联网平台和应用,并适应不断变化的发展需求。目前广泛应用于制造、电力、能源、环境、农业、楼宇、家居、教育、交通、物流、自动化等领域。
ThingsCloud 可接入各类网关,传感器、执行器、控制器、通信模组、智能硬件等,实现数据采集、远程控制,数据分析、告警通知、智能联动。还可以零代码生成项目应用 SaaS 和用户应用 App,并开放 API 和实时消息,便于业务系统集成和扩展开发。

4.1 平台特点
快速接入:ThingsCloud提供开箱即用的云平台和云应用,使得硬件设备能够轻松接入云端,缩短项目交付周期,降低不确定性。
多功能支持:平台支持数据采集、实时控制、数据可视化、零代码应用开发、开放API等多种功能,满足不同场景的物联网需求。
灵活性强:ThingsCloud允许用户自定义设备和用户之间的交互方式,通过丰富的API接口和协议规范,实现设备的灵活接入和数据的灵活处理。
安全可靠:平台提供完善的安全机制和稳定可靠的云服务,确保数据的安全性和服务的可用性。
4.2 应用领域
智能家居:通过智能家居设备接入ThingsCloud,实现家居设备的远程控制和智能化管理。
农业物联网:利用农业传感器接入平台,实现农田环境的实时监测和智能灌溉等功能。
工业物联网:通过工业网关和PLC等设备接入平台,实现工业生产的智能化控制和数据分析。
智慧城市:借助城市中的各种物联网设备,如环境监测站、智能路灯等,实现城市的智能化管理和服务。
ThingsCloud平台提供从设备开发到落地运营的一站式解决方案,降低用户的使用门槛和成本。提供丰富的API接口和协议规范,方便用户进行二次开发和系统集成;拥有完善的技术支持和文档资源,帮助用户快速上手和解决问题;平台支持OEM服务,允许用户根据自己的需求进行品牌定制和界面设计。
5.设备接入案例
5.1 注册账号
ThingsCloud平台地址:事物云
首次使用根据提示注册个人账号,登录控制台。

5.2 创建设备
(1)创建暖风机项目

(2)创建设备

(3)创建设备类型


(4)添加属性信息

5.3 设备接入

5.4 平台订阅与发布
MQTT 全称是 Message Queuing Telemetry Transport,它是一种基于消息队列的轻量级应用层通信协议,实现了消息发布和订阅。设备可以作为客户端的形式通过它来发布和接收消息,实现数据上报和实时控制。
Publish 中填写发布到的主题为: attributes
内容格式为Json,示例如下:
{
"temperature": 34.2
}
从云端向设备下发数值,我们在设备端使用 MQTT 接入协议实时接收云平台下发的消息。
在设备端订阅如下主题:attributes/push

5.5 配置WIFI
配置WIFI工作模式为STA+TCP客户端,通过AT指令集实现服务器连接。
uint8_t ESP8266_STA_TcpClinetInit(const uint8_t *wifi_name,const uint8_t *password,const uint8_t *ip,const uint16_t port)
{
uint8_t i=0;
for(i=0;i<3;i++)
{
printf("第%d次退出透传...\n",i+1);
USART0_SendStr((uint8_t*)"+++");
R_BSP_SoftwareDelay(1000,BSP_DELAY_UNITS_MILLISECONDS);
if(ESP8266_SendCmd("AT\r\n","OK")==0)break;
}
char buffer[200];
printf("1.发送测试指令AT\r\n");
if(ESP8266_SendCmd("AT\r\n","OK"))return 1;
printf("2.关回显ATE0\r\n");
if(ESP8266_SendCmd("ATE0\r\n","OK"))return 2;
printf("3.设置工作模式AT+CWMODE=1\r\n");
if(ESP8266_SendCmd("AT+CWMODE=1\r\n","OK"))return 3;
printf("5.关回显ATE0\r\n");
if(ESP8266_SendCmd("ATE0\r\n","OK"))return 5;
printf("6.连接WIFI\r\n");
snprintf(buffer,sizeof(buffer),"AT+CWJAP=\"%s\",\"%s\"\r\n",wifi_name,password);
if(ESP8266_SendCmd((uint8_t *)"AT+CWJAP=\"rfid_wifi\",\"12345678\"\r\n","OK"))return 6;
printf("7.设置单连接\r\n");
if(ESP8266_SendCmd("AT+CIPMUX=0\r\n","OK"))return 7;
printf("8.查询ip\r\n");
if(ESP8266_SendCmd("AT+CIFSR\r\n","OK"))return 8;
printf("ip:%s",usart0_rx_buf);
printf("9.连接服务器\r\n");
snprintf(buffer,sizeof(buffer),"AT+CIPSTART=\"TCP\",\"%s\",%d\r\n",ip,port);
if(ESP8266_SendCmd(buffer,"OK"))return 9;
printf("10.进入透传模式\r\n");
if(ESP8266_SendCmd("AT+CIPMODE=1\r\n","OK"))return 10;
printf("11.开始发送数据\r\n");
if(ESP8266_SendCmd("AT+CIPSEND\r\n","OK"))return 11;
return 0;
}
通过Mqtt协议接入thingscloud平台
#define WIFI_NAME "您的wiif名"
#define WIFI_PASSWORD "您的密码"
#define SERVER_IP "sh-3-mqtt.iot-api.com"
#define SERVER_PORT 1883
#define ClientID "smart_home"
#define Username "vxxxxxx"
#define Password "snxxxxx"
#define SET_TOPIC "attributes/push"
#define POST_TOPIC "attributes"
while(1)
{
stat=ESP8266_STA_TcpClinetInit((u8 *)WIFI_NAME,(u8 *)WIFI_PASSWORD,(u8 *)SERVER_IP,SERVER_PORT);
if(stat==0)break;
R_BSP_SoftwareDelay(500,BSP_DELAY_UNITS_MILLISECONDS);
printf("stat=%d\r\n",stat);
}
printf("服务器连接成功\r\n");
while(1)
{
MQTT_Init();
stat=MQTT_Connect(ClientID,Username,Password);
if(stat==0)break;
R_BSP_SoftwareDelay(500,BSP_DELAY_UNITS_MILLISECONDS);
printf("正在连接....\r\n");
}
printf("连接成功\r\n");
stat=MQTT_SubscribeTopic(SET_TOPIC,0,1);
if(stat)printf("订阅失败\r\n");
else printf("订阅成功\r\n");
上报温湿度数据和心跳包
time++;
time2++;
mqtt_Publishtime++;
R_BSP_SoftwareDelay(1,BSP_DELAY_UNITS_MILLISECONDS);
if(time>=500)
{
time=0;
stat=!stat;
LED1(stat);
}
if(time2>=40000)
{
time2=0;
MQTT_SentHeart();//发送心跳包
}
if(mqtt_Publishtime>=5000)//5s上报一次
{
mqtt_Publishtime=0;
sprintf(mqtt_tx_buffer,"{\"temperature\":%.1f,\"humidity\":%d}",temp,humi);//温度
MQTT_PublishData(POST_TOPIC,mqtt_tx_buffer,0);
}
6.配置APP UI
thingscloud平台提供微信小程序平台,通过拖拽组件可自行完成小程序界面配置。

配置成功微信小程序效果如下:

