当前位置: 首页 > news >正文

江门阿里巴巴网站建设wordpress制作下拉菜单

江门阿里巴巴网站建设,wordpress制作下拉菜单,电脑网站和手机网站的区别,wordpress有哪些功能一、前言 1.1 项目开发背景 随着智能家居技术的迅猛发展#xff0c;传统家用电器正逐步向智能化方向转型。暖风机作为冬季广泛使用的取暖设备#xff0c;其智能化升级不仅能够提高用户的使用体验#xff0c;还能通过物联网技术实现远程控制和数据监控#xff0c;赋予其更…一、前言 1.1 项目开发背景 随着智能家居技术的迅猛发展传统家用电器正逐步向智能化方向转型。暖风机作为冬季广泛使用的取暖设备其智能化升级不仅能够提高用户的使用体验还能通过物联网技术实现远程控制和数据监控赋予其更高的使用价值和市场竞争力。 在日常生活中用户对暖风机的使用需求多样化既需要实时了解室内环境温湿度数据也希望能够通过简单的方式对暖风机的状态进行控制如调整档位、开关设备等。同时考虑到节能和高效的取暖效果采用PTC陶瓷材料加热器作为核心发热元件以其高效、稳定、安全的特点满足现代家庭对取暖设备的性能需求。 语音识别技术的成熟为智能家居设备的交互方式带来了新的可能性。用户无需繁琐的按钮操作仅通过语音指令即可实现对设备的控制大幅提升了使用的便捷性和智能化水平。此外物联网技术的发展使得设备可以通过网络与云平台实现数据交互为设备提供远程监控、控制和数据分析的能力这不仅能够提升用户体验还为设备的运维与优化提供了可能。 为了满足用户对智能暖风机的需求本项目基于STM32F103C8T6主控芯片设计一款智能暖风机设备集成环境温湿度实时检测、本地LCD显示、语音控制以及物联网功能。通过ESP8266模块连接华为云IoT物联网平台实现设备状态的云端展示与远程控制。同时设计Android手机APP和Windows上位机软件提供多平台的交互支持用户可以随时随地掌握设备运行状态并进行控制。这一设计不仅结合了物联网和智能控制技术还符合现代用户对舒适、便捷、智能生活的追求具有广阔的市场前景和应用价值。 APP的控制界面 这是设计的硬件模型 1.2 设计实现的功能 本项目使用的相关开发工具资料都已经上传到网盘需要的可自行下载。 https://ccnr8sukk85n.feishu.cn/wiki/QjY8weDYHibqRYkFP2qcA9aGnvb?fromfrom_copylink 本项目设计的智能暖风机支持实时检测并显示环境温度和湿度通过集成传感器获取室内环境数据并在本地LCD显示屏上实时展示。这些数据不仅帮助用户了解室内环境状况还为设备的智能控制提供支持。 暖风机具备多档位调节功能用户可以根据需求选择不同的取暖模式。设备状态包括开关状态、取暖档位以及当前时间等信息均清晰显示在LCD屏上方便用户随时掌握设备的运行情况。基于PTC陶瓷加热技术暖风机能够提供稳定且高效的热量输出同时通过内置风扇将热空气均匀分布提升取暖效果。 语音识别控制功能是本项目的一大亮点。用户无需传统的物理按键操作只需通过语音指令即可完成设备的开关和档位调节。这不仅增强了设备的智能化和交互体验还为老人和儿童等特殊群体提供了更加友好的使用方式。 设备支持物联网功能通过ESP8266-WIFI模块和MQTT协议连接至华为云IoT平台。实时上传环境数据和设备状态至云端用户可通过Android手机APP或Windows上位机远程查看和控制设备。无论是家中还是外出用户都能轻松掌握设备的运行状态并进行远程操作从而实现智能化、便捷化的暖风机控制。 智能暖风机的Android APP和Windows上位机软件基于Qt (C)设计具备友好的用户界面和稳定的交互功能。通过这些平台用户可以实时监控设备数据包括环境温湿度、设备档位和开关状态并对设备进行远程开关操作。这种跨平台的支持确保了用户能够在多种设备上享受统一的控制体验。 实现的功能详解如下 (1) 环境数据检测 支持实时监测环境温度和湿度采用DHT11传感器后续计划升级为SHT30采集数据为设备运行提供环境依据并在LCD屏上直观显示。 (2) 本地状态显示 通过LCD显示屏实时展示设备的温湿度信息、开关状态、取暖档位以及当前时间帮助用户随时掌握设备运行状态。 (3) 语音识别控制 集成HLK-V20语音识别模块支持用户通过语音指令对设备进行开关控制及档位调节提供高效便捷的语音交互功能。 (4) 红外遥控功能 支持通过遥控器使用NEC红外线协议对设备进行无线控制包括开关操作和档位调整为用户提供另一种便捷的控制方式。 (5) 联网功能 通过ESP8266-01S模块和MQTT协议接入华为云IoT平台设备可实时上传环境数据和运行状态并接收来自云端的控制指令。 (6) 远程控制功能 设计基于Qt (C)开发的Android手机APP和Windows电脑上位机用户可通过这些平台远程查看暖风机的状态如开关状态、档位、温湿度并实现控制操作无论身在何处都能轻松掌控设备。 (7) 多档位取暖调节 设备支持多档位调节功能用户可根据室内温度或取暖需求选择不同档位实现舒适化和节能化的取暖效果。 (8) 高效取暖与安全保护 采用PTC陶瓷加热器提供稳定、高效的加热效果结合内置风扇实现均匀热风输出。同时通过PTC特性及过热保护设计确保设备在使用中的安全性和可靠性。 (9) 数据存储与云同步 设备将环境数据和运行状态上传至华为云IoT平台便于用户通过云端查看历史记录并为数据分析和优化提供支持。 (10) 多方式控制 支持语音、遥控器、本地按键及远程APP多种控制方式满足用户在不同场景下的操作需求增强设备的适用性和用户体验。 1.3 项目硬件模块组成 (1) 主控模块 采用STM32F103C8T6作为主控芯片负责协调各功能模块包括环境数据处理、设备状态管理、语音控制、远程通信及显示等功能。 (2) WIFI通信模块 使用ESP8266-01S模块基于MQTT协议实现与华为云IoT平台的无线连接支持数据上传和远程控制。 (3) 语音识别模块 选用海凌科HLK-V20语音识别模块用于识别语音指令实现暖风机的开关控制和档位调整提供智能语音交互功能。 (4) 红外遥控模块 集成NEC红外线协议的接收模块用于接收遥控器指令实现暖风机的无线遥控操作包括开关和档位调节。 (5) 环境传感器模块 采用DHT11传感器后续升级为SHT30实时检测环境温湿度数据为设备运行提供环境参数参考并在LCD屏上显示。 (6) 显示模块 使用LCD显示屏实时显示设备状态包括环境温湿度、暖风机开关状态、档位及当前时间帮助用户直观了解设备运行情况。 (7) 加热模块 采用PTC陶瓷加热器作为核心发热部件利用其正温度系数特性提供安全、高效的加热效果并配备内置风扇将热风均匀分布。 (8) 按键控制模块 设备配备物理按键用于手动操作暖风机开关和档位调节作为语音和遥控控制的备选方案。 (9) 电源模块 为整个系统提供稳定可靠的电源供应包括主控芯片、WIFI模块、传感器、语音模块、显示屏及加热模块的电源需求确保设备稳定运行。 (10) 风道与散热模块 设计合理的风道结构通过内置风扇加速热风扩散优化散热效率避免设备长时间运行时因过热而影响安全性和使用寿命。 (11) 外壳及防护模块 采用耐高温材料制作外壳结合散热设计和绝缘处理确保设备运行安全同时增强结构强度和美观性。 1.4 设计思路 硬件设计以STM32F103C8T6为核心处理单元结合ESP8266-WIFI模块、语音识别模块HLK-V20和PTC陶瓷加热器等关键组件实现设备的核心功能。STM32F103C8T6凭借其高性能和丰富的外设接口能够满足传感器数据采集、LCD显示、语音指令处理及网络通信的多任务需求。传感器部分选用高精度温湿度传感器用于环境参数监测将数据实时传输给MCU进行处理并显示在LCD屏上。 语音控制模块通过HLK-V20芯片实现对用户语音指令进行识别和处理结合MCU实现暖风机的开关控制和档位调整。这种设计避免了传统按钮操作的繁琐提升了设备的人机交互水平。PTC陶瓷加热器作为暖风机的核心部件结合内置风扇提供稳定高效的取暖效果并充分利用其正温度系数特性确保设备运行的安全性和节能性。 其网络功能通过ESP8266模块和MQTT协议实现。设备与华为云IoT平台的连接使其具备数据上传和远程控制的能力。环境温湿度数据和设备运行状态会周期性上传至云平台用户可以通过手机APP或Windows上位机软件随时查看和控制设备。采用MQTT协议能够保证数据传输的高效性和实时性适应智能家居设备对低延时、高可靠性的要求。 软件设计方面本地端采用Qt (C)开发用户控制应用覆盖Android和Windows两个平台提供统一的操作界面。用户通过APP或上位机软件可以直观地查看设备运行状态包括环境数据、档位信息和开关状态并可进行远程开关和档位调节操作。APP和上位机的软件架构与华为云IoT平台深度集成确保数据同步的实时性和准确性。 在系统功能的实现中采用模块化设计思路各子模块如传感器数据采集、语音控制、网络通信、APP控制等独立开发并通过主控MCU进行协同管理。这种设计不仅提高了系统开发的效率和稳定性还便于后续功能扩展和维护。 整体设计注重硬件与软件的协同工作将传感技术、语音交互和物联网技术融合为用户提供便捷、安全、高效的智能取暖解决方案同时展现了现代智能家居产品的功能集成和技术创新。 1.5 系统功能总结 功能类别具体功能描述环境数据监测温湿度检测实时监测环境温度和湿度提供环境数据参考并在LCD上显示。显示功能本地LCD显示实时显示环境温湿度、设备开关状态、取暖档位及当前时间为用户提供清晰的运行状态信息。控制功能语音控制用户通过语音指令控制设备开关和档位调节提升智能交互体验。红外遥控支持遥控器使用NEC红外线协议进行无线控制实现开关和档位调整功能。按键控制设备支持物理按键手动操作作为其他控制方式的补充方案。远程控制用户通过Android APP或Windows上位机进行远程操作查看设备状态并控制开关及档位调整。联网功能云平台接入通过ESP8266模块和MQTT协议接入华为云IoT平台实现数据上传和云端控制功能。数据同步与存储实时上传环境数据和设备状态至云端支持历史数据存储及查看。取暖功能多档位调节提供多档取暖模式用户可根据环境和需求选择适合的取暖档位。高效加热使用PTC陶瓷加热器提供稳定高效的加热效果内置风扇实现热量均匀分布。安全功能过热保护通过过热保护和PTC正温度系数特性确保设备运行安全性防止温度过高导致的风险。散热优化优化风道和外壳散热设计延长设备使用寿命并保障安全。时间显示功能当前时间显示LCD屏支持显示当前时间提升设备的功能性和实用性。多控制方式支持综合控制方式集成语音、遥控器、按键及远程APP多种控制方式满足用户不同场景下的操作需求。远程管理功能跨平台支持Android手机APP和Windows上位机均可对设备进行状态查看和操作提供统一且便捷的远程管理体验。 1.6 开发工具的选择 【1】设备端开发 STM32的编程语言选择C语言C语言执行效率高大学里主学的C语言C语言编译出来的可执行文件最接近于机器码汇编语言执行效率最高但是汇编的移植性比较差目前在一些操作系统内核里还有一些低配的单片机使用的较多平常的单片机编程还是以C语言为主。C语言的执行效率仅次于汇编语法理解简单、代码通用性强也支持跨平台在嵌入式底层、单片机编程里用的非常多当前的设计就是采用C语言开发。 开发工具选择Keilkeil是一家世界领先的嵌入式微控制器软件开发商在2015年keil被ARM公司收购。因为当前芯片选择的是STM32F103系列STMF103是属于ARM公司的芯片构架、Cortex-M3内核系列的芯片所以使用Kile来开发STM32是有先天优势的而keil在各大高校使用的也非常多很多教科书里都是以keil来教学开发51单片机、STM32单片机等等。目前作为MCU芯片开发的软件也不只是keil一家独大IAR在MCU微处理器开发领域里也使用的非常多IAR扩展性更强也支持STM32开发也支持其他芯片比如CC2530,51单片机的开发。从软件的使用上来讲IAR比keil更加简洁功能相对少一些。如果之前使用过keil而且使用频率较多已经习惯再使用IAR是有点不适应界面的。 【2】上位机开发 上位机的开发选择Qt框架编程语言采用CQt是一个1991年由Qt Company开发的跨平台C图形用户界面应用程序开发框架。它既可以开发GUI程序也可用于开发非GUI程序比如控制台工具和服务器。Qt是面向对象的框架使用特殊的代码生成扩展称为元对象编译器(Meta Object Compiler, moc)以及一些宏Qt很容易扩展并且允许真正地组件编程。Qt能轻松创建具有原生C性能的连接设备、用户界面UI和应用程序。它功能强大且结构紧凑拥有直观的工具和库。 1.7 模块的技术详情介绍 【1】ESP8266-WIFI模块 ESP8266是由乐鑫科技Espressif Systems开发的一款低成本、低功耗的Wi-Fi无线模块。它是一种集成度很高的系统级芯片SoC内置了处理器、Wi-Fi功能、内存和其他基本外设能够使嵌入式设备具备无线通信能力。ESP8266模块以其出色的性能和极高的性价比广泛应用于物联网IoT设备、智能家居、远程控制等领域。 ESP8266的核心是一个低功耗的32位微处理器通常运行频率为80MHz或者160MHz具有一定的计算能力能够执行一些简单的控制任务。模块内置的Wi-Fi功能支持802.11 b/g/n协议具备无线网络连接、TCP/IP协议栈和安全加密等功能因此可以通过Wi-Fi网络与其他设备或服务器进行通信。ESP8266不仅支持APAccess Point模式还支持STAStation模式这意味着它既可以作为Wi-Fi接入点也可以作为Wi-Fi客户端连接到现有的无线网络。 ESP8266模块通过UART串口接口与外部设备进行通信通常使用AT指令集进行控制和配置。在这种工作模式下用户可以通过串口发送AT指令来控制模块的网络连接、数据传输、配置设置等操作。除了基本的Wi-Fi功能ESP8266还支持TCP、UDP、HTTP、MQTT等网络协议可以方便地进行数据交互和远程控制。 ESP8266模块的另一个重要特点是其低功耗特性。在休眠模式下ESP8266的功耗极低非常适合于电池供电的物联网设备。在正常工作时它的功耗也比较低适合长时间在线运行。对于需要较长工作时间的无线传感器、智能家居设备等应用ESP8266提供了一个非常高效的解决方案。 在开发环境方面ESP8266非常灵活。它可以通过Arduino IDE进行编程开发者可以利用现有的Arduino开发经验和大量的开源库进行项目开发。此外ESP8266还支持NodeMCU开发板这是一款基于ESP8266的开源开发板集成了Lua脚本和简单的编程接口使得编程更为简便。通过这些开发环境开发者可以快速上手并进行原型设计和调试。 ESP8266模块的应用场景非常广泛尤其是在物联网IoT领域。例如用户可以使用ESP8266开发智能家居系统利用Wi-Fi连接控制灯光、温控器、安全设备等。它也广泛用于智能插座、智能传感器、远程监控、无线数据传输等设备中。其低成本和高效能使其成为许多家庭自动化和小型物联网应用的首选平台。 ESP8266是一款功能强大、性价比高的Wi-Fi无线模块。其集成度高、易于编程、低功耗的特点使其成为物联网应用中的理想选择。随着IoT技术的不断发展ESP8266模块仍将在各类智能设备中发挥重要作用。 【2】MQTT协议 MQTTMessage Queuing Telemetry Transport消息队列遥测传输协议是一种轻量级、发布/订阅模式的消息传输协议专为低带宽、不可靠网络环境设计。它最早由IBM提出现已成为物联网IoT通信的重要协议之一。由于其高效、低功耗和实时性等特点MQTT在智能家居、工业自动化、远程监控和车联网等领域得到了广泛应用。 MQTT的工作原理基于发布/订阅模型。这种模型有别于传统的客户端-服务器模型通信方不需要直接建立连接。MQTT由三个核心组件构成客户端、代理Broker和主题Topic。客户端可以作为消息的发布者或订阅者消息通过代理进行路由。代理是一个中间服务端用于接收和分发来自不同客户端的消息。发布者发送消息到一个特定的主题上代理负责将这些消息分发给所有订阅了该主题的客户端。通过这种解耦的架构设计客户端之间可以实现松耦合的通信降低了复杂性和依赖性。 在MQTT协议中消息被分为不同的主题Topic例如“home/sensor/temperature”可以用来代表温度传感器数据。客户端可以订阅这个主题当发布者发送新的数据到该主题时所有订阅该主题的客户端都会收到更新信息。这种灵活的主题结构和层次化的命名规则使得MQTT在复杂场景下也能快速组织和管理消息流。 MQTT协议支持三种服务质量QoS等级分别为“至多一次”QoS 0、“至少一次”QoS 1和“仅一次”QoS 2。QoS 0表示消息传输尽力而为可能会丢失或重复QoS 1确保消息至少送达一次但可能会有重复QoS 2则确保消息恰好传输一次保证消息的严格可靠性。这种设计使MQTT能够适应不同的应用场景用户可以根据应用需求选择合适的QoS级别。 为了保证通信的安全性MQTT支持用户名和密码验证代理可以对连接进行身份认证。此外许多实现中还支持TLS/SSL加密通信确保数据在传输过程中不会被窃取或篡改。用户也可以使用不同的认证方式来增强系统的安全性适应物联网应用中对安全性的高需求。 MQTT非常注重轻量化和低功耗。它的报文头非常小通信开销很低这使其特别适合在资源受限的设备或不稳定的网络环境中使用。MQTT支持“保持连接”和“遗嘱消息”功能客户端可以在连接断开时自动向代理发送遗嘱消息通知其他客户端连接状态的变化。这种特性有助于提高网络的健壮性和系统的可用性。 MQTT的典型使用场景包括物联网设备数据采集、实时监控、消息推送和控制命令的发布。比如在智能家居中传感器可以发布环境数据如温湿度、烟雾浓度等控制设备根据收到的消息作出响应实现自动化操作。在工业场景中MQTT可以帮助收集和管理大规模设备的运行状态实现集中化和高效的设备监控。 总的来说MQTT协议凭借其低功耗、高效能、实时性强等优势已成为物联网通信的主要协议之一。它的发布/订阅模式简化了设备之间的通信使其特别适合多对多、低延迟、高可靠性的数据传输场景。MQTT易于使用、拓展性强为开发者提供了灵活的解决方案来构建各种物联网应用。 【3】SHT30模块 SHT30模块是一款高精度、数字化的温湿度传感器模块由Sensirion公司生产。该模块内置SHT30传感器采用CMOSens®技术能够精准测量环境的温度和相对湿度并提供数字输出广泛应用于温湿度监测、智能家居、环境监测和物联网设备中。SHT30具有高度集成的特点包括温湿度传感元件和信号处理电路因此能够在小体积内提供精确而稳定的测量结果。 SHT30模块的温度测量范围为-40°C至125°C精度可达±0.3°C湿度测量范围为0%至100% RH相对湿度精度在±2% RH左右满足绝大多数环境监测需求。SHT30传感器通过I²C接口与外部设备通信使数据读取变得简单而高效。I²C总线采用标准的7位地址模块可以与多种MCU或单片机系统无缝对接适合各种嵌入式应用。除了I²C接口SHT30还支持单次测量模式和周期测量模式使用户可以根据功耗和实时性需求灵活配置。 SHT30模块的内部结构经过优化使其具有快速响应时间和出色的抗干扰性能。模块外壳设计紧凑能够有效防尘防潮适合应用于恶劣环境中。为了保证测量稳定性模块具备内置加热功能可以有效减少冷凝现象对测量的影响确保在高湿度环境下仍然能够获得准确数据。此外SHT30模块经过了严格的出厂校准和温湿度补偿具有良好的长期稳定性漂移极小因此在实际应用中不需要频繁重新校准。 SHT30模块的低功耗设计使其适用于电池供电的物联网设备。传感器在单次测量模式下仅在测量期间消耗少量功率待机时功耗极低可延长电池寿命。同时模块还支持内置CRC校验功能确保数据通信的可靠性避免因干扰或传输错误导致的测量不准确。模块的应用广泛而灵活适合集成在温湿度监测站、工业控制、自动化设备、智能家居系统以及农业和医药环境监测中能够为各种应用提供高精度的环境数据支持。 二、 ESP8266-WIFI模块调试过程 如果大家第一次使用ESP8266写代码之前正常都需要进行调试测试模块。然后再开始去写对应的代码。 如果是转接板只需要接 TXD RXD VCC GND 即可。 视频https://www.bilibili.com/video/BV1ku4y1E74M 2.1 接电脑USB口调试 2.2 ESP8266的STATCP客户端配置 按下面的命令顺序配置测试WIFI的链接。 //STATCP客户端模式 char *ESP8266_STA_Client[] {AT\r\n,ATE0\r\n,ATCWMODE1\r\n,ATRST\r\n,ATE0\r\n,ATCWLAP\r\n, //查询可以连接WIFIATCWJAP\ChinaNet-wbyw\,\12345678\\r\n,ATCIPMUX0\r\n,ATCIPMODE1\r\n,ATCIPSTART\TCP\,\192.168.101.6\,8088\r\n,ATCIPSEND\r\n, };以下是每个指令的解释 1“AT\r\n”这是用于测试ESP8266模块是否正常工作的基本指令。发送此指令后模块应该回复 “OK\r\n”。 2“ATE0\r\n”这个指令用于关闭回显功能。当回显功能关闭时模块不会将接收到的指令发送回串口。回复 “OK\r\n” 表示指令执行成功。 3“ATCWMODE1\r\n”这个指令设置ESP8266模块为STA站点模式即将其配置为连接到现有无线网络的客户端。回复 “OK\r\n” 表示指令执行成功。 4“ATRST\r\n”这个指令用于重启ESP8266模块。模块将重新启动并返回 “ready\r\n” 表示准备就绪。 5“ATE0\r\n”同第二条指令一样这个指令再次关闭回显功能。 6“ATCWLAP\r\n”这个指令用于查询附近可连接的无线网络。模块将返回一个列表包含可用网络的信息。 7“ATCWJAP“ChinaNet-wbyw”,“12345678”\r\n”这个指令用于连接到指定的无线网络。在此示例中通过SSID为 “ChinaNet-wbyw” 的无线网络并使用密码 “12345678” 进行连接。回复 “OK\r\n” 表示指令执行成功。 8“ATCIPMUX0\r\n”这个指令用于禁用多连接模式。回复 “OK\r\n” 表示指令执行成功。 9“ATCIPMODE1\r\n”这个指令用于设置传输模式为透明传输模式。在透明传输模式下ESP8266模块将直接将串口数据发送到网络连接中。回复 “OK\r\n” 表示指令执行成功。 10“ATCIPSTART“TCP”,“192.168.101.6”,8088\r\n”这个指令用于建立与指定TCP服务器的连接。在此示例中将与IP地址为 “192.168.101.6”、端口号为8088的服务器建立连接。回复 “OK\r\n” 表示指令执行成功。 11“ATCIPSEND\r\n”这个指令用于发送数据到已建立的TCP连接。发送此指令后模块将进入发送模式并等待用户输入要发送的数据。可以通过向模块发送数据来进行通信。 三、部署华为云物联网平台 华为云官网: https://www.huaweicloud.com/ 打开官网搜索物联网就能快速找到 设备接入IoTDA。 3.1 物联网平台介绍 华为云物联网平台IoT 设备接入云服务提供海量设备的接入和管理能力将物理设备联接到云支撑设备数据采集上云和云端下发命令给设备进行远程控制配合华为云其他产品帮助我们快速构筑物联网解决方案。 使用物联网平台构建一个完整的物联网解决方案主要包括3部分物联网平台、业务应用和设备。 物联网平台作为连接业务应用和设备的中间层屏蔽了各种复杂的设备接口实现设备的快速接入同时提供强大的开放能力支撑行业用户构建各种物联网解决方案。 设备可以通过固网、2G/3G/4G/5G、NB-IoT、Wifi等多种网络接入物联网平台并使用LWM2M/CoAP、MQTT、HTTPS协议将业务数据上报到平台平台也可以将控制命令下发给设备。 业务应用通过调用物联网平台提供的API实现设备数据采集、命令下发、设备管理等业务场景。 3.2 开通物联网服务 地址 https://www.huaweicloud.com/product/iothub.html 开通免费单元。 点击立即创建。 正在创建标准版实例需要等待片刻。 创建完成之后点击详情。 可以看到标准版实例的设备接入端口和地址。 下面框起来的就是端口号和域名 点击实例名称可以查看当前免费单元的配置情况。 开通之后点击接入信息也能查看接入信息。 我们当前设备准备采用MQTT协议接入华为云平台这里可以看到MQTT协议的地址和端口号等信息。 总结: 端口号 MQTT (1883)| MQTTS (8883) 接入地址 dab1a1f2c6.st1.iotda-device.cn-north-4.myhuaweicloud.com根据域名地址得到IP地址信息: 打开Windows电脑的命令行控制台终端使用ping 命令。ping一下即可。 Microsoft Windows [版本 10.0.19045.5011] (c) Microsoft Corporation。保留所有权利。C:\Users\Lenovoping dab1a1f2c6.st1.iotda-device.cn-north-4.myhuaweicloud.com正在 Ping dab1a1f2c6.st1.iotda-device.cn-north-4.myhuaweicloud.com [117.78.5.125] 具有 32 字节的数据: 来自 117.78.5.125 的回复: 字节32 时间37ms TTL44 来自 117.78.5.125 的回复: 字节32 时间37ms TTL44 来自 117.78.5.125 的回复: 字节32 时间37ms TTL44 来自 117.78.5.125 的回复: 字节32 时间37ms TTL44117.78.5.125 的 Ping 统计信息:数据包: 已发送 4已接收 4丢失 0 (0% 丢失) 往返行程的估计时间(以毫秒为单位):最短 37ms最长 37ms平均 37msC:\Users\Lenovo MQTT协议接入端口号有两个1883是非加密端口8883是证书加密端口单片机无法加载证书所以使用1883端口合适。 3.3 创建产品 链接https://console.huaweicloud.com/iotdm/?regioncn-north-4#/dm-dev/all-product?instanceId03c5c68c-e588-458c-90c3-9e4c640be7af 1创建产品 2填写产品信息 根据自己产品名字填写下面的设备类型选择自定义类型。 3产品创建成功 创建完成之后点击查看详情。 4添加自定义模型 产品创建完成之后点击进入产品详情页面翻到最下面可以看到模型定义。 模型简单来说 就是存放设备上传到云平台的数据。 你可以根据自己的产品进行创建。 比如 烟雾可以叫 MQ2 温度可以叫 Temperature 湿度可以叫 humidity 火焰可以叫 flame 其他的传感器自己用单词简写命名即可。 这就是你的单片机设备端上传到服务器的数据名字。先点击自定义模型。 再创建一个服务ID。 接着点击新增属性。 3.4 添加设备 产品是属于上层的抽象模型接下来在产品模型下添加实际的设备。添加的设备最终需要与真实的设备关联在一起完成数据交互。 1注册设备 2根据自己的设备填写 3保存设备信息 创建完毕之后点击保存并关闭得到创建的设备密匙信息。该信息在后续生成MQTT三元组的时候需要使用。 4设备创建完成 5设备详情 3.5 MQTT协议主题订阅与发布 1MQTT协议介绍 当前的设备是采用MQTT协议与华为云平台进行通信。 MQTT是一个物联网传输协议它被设计用于轻量级的发布/订阅式消息传输旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。MQTT是专门针对物联网开发的轻量级传输协议。MQTT协议针对低带宽网络低计算能力的设备做了特殊的优化使得其能适应各种物联网应用场景。目前MQTT拥有各种平台和设备上的客户端已经形成了初步的生态系统。 MQTT是一种消息队列协议使用发布/订阅消息模式提供一对多的消息发布解除应用程序耦合相对于其他协议开发更简单MQTT协议是工作在TCP/IP协议上由TCP/IP协议提供稳定的网络连接所以只要具备TCP协议栈的网络设备都可以使用MQTT协议。 本次设备采用的ESP8266就具备TCP协议栈能够建立TCP连接所以配合STM32代码里封装的MQTT协议就可以与华为云平台完成通信。 华为云的MQTT协议接入帮助文档在这里: https://support.huaweicloud.com/devg-iothub/iot_02_2200.html 业务流程 2华为云平台MQTT协议使用限制 描述限制支持的MQTT协议版本3.1.1与标准MQTT协议的区别支持Qos 0和Qos 1支持Topic自定义不支持QoS2不支持will、retain msgMQTTS支持的安全等级采用TCP通道基础 TLS协议最高TLSv1.3版本单帐号每秒最大MQTT连接请求数无限制单个设备每分钟支持的最大MQTT连接数1单个MQTT连接每秒的吞吐量即带宽包含直连设备和网关3KB/sMQTT单个发布消息最大长度超过此大小的发布请求将被直接拒绝1MBMQTT连接心跳时间建议值心跳时间限定为30至1200秒推荐设置为120秒产品是否支持自定义Topic支持消息发布与订阅设备只能对自己的Topic进行消息发布与订阅每个订阅请求的最大订阅数无限制 3主题订阅格式 帮助文档地址https://support.huaweicloud.com/devg-iothub/iot_02_2200.html 对于设备而言一般会订阅平台下发消息给设备 这个主题。 设备想接收平台下发的消息就需要订阅平台下发消息给设备 的主题订阅后平台下发消息给设备设备就会收到消息。 如果设备想要知道平台下发的消息需要订阅上面图片里标注的主题。 以当前设备为例最终订阅主题的格式如下: $oc/devices/{device_id}/sys/messages/down最终的格式: $oc/devices/663cb18871d845632a0912e7_dev1/sys/messages/down4主题发布格式 对于设备来说主题发布表示向云平台上传数据将最新的传感器数据设备状态上传到云平台。 这个操作称为属性上报。 帮助文档地址https://support.huaweicloud.com/usermanual-iothub/iot_06_v5_3010.html 根据帮助文档的介绍 当前设备发布主题上报属性的格式总结如下 发布的主题格式: $oc/devices/{device_id}/sys/properties/report最终的格式: $oc/devices/663cb18871d845632a0912e7_dev1/sys/properties/report 发布主题时需要上传数据这个数据格式是JSON格式。上传的JSON数据格式如下:{services: [{service_id: 填服务ID,properties: {填属性名称1: 填属性值,填属性名称2: 填属性值,..........}}] } 根据JSON格式一次可以上传多个属性字段。 这个JSON格式里的服务ID属性字段名称属性值类型在前面创建产品的时候就已经介绍了不记得可以翻到前面去查看。根据这个格式组合一次上传的属性数据: {services: [{service_id: stm32,properties:{你的字段名字1:30,你的字段名字2:10,你的字段名字3:1,你的字段名字4:0}}]}3.6 MQTT三元组 MQTT协议登录需要填用户ID设备ID设备密码等信息就像我们平时登录QQ微信一样要输入账号密码才能登录。MQTT协议登录的这3个参数一般称为MQTT三元组。 接下来介绍华为云平台的MQTT三元组参数如何得到。 1MQTT服务器地址 要登录MQTT服务器首先记得先知道服务器的地址是多少端口是多少。 帮助文档地址https://console.huaweicloud.com/iotdm/?regioncn-north-4#/dm-portal/home MQTT协议的端口支持1883和8883它们的区别是8883 是加密端口更加安全。但是单片机上使用比较困难所以当前的设备是采用1883端口进连接的。 根据上面的域名和端口号得到下面的IP地址和端口号信息 如果设备支持填写域名可以直接填域名不支持就直接填写IP地址。 IP地址就是域名解析得到的 华为云的MQTT服务器地址117.78.5.125 华为云的MQTT端口号1883如何得到IP地址如何域名转IP 打开Windows的命令行输入以下命令。 ping ad635970a1.st1.iotda-device.cn-north-4.myhuaweicloud.com2生成MQTT三元组 华为云提供了一个在线工具用来生成MQTT鉴权三元组 https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/ 打开这个工具填入设备的信息也就是刚才创建完设备之后保存的信息点击生成就可以得到MQTT的登录信息了。 下面是打开的页面 填入设备的信息 上面两行就是设备创建完成之后保存得到的 直接得到三元组信息。 得到三元组之后设备端通过MQTT协议登录鉴权的时候填入参数即可。 ClientId 663cb18871d845632a0912e7_dev1_0_0_2024050911 Username 663cb18871d845632a0912e7_dev1 Password 71b82deae83e80f04c4269b5bbce3b2fc7c13f610948fe210ce18650909ac2373.7 模拟设备登录测试 经过上面的步骤介绍已经创建了产品设备数据模型得到MQTT登录信息。 接下来就用MQTT客户端软件模拟真实的设备来登录平台。测试与服务器通信是否正常。 1填入登录信息 打开MQTT客户端软件对号填入相关信息就是上面的文本介绍。然后点击登录订阅主题发布主题。 2打开网页查看 完成上面的操作之后打开华为云网页后台可以看到设备已经在线了。 点击详情页面可以看到上传的数据 到此云平台的部署已经完成设备已经可以正常上传数据了。 3MQTT登录测试参数总结 MQTT服务器: 117.78.5.125 MQTT端口号: 183//物联网服务器的设备信息 #define MQTT_ClientID 663cb18871d845632a0912e7_dev1_0_0_2024050911 #define MQTT_UserName 663cb18871d845632a0912e7_dev1 #define MQTT_PassWord 71b82deae83e80f04c4269b5bbce3b2fc7c13f610948fe210ce18650909ac237//订阅与发布的主题 #define SET_TOPIC $oc/devices/663cb18871d845632a0912e7_dev1/sys/messages/down //订阅 #define POST_TOPIC $oc/devices/663cb18871d845632a0912e7_dev1/sys/properties/report //发布发布的数据: {services: [{service_id: stm32,properties:{你的字段名字1:30,你的字段名字2:10,你的字段名字3:1,你的字段名字4:0}}]} 3.8 创建IAM账户 创建一个IAM账户因为接下来开发上位机需要使用云平台的API接口这些接口都需要token进行鉴权。简单来说就是身份的认证。 调用接口获取Token时就需要填写IAM账号信息。所以接下来演示一下过程。 地址: https://console.huaweicloud.com/iam/?regioncn-north-4#/iam/users **【1】获取项目凭证 ** 点击左上角用户名选择下拉菜单里的我的凭证 项目凭证: 28add376c01e4a61ac8b621c714bf459【2】创建IAM用户 鼠标放在左上角头像上在下拉菜单里选择统一身份认证。 点击左上角创建用户。 创建成功 【3】创建完成 用户信息如下 主用户名 l19504562721 IAM用户 ds_abc 密码 DS123456783.9 获取影子数据 帮助文档https://support.huaweicloud.com/api-iothub/iot_06_v5_0079.html 设备影子介绍 设备影子是一个用于存储和检索设备当前状态信息的JSON文档。 每个设备有且只有一个设备影子由设备ID唯一标识 设备影子仅保存最近一次设备的上报数据和预期数据 无论该设备是否在线都可以通过该影子获取和设置设备的属性简单来说设备影子就是保存设备最新上传的一次数据。 我们设计的软件里如果想要获取设备的最新状态信息就采用设备影子接口。 如果对接口不熟悉可以先进行在线调试https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?productIoTDAapiShowDeviceShadow 在线调试接口可以请求影子接口了解请求与返回的数据格式。 调试完成看右下角的响应体就是返回的影子数据。 设备影子接口返回的数据如下 {device_id: 663cb18871d845632a0912e7_dev1,shadow: [{service_id: stm32,desired: {properties: null,event_time: null},reported: {properties: {DHT11_T: 18,DHT11_H: 90,BH1750: 38,MQ135: 70},event_time: 20240509T113448Z},version: 3}] }调试成功之后可以得到访问影子数据的真实链接接下来的代码开发中就采用Qt写代码访问此链接获取影子数据完成上位机开发。 链接如下 https://ad635970a1.st1.iotda-app.cn-north-4.myhuaweicloud.com:443/v5/iot/28add376c01e4a61ac8b621c714bf459/devices/663cb18871d845632a0912e7_dev1/shadow3.10 访问接口的代码实现 1配置 Qt 项目 在 Qt 项目的 .pro 文件中加入对 libcurl 的支持 QT core CONFIG console CONFIG - app_bundleINCLUDEPATH /usr/include/curl # 根据你的系统设置 libcurl 的路径 LIBS -lcurl # 链接 libcurl 库SOURCES main.cpp2代码实现 main.cpp 文件中实现代码如下 #include QCoreApplication #include curl/curl.h #include QDebug #include QString #include QByteArray// 回调函数处理libcurl下载数据 size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp) {size_t totalSize size * nmemb;QByteArray *response static_castQByteArray *(userp);response-append(static_castchar *(contents), totalSize);return totalSize; }int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);// 初始化libcurlCURL *curl;CURLcode res;QByteArray responseData; // 用于存储响应数据curl_global_init(CURL_GLOBAL_DEFAULT);curl curl_easy_init();if (curl) {// 设置访问URLconst QString url https://ad635970a1.st1.iotda-app.cn-north-4.myhuaweicloud.com:443/v5/iot/28add376c01e4a61ac8b621c714bf459/devices/663cb18871d845632a0912e7_dev1/shadow;// 设置HTTP请求头struct curl_slist *headers NULL;headers curl_slist_append(headers, Authorization: Bearer Your_Access_Token); // 这里需要替换为你的实际 tokencurl_easy_setopt(curl, CURLOPT_URL, url.toStdString().c_str());curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);curl_easy_setopt(curl, CURLOPT_WRITEDATA, responseData);// 发起GET请求res curl_easy_perform(curl);if (res ! CURLE_OK) {qDebug() Curl request failed: curl_easy_strerror(res);} else {qDebug() Response data: responseData;}// 清理curl_easy_cleanup(curl);curl_slist_free_all(headers);}curl_global_cleanup();return a.exec(); }3.11 数据解析代码 在 Qt 中使用 CJSON (一个用于解析 JSON 数据的轻量级 C 库) 来解析返回的 JSON 数据。 1配置 Qt 项目 在 Qt 项目的 .pro 文件中确保包括了 CJSON 的头文件并链接 CJSON 的源代码。 QT core CONFIG console CONFIG - app_bundleSOURCES main.cpp \cJSON.c # 将 cJSON.c 文件添加到你的项目中INCLUDEPATH path/to/cjson/ # 添加 CJSON 头文件的路径LIBS -lcurl # 链接 libcurl 库2解析 JSON 数据的完整代码 在 main.cpp 中以下代码展示了如何解析你提供的 JSON 数据。 #include QCoreApplication #include curl/curl.h #include QDebug #include QString #include QByteArray #include cJSON.h// 回调函数处理libcurl下载数据 size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp) {size_t totalSize size * nmemb;QByteArray *response static_castQByteArray *(userp);response-append(static_castchar *(contents), totalSize);return totalSize; }// 解析 JSON 数据 void parseJson(const QByteArray data) {// 将 QByteArray 转换为 char*const char* jsonData data.constData();// 解析 JSONcJSON *root cJSON_Parse(jsonData);if (root NULL) {qDebug() Error parsing JSON.;return;}// 解析 device_idcJSON *deviceId cJSON_GetObjectItemCaseSensitive(root, device_id);if (cJSON_IsString(deviceId) (deviceId-valuestring ! NULL)) {qDebug() Device ID: deviceId-valuestring;}// 解析 shadow 数组cJSON *shadow cJSON_GetObjectItemCaseSensitive(root, shadow);if (cJSON_IsArray(shadow)) {cJSON *shadowItem NULL;cJSON_ArrayForEach(shadowItem, shadow) {// 解析每个 shadow 项目cJSON *serviceId cJSON_GetObjectItemCaseSensitive(shadowItem, service_id);if (cJSON_IsString(serviceId) (serviceId-valuestring ! NULL)) {qDebug() Service ID: serviceId-valuestring;}// 解析 reported 对象cJSON *reported cJSON_GetObjectItemCaseSensitive(shadowItem, reported);if (cJSON_IsObject(reported)) {// 解析 properties 对象cJSON *properties cJSON_GetObjectItemCaseSensitive(reported, properties);if (cJSON_IsObject(properties)) {cJSON *data1 cJSON_GetObjectItemCaseSensitive(properties, data1);if (cJSON_IsNumber(data1)) {qDebug() data1: data1-valueint;}cJSON *data2 cJSON_GetObjectItemCaseSensitive(properties, data2);if (cJSON_IsNumber(data2)) {qDebug() data2: data2-valueint;}cJSON *data3 cJSON_GetObjectItemCaseSensitive(properties, data3);if (cJSON_IsNumber(data3)) {qDebug() data3: data3-valueint;}cJSON *data4 cJSON_GetObjectItemCaseSensitive(properties, data4);if (cJSON_IsNumber(data4)) {qDebug() data4: data4-valueint;}}// 解析 event_timecJSON *eventTime cJSON_GetObjectItemCaseSensitive(reported, event_time);if (cJSON_IsString(eventTime) (eventTime-valuestring ! NULL)) {qDebug() Event Time: eventTime-valuestring;}}// 解析 versioncJSON *version cJSON_GetObjectItemCaseSensitive(shadowItem, version);if (cJSON_IsNumber(version)) {qDebug() Version: version-valueint;}}}// 释放 JSON 对象cJSON_Delete(root); }int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);// 模拟获取到的 JSON 数据QByteArray jsonData R({device_id: 663cb18871d845632a0912e7_dev1,shadow: [{service_id: stm32,desired: {properties: null,event_time: null},reported: {properties: {data1: 18,data2: 90,data3: 38,data4: 70},event_time: 20240509T113448Z},version: 3}]});// 调用解析函数parseJson(jsonData);return a.exec(); }四、STM32设备端代码设计 项目里使用的模块代码可以在网盘里的传感器目录找到代码工程。 https://ccnr8sukk85n.feishu.cn/wiki/QjY8weDYHibqRYkFP2qcA9aGnvb?fromfrom_copylink 下面提供完整的 main.c 代码展示了如何集成各个模块初始化硬件处理设备状态以及与云平台的通信。 #include stm32f1xx_hal.h #include esp8266.h // 假设已封装的ESP8266通信模块驱动 #include lcd_display.h // 假设已封装的LCD显示模块驱动 #include dht11.h // 假设已封装的DHT11温湿度传感器模块 #include voice_control.h // 假设已封装的语音识别模块 #include infrared_remote.h// 假设已封装的红外遥控模块 #include mqtt.h // 假设已封装的MQTT通信模块 #include heating_control.h// 假设已封装的取暖控制模块// 定义全局变量 uint8_t heating_level 0; // 暖风机档位0表示关闭 uint8_t device_status 0; // 设备状态0表示关闭1表示开启 float temperature 0.0f; // 环境温度 float humidity 0.0f; // 环境湿度// 定义定时器句柄 TIM_HandleTypeDef htim2;// 定时器中断服务函数 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {if(htim-Instance TIM2) {// 每秒读取一次温湿度数据if (DHT11_Read(temperature, humidity) HAL_OK) {LCD_DisplayTemperatureHumidity(temperature, humidity); // 显示温湿度}// 发送环境数据到云平台MQTT_PublishData(home/temperature, temperature);MQTT_PublishData(home/humidity, humidity);} }// 主函数 int main(void) {// 初始化硬件抽象层HALHAL_Init();// 初始化各个硬件模块SystemClock_Config();LCD_Init(); // 初始化LCD显示模块DHT11_Init(); // 初始化DHT11传感器VoiceControl_Init(); // 初始化语音识别模块InfraredRemote_Init(); // 初始化红外遥控接收模块HeatingControl_Init(); // 初始化暖风机加热控制模块// 配置定时器中断每秒读取温湿度并发送数据__HAL_RCC_TIM2_CLK_ENABLE();htim2.Instance TIM2;htim2.Init.Prescaler 7200 - 1; // 72MHz / 7200 10kHzhtim2.Init.CounterMode TIM_COUNTERMODE_UP;htim2.Init.Period 10000 - 1; // 10kHz / 10000 1Hzhtim2.Init.ClockDivision TIM_CLOCKDIVISION_DIV1;HAL_TIM_Base_Init(htim2);HAL_TIM_Base_Start_IT(htim2); // 启动定时器中断// 初始化ESP8266 WIFI模块连接到云平台ESP8266_Init();MQTT_Init(); // 初始化MQTT通信MQTT_Connect(home_heating_system); // 连接到MQTT服务器// 主循环while (1){// 语音识别控制if (VoiceControl_GetCommand() VOICE_CMD_ON) {device_status 1;HeatingControl_SetLevel(heating_level);} else if (VoiceControl_GetCommand() VOICE_CMD_OFF) {device_status 0;HeatingControl_SetLevel(0); // 关闭加热}// 红外遥控控制uint8_t remote_command InfraredRemote_GetCommand();if (remote_command REMOTE_CMD_ON) {device_status 1;HeatingControl_SetLevel(heating_level);} else if (remote_command REMOTE_CMD_OFF) {device_status 0;HeatingControl_SetLevel(0); // 关闭加热} else if (remote_command REMOTE_CMD_UP) {if (heating_level 3) {heating_level;if (device_status 1) {HeatingControl_SetLevel(heating_level);}}} else if (remote_command REMOTE_CMD_DOWN) {if (heating_level 0) {heating_level--;if (device_status 1) {HeatingControl_SetLevel(heating_level);}}}// 控制LCD显示暖风机状态和档位LCD_DisplayDeviceStatus(device_status, heating_level);} } 代码说明 主控模块初始化在 main() 中初始化了系统时钟、LCD、DHT11传感器、语音控制、红外遥控、暖风机控制、MQTT通信等子模块。定时器中断通过定时器定期读取温湿度数据并上传至MQTT服务器。HAL_TIM_PeriodElapsedCallback() 中每秒调用一次 DHT11_Read()并通过 MQTT_PublishData() 将数据上传。语音识别与遥控控制VoiceControl_GetCommand() 和 InfraredRemote_GetCommand() 用于检查用户的语音指令或遥控器按键操作从而控制暖风机的开关和档位。设备状态显示LCD显示模块通过 LCD_DisplayDeviceStatus() 和 LCD_DisplayTemperatureHumidity() 函数来实时显示设备的状态信息。MQTT通信初始化MQTT通信并连接到云平台实时将设备的环境数据上传到云端。 五、上位机开发 为了方便查看设备上传的数据接下来利用Qt开发一款Android手机APP 和 Windows上位机。 使用华为云平台提供的API接口获取设备上传的数据进行可视化显示以及远程控制设备。 5.1 Qt开发环境安装 Qt的中文官网 https://www.qt.io/zh-cn/ QT5.12.6的下载地址https://download.qt.io/archive/qt/5.12/5.12.6 打开下载链接后选择下面的版本进行下载 如果下载不了可以在网盘里找到安装包下载 https://ccnr8sukk85n.feishu.cn/wiki/QjY8weDYHibqRYkFP2qcA9aGnvb?fromfrom_copylink 软件安装时断网安装否则会提示输入账户。 安装的时候第一个复选框里的编译器可以全选直接点击下一步继续安装。 选择编译器 一定要看清楚了 前面2讲解了需要用的API接口接下来就使用Qt设计上位机设计界面完成整体上位机的逻辑设计。 【1】新建工程 【2】设置项目的名称。 【3】选择编译系统 【4】选择默认继承的类 【5】选择编译器 【6】点击完成 【7】工程创建完成 5.3 切换编译器 在左下角是可以切换编译器的。 可以选择用什么样的编译器编译程序。 目前新建工程的时候选择了2种编译器。 一种是mingw32这个编译Windows下运行的程序。 一种是Android编译器可以生成Android手机APP。 不过要注意Android的编译器需要配置一些环境才可以正常使用这个大家可以看下面的教程配置一下就行了。 Android环境搭建的博客链接 https://blog.csdn.net/xiaolong1126626497/article/details/117254453 windows的编译器就没有这么麻烦安装好Qt就可以编译使用。 下面我这里就选择的 mingw32这个编译器编译Windows下运行的程序。 5.4 编译测试功能 创建完毕之后编译测试一下功能是否OK。 点击左下角的绿色三角形按钮。 正常运行就可以看到弹出一个白色的框框。这就表示工程环境没有问题了。 接下来就可以放心的设计界面了。 5.5 设计UI界面与工程配置 【1】打开UI文件 打开默认的界面如下 【2】开始设计界面 根据自己需求设计界面。 5.5 编译Windows上位机 点击软件左下角的绿色三角形按钮进行编译运行。 5.6 配置Android环境 如果想编译Android手机APP必须要先自己配置好自己的Android环境。搭建环境的过程可以自行百度搜索学习 然后才可以进行下面的步骤。 【1】选择Android编译器 选择编译器。 切换编译器。 【2】创建Android配置文件 创建完成。 【3】配置Android图标与名称 【3】编译Android上位机 Qt本身是跨平台的直接选择Android的编译器就可以将程序编译到Android平台。 然后点击构建。 成功之后在目录下可以看到生成的apk文件也就是Android手机的安装包电脑端使用QQ发送给手机QQ,手机登录QQ接收就能直接安装。 生成的apk的目录在哪里呢 编译完成之后在控制台会输出APK文件的路径。 知道目录在哪里之后在Windows的文件资源管理器里找到路径具体看下图找到生成的apk文件。 -- File: D:/QtProject/build-265_AgritechIoTManager-Android_for_arm64_v8a_Clang_Qt_5_12_6_for_Android_ARM64_v8a-Release/android-build//build/outputs/apk/debug/android-build-debug.apk六、总结 本项目设计的智能暖风机集成了温湿度监测、语音交互、多档调节、物联网连接以及远程控制等多项智能化功能为用户提供更加便捷、高效、安全的取暖体验。通过采用STM32F103C8T6作为主控芯片结合PTC陶瓷加热技术和ESP8266物联网模块系统在硬件性能与智能功能之间达到了良好的平衡。 智能暖风机通过语音识别技术简化了用户操作使得设备交互更加直观和友好同时保留了物理按键的手动控制功能满足不同用户的需求。设备能够实时检测环境温湿度信息并将数据上传至华为云IoT平台用户通过手机APP或电脑上位机软件可以随时查看设备运行状态或远程控制设备。这种多平台、多功能的设计极大地提升了用户的操作便利性和使用体验。 此外项目注重安全性和能效优化通过PTC加热器的特性结合过热保护和散热优化设计确保设备在长时间工作中的安全稳定运行。合理的模块化设计使系统功能易于扩展为后续的功能优化和智能化升级提供了良好的基础。 智能暖风机项目不仅展示了智能家居产品的技术优势也为用户提供了一个舒适、智能化的取暖解决方案。未来可以在此基础上进一步开发更多创新功能使其在智能家电领域具有更大的应用前景和市场竞争力。
http://www.w-s-a.com/news/741898/

