对嵌入式开发方向的一些思考:在物联网方向

article/2025/4/8 8:12:50

      学习知识就是为了应用,我们学习了嵌入式硬件和软件、具备一定的基础之后,是不是很想找一些简单的项目练练手?如果你有这种非常强烈的感觉的话,我相信你已经具备一定的嵌入式开发技术基础了。

   接下来,你可能要犯愁了:我要去做什么样的项目呢?不管您是出于爱好感兴趣的需要,还是个人职业规划发展的需要,您都要想好一个方向,因为我们都想我们后续要做的项目具有连续性、技术关联度高、技术深度越来越深,朝着一个技术专家的方向发展。如果你也这么认为,你应该继续往下看。

   我们要成为一个技术专家,那我们要进行的项目开发所属的领域或行业应该具有不断发展的属性、也与社会发展方向一致、满足国家的政策要求、与国家后续发展战略高度一致,我们应该选择这样行业或领域的项目进行练手或者深耕。我认为物联网具备上述的所有属性。

   所以,我认为嵌入式开发者发展方向或职业规划方向应该选择物联网相关的领域或行业。因为在这个行业里,我们所学嵌入式专业技能有了广阔的应用天地,所谓天高任我飞。

   言归正传,我们具备一定嵌入式开发基础之后,我们要做什么样的的物联网项目呢?那首先我需要简单了解一下物联网项目的开发流程和物联过程,要了解一个开发流程和物联过程,一定要基于一个具体的应用场景,这样才具体,才具有指导意义。只有了解了开发流程和物联过程,您才能基于您现有的技术水平和项目开发难度,去选择合适自己的物联网项目。

    我们的应用场景很简单,就在我们身边。应用场景概述:将家里的温度、湿度的采集WIFI终端与手机、路由器、PC机进行物联,实现各个终端对WIFI终端的通信。STM32对温湿度的采集终端的软硬件实现方式很多,具体实现细节不难,也不属于在这里的讨论范畴。在这里,我们只对项目开发流程和物联过程进行讨论,不会深入开发细节中去,先让我们对物料网开发有个整体清晰的认识。

   WIFI模块:ESP8266模块。

  对于这个项目,我是按照下面这个流程进行的:

1.我们首先要选择通过什么网进行物联:是局域网还是互联网?这个项目需求来定。对于这个项目,可以是局域网也可以是互联网。两者在实现方式、实现难度、物联过程是有很大差别的。

2.局域网物联

    局域网物联并不是完全意义上的物联网,对于这个项目来说,采用家庭网这个局域网物联后,我们在家里通过手机、电脑、路由器与WIFI终端进行通信和数据的监视。

需要具备如下条件:

专门的串口助手软件(可发送AT指令)、WIFI模块已下载与串口的透传程序、无线路由器处于正常运行状态、无线路由器名称由字母和数字组成、无线路由器设有连接密码、无线路由器需要支持2.4G无线频段、开发板尽量靠近无线路由器、PC机具有WIFI功能。

WIFI模块有三种工作模式:AP模式(类似于路由器)、STATION模式(连接路由器的终端设备)、AP+STATION混合模式(即可以作为终端设备,也可以作为路由器)

按照WIFI模块的AT指令定义通过串口助手进行测试。

1)WIFI模块作为终端设备与路由器进行通信

测试之前,需要先复位WIFI模块。然后按照如下顺序发送AT指令:

(1)发送AT+CW MODE=1,设置WIFI模块的工作模式

在这WIFI模块作为终端设备,需要设置为STATION模式,发送AT+CW MODE=1。设置完成后进行复位。

(2)发送AT+CWLAP,搜索可用的WIFI热点

发送AT+CWLAP,功能是列出可用的WIFI热点。可以看到路由器的账号密码已经显示出来了。

(3)发送AT+CWJAP_DEF=热点名称和密码

发送之后,如果连接成功,WIFI模块会回复:WIFI CONNECTED

WIFI GOT IP

2)WIFI模块作为终端设备通过路由器与PC端服务器进行通信(以PC为服务器的TCP连接)

如下步骤应在上述1)的基础上进行。

(1)建立并启用PC端服务器;

  TCP&UDP测试工具软件建立和启用PC端服务器。

(2)在串口助手软件上采用AT指令连接PC服务器。

连接成功后,可进行通信测试。

(3)通信测试

--PC服务器通过 TCP&UDP测试工具软件给WIFI模块发送数据。

--WFI模块通过串口助手采用AT指令向PC服务器发送数据。

(4)WIFI模块断开与PC服务器、路由器的连接。

WFI模块通过串口助手发送AT指令可断开与PC服务器和路由器的连接。

具体发送过程及AT指令在这里不再详述。

3)WIFI模块作为服务器与PC机终端进行TCP通信

WIFI模块工作在AP+STATION混合模式,PC机工作在STATION模式。

(1)通过串口助手采用AT指令设置WIFI模块为AP+STATION混合工作模式。

(2)AT指令复位WIFI模块。使得模式更改生效,并自动连接到路由器。

(3)AT指令设置WIFI模块的热点名称和密码。

