STM32--ESP8266物联网WIFI模块(贝壳物联)--温湿度数据上传服务器显示

news2024/11/7 3:37:33

本文适用于STM32F103C8T6等MCU,其他MCU可以移植,完整资源见文末链接

一、简介

随着移动物联网的发展,各场景下对于物联控制、数据上传、远程控制的诉求也越来越多,基于此乐鑫科技推出了便宜好用性价比极高的wifi物联模块——ESP8266,话不多少我们先来看看这个神奇的模块长什么样子!
下图是ESP8266-01模块,与之对应的还有ESP8266-01S,两者基本一致,只是后者内部集成了上拉电阻,ESP8266-01使用的时候需要手动接上拉电阻(CH_PD管脚接10k上拉电阻)
在这里插入图片描述
除了上述简单的wifi模块外,还有如下图所示的WIFI模组,具有更多的IO和控制资源
在这里插入图片描述
ESP8266是智能家居等物联网场景下常用的数传模块,具有强大的功能,通过串口转WIFI的方式可实现远距离无线数据传输、远程控制、在线查询等基本物联网诉求!

ESP8266模块有两种模式:
模式一:连网传输数据,就是连接你家中的路由器,即Station模式,本文主要基于该模式进行介绍
模式二:这个模块本身作为一个热点来让你的手机连接它,即AP模式
如果要彻底搞懂这个模块还需要了解AT指令集和mqtt协议,这些相对比较复杂,不在此展开,本文直接上干活,争取用最短的时间教会大家做出项目,并可以按照自己的需求修改

本系列文章就基于ESP8266-01S+STM32F103进行简单的数传/控制介绍,从而了解ESP8266的基本功能。内容比较多,我尽量每一步详细说明,请耐心看完。

二、电气特性

产品参数如下:
在这里插入图片描述
注意:模块电压为3.0-3.6V,不可直接用5V供电,电流大于500mA,需要单独供电

模块管脚定义:
在这里插入图片描述

三、透传设置

透传主要为了设置开机自动透传,断线自动重连,可实现数据连续上传,透传设置包括配置(1)WiFi名称(2)WiFi密码,这个设置对于后续数据自动上传至关重要,若WiFi信息更改需要重新透传设置。

常用的透传设置包括
(1)手动透传:借助串口助手+AT指令配置——本文介绍透传方式
(2)自动透传:这里主要借助Arduino单片机实现配置,如果这个单片机不熟悉的话建议选择方式一手动透传