相关文章:

  • 六安品牌网站建设怎么样知名商城网站建设报价
  • 怎么上传自己做的网站杭州网站建设公司平台
  • 网站开发程序是什么知名的电子商务网站
  • 做pc端网站好么平台推广是什么意思
  • 农业信息网站建设意义淘宝官网首页网址
  • 重庆网站设计公司价格贵阳网站建设app开发
  • dw做网站怎么换图片编写网页所用的语言是
  • 外贸网站收录工具个人网站的备案
  • 正规的网站建设工作室海外高延迟服务器做网站
  • 网站设计确认函合肥做网站维护的公司
  • 小说网站推荐网站开发语言怎么查
  • 网页制作基础教程慕课版电子版那种登录才能查看的网站怎么做优化
  • 制作网站用的域名网站域名注册信息查询
  • 公司域名查询官方网站女教师遭网课入侵直播录屏曝
  • 网站开发社交网络功能的作用腾讯公司网站
  • 网站建设需要微信账号和密码网站建设工作汇报
  • 国家城乡住房和建设部网站西安私人网站
  • 天津高端网站定制seo实战教程
  • 网站文章怎么做才能被快速收录网站备案核验系统
  • 子网站建设方案l建设银行网站
  • 免费看舆情网站网站备案用户名忘了怎么办
  • 地方门户网站的分类网站的方案
  • 沧州哪里做网站网站的建设是什么
  • 设计公司海报秦皇岛seo网站推广
  • 网站导航规划wordpress做漫画
  • jsp体育用品网站建设wordpress 10万篇文章
  • 沈阳做微信和网站的公司网站在线支付接口
  • 重庆整合网络营销百度seo快速提升排名
  • 设计师网站外网百度分析工具
  • 旅游网站建设技术解决方案wordpress主题安装后找不到