(4)AT指令设置为多连接模式,方便PC机等多个终端设备连接到WIFI模块。

(5)AT指令开启服务器并设置端口号。

(6)插询WIFI模块IP地址。

存在APIP地址和STAIP地址。WIFI模块作为服务器时,使用的是APIP地址。作为终端设备时使用的是STAIP地址。IP地址可修改。

(7)在PC机搜索WIFI模块的热点名称,并输入密码完成连接。

(8)使用TCP&UDP测试工具,设置相关参数,创建与WIFI模块的连接。连接成功后,就可向WIFI模块发送数据。串口助手查询接收到的数据内容。

(9)WIFI模块通过串口助手采用AT指令向PC机发送数据。数据发送成功后可在TCP&UDP测试工具中查询是否接收到数据。

4)WIFI模块作为服务器与手机终端进行TCP通信

WIFI模块与手机连接方式基本一样,即可以通过路由器连接到手机(WIFI模块作为终端设备),WIFI模块也可以服务器热点与手机进行连接。

手机端需要下载功能类似于TCP&UDP测试工具的APP。

然后在3)的基础上,按照相似的步骤即可实现WIFI模块与手机的通信。

3.互联网物联

由交换机、无线路由器、电脑组成的局域网中,我们只需要在通信的电脑上创建服务器,WIFI模块只需要接入同一局域网中的无线路由器,就能通过IP地址和端口号来创建连接。

如果我们的电脑在互联网中也具有一个固定的IP地址,通过在该电脑上创建服务器,WIFI模块就可以稳定的连接互联网了。但是我们的电脑都是通过网络运营商接入互联网的,只能获取动态的IP地址,WIFI模块无法直接通过电脑获得稳定的连接。

所以,WIFI模块需要通过云端服务器来获得与互联网稳定的连接,有2种获取云端服务器的方法:自建或租用服务器、利用现有物联网平台(免费或付费)。

自建或租用服务器成本高,开发难度大。一般都采用第三方物联网开发平台,例如阿里云物联网开发平台。

云平台连接到互联网,云平台可以是第三方的云平台,也可以是自主开发的云平台。第三方云平台目前主要有:阿里云、腾讯云、华为云、百度云、中移云、机智云等,推荐采用阿里云平台(开发资料全、市场份额大)。在这里只介绍在阿里云平台上的实现步骤,相关具体实现过程请参见相关的教程,网上很多。

(1)阿里云平台申请账号。可用淘宝或支付宝账号登录。

(2)云平台上创建产品和设备。

(3)安装MQTT.fx软件。

(4)用软件代替WIFI模块与云平台进行数据收发,测试云平台上创建的设备功能是否正常。

  以下截图为我在洋桃电子资料上所见的物联网平台远程控制示意图。

b6b5fc0a58a54dc18f9dcda49f33f9a5.jpg

 

 

 

 

 

 

 

 

 

 

 


http://chatgpt.dhexx.cn/article/GgKUMJ5q.shtml

相关文章

毕业设计 基于stm32的居民小区火灾检测报警系统 - 物联网 嵌入式

基于stm32的居民小区火灾检测报警系统 由 STM32F103C8T6单片机最小系DHT11LCD1602显示模块蜂鸣器MQ-2ESP8266噪声模块按键3个。 系统内可以通过1602来显示温湿度值和烟雾浓度和噪声值和它们的阈值,可以通过按键设置阈值,当任意一个实际值大于阈值时蜂鸣…

物联网嵌入式系统开发应用软件公司怎么选择

软件开发已经不是新鲜词汇,而成为当下智能科技新潮流,对于不同的企业,嵌入式软件开发会有更针对性的需求,纵观整个软件开发行业,做APP小程序网站开发的多如牛毛,而物联网应用嵌入式技术开发公司并不多&…

聊一聊物联网嵌入式芯片的内容结构

摘要:物联网嵌入式芯片,存储是数据核心之一,这个对于编程和设计的人来说又比较陌生,今天来说说MCU中的内存结构。 本文分享自华为云社区《漫谈嵌入式系统的内存》,作者:o0龙龙0o 。 前言 物联网嵌入式芯片…

5G+边缘计算 物联网嵌入式边缘计算平台

伴随着5G的来临,物联网技术的发展趋势让互连机器设备和信息量猛增,调研机构Gartner公司预测,到2025年,75%的企业生成的数据将在边缘计算设施而不是在传统数据中心创建和处理。 为满足市场对高性能边缘计算平台的应用需求&#xff…

嵌入式物联网软件开发实战

一、使用STM32CubeMx 创建物联网项目软件工程 二、STM32CubeMx 配置时钟 三、STM32CubeMx 配置GPIO 及 GPIO 相关接口在软件工程中的形式及使用 四、STM32CubeMx 配置USART 串口 五、USART 串口在物联网项目中的使用之不定长数据接收(DMA空闲中断方式) 六…

视频教程-物联网嵌入式技术应用-物联网技术

物联网嵌入式技术应用 10年计算机网络行业经验,精通计算机网络;孰悉C、C、Java、C#等语言,熟悉tcp/IP协议结构;精通华为产品,思科产品,熟悉Linux操作平台,讲解条理清晰,对知识有自己独到见解,善于发散学生的…

