hwyzw 发表于 2025-2-14 17:58:54

STM32物联网智能家居专栏:从单片机小白到独立编写软件框架的进阶指南

    STM32物联网智能家庭(i)解决方案设计STM32 ++ TCP/UDP/MQTT

    在下面,我们将启动一个博客专栏,用于智能之家的物联网。在此列中,我们将将各种外围模块I2C,USART,WIFI,分层编程想法和调试方法集成到整列中,以便您可以从微控制器中获得。拜(Bai)成长为初级微控制器爱好者,他可以独立编写软件框架思维。我从整个专栏中的教师Wei 的双重RTOS课程中借来了。让我们在下面一起学习。以下是三个系统设计框图。稍后,我将详细介绍特定内容。这三张图片刚开始放置,以使每个人都一目了然地了解系统设计,硬件设计和软件设计的想法。

    这是我们的系统设计:

    下面是一个硬件框图,它抽象整个系统。

    软件设计思想:

    1。如何有效地从物联网开始?

    首先,我们需要了解物联网是什么。物联网(物联网)是一个巨大而复杂的系统,涉及多个领域的知识。从整体体系结构来看,物联网的构建可以分为三个主要级别:设备层,网络层和应用程序层。对于初学者而言,了解这些级别的结构以及每一层的功能和技术对于有效开始物联网至关重要。接下来,我们将按一层解析物联网的体系结构,并帮助您了解如何掌握这些关键知识。

    1。设备层:硬件设备和传感器的世界

    物联网的设备层是物理世界和数字世界之间的连接点,并且包含所有硬件组件。该级别主要包括两个主要类别的设备:传感器和执行器。

    此外,IoT设备还涉及一些传统嵌入式系统的开发。您需要了解如何选择正确的硬件平台,如何编写固件来控制这些设备的工作,并掌握IoT设备的通信技术。常见的通信方法包括:

    掌握这些通信技术的特征可以帮助您在实践中做出合理的选择,并确保物联网设备之间的有效协作。

    2。网络层:设备和平台之间的桥梁

    物联网的网络层主要负责设备和物联网平台之间的通信。像传统的互联网一样,物联网的通信也基于TCP/IP协议,但是在此基础上,它还涉及一些针对物联网场景进行优化的网络协议。

    常见协议是:

    了解这些协议的工作方式及其优缺点将帮助您根据设计IoT系统在特定需求中选择正确的协议。例如,对于具有较小数据量但需要实时性能的应用程序,MQTT可能更合适;对于具有较小数据量和实时性能的应用程序,AMQP是一个更好的选择。

    3。应用程序层:实施业务逻辑和数据处理

    物联网的应用层主要负责实施特定的业务逻辑和数据分析。在此级别上,您不仅必须处理常见的后端开发问题,例如服务器架构,数据库选择,消息队列管理等,而且还需要面对物联网的独特数据处理挑战,尤其是大量数据的存储和处理。

    物联网设备将生成大量数据。如何有效地存储,处理和分析这些数据是设计系统时需要特别注意的问题。

    在应用层的设计中,除了技术挑战外,还必须考虑如何有效地将业务需求与技术相结合,以确保系统不仅可以有效运行,还可以满足实际的应用需求。

    4。数据隐私和安全:整个关键

    在物联网系统的整个设计和实施中,数据隐私和系统安全始终是不容忽视的问题。随着数据激增的数量,保护用户隐私并确保系统安全尤为重要。数据存储,传输和处理的每个步骤都可以成为攻击的目标。

    https://img2.baidu.com/it/u=1985795772,1421787995&fm=253&fmt=JPEG&app=138&f=JPEG?w=500&h=513

    数据隐私和安全性不仅是技术问题,还涉及遵守法律法规。因此,在设计IoT系统时,必须始终将安全性放在首位。

    掌握整体情况并逐步进行

    物联网的体系结构涵盖了从硬件设备,通信协议到数据处理和分析的所有内容。对于初学者来说,掌握这些知识需要时间,但是通过等级学习和实践,您可以逐渐了解物联网的整体框架。设备层,网络层和应用程序层的三个级别是物联网系统的核心组件。每个层都需要深入了解其工作原理,技术特征和应用程序方案。除技术层面外,数据安全性和隐私保护也是在建立成功的物联网系统时无法忽略的链接。

    当您掌握这些知识并积累实践经验时,您将能够设计和实施更高效,更聪明的物联网系统,并在这个新兴领域找到自己的开发机会。

    2。解决方案设计

    我们将涵盖我们在下面开发的智能家庭项目,设备层,网络层和应用程序层。让我们介绍以下整个项目的计划。

    我们将整个项目分为系统设计,硬件设计和软件设计。

    2.1系统设计

    系统设计如下图所示,智能房屋的使用场景是从宏观角度设计的:

    启动中央控制屏幕后,它将自动连接到家里的路由器,并在中央控制屏幕上显示路由器的IP地址;

    用户在他的手机上启动微信微型程序,输入中央控制屏幕上显示的IP,然后将其连接到家里的中央控制屏幕;

    在微信中,用户单击图标以控制家中的灯,风扇,空调,窗帘,除湿机等,并阅读房屋的温度和湿度;

    此外,中央控制屏幕每60秒将家庭温度和湿度值传输到微信迷你程序以进行更新;

    2.2硬件设计

    为了促进我们的学习,我将上述宏观系统设计要求转换为低成本的演示示例,将系统设计路由器的右半部分抽象为开发板上的演示,并通过开发委员会汇总了上面的所有功能促进每个人的发展和学习。特定的硬件设计如下图所示:

    在本文中,我们将学习使用I2C通信来控制OLED屏幕以显示字符,包括时间,温度,湿度,路由器IP地址,控制信息等;使用USART来控制WiFi模块,路由器和微信小程序进行信息交互;控制/读取温度和湿度传感器,风扇,LED和其他外围设备。此外,我们使用ST-Link或USB串行端口来解决代码开发过程中遇到的问题。我相信,智能家庭项目将使每个人都可以进入微控制器开发的大门。

    对于开发委员会,您可以跟随我使用的Wei 的开发委员会,也可以与其他开发板一起开发它们。这些外围设备相对简单,不涉及任何硬件设计。您可以使用现成的。下面,我将在下面放置Wei 的发展委员会的链接:-Pro全套开发委员会

    2.3软件设计

    可以说软件设计是嵌入式字段的本质。每个人的硬件都可以相同,但是最终效果却大不相同。它主要是软件编写的逻辑和软件设计方法。良好的编程想法和抽象设计可能是提高软件兼容性的设备的扩展,这是该项目中软件设计的重点:

    下面我将介绍该项目的软件设计思想,如下图所示:

    在这个项目中,它可以分为6个子系统:

    设备子系统:例如实施LED控制和风扇控制显示子系统:OLED上的显示信息输入子系统:可以接收关键数据,网络数据网络子系统:负责网络连接,数据传输和接收字体子系统:获得字符子系统的字体库服务:扮演全面的角色,根据输入值(网络数据)控制设备。

    https://img1.baidu.com/it/u=2678997398,1442834547&fm=253&fmt=JPEG&app=138&f=JPEG?w=1133&h=727

    上面的软件设计想法来自“代码收集”第5章,其中提到编程分为以下级别:

    为了使该软件与更多的芯片和更多的操作系统兼容,并将软件和硬件解次,我们以分层的方式设计了该软件。

    整个软件分为以下层,HAL,CAL,KAL和APPL层。

    APPL层是最上层的应用程序层,它与硬件和操作系统无关,并且专注于应用程序层的逻辑。 KAL层是一个内核抽象层(层),可以将整个软件分为不同的操作系统平台。通过简单的切换,系统可以在裸金属或RT-上运行。 CAL层是芯片层,可区分不同的芯片并将移植的问题解决到不同类型的芯片。 HAL层(图层)是一个硬件抽象层,它决定是否致电HAL库,寄存器或库功能以操作基础硬件。以上是为该项目设计的层次结构的逻辑,软件框架易于扩展和维护。

    3。列更新内容

    以上是我们的STM32物联网智能家庭项目的设计,该项目从三个方面:系统设计,硬件设计和软件设计解释了整个项目的设计思想,过程和方法。在下面,我们将安装以下六个系统内容,解释和介绍每个系统,逐一构建智能家庭项目,最后完成项目交付。

    设备子系统:例如实施LED控制和风扇控制显示子系统:OLED上的显示信息输入子系统:可以接收关键数据,网络数据网络子系统:负责网络连接,数据传输和接收字体子系统:获得字符子系统的字体库服务:扮演全面的角色,根据输入值(网络数据)控制设备。

    让我们继续关注以下内容。请支持我们,并遵循官方帐户“ Aige   ”。

    这是所有文章的集合:

    STM32刷新项目(i)UART串行端口通信项目构建

    STM32刷新项目(II)计划简介

    STM32刷新项目(III)计划框架构建和刷新演示

    STM32刷新项目(IV)通信协议

    STM32刷新项目(V)获取软件版本编号- 0x51

    STM32刷新项目(第六)获得帮助- 0x52

    STM32刷新项目(7)获取芯片ID-0x53

    STM32刷新项目(八)阅读FlashROP-0x54

    STM32刷新项目(9)跳转指定地址- 0x55

    STM32刷新项目(10)Flash Erase- 0x56-CSDN博客)

    STM32刷新项目(11)闪存写操作 - 命令0x57

    STM32刷新项目(十二)字节命令0x58

    STM32刷新项目(13)计算机简介

    STM32刷新项目(14)所有源代码采集
页: [1]
查看完整版本: STM32物联网智能家居专栏:从单片机小白到独立编写软件框架的进阶指南