接下来就重点介绍利用串口助手进行数据透传设置,准备工作如下:
(1)串口助手软件(文末附资源链接)
(2)USB转串口模块,某宝上搜索有很多
(3)服务器网站(本文选用“贝壳物联”,网址:https://www.bigiot.net/)

手动透传接线说明

ESP8266-01SUSB转串口模块
VCC3V3(注意:透传设置时模块功耗不高,可直接连接使用USB供电)
GNDGND
RXDTXD
TXDRXD
CH_PD如果使用ESP8266-01需要接10K上拉,-01s无需接线

接线图
在这里插入图片描述
检测ESP8266模块是否正常
在这里插入图片描述
在串口助手中发送"AT"指令,如果返回“OK”则表示正常启动,否则需要检查下接线是否正确,电源及RXD/TXD是否接反,以及模块单体是否损坏

查询固件版本
使用"AT+GMR"命令查询当前固件版本:
在这里插入图片描述
通过命令透传设置
如果固件是V0.9.5.2版本,在串口助手中依次输入以下命令进行透传设置

//设置WiFi应用模式为Station
AT+CWMODE=1
//连接到WiFi路由器,请将SSID替换为路由器名称,Password替换为路由器WiFi密码
AT+CWJAP="SSID","Password"
//连接贝壳物联服务器
AT+CIPSTART="TCP","www.bigiot.net",8181
//设置为透传模式
AT+CIPMODE=1
//进入透传模式
AT+CIPSEND

完成以上命令重启,自动进入透传模式,并连接贝壳物联服务器

如果固件是V1.0+版本,在串口助手中输入以下命令进行透传设置(本文使用的固件刷新方法)
其中,SSID是路由器名称,Password是路由器WiFi密码,其他不需要修改

+++
AT
ATE0
AT+RESTORE
AT+CWMODE=3
//连接到WiFi路由器,请将SSID替换为路由器名称,Password替换为路由器WiFi密码
AT+CWJAP="SSID","Password"
AT+CIPMUX=0
AT+CIPMODE=1
//这块是贝壳物联网站地址,不用修改
AT+SAVETRANSLINK=1,"121.42.180.30",8181,"TCP"

在这里插入图片描述
自此,ESP8266透传设置完成,后面连接单片机后就可以正常传输数据了

四、温湿度数据上传显示

前面介绍了ESP8266模块并完成透传设置,接下来就可以连接STM32单片机进行数据上传显示了,这里以STM32F103C8T6单片机为例说明,其他MCU也是类似的。STM32采集DHT11温湿度数据,然后再通过串口传输给ESP8266,通过wifi传输给服务器端显示。

ESP8266-01S和STM32F103C8T6接线图

ESP8266-01SSTM32F103C8T6
VCC3V3(电流大于500mA,需独立供电)
GNDGND
RXDPA9
TXDPA10
CH_PDESP8266-01需要接10K上拉,-01s不需要

DHT11和STM32F103C8T6接线图

DHT11STM32F103C8T6
VCC3V3
GNDGND
DATAPA8

系统框图
基于DHT11模块的温湿度数据传输框图如下所示,STM32接收到温湿度数据后再将数据通过串口传输给ESP8266模块,然后再传输给贝壳物联在这里插入图片描述
贝壳物联服务器端设置
STM32和ESP8266配置好还只是数传的开始,只是硬件模块搭建好了,若想实现数据上传服务器端,还需要对服务器端进行设置,本文以贝壳物联为例进行说明,网站链接如下:
https://www.bigiot.net/

进入网站首页,点击右上角“注册”、“登录”拥有自己的账号
在这里插入图片描述

注册成功后主页面显示如下,注意这里面的 “ID”和“APIKEY” 这两个参数是和你添加智能设备后就有的,不会改变,后面代码中会用到
在这里插入图片描述

如果需要添加新的智能设备的话,可以在“智能设备”——“添加设备”中添加在这里插入图片描述

由于是要将传感器采集到的温湿度数据上传到贝壳物联服务器中,所以这里面需要用到数据接口,如下所示,可以点击“添加接口”进行新增
在这里插入图片描述

添加配置完接口后显示如下,可以任意配置接口,但是需要注意的每个接口都有唯一一个"ID",这个ID很重要,后续代码中会体现出来
在这里插入图片描述

上述全部配置完成后,把我们的程序下载到STM32中,即可在数据页面显示对应的温湿度数值,数据显示界面入口如下:
在这里插入图片描述
在这里插入图片描述

STM32代码下载:(完整代码资源及串口助手见文末链接)
代码打开路径:bigiotSTM32-master\bigiot\Project\STM32F10x_LED\MDK-ARM\Project

其中“DEVICEID”和“APIKEY”就是你网站注册后的数据

/*以下两个变量必须修改为自己的设备ID及APIKEY,在贝壳物联用户中心添加设备即可获得*/
char *DEVICEID = "30017";
char *APIKEY = "90e6c4964";

服务器网站对应参数截图
在这里插入图片描述

配置对应数据显示接口


        if(ReceiveState == 1)
        {
            ReceiveState = 0;
            i = 0;
            processMessage(aRxBuffer);
            //其中30017就是设备ID,26630是独立的数据显示接口地址,不同显示接口有对应不同的地址
			update1("30017","26630",temp);
            RxCounter = 0;
        }

服务器网站对应参数截图
在这里插入图片描述

五、结果展示

以DHT11温湿度数据上传为例,间隔几十秒显示一次数据,间隔时间可修改
在这里插入图片描述
视频显示如下

完整代码链接:

代码打开路径:bigiotSTM32-master\bigiot\Project\STM32F10x_LED\MDK-ARM\Project
百度网盘下载
链接: https://pan.baidu.com/s/1cVvkJJhgMXOqvALUiWFsQw
提取码: xfd9

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/624947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PowerShell系列(五):PowerShell通过脚本方式运行笔记

目录 一、四种执行方式介绍 1、当前文件夹运行命令 2、直接指定完整文件路径执行 3、通过cmd命令直接执行 4、通过Windows计划任务执行PowerShell脚本 二、通过脚本方式执行命令的优势 往期回顾 PowerShell系列(一):PowerShell介绍和cm…

Java 异常处理和最佳实践(含案例分析)

概述 最近在代码 CR 的时候发现一些值得注意的问题,特别是在对 Java 异常处理的时候,比如有的同学对每个方法都进行 try-catch,在进行 IO 操作时忘记在 finally 块中关闭连接资源等等问题。回想自己对 java 的异常处理也不是特别清楚&#x…

第一章 软件工程概论

文章目录 第一章 软件工程概论1. 软件危机1.1.1 软件危机的介绍1.1.2 产生软件危机的原因与软件本身特点有关软件开发与维护的方法不正确有关 1.1.3 消除软件危机的途径例题 软件工程1.2.1 软件工程的介绍1.2.2 软件工程的基本原理1.2.3 软件工程方法学1. 传统方法学2. 面向对象…

集群间 ssh 互信免密码登录失败处理

一、问题描述 某次GreePlum集群免密配置过程中,需要使用普通用户实现ssh免密登录,前方反馈root用户已可完成免密登录,但普通用户同样配置,未生效,提示需输入密码才可以。 现场环境: 二、问题分析处理 …

安卓packageinfo的知识点

PackageInfo类包含AndroidManifest.xml文件的信息。 一些常用的属性如下: 获得PackageInfo //获取指定包名的packageInfo,并且包含所有的内容提供者 val pack context.packageManager.getPackageInfo(context.packageName,PackageManager.GET_PROVIDE…

GPT从入门到精通之 Tensorflow2.x 中如何使用 GPT 模型

Tensorflow2.x 中如何使用 GPT 模型 GPT 模型是自然语言处理(NLP)领域中一种重要的预训练模型。 TensorFlow2.x 是目前最流行的机器学习和深度学习框架之一,对 GPT 模型的支持度也非常高。在本篇文章中,我们将详细介绍如何使用 T…

前后端交互四、跨域与JSONP

零、文章目录 前后端交互四、跨域与JSONP 1、同源策略和跨域 (1)同源 如果两个页面URL的协议,域名和端口都相同,则两个页面具有相同的源。 例如,下表给出了相对于 http://www.test.com/index.html 页面的同源检测&…

【iOS_Swift_Alamofire实现网络请求】

文章目录 前言导入库原生网络请求单例封装一个原生网络请求Alamofire用法Alamofire的返回响应将返回的data转为字典/字符串 总结 前言 学习swift继续延续之前的思路,对照着OC学,从UI起手,学习到对应的自适应布局。 今天再次学习了swift的原生…

MySQL分库分表全攻略:从小白到大神的进阶指南!

大家好,我是小米,一个热爱技术的程序员。今天,我来和大家聊一下关于MySQL中的分库分表技术,相信对于开发者和DBA来说是一个非常重要的话题。 什么是分库分表 首先,我们先来了解一下什么是分库分表。分库分表是指将原本…

Apifox(1)比postman更优秀的接口自动化测试平台

Apifox介绍 Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台,定位 Postman Swagger Mock JMeter。通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好 API 文档,API 调试、API 数据 Mock、API 自…

scratch躲避陨石 中国电子学会图形化编程 少儿编程 scratch编程等级考试三级真题和答案解析2023年5月

目录 scratch躲避陨石 一、题目要求 1、准备工作 2、功能实现 二、案例分析

性能测试计划,怎么写显得你能更专业?

性能测试计划 性能测试是一种非常重要的测试类型,用于确定系统或应用程序在特定负载下的性能指标。以下是一个性能测试计划的建议步骤: 目标 首先,定义性能测试的目标和范围。这包括测试的系统或应用程序以及所需测试的性能指标&#xff0…

基于蒙特卡洛模拟法的电动汽车充电负荷研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

开源项目的流程

开源的好处 增加知名度和使用量:开源项目可以让更多人知道和使用,进而增加项目的知名度和使用量。提高代码质量:开源项目需要接受有可能来自全球的开发者审核和参与,这样可以使得项目代码得到更多高质量的反复审查和改进。快速修…

计算机视觉 | 目标检测与MMDetection

目 录 目标检测的基本范式 滑窗使用卷积实现密集预测锚框多尺度检测与FPN 单阶段&无锚框检测器选讲 RPNYOLO、SSDFocal loss 与 RetinaNetFCOSYOLO系列选讲 一、目标检测的基本范式 1、什么是目标检测 给定一张图片 ——》用矩形框框出所感兴趣的物体同时预测物体类…

前后端交互一、服务器概念与初识Ajax

零、文章目录 前后端交互一、服务器概念与初识Ajax 1、上网的过程 网络相关知识请参考网络详解HTTP相关知识请参考HTTP详解 (1)客户端与服务器 **上网的目的:**通过互联网获取和消费资源 **服务器:**上网过程中,负…

基于STM32的智能粮仓系统设计

一、项目背景 随着粮食质量要求的提高和储存方式的改变,对于粮仓环境的监测和控制也愈发重要。在过去的传统管理中,通风、防潮等操作需要定期人工进行,精度和效率都较低。而利用嵌入式技术和智能控制算法进行监测和控制,不仅能够…

【Git】git push origin master时发生的各类错误汇总

文章目录 一、常见的git命令二、错误一三、错误二四、错误三五、问题解决 一、常见的git命令 使用 git 命令时&#xff0c;您可以执行一系列操作来管理代码仓库。下面是一些常用的 git 命令及其功能&#xff1a; git init: 在当前目录初始化一个新的 git 仓库。git clone <…

2023年5月青少年机器人技术等级考试理论综合试卷(二级)

青少年机器人技术等级考试理论综合试卷&#xff08;二级&#xff09;2023.6 分数&#xff1a; 100 题数&#xff1a; 45 一、 单选题(共 30 题&#xff0c; 共 60 分) 1.下图中的凸轮机构使用了摆动型从动件的是&#xff1f; &#xff08; &#xff09; A.a B.b C.c D.d 试题类…

我是怎么劝退打算入行软件测试的同学的?

过去千篇一律的机构、文章都在劝大家入行软件测试——门槛低、工资高、加班少&#xff01;而这两年&#xff0c;受国内外形势、经济影响&#xff0c;整个IT行业都在走下坡路&#xff0c;被专家们称作行业回归理性发展。最近机构劝入行测试的帖子少了&#xff0c;而“我是在xxx如…