物联网嵌入式STM32资料大全,超100G

物联网嵌入式 STM32资料大全,超100G 本文是提供物联网,嵌入式, stm32等资料大全的,都是各类资料大全,下面图片只是网盘链接的截图,已经是有生之年系列了,别要求那么高了,自己到…

物联网嵌入式开发人员面临的5大挑战

​  开发嵌入式软件并不像以前那样“简单”。对于许多开发团队来说,创建一个独立的设备仍然经常是具有挑战性的。在物联网时代,我们开始将一切都连接起来,系统的复杂性正在飙升,传统的嵌入式开发人员发现,他们面临着…

嵌入式与物联网的特点分析,它们有什么关系?

虽然嵌入式系统已经有30多年的历史,但是原来一直隐藏在背后的,自从物联网上升为国家战略后,嵌入式系统也从后台走到前台。本文主要介绍的是嵌入式与物联网之间的关系,其次介绍了嵌入式及物联网的特点及特征,具体的跟随…

嵌入式物联网系统软硬件基础知识大全

关注、星标公众号,直达精彩内容 来源:网络素材 本文主要介绍嵌入式系统的基础知识,涉及嵌入式软件和硬件的方方面面,希望对各位有帮助。 嵌入式系统基础 1、嵌入式系统的定义 (1)定义:以应用为中…

嵌入式系统与物联网的关系

嵌入式系统与物联网的关系 一、物联网与嵌入式的基本概念物联网定义定义 1定义 2定义 3定义 4 嵌入式定义IEEE 的定义 嵌入式与物联网的区别和联系 二、从构成模型看物联网与嵌入式三、物联网时代嵌入式系统的华丽转身从计算机的历史说起嵌入式应用环境物联应用本质 从单片机到…

PHP反序列化笔记

目录 文章目录 目录private变量与protected变量序列化后的特点序列化后的字段长度前面可以加 题目解题步骤 CVE-2016-7124漏洞介绍演示代码题目解题步骤 PHP Session 反序列化PHP的3种序列化处理器安全问题当 session.auto_start=Off 时测试Demo 题目解题步骤 phar反…

2022/3/28 PHP反序列化

小迪 参考: https://www.bilibili.com/video/BV1JZ4y1c7ro?p36&spm_id_from333.880.my_history.page.click https://blog.csdn.net/Hardworking666/article/details/122373938 https://blog.csdn.net/Hardworking666/article/details/112725423 补充&#xff…

PHP反序列化漏洞-从入门到提升

目录 第一章 PHP序列化基础 1.1 PHP序列化 1.1.1 PHP序列化概述 1.1.2 标准序列化 1.1.3 自定义序列化 1.1.4 序列化存储和转发 1.2 PHP反序列化 1.2.1 标准反序列化 1.2.2 未定义类的反序列化 1.2.3 Protected、Private属性反序列化 1.3 PHP序列化相关magic函数 1…

php反序列化及__toString()

思路&#xff1a; 1./?sdata://text/plain,XXXXXX 2.include …php 3._tostring() echo unserialize(pass) echo file_get_content($this-file&#xff09; 把反序列化属性的值读取并输出 主要两个文件 index.php <?php $user $_GET["user"]; $file $_GET[…

PHP反序列化字符串逃逸

例题可看&#xff1a;https://www.cnblogs.com/v2ish1yan/articles/16118319.html 今天才学的&#xff0c;做个记录。 字符串逃逸分为两种&#xff0c;减少和增多。 主要是通过一个preg_replace()函数来进行字符串的减少和增多。 首先要知道逃逸的原理&#xff0c;就是反序…

浅析php反序列化原生类的利用

浅析php反序列化原生类的利用 如果在代码审计或者ctf中&#xff0c;有反序列化的功能点&#xff0c;但是却不能构造出完整的pop链&#xff0c;那这时我们应该如何破局呢&#xff1f;我们可以尝试一下从php原生类下手&#xff0c;php有些原生类中内置一些魔术方法&#xff0c;如…

CTF php反序列化总结

前言&#xff1a;本⼈⽔平不⾼&#xff0c;只能做⼀些类似收集总结这样的⼯作&#xff0c;本篇文章是我自己在学php反序列化写的一篇姿势收集与总结&#xff0c;有不对的地方欢迎师傅们批评指正~ php反序列化 定义&#xff1a;序列化就是将对象转换成字符串。反序列化相反&am…

PHP反序列化命令执行及防范

PHP反序列化命令执行 1、 序列化与反序列化原理 序列化&#xff08;serialization&#xff09;在计算机科学的数据处理中&#xff0c;是指将数据结构或对象状态转换成可取用格式&#xff08;例如存成文件&#xff0c;存于缓冲&#xff0c;或经由网络中发送&#xff09;&#…

PHP反序列化魔术方法

目录 __construct __destruct __call __get __set __isset __unset __sleep __wakeup __toString __invoke PHP讲以双下划线__保留为魔术方法&#xff0c;所有的魔术方法 必须 声明为 public。 __construct()&#xff0c;类的构造函数 __destruct()&#xff0c;类